I’ve spent the last few months porting You Doodle from iOS to Android. It’s been an interesting experience as I have learned the Android environment and frameworks. I’ve managed to get all the draw tools working (except scissors), and get loading / saving photos working as well.
So far the work has taken a couple months, and I’ve been in poor physical health which means my hours worked per day has been diminished. I’m hopeful that I can get You Doodle mostly ported over by spring next year, health permitting. I’m excited to have You Doodle on two platforms, and I will be looking at moving to the MAC and Windows next year.
Now for some lessons learned on developing for the Android platform:
- It’s much easier to target your top tier of devices than to try and support every last Android device out there. Google Play tells me that 8400 devices can run You Doodle. Yikes. I ended up ordering three of the most popular Android tablets and phones. You can usually get them for a decent price on Amazon, especially used.
- Android uses intents to import and export data, such as photos. This is awesome and much better than how iOS does it, but it’s a little quirky depending on how the hardware manufacturer has implemented things. For example, Samsung devices require an extra parameter when importing from the camera. I believe it’s the intent.PutExtra(“return-data”, true); call that is required.
- Don’t bother supporting the armeabi CPU in your compilation, just support armeabi-v7. This will cut down on your APK size, and limit the problems you will have from the really old devices. Most people will be using an armeabi-v7 compatible device.
- Android tends to have a more spread out user base for each operating system revision. I chose to support Android 4.1.x+ since that’s where 90% of users are. You can view Android operating system usage percentages via a Google stats page.
- Google has vastly superior developer tools and review mechanism that iOS. You can actually respond to reviews which is great. You can role out alpha and beta versions of your app easily. You can even push to production to a percentage of users to get feedback on your changes. I wish Apple would do something similar. The Google Play Console runs fast, uploads fast and is a joy to use. iTunesConnect… not so much.
- Publishing to Google Play takes an hour or two without much fuss. To get an update through the iOS app store typically takes 1-2 weeks, assuming you don’t get rejected for some obscure or inconsistent reason, pushing you back another 1-2 weeks.
- Android devices typically have more memory and CPU cores than iOS. Use this to your advantage for apps like games or photo / video editing.