Detect smartphones vs. basic phones
What we call a smartphone today will look antiquated in a few years. This article by Ryne Hader at Android Police reports how the Nexus One (released in 2010) looks from a 2018 perspective. Ryne is documenting his experiment of using older devices and evaluating their usability.
How do we define smartphone?
Android Police’s experiment helps illustrate how dynamic the definition of a smartphone is. ScientiaMobile takes a number of criteria into consideration when defining what is a smartphone. These criteria include:
- Operating system and version
- Screen resolution
- Wireless network connectivity
How to detect smartphones
One of the benefits of using a device detection solution like ScientiaMobile’s WURFL is that we manage these definitions for you. You can install WURFL and start using our is_smartphone
capability to test, identify, and target smartphones. WURFL gives you peace of mind that the definition of smartphones will evolve over time, including new devices and operating systems as they hit the market, while demoting older devices to “non-smartphone” status.
Virtual capabilities: testing multiple aspects of a device in real-time
WURFL device attributes come in two types: static and virtual capabilities.
Certain device and browser properties do not (normally) change. For instance, resolution_width
or release_date
(the year and month the device was first released on the market) will not change over time. Such properties are likely to be represented internally in WURFL through static capabilities. The property is stored in memory by the API, readily available for the next fast look-up.
Other device properties are not always so readily available, in that programming logic is involved in obtaining its value at run-time. There may be both technical and practical reasons for relying on an algorithm, but in both cases a WURFL virtual capability is the mechanism that delivers the right value when you need it.
is_smartphone
is a prime example of virtual capability. A new device that fully deserves the smartphone title in 2007 will hardly still be a smartphone in 2010 and will definitely not deserve the title in 2013. The algorithmic part is what performs the magic.
At run time, WURFL evaluates several static capabilities to calculate is_smartphone
, including the static capability resolution width
. Since the resolution_width
of the Nexus One is 480 pixels, it is equal to ScientiaMobile’s minimum requirement for a smartphone. This part of the virtual capability evaluation does not disqualify it from the smartphone definition.
What disqualifies the Nexus One is its operating system version. WURFL will also evaluate the device_os_version
static capability. As the Android Police article notes, Android 2.3 Gingerbread operating system is the last supported version. While the Nexus One may have started at Android version 2.0, it stopped at 2.3. In 2010, Android’s Gingerbread was cutting edge. But by today’s standards, its lack of support for features like “swipeable notifications” seems archaic. WURFL’s minimum requirement for an Android smartphone is version 4.0 Ice Cream Sandwich. Therefore, the Nexus One is not a smartphone and is_smartphone
will return a false value.
All of these virtual capability calculations occur at run-time and will power real-time applications for mobile web optimization or advertising. Refer to your WURFL API documentation for details.
Thanks to static and virtual capabilities, WURFL-based applications will keep themselves up to date on the evolution of the device market without involving your developers.