Latest News
Subscribe to our Monthly Newsletter

Porting iOS to Android (Part 2)
There are some things that happen during almost every port. I am going to try and talk about some of the more common things that we have run into at Jackrabbit.
Sizing Assets
So, so many sizes, what do we do??????
Android phones do come in many different sizes and shapes, but don’t fret too much about it. Android really does help you if you have the right resources.
On iOS you can supply 1x, 2x and 3x sized assets. It is lovely how simple Apple has made this, but with Android you need to supply mdpi, hdpi, xhdpi and xxhdpi* sized assets. This sizing metric can be confusing to a designer. Luckily, it’s really just a matter of renaming your existing assets and adding in one or two extra sizes, depending on the project.
Testing/QA on Multiple Phones
Testing/QA on Android needs to be done on different sized devices with different memory sizes that are from different manufacturers.
Test the entire API range that you plan to support. There will be strange bugs you find on older versions that don’t exist when you run your app on the most up to date version.
I recommend doing some research and finding out which devices are the most popular at the time. AppBrain does a great job of showing you what the current market looks like. Follow this link to see the most popular phones on the market, broken down by each country.
Test on a Nexus device because that will assure you that your app is working on the vanilla/pure version of Android* provided straight from Google.
Test on low-end devices that may be popular with your users. Many older devices will have memory limitations that you need to test.
How can you test on all these different devices with a limited budget?
Genymotion is the go-to simulator right now for any Android testing. You can test all sorts of screen sizes, memory sizes, API levels and manufacturers. Right from your computer, you can test an old Samsung device, the newest Nexus and the most popular Android phone, all at the same time.
You will need to create an account but the base plan is free to download. You can sign up for Genymotion here.
*Nexus devices get the most recent version of Android straight from Google. Many times, other manufacturers will have their own UI that they will want to put on top of vanilla Android to promote their features. The most well known UI is TouchWiz from Samsung.
Tabs on Top
Most apps nowadays use tabs somewhere in their UI.
Tabs are situated on the top of the screen on Android, while in iOS they are usually on the bottom.
Android has software buttons always present on the bottom of the screen.* This means you do not want to stick a tab bar right on top of the system bar. So accept it for what it is and just let your developers put that tab bar on top.
* For most devices. Some devices have hardware home buttons or a different setup.
What Devices/Versions to Support?
Android’s biggest problem is fragmentation. Users usually aren’t forced to update to the newest version or aren’t able to right away. While iOS users move quickly to the most up to date version, Android users move very slowly if at all.
Analyze the Android API (version) user base and compare it with your expected audience. The best practice is to support 80+% of all users.
Google posts the most recent user numbers on their Platform Version Dashboard. This dashboard will show you what percentage of users are on what versions.
Developer Fragmentation: https://developer.android.com/about/dashboards/index.html
Another fun place to look is the minSdkVersion Twitter account. This Twitter account simply states a recommended minimum version for an Android project.
Let’s Make Your Idea Reality
We deliver value to partners through mobile strategy expertise, user-centered design, and lean methodology. Take a look around our work portfolio and drop us a line, we’d love to chat.