Getting Started with Android Development

Several people have asked me what the best resources are for getting started with Android. There are so many Android code blogs with “working” example out there, it’s hard to know what’s the best way to get started. I’d recommend starting at the official Android Developer site, as it has the most up-to-date documentation and plenty of basic examples, which should be enough to get you started on a basic application. Here are some other resources I’ve compiled for getting started with Android development.

Setup

The most dreaded part of starting something new…getting your development environment set up.  If you don’t have Eclipse or the Android SDK already, follow these instructions. Do yourself a favor and use Eclipse. Even if you are a hardcore Intellij fan, switching to Eclipse and learning/remapping the keyboard shortcuts will make your life easier (I did it). It is fully integrated with an Android plugin, so starting a new project, debugging, running, etc are all very straightforward.

Resources:
Official Android Developer getting started guide
Visual Eclipse shortcuts, mapped on a keyboard
Comprehensive list of Eclipse keyboard shortcuts
Intellij key scheme for Eclipse

Hello World

No “getting started” guide would be complete without Hello World. The Developer site has a good Hello World tutorial that does the basics but then also walks you through some more things like laying out the UI in an xml file and debugging you app in Eclipse. You can even try your luck with uploading your Hello World app onto Android Market (check out the reviews)!

Basics

So much to learn! Activities, services, content providers, broadcast receivers, intents…it’s hard to know where to start. Take a look at the Application Fundamentals and also the more in-depth explanations under “framework topics,” but don’t get too bogged down by the details. I’ve found that the best way to learn something new is to get a general overview and then start a small project. After I’ve immersed myself in it a bit, I’ll come back to all that stuff I tried to read at first, and it makes a lot more sense.

Getting Help

StackOverflow is a great resource with a very active community. If you’re just starting off and get stuck, odds are that there are already several relevant StackOverflow questions with accepted answers. There are also various Google groups, but I’ve found the noise-to-signal ratio to be unbearably high, especially in ones that advertise themselves as for beginners.

Blogs

There are so many random developer blogs online that it’s hard to know which ones are reputable and current. Here are a few I’ve found to have solid content.

Android Developer Blog – This is the official Android Developer blog, and frequently has posts on best practices and tips from various people on the Android team.
Romain Guy’s Blog – Romain Guy is an engineer on the Android team at Google. Be sure to check out his posts on layout tips (1, 2, 3, and 4). He is also very active on Stack Overflow.
Daniel Lew’s Coding Thoughts – Dan is an Android developer at Mobiata, and we met at Mobile World Congress a few months back.

Videos

If you are really starting from scratch, you probably first want to go through the setup steps and play around with some simple examples. Once you feel like you have a basic grasp what’s going on, the Google I/O videos are a great resource.

Books

The problem with books is once they are published (or sometimes even before), they start to become outdated. That being said, there is something nice about paging through a physical book. I started off with Professional Android Application Development by Reto Meier, and made it through a few chapters before starting working on a simple app, and then referring to the book as necessary. Another highly recommended option is the set of CommonsWare books–$40 buys you digital editions of all three books and updates for a year. The author, Mark Murphy, is also extremely active on Stack Overflow.

Related posts:

03. May 2011 von jean
Categories: android | 16 comments

Comments (16)

  1. Pingback: Getting Started with Android Development « Jean Hsu | Content Store

  2. I would also add Pro Android 2 as a good choice for a book to learn the basics, and I wouldn’t put so much blame on the official google group.

    Just my two cents

    • There are a few google groups out there. The official one has really good results via search, since the Android team answers questions. I found that when I got emails as they came in, it was too busy, and I ended up just filtering them out. Thanks for the book suggestion as well!

  3. Pingback: Getting Started with Android Development « Jean Hsu | WWW.ANDROIDWORLD.BIZ

  4. Romain Guy’s Blog – URL is broken. It shoud be http://curious-creature.org/

  5. For a beginner, I would recommend reading relevant sections in the developer’s guide and using blogs and mailing lists as supplemental material. It isn’t necessary to buy a book to build your first app.

    • I agree, but there is something nice about having a book if that’s what you’re used to. It can be helpful for getting started, at least it was for me. I’d tell myself I’d read one section/chapter that day. Gets the ball rolling!

  6. Pingback: Women 2.0 - Founding Startups » Getting Started with Android Mobile Development

  7. Is this meant for people with some degree of programming experience starting with Android, or to complete beginners, knowing nothing about programming at all?
    I’m that last kind and I find it hard to begin. I’m motivated, but I simply don’t know where to start. It’s so much to learn!
    I have tried starting to read a couple of books, but a few chapters out I figure it isn’t really written for complete beginners and I fall off. It’s frustrating because I some neat ideas for Android apps, I just don’t know how to get started to learn and understand the whole aspect about making apps :(

  8. For german beginners interested in app-development and programming in general:

    Current special issue of german magazine “c’t”, named “c’t kompakt Programmieren” has 170 pages of programming introductions for several different programming languages and also 20 pages of Android-programming goodness complete with screenshots and code snippets, explained by professionals:

    First article:
    – Setting up the dev-environment (included on DVD, no download required)
    – Developing a simple Buzzword-Bingo-App (explaining basic layout-concepts)

    Second article:
    – Extended GUI and SQLite: enhancing Buzzword-Bingo to create and edit buzzwordlists
    - How to call activities, menus, popups and lists

    Third article:
    – Gestures, animations and sounds: Finetuning Buzzword-Bingo
    – Accelerometer-sensor

    Funny thing here, they explain that there are several gravity-constants, not only for earth, but also for the earth-moon, the sun and for Jupiter :-)

    Fourth article:
    – Graphics, Threads and C-Programming: Creating and optimizing an interactive Mandelbrot-fractalgenerator in native code.

    The articles contain only selected snippets of the code to keep it readable, complete working listings are included on the DVD.

    There is also a 6-page Java primer included that explains the basic language concepts and gives a headstart for using Eclipse to create a Hello World program.

    Those that want to develop for iOS, there is a comprehensive german eBook included on the DVD spanning more than 300 pages and its normally sold for 30€.

    For those seeking general advice about which language to learn/use:
    Overview and comparison of 23 languages/variants, and articles dedicated to the 11 most common used languages.

    For advanced developers:
    – .NET-framework overview, robotics-programming and game-development in XNA with C# and C++ (solving 3D-puzzles), creating Windows desktop-gadgets and google webapps

    You can get a taste of this magazine at this webpage:
    http://www.heise-shop.de/heise-zeitschriften-verlag/ct-kompakt-02-2011-programmieren_pid_14814391.html

  9. Pingback: Android Topic #6: Development Resources (SDK) « Null's Void

  10. I just wanted to share another point of view about choosing intelliJ instead of eclipse: http://stackoverflow.com/questions/1715697/what-is-the-best-ide-to-develop-android-apps-in.

    I’m still fairly new to the platform but I just started using intelliJ and it seems just fine.

  11. I’m new to Android developement and so far I’m loving it! The only thing I don’t like about it is its emulator -it’s hell slow!

Leave a Reply

Required fields are marked *