There are a lot of different Android devices out there. Seriously, a lot. In fact, there are something close to 19,000 distinct tablets, phones, and other devices (representing around 100 brands) running some version of Google’s operating system, according to a recent report from wireless networking company Open Signal.

So what to do when you want to build an app for this increasingly diverse (some may say fragmented) field of devices? A few thoughts from a Rocket Farm app developer:

  • Device testing: Focus on the top two to five devices over the past year in the target market, if available. One testing device should be a Nexus 5 or 4 — these are Google devices and serve as a reference design. My primary development device is a Nexus 5.
  • Versions: It’s not just all the disparate devices you need to consider, but all the different versions of Android they may contain (as we wrote about ourselves a few months back).My strategy is to develop, test, validate, and get to a workable product on the latest OS version (currently 4.4.2) – that’s where the market is going, and the devices are notably faster and “sexier” for testing and demo purposes. Once we get the features and flow just right, I’ll fold in testing on earlier versions and make any necessary adjustments.
  • Architecture: With so many screen sizes – phones, tablets, and all those new devices in between – laying out the elements of an app might seem a tricky challenge. Thankfully, Android does provide quite a few built-in best practices and structures for handling multiple screen sizes (within the constraints of the selected OS version). As with iOS, most Android layouts will scale to fill the screen.
  • Hardware: When code meets hardware, you may be wandering into unknown territory; each device has its own complement of sensors with their own needs and quirks. The development strategy is to pay a lot of attention to the areas where our code meets deeper-level hardware control. And, of course, plenty of research via resources like Stack Overflow to see where there might be an issue even if we don’t see it on our test devices.