5 universal Android development pain points
Two years ago, I made the jump from web dev to Android development. It was something I wanted to do for a while, and Nomads gave me the chance to do it. I went from cozy HTML5/CSS/Php/Mysql stack to the thorny world of mobile development. I did have a decent C/C++ background which helped quite a bit, but I wasn’t really looking forward to sharpening my JAVA skills.
Now that I’ve spent some quality time with Android, I feel comfortable enough to point out a couple of pain points that could easily throw off Android padawans. I’m not trying to put anyone off toward Android development, I actually enjoy it quite a bit. Rather, my goal is to make you aware of these kinks and offer you a possible solution.
My mom always told me “if you don’t have anything nice to say, don’t say anything at all”, for that reason, I’m jumping straight to the solution with this one. Behold Android Studio! Even though some books will still advise you to use Eclipse & ADT (looking at you, Big Nerd Ranch!), you should really just use Android Studio. Eclipse is slow, bulky, and will not get support from Google for much longer. In fact, Google advises you to switch to Android Studio, and if you haven’t done so already, here’s a guide on how to migrate your projects. Not convinced? Here’s a non-exhaustive list of features you’ll find in Android Studio that are not on Eclipse:
- Maven-based build dependencies (Seriously, drop a line in your build.gradle and you’ll have your third party package ready to use!)
- Build variants and multiple APK generation (Great for Android Wear)
- Advanced Android code completion and refactoring
Also, if you’re like me and don’t want to give up on your vim environment, Android Studio has a pretty well-written vim plugin to get all your favorite bindings into your new IDE.
Here’s the thing, once in a while, you’ll get a designer that will give you an awesome Android mockup for your app. If you’ve experienced that, hang on to him. The rest will either give you an iOS design, or even worse, a small website design. They will completely ignore most of the Android design guidelines, patterns, and paradigms. Say goodbye to Android specific ToolBars, Navigation Drawers and ListViews! It will be your role to educate them, and bring back those elements into the design. Our team believes that designers should be intimately familiar with their medium and that platform consistency at the UX level is just as important as brand consistency at the UI level.
Back in my web dev days, I was always complaining about how it was a pain to keep designs in Safari, Firefox, Chrome, IE (Ahhh… IE…) consistent. I thought those days were long gone once I switched to Android development. Boy, was I wrong! When developing for Android, you’ll discover different tablet and smartphone device lines, made by different manufacturers all running different versions of Android itself, from Froyo to Lollipop. What works on the Moto Xs and the HTC Ones may not work on the Sony Xperias because of some tiny change on the low-level side of things. Needing to design your UI so that it looks good on any screen size from 4″ to (soon) 12″, and literally every inch in between can be a daunting task. Fortunately, Android SDK provides you the tools to easily adjust each user interface to a variety of screens. You should also check the Android dashboard to see which version you want to support for your app – at the moment, API Level 16 seems to give you most of the market (89%), while letting you use most of the latest features.
Now that you know that your app is gonna look and act differently on every device, it’s time to go to the bank and get a personal loan so you can purchase 10+ different smartphones, tablets and smartwatches. Not! Save yourself some trouble and moola, by using an emulator. An emulator lets you run any Android device on your computer. Android Studio comes equipped with an emulator but is – alas – renowned for its slowness, unless you’re running a state of the art workstation. Currently, my favorite emulator is Genymotion. Built by the French-based company, Genymobile, this emulator is one of the fastest VirtualBox based emulators out there. Compared to the default emulator, it’s like engaging the hyperdrive in the Millennium Falcon. Just make sure you have VirtualBox installed first.
Do you have any other Android Development tips? Share them with us! You can also access community advice from Google’s Android developer advocates or explore the full extent of the platform online documentation.