Android Fragmentation Coping Strategies

opensignal.pngOpen Signal has a new report on Android fragmentation. There are charts dissecting fragmentation by device, brand and screen size. Open Signal explain how Android fragmentation is a problem as well as an advantage.



What does this mean for developers? What are typical coping strategies? By ‘typical’ I mean what can the long tail of app developers do? Heavily funded developers can go the ‘lets test (nearly) every device’ route but this isn’t feasible for most projects.

Here are 10 high level tips:
  1. Avoid heavily branded apps and instead use the default Android controls. Heavily branded apps that scale across devices cost more to create. Most Android controls will scale automatically. Instead think about how you can re-colour existing controls to get near to a branded look and feel.
  2. Design for Android. Again, including iOS idioms will cost more and will be less likely to scale well.
  3. Try to implement the same thing on all OS versions. For example, retrofit today’s Android UIs onto older devices. More specifically, use the ActionBar in all your apps, irrespective of the OS version. 
  4. Analyse what devices are actually in use in the geographic region you intend to ship. The 80 20 rule usually applies – test 20% of devices and you will probably cover 80% of all devices.
  5. Analyse the functionality you wish to have in the app. The deeper you go into the OS, the more problems you will have across devices. Are your requirements to use some deep API essential to the working of the app or a mis-guided need? Keep it simple and you will have less technical fragmentation due to different APIs.
  6. Re-use rather than re-create. Use open source libraries. There are very many excellent Apache licenced Android libraries out there that have solved many of the technical fragmentation problems.
  7. If you have a limited budget then support the top x% of devices. It’s better to do something well for fewer people than something poor for all. With Android’s very large reach, you might find the ‘fewer people’ still actually represents a large number of people. Also, if you pick the correct top x% then you might also be choosing those that engage more and/or are more willing to pay.
  8. Use automated testing to test the same app on many devices at once. Again, look at open source, for example spoon.
  9. If you are an entrepreneur, think about vertical opportunities that use fewer types of device (or even one device).
  10. Don’t be afraid and instead be prepared. It’s my experience that Android fragmentation is over-hyped. It’s certainly less of a problem than the old Java fragmentation days. I suppose it depends on your perspective. Remember, you will always get a small percentage of people with problems, on any platform. Accept this and plan accordingly.