Therese: I'm with Stefan Meisner Larsen of Trifork, one of the speakers at the JAOO conference. He is speaking about the Android programming platform and is also hosting a one-day tutorial following the conference. Thank you so much for sharing your thoughts, Stefan. Can you start off by telling us who you are and what background you have for speaking about Android at JAOO?
Stefan Meisner Larsen: I have been working with different sides of software development since I finished school as an engineer in 1989, primarily on the Unix platform — first in C and then in Java from about version 1.2. Since I joined Trifork I have worked with Java Enterprise and Android. At Trifork we use a part of our work hours for "sharpening the knives" (just like the famous Google 20% time), and for me that means that I started looking at Android about 1 1/2 years ago. Following that we started having a serious dialogue with several customers about Android projects. Furthermore I developed the application MoGuard Alert in my spare time that is currently available from the Android Market.
TH: What challenges have you faced in developing for the Android platform? Do you have some good advice for developers that are about to start developing for Android?
SML: In general, I would say that if you are an experienced Java developer, it's not hard to get started on the Android platform. Of course there is always a challenge in getting started on a new platform. You can't just count on Google to deliver a solution to your problems.
I just want to share two things. [First,] you should remember that an Android Application should look like... an Android Application. There is a definite difference in how an application is expected to behave on an Android-based phone [compared with] an iPhone — partly because there are already a lot of Android applications to be inspired by, and partly because Google has made a guideline for the Android UI.
My second piece of advice is to remember the good habits the Agile movement taught us: test cases, continuous integration and so on.
TH: One of the problems faced as a developer when starting with a new platform is that you are not familiar with the toolset. Do you have any favorite tools to recommend?
SML: Eclipse is for me the primary choice when it comes to Java development. Google has made a plug-in for Eclipse that supports the new functions on the platform: Android project template, editors for various XML files, translation, debugging, etc.
The new IntelliJ IDEA has Android support in the paid version. I don't have any experience with that but JetBrains products are usually OK. The conclusion must be that many Java developers can continue working with their preferred IDE.
TH: What experience do you have with the Android Market?
SML: Well, my experience with the Android Market is limited to my MoGuard Alert application. As you know there are a lot of apps in Android Market, and I am not especially impressed with the search function. Just to illustrate: MoGuard Alert does not pop up when searching on "sms alert" or "sms alarm." That is a bit frustrating. On the other hand it is fun to get that close to your users and get instant feedback. It is quick to install an application and even quicker to erase it.
I have had a lot of feedback via mail, both praise and criticism [as well as] suggestions for new features. If you react quickly when somebody has problems with your app, most people are good at reporting back when problems are solved.
TH: If you have previously developed successful iPhone/iPad apps, should you start from scratch in developing for Android or do the two platforms have enough in common for reuse on the user experience side?
SML: An iPhone and an Android app are two very different things, and there is not much ground for reuse. The true art in this situation is to be true to the platform you are developing for so the user experience is consistent with the specific platform look-and-feel.
TH: If you could improve the Android platform, what would be your first priority?
SML: Mobile devices have great potential in an enterprise setting as communication and application platforms. But there are challenges with administration and security that the Android platform does not address. I miss those systems that exist today for administration of PCs for the Android platform. There are undoubtedly a lot of obvious applications for mobile devices that will never make it because of security issues.
TH: Thank you so much for your time, Stefan. I certainly feel inspired to start developing for the Android platform after this talk.