As Android platform continues its incredible growth, more and more developers start working on Android apps. If you are beginning Android development in 2013, you are a lucky person, as the platform has greatly matured in the last few years. While the number of available developer resources may seem overwhelming, this post points to the most important ones.
This post may be useful for both beginners and moderately experienced Android developers, as a single place where most useful resources are listed.
Books
You may think that starting to learn a new development platform in 2013 by reading a book is old-fashioned and you may be right. But you should still do it: see Programmers Don’t Read Books - But You Should by Jeff Atwood.
I recommend these 2 books:
- The Busy Coder’s Guide to Android Development by Mark Murphy. What makes this book special is not only its depth of coverage (2000+ pages), but its frequent updates (~every 2 months). This is by far the best model for books on such rapidly evolving topic as Android SDK. Mark Murphy also regularly holds office hours, where subscribers can ask questions. Book samples are hosted on github. Highly recommended.
- Smashing UI by Juhani Lehtimaki. An excellent book for any Android developer who cares about great UI design.
developer.android.com
Before starting to write your first Android application, read and learn Android Design site by heart. Specifically, these articles:
Also check out the Downloads section, which contains stencils, source files for icons and controls, styled and unstyled Action Bar icons.
Ready to start coding? Sorry, keep reading:
StackOverflow
A number of Android core framework engineers, developer advocates and expert Android developers regularly answer questions on stackoverflow.com. Here’s a list of top stackoverflow Android users. I’m subscribed to RSS answers’ feeds of many SO users; some of them are: CommonsWare (Mark Murphy), Dianne Hackborn, Romain Guy, Reto Meier, Trevor Johns, Roman Nurik, Adam Powell (thanks, @remdroid!).
Blogs
Many blogs provide great up to date information about Android development:
Google+
While Google+ has not become the social network, it is an invaluable source of information about Android development. Some of the Google+ profiles you may consider to follow are: Tor Norbye (ADT), Dianne Hackborn, Romain Guy, Chris Banes, Roman Nurik, Nick Butcher, Adam Powell, Rich Hyndman, Cyril Mottier, Paul Burke, Jeff Gilfelt.
Make sure to follow Jake Wharton, the author of ActionBarSherlock, ViewPageIndicator, NineOldAndroid, and many other open source Android libraries.
Also consider joining few of the Google+ communities:
Open source projects
Reading source code of well designed apps is always a good idea:
- Google I/O Android app. If you like to copy/paste code, this is the place to copy from.
- Photup by Chris Banes.
- Android Protips: A Deep Dive Into Location by Reto Meier. Demonstrates use of location detection, fragments, and BackupManager. Use with care, as this code has not been updated for some time.
And, of course, the ultimate source: Android source code.
Open source libraries
Some of the most useful open source libraries:
- ActionBarSherlock by Jake Wharton. Library for implementing the action bar design pattern using the native action bar on Android 4.0+ and a custom implementation on pre-4.0 through a single API and theme.
- ViewPagerIndicator by Jake Wharton. Paging indicator widgets compatible with the ViewPager from the Android Support Library and ActionBarSherlock. Originally based on Patrik Åkerfeldt’s ViewFlow.
- NineOldAndroids by Jake Wharton. Android library for using the Honeycomb animation API on all versions of the platform back to 1.0.
- Universal-Image-Loader by Sergey Tarasevich. Powerful and flexible instrument for asynchronous image loading, caching and displaying.
- UrlImageViewHelper by Koushik Dutta. UrlImageViewHelper fills an ImageView with an image that is found at a URL and automatically downloads, saves, and caches all the bitmaps.
- Android-BitmapCache by Chris Banes. A specialised cache, for use with Android Bitmap objects.
- DiskLruCache by Jake Wharton. Java implementation of a Disk-based LRU cache which specifically targets Android compatibility.
Search github for [android] projects to find more. Also, DevAppsDirect app is a great collection of available open source custom views, widgets and libraries.
Google I/O talks
While it has become virtually impossible to get a Google I/O ticket, all Google I/O talks are available online, usually with slides. Links to Google I/O Android sessions over the years: 2012, 2011, 2010, 2009.
Some of my favorite talks:
Please stop, you’re scaring me
If this post looks a bit overwhelming, don’t despair. Some of the links above are useful only for beginners, while others are useful for more advanced developers.
Few tips on how to efficiently consume this content:
- First, read the books. Did I mention you should read the books? This will lay the proper foundation of your Android knowledge.
- Subscribe to blogs and stackoverflow answer feeds via RSS.
- Set up an android-dev circle in Google+.
Android superstars
As Android developer ecosystem continues to flourish with contributions from many exceptionally talented developers, special mentions should be reserved for two people who have been instrumental in making lives of Android developers easier. They are: Mark Murphy and Jake Wharton.
Mark and Jake have earned an unlimited beer for life for making some of the most useful contributions to Android open source. If you ever meet them, make sure to buy them a drink of their choice. [correction: based on the comments below, Mark's beer should instead be directed to Chris Bane. And if you read that far, you know that the best way to thank Mark would be a CommonsWare subscription.]
Obviously, a lot of Android framework developers and designers at Google did a great job with Android. A number of them is referenced in this post.
The end, finally
That’s it, folks. You now have all the information and tools to write some kick ass Android apps! Well, not really: you still need a great Android UI designer, but that is a topic for another post. But you should definitely be ready to write your first Android app.
If I’ve missed any great resources, please let me know in the comments, as I plan to occasionally update this post.
Happy coding!
Useful Android 4.4 (KitKat) links
Just released Android 4.4 (KitKat) introduced a number of new features: integrated messaging app (Hangouts), wireless printing, improved immersive full screen mode, new Dialer app, improved stock Email app, NFC update which allows apps using NFC (e.g. Wallet) to function without the access to secure element on the device, and many more. Android 4.4 has also been optimized for more efficient memory usage, which should improve overall performance.
Below are some links that will be useful for consumers:
… and developers:
Enjoy!
Android 4.4 KitKat