views:

452

answers:

5

I'm starting down the road of Android Development.

At this point I'm looking for some insight from other developers who have been doing 'droid development and have some experience to share with someone who is just starting out. This can be anything from API to AVM to IDE.

Any unexpected things come up while building your apps? Any tips for project layout or organization that help facilitate the deployment process to the Android AppStore? Any patterns which specifically helped in a particular situation?

Even links to great blogs or sample apps and resources beyond those which you can grab from Google Code would be appreciated.

+7  A: 

Read (and re-read) the application fundamentals doc. It may not make complete sense until you have some experience, but it's a good high-level overview. Also, try to understand why the APIs (and platform) works the way it does and don't fight against it :)

Erich Douglass
+1 for mentioning App fundamentals doc. :)
Funkyidol
+2  A: 

Not sure if this is much of an insight, but I was able to have my first Android application up and running using ADT in Eclipse within an hour. Using the emulator is easy (although CPU intensive on my MacBook pro). Connecting a physical device is also straightforward, after which you can run and debug on the device. Only 'gotcha' was that you have to enable the 'USB-debugging' option on the phone.

Maurits Rijk
Good to know about the USB debugging option. :)
Mat Nadrofsky
+3  A: 

Plan for interrupts and worry about state. Don't expect any of your use cases to always be carried out from start to finish all at once.

Malachi
+4  A: 
  1. Pay particular attention to loading of data on the UI. Learn how to use AsyncTask and how to separate UI threads form the application threads to avoid application blocking and unexpected errors.

  2. Keep in mind the basic OOPS and MVC concepts and apply them to your application as much as possible to keep your application structure modularized for both big and small applications. It saves a lot of head ache during later stages of app development.

  3. Experiment with your layout, custom UI components and get your hands real dirty with the layout.xml. The more experience you have in these the better.

Funkyidol
+1 - Awesome. Solid insight. Thanks!
Mat Nadrofsky
+2  A: 

If you use SD card to store data don't forget that sometimes users unmount SD from the device to mount it to the PC. At this moment SD becomes unavailable and your application should handle that correctly.

Fedor