Skill Level: All Levels
Tackling Fragmentation in the Mobile App World
With the ever increasing fragmentation in the Mobile App arena, one of the biggest challenges faced by both app developers and QA Personnel is to ensure that their apps perform optimally and provide a coherent user experience across a variety of devices. In this talk we would first have a brief look at the various forms of fragmentation prevalent in the Mobile Ecosystem.
The fragmentation of the system is one of the challenges of Android development. First, it is the variety of devices that need to be supported. For example, for a disproportionately long and thin smartphone, the design of the application will have to be changed so that all important information is visible on the screen and navigation works. A phone without a camera will require "stubs" to be created on those pages where the camera was previously used, for example, to read a QR code. If the device uses its own Android shell, rather than the "pure" version from Google, some of the functions of the application may not behave the way the developer intended. All of this makes testing and debugging applications more difficult.
Also, unlike iOS, Android has no forced updates. The statistics show what this leads to: in January of this year, more than 32% of Android devices were running on version 9 or lower, released in 2018. This means that many features, for example from version 13 of the system, will be unavailable for these phones. To solve the problem, Google releases some updates with backward compatibility, meaning they are supported in older versions as well. But these do not include all new features, and not all of them work correctly.
Android developers have to be flexible: find a way out of different situations and constantly update their knowledge. Fortunately, most of the difficulties can be foreseen in advance. There are tools and approaches that help create apps for different technical characteristics of devices. Android developers live with this not as a problem, but as a natural part of their work.
The primary focus of this talk would then be to take a look at the various techniques that can be used to tackle the fragmentation issue and the pros and cons of each of them. Some of the strategies are:
- Using the statistics of OS App stores
- How much insight do they really provide?
- Using third party statistics
- How to use them to intelligently select a subset of the most popular handsets? Are these reliable?
- Using regional traffic and market data
- How to focus on the most important platforms/devices/carriers for your specific audiences in a specific locale of a specific geographical area
- Using cloud based services to (virtually) access a large number of devices for testing your apps
- Which factors to consider while choosing a vendor? What are the limitations of these services?
- Automation tools, IDEs and plug-ins
- To what extent can these be useful?
- Open Device Labs
- The open source approach helping to build a community based device sharing platform in low cost.
We will end up with discussing few scenarios faced by our clients and how these approaches helped them ensure maximum device coverage.
Saurabh Agarwal is a Senior Quality Assurance Engineer working with Mindfire Solutions. Having a flair for testing mobile and tablet apps, he has worked on a variety of apps on platforms like iOS, Android, Blackberry and J2ME, striving to deliver top notch quality in every app tested. He is currently working towards specializing in iOS app testing as part of the Operation Specialization initiative of Mindfire Solutions. Apart from work he likes to catch up on music, movies and building his iPad app collection.