Q & A with Authors Donn Felker & Michael Burton
How long have you been developing apps for the Android platform?
Donn: I've been developing for Android since the first device was released back in 2008. My wife upgraded from an old flip phone to the G1 and while I was in between clients, I decided to write a couple of apps for the phone and decided to stick with it.
Michael: Ditto for me. I cut my teeth on Android development on the original Android G1. It was the Wild West in those days, and in some ways, still is! How did you get started?
Michael: A friend of mine started a company with his buddy from MIT, and I joined up with him a few weeks later to take on the man and change the world. Originally I was doing backend development on a Python/Django 0.93 stack, and we were targeting a mobile web and native iPhone app, but once the G1 came out, we knew Android was going to change things up. Since I was the only one on our little six-person startup who had a lot of experience in Java, I switched over and coded our first Android app as fast as I could. What first attracted you to the Android platform?
Donn: I liked how open it was and how quickly I could develop an application and get it to market.
Michael: Java's automated memory management and Android's intriguing (and oddball) multiprocessing model were compelling features for me when I got started. I had left enough systems programming behind me to know that malloc and free were pretty old school, and I didn't envy the iOS guys who had to do that all themselves prior to the advent of ARC. I thought for sure Android development would be easier if only for that reason alone. Ah, for the days when I was so young and naive. Favorite app or project you've had the chance to work on?
Michael: I love my day job, but when I go home at night, I'm all about RoboGuice, my open source dependency injection framework for Android. We use it internally at Groupon, and it's also used by a number of other companies as well.
Donn: For me, it's Groupon. What are some of the most common challenges new programmers face when developing their first apps?
Michael: State management is the number one place I see new developers stumble on Android. In a regular Java application (non-Android), if you put a value into a field in an object it will stay there until you change it. It's so fundamental and so basic that most developers never question it, but it's simply not true on Android.
The next most common difficulty is coming up with visual designs that "flow" so that they can adapt to devices of different sizes and orientations. This isn't an iOS world where you just have to deal with three or four fixed sized screens. With Android, you'll design for one device and later find that your "Okay" button has fallen off the bottom of the screen on smaller devices.
Donn: I agree. Getting their app to look good and work correctly across all versions of Android and sizes of Android devices is a big challenge for new developers. What should readers expect when they open a copy of Android Application Development for Dummies?
Michael: Corny jokes. Sorry about that.
Donn: Seriously, though, they should expect a comprehensive introduction to Android. But, this is not an introduction to Java or XML--the developers are expected to know the language. This book will provide a solid foundation for any developer wishing to jump start their Android developer career. Any advice for readers getting started on their first Android app?
Michael: Expect to make mistakes, and make sure you leave yourself time to do a whole lot of clever testing. Testing on Android is about outsmarting the phone, and you'll need to develop a strong sense of how Android internals work and how to emulate all of the unusual situations that users will encounter with your app.
Do your dialogs disappear when switching from portrait to landscape? Will the app crash if the user hits the back button after leaving your app to visit a web page? These are just a couple of really common scenarios, and they're also very easy to get wrong.
These are the kind of issues we've tried to do our best to guide you through as you work through the examples in the book.
Donn: I think the key thing is just to keep at it. Use the forums, like Stack Overflow and Google groups. Attend local user groups and interact with your community. And above all else, have fun!