So, you've got an idea for a new mobile app, or perhaps you have an iPhone app and you want to hire an Android developer to port your iPhone app to Android.
What should you be looking for? Since Android is based upon Java, which is the language of choice at many computer science schools, there are lots of people who claim to be able to write Android programs. However, Android is it's own beast, and simple knowledge of Java is not enough to claim competency and skill as an Android developer. There are many Android-specific features that your developer needs to know about.
So what should you be looking for? This guide should give you a good idea about how to hire android developers.
What makes Android so appealing to developers, manufacturers and customers alike is it's open source nature.
Make sure your Android developer has a good knowledge of the Android open source ecosystem. There are many good open source libraries that they should be aware of, and hopefully they should have some open source projects of their own.
Even better would be if they have some involvement with the Android Open Source Project itself, either in the form of bugs filed or patches submitted. This shows a deep understanding of the Android platform, which can be extremely useful. It'll also mean they know where to take code from, as the AOSP has some great reusable code in it. Remember, good artists copy, great artists steal!
Although Java knowledge alone is not enough to make a great Android developer, mastery of the Java fundamentals are a must.
Does your developer know what data types to use in the right situations? Do they know how to properly use synchronized? How about JNI, do they have experience with the Java Native Interface? All these things show advanced understanding of the underlying Java platform, which serves as the foundation for any good Android application.
Android is plagued by what we developers colloquially call "jank." When an iPhone app scrolls smoothly and the Android counterpart stutters, that's jank. When an Android app overrides the back button inappropriately, has an ugly title bar, or crashes unexpectedly and unrepeatability, that's jank. Jank sucks.
Bring up this concept with your developer. They'll know what you're talking about, and if they're up to snuff, they'll immediately start getting defensive about their beloved platform and start offering their own anti-jank patterns.
They should know about how to properly use database-backed ScrollViews, reusable ViewHolders, and how to only redraw the parts of the screen that have changed. Ideally, they'll have seen the Google I/O talks talks on how to avoid jank, and their open source projects will reflect this knowledge.
Android has a turbulent past. 1.0, 1.1, 1.2, 1.5, 1.6, 2.0, 2.1, 2.2, 2,3, 3.0, 3.1, 3.2, 4.0, and beyond! All these versions have their own unique set of APIs and capabilities. Can your developer handle all of them?
You should decide early on which version of the platform you want to target.
In fact, it gets even more complicated than that. Unlike the iPhone, which has a standard screen size, Android devices have many, many different screen sizes, resolutions and pixel densities. Can your developer handle all of those, too?
Oh, and it actually gets more complicated than that. Different manufactures put different APIs, codecs, applications and skins on their own devices which sometimes significantly alter how an app runs (see the previous section on jank) - is your dev prepared for all of the curveballs they throw? Make sure they have some knowledge of the challenges you're going to face, and that it is factored into the timeline of your project. This bullshit can take a long, arduous time to test if you're not prepared for it.
Once the app is ready to push, will your developer be able to help you publish it?
It's actually quite tricky to publish an Android application and gain traction. Although it's easy to actually get the thing online (as there is no review process like on the iPhone App Store), once things are published, it's basically a free for all.
Make sure your developer can guide you through how to publish an application, how to make sure application comes up in the search terms which your looking to target, how to manage customer feedback and keep your rating high.
There are also many alternative app stores, like the Amazon Android App Store. Can your developer help you publish to those as well?
Hopefully now you've got some good ideas about what to look for when hiring an Android developer.
And where should you look to find one? Why, right here at Gun.io, of course, where there are thousands of great developers from the open source community waiting for you to hire them! Find an Android developer by posting a job and start getting high quality leads right away!
Did this article help? Is there something I'm missing out? Leave a comment below!
PS: We're also looking to write more of these articles about how to hire developers for specific languages and platforms. If you'd like to write a guest post (with a link back credit and a plug), please send us an email!