Tips for Android Tablet Development
Last month the British Android community gathered together (with a sizable international presence, including the Bangalore Android Group) for Droidcon UK, a huge conference in the Islington Design Centre to discuss all things Android.
Whilst a full breakdown of the two days of talks, barcamp and democamp is still forthcoming, I thought that one thread that ran through the whole conference, as well as the Labs hosted by Google the day before, was worth exploring separately.
The iPad has an undisputed dominance in the Tablet market, but Google is incredibly keen to disrupt the sector in the same way that Android has already with the iPhone; and a key fault of their Honeycomb tablets to date has been the lack of apps which are designed to work well on them. Google have been working expending considerable resources to try and rectify this, and as part of this initiative they the importance of design with this consideration was constantly reinforced through three days.
Some top tips for developing with Android tablets in mind:
Enable hardware acceleration! The oft-complained about UI lag was negated somewhat by Gingerbread's concurrent garbage collectory, but almost every app will benefit from enabling hardware acceleration. Apps targetting API14 and above have this enabled by default, but please still enable it for those running Gingerbread! You just need to add "android:hardwareAccelerated="true" to the Manifest.
Target Honeycomb APIs (API) to use the action bar rather than the deprecated Menu button. Not doing so will immediately give your app the impression of not being designed for any newer devices.
Design for larger screens. Large screens are a brilliant opportunity to present your data and interface in an entirely new way that massively improves the user's experience with your app. Don't just allow your existing app to render with lots more blank space.
For example, the simple ListView can be made much more interested by creating a richer media experience. Hell, why not just replace it with the stunning CarouselView that Google are using in the Books and Youtube apps?
Use fragments. Remember: fragments are a lifecycle construct, not a visual one. Views then separately render the fragments which use Intents to communicate to each other. Remember that the Android Support Package allows Fragments to be used back to API4.
If you have to, target activities explicitly to different screen sizes. This can be achieved by setting a boolean value in an XML file and using this in the Manifest to modify the intent filters depending on the device's form factor (or any of the other selectors, including those added with API13).