When developing for mobile, every developer must understand the number of devices an app needs to support. On a native platform, you can restrict devices based on the operating system that it’s running on. On a mobile app, however, you don’t have that luxury. You can detect the type of browser the user has; but you still might not know which device he or she is running. This is why it’s very important to understand the different types of devices and operating systems. That knowledge will make your life a whole lot easier when developing for mobile.
- iOS: The iOS platform is a writer operating system from Apple. As of this time, the most current release is IOS 5.0.1. iOS runs on the iPod touch, iPhone, and iPad. One of the great things about the iOS platform is it is limited to two screen resolution sizes. All iOS devices come preinstalled with Mobile Safari, a WebKit browser. On Mobile Safari, any file upload control is disabled, preventing the user from uploading any files on a website. Prior to version 5, developers could not use overflow scroll elements, which are com- monly used to create fixed top and bottom navigational bars. With the most recent release, web applications have become much more native with this new CSS element. Between October and November 2011, iOS market share rose from 26% to 43% (http://techcrunch.com/2012/01/09/ios-marketshare-up-from-26-in-q3-to-43-in-octnov-2011/).
- Android: The Android platform is available on a wide range of phones and is copyrighted by Google. It is an open source operating system, which means many phone designers and developers can take it and customize it to their own needs. A prime example of this is the Amazon Fire, which runs a custom build of Android, codename “Gingerbread,” which is version 2.33. At the time of writing this book, the latest release was codename “Ice Cream Sandwich,” version 4.0. All Android devices come with a standard WebKit browser. In version 1.5, developers could use overflow scroll elements to maintain a static header and footer. On the negative side, Android has multiple devices that run on this platform. With large and small screen resolutions, virtual and physical keyboards, and a native Back button, designing and developing for the Android platform can be a daunting task. Luckily, the Android emulator enables you to view your app at multiple screen sizes and with various operator versions. The emulator provides a great way to see what your app looks like on a phone. Android holds approximately 47% of the market share as of third quarter 2011. It’s also important to note that since Android is an open-source platform, phone manufactures take the code and create custom versions of it to fit their devices and the service provider. This creates greater fragmentation, which can result in two different types of operating systems on the same phone. Google does offer the Samsung Galaxy, which is known by the developer community as “Vanilla Android” which means that is not altered in any way by the device creator. This fragmentation leads to many phones not being able to update to newest version. The majority of Android devise are still on 2.3.x which is almost two full version releases behind the latest release (Ice Cream Sandwich) at 4.0.x.
- BlackBerry: BlackBerry is often considered the third most popular smartphone. Like Android, BlackBerry has many different devices with many different screen sizes. Many BlackBerry devices have a physical keyboard with trackball. Recently, the company introduced touchscreen devices with virtual keyboards. As of BlackBerry OS6, all BlackBerry devices come loaded with a WebKit browser, which makes life a lot easier when developing for this platform. Prior to this version, all BlackBerry devices came with a non-WebKit browser. That said, most web apps today do not support anything lower than BlackBerry OS6.
- WebOS: WebOS is a platform that was designed and developed by Palm. Palm was acquired by HP in 2009 and has been committed to developing new phones to challenge Android, iOS, and BlackBerry. In 2011, HP decided to provide webOS as an open-source operating system with the hope that it would be an alternative to the Android for phone manufacturers. The most current version of webOS is 3.0.4. As of WebOS 2.0, all HTML5/CSS3 features are present in their WebKit browser.
- Windows Phone: In 2010, Microsoft wanted in on the mobile phone market and introduced a brand-new phone based on their operating system, called Windows Phone. The operating system that powers the phone is Windows CE. Unfortunately, this meant that the browser installed on the phone with Internet Explorer 7, while the current release is Internet Explorer 9. This left web developers struggling with how to design and develop for the platform because of lack of support for HTML5 and CSS3. In February 2011, Microsoft announced the release of the next version of the Windows Phone, codenamed “Mango.” This update was significant because it allowed developers to access HTML5 and CSS3 features in the browser. However, with the newest version of Windows, phone developers are still unable to access some CSS3 features, including gradients. In third quarter 2011, the Nelson report of U.S. market share for Windows Phone 7 was only 1.2%.
The devices in this list are not the only ones out there, but they are the most common. When developing your mobile app for devices, the key thing to determine is whether the mobile device has support for modern browsers. Without this, you lack the basic HTML5 and CSS3 features that will make your app stand out. As we discuss later, there are many ways to determine users’ browser agents and redirect them to a low-resolution version of your website if need be.