Last week Berlin was the place to be for Android developers, experts, and enthusiasts from all over Europe. The droidcon 2013 took place from April 7th to 10th in Berlin. We were part of it and sum up the most relevant topics from the two conference days in this article. What has changed from last year’s conference is that Android is now the clear leader on the mobile operating system and smartphones market as far as device sales are concerned. Overtaking Apple’s iOS in market share, the mobile OS by Google can now be found on entry level to high end phones, tablets, TVs, game consoles, watches, etc.
Apart from the huge success with devices sold the conference kicked of with the statement that iOS is still ahead in terms of commercial success. There are several factors for that: People are spending more money on iPhone apps because they want to impress, Apple has become the synonym for apps (“there’s an app for that”), and iPhone users are rather early adopters. Also purchasing is fully integrated on iOS and the payment information has to be provided once you set up an iTunes account. On the other hand transparency and privacy could become a competitive advantage for Android. Especially app developers have to keep that in mind and enhance user trust and be transparent.
If you are interested in a smartphone that puts social values first, you should definitely check out FairPhone. It’s still a concept and under development but we think it’s definitely time to have more ethically sourced and manufactured devices!
When it comes to the Do’s and Dont’s for Android UI you should have a look at Android UI Patterns. Probably the best advice for every Android UX engineer is “Don’t use designs from other platforms”. The time when just imitating the iOS user interface on Android was state-of-the-art is definitely long over. “Make you layout scalable and don’t build an extra app for tablets” is another very important guideline – here re-usable Fragments are the way to go.
On a rather technical level there were a lot of interesting talks as well. Anders Göransson of Jayway talked about efficient threading on Android. When scheduling processes on Android you have to consider the four different levels: 1. Foreground, 2. Visible, 3. Service, 4. Background. It’s important to know that background threads get only 10% of execution time. The garbage collector (GC) runs after the onDestroy() method of an Activity, so having background threads that reference Activities is in all likelihood a source for a memory leak. You can read more about this topic at the official developer guide.
Markus Junginger of greenrobot from Munich talked about the lessons learned with Prime Guide, their Android TV guide app for the German market. Apart from the daily struggles of an Android developer he argued about the pros and cons of using Google App Engine (GAE) as the backend of the app. A technology which we are using for our products as well. It might not be the cheapest solution and has it’s weak points, but on the other hand GAE helps them to have high availability with close to zero maintenance effort, easy version control and – most imporant – getting them through usage peaks easily.
Another central theme throughout the conference was how to build high quality apps and what tools and techniques can be used for quality assurance. Just to mention a few:
- Jenkins: for continuous integration (CI), automated build and device tests
- Robolectric: a unit test framework
- Mockito: a mocking framework that can be used for unit tests
- Calabash: write automated functional and acceptance test with Cucumber
- Robotium: test automation framwork
- Sonar: manage code quality (code coverage, source analysis, …)
Testing is very important but quality should start at an earlier stage when developing, so dependency injection (DI) is an important concept to keep the code clean, managable and readable. On Android, RoboGuice – the Android variant of Google’s Guice framework – comes in handy. If you are developing serious Android apps you should definitely use the well known obfuscator and code shrinker ProGuard to reduce application size, increase performance and battery life. Hint: You need to enable it, by default it’s commented out in the project.properties file.
We are definitely keen on using our Android know-how and skills in customer projects and will be happy to help you realize your Android app. We are looking forward to seeing new developments in the Android and mobile sphere in 2013!