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:
- Best Practices for User Experience & UI (a must read)
- Best Practices for Performance
- Displaying Bitmaps Efficiently
- Adding Animations (also see NineOldAndroids library)
- Tools help
- SDK Samples
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:
- Android Dev Weekly by Gyuri Grell. An excellent weekly newsletter with the latest Android development news. Highly recommended.
- Official Android developers blog. It’s worth browsing through this blog’s archives, as some of the posts are meaty, e.g.: Avoiding memory leaks, Memory Analysis for Android Applications.
- Romain Guy. An excellent blog by key Android framework engineer. Once you are comfortable with Android development, make sure to read Android Performance Case Study post. Off-topic: Romain is also a great photographer.
- Codependent by Chet Haase, creator of Android animation framework.
- The CommonsBlog by Mark Murphy.
- Cyril Mottier’s Android dev blog. A fantastic resource with posts of great depth. Some of the latest posts: ListView Tips & Tricks #5: Enlarged Touchable Areas, Tweeted Android Development Tips, The Google Maps Android API V2 Utopia, Android App Launching Made Gorgeous, “Pull-to-refresh”: An Anti UI Pattern on Android.
- Styling Android by Mark Allison.
- Coding Thoughts by Daniel Lew - great tips from one of the developers behind excellent Expedia’s Hotels and Flights app (formely: Mobiata).
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:
- Advanced Design for Engineers by Alex Faaborg and Christian Robertson (2012)
- For Butter or Worse: Smoothing Out Performance in Android UIs by Chet Haase, Romain Guy (2012)
- Navigation in Android by Adam Powell, Richard Fulcher (2012). If you happen to think that fixing Android back/up buttons issues is easy, watch this humbling talk.
- So You’ve Read the Design Guide; Now What? by Daniel Lehmann, Tor Norbye, Richard Ngo (2012)
- What’s New in Android? by Chet Haase, Romain Guy, Daniel Sandler (2012)
- What’s New in Android Developers’ Tools by Xavier Ducrohet, Tor Norbye (2012)
- Memory management for Android Apps by Patrick Dubroy (2011)
- Writing zippy Android apps by Brad Fitzpatrick (2010)
- Developing Android REST client applications by Virgil Dobjanschi (2010)
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!
34 Comments
Thanks for the kind words! Though, I’ll pass on the beer.
I’ll take any beers given to Mark
A very good list.
Also, thanks for the book mention
Wow, what an honor to have such commenters :-).
@Mark, if you have any other favorite drinks, let me know and I’ll update my instructions to closer match your taste :-). Otherwise, as Chris suggested, we’ll have to somehow set up a beer redirection technique. Not trivial, as it will involve transatlantic transportation :-).
@Juhani: it was my pleasure and congrats on writing a great book!
Mark sure helped me get off my feet, back when I read his books there were only about 1500 pages combined
so good
Great Post. No matter however big round of applause is held for Mark and Jake, it will always be less. Those two are people because of which Android development has become so easy.
Apart from the great exhaustive list above, there could be a mention of HoloEverywhere (https://github.com/ChristopheVersieux/HoloEverywhere) should have a mention right along with ActionbarSherlock
And if you are mentioning libraries Mark’s MergeAdapter should also be placed right up there.
Link: https://github.com/commonsguy/cwac-merge
Please keep this post updated it could very well be the go to point for quite a few developers in the future.
Great post!
I may suggest my post about performance optimization I published about a month ago:
http://udinic.wordpress.com/2013/03/04/android-app-to-the-challenge/
It provides a step-by-step explanations about how to find performance issues on your app, using tools that comes with the SDK, which I still find developers who never heard of them!
I also gave some tips from my own experience while developing Any.DO.
@Jaushil, Udinic: thanks guys for the suggestions. I’ll update this post with more links soon.
One area that definitely could be improved is the open source projects. If you know of any good ones, please let me know in the comments.
One great resource, although not a big one, is Henny Swan’s tutorial on how to make Android applications accessible to TalkBack and other assistive technologies for the blind. One of the most common problems with Android apps in general is the absence of contentDescription attributes on ImageButton elements. This makes a huge difference to blind users of your applications! They’re easy to add, and they can mean the difference between fully useable and not useable at all for this group of people.
Henny Swan’s tutorial can be found here: http://www.netmagazine.com/tutorials/making-android-apps-voice-output-accessible
Don’t forget the awesome tuts at vogella.com
Could also mention the IRC channel #android-dev on freenode.
Thank you for this. Some suggestions if I may:
The link to The Commons Blog is broken, it should point to http://commonsware.com/blog/
You link to http://androiddevweekly.com/ , another very good one is http://androidweekly.net/
How about Basic4Android (http://www.basic4ppc.com/) as a great resource for developing apps easily?
Developing for Android is the place to be. You have a plethora how-to materials available, community of developers willing to teach and even share code, and it costs noting to get started! You can use all open source tools to develop your apps. Many Thanks to Google, Android communities, and all the Android Developers out there building and sharing!
i’m an android developer an that is one of the best recopilations i’ve ever seen.
Good Work!
This post is looks like encyclopedia of Android Application Development ! You have included references for all thing which should taken in notice before starting development! And I completely agree with your suggestion of Reading Books.
Thanks for sharing. Excellent article!
Hi thanks for taking the time to post this. I think it’s the most comprehensive list of resources for folks like us that I’ve ever seen. If we can ever help you with any Android programming or development issue, send me an email at the address above.
Cheers
Brad
When I saw the title of this article I had other expectations than what I read. I was expecting to see some technical mistakes that developers do in development, like how properly to deal with threads, background tasks, UI mistakes, and some code examples. Not really what I was looking for, but still a good article to take in consideration, that makes you aware of some important points. Thanks,
Great article. Here’s a UX comparison between Android and iOS standard widgets, with links to the documentation on the relevant Apple / Android websites. It’s a nice way to get started learning all the technical terms.
http://kintek.com.au/blog/portkit-ux-metaphor-equivalents-for-ios-6-and-android-4/
useful collection!
Nice Article for those who really wants to make career as Android App Developer.
Cheers !
TanzaniteInfotech.Com
Really nice post. It really motivates a lot those who are interested in becoming as an Android app developer.
This is the most comperhensive list of resources every android developer should start his day with!
Thanks
This is a very comprehensive list for App Developers, I would like to add Lotaris in-appCommerce to the list as a way for Android app developers to monetize their apps through in-app purchasing. For more information, visit http://www.lotaris.com/android.
Please add Slidenerd’s Youtube Channel, an Indian guy who makes really great Android tutorials! Here is the link to his playlists, https://www.youtube.com/user/slidenerd/playlists. And Android Bootcamp 2012, which is getting a bit dated as it was made at the time of ICS, but is still a solid video course into Android basics, https://www.youtube.com/playlist?list=PLE08A97D36D5A255F
Great list Sergey!
I would also like to mention my recent post on Best Android Books and Resources. Perhaps not as many resources as you have mentioned but nonetheless it might be interesting.
Oops, seems like my link is wrong, here it is: nimooli.com/blog/best-android-books-2014/
Great article! I am going to devour these resources thanks much!
The biggest list of libraries for Android: https://android-arsenal.com
You have listed some top resources. I am an android developer and I like to read those resources to keep myself updated. Thanks a lot for the hard work you have done for the post.
These are nice resources to learn Android app development. As I am an Anrdoid developer, so I keep myself abreast with the latest information.
There should be more respect and recognitation. More people can say something but no one know wheter it will be the thruth or not. And to be honest with those new changes from the IT sector. I hope there are more changes regarding apps,app developers and the development as a whole.and the handling of these kind of special situations.Even KDS and http://www.hotsalsainteractive.com talked about that last week.
13 Trackbacks
[…] Android Resources: A great collection of resources that each Android Developer must keep bookmarked. Superb list. […]
[…] я хочу поделиться с вами моим вольным переводом статьи, написанной Сергеем Повзнером (Sergey Povzner). Сергей ведёт […]
[…] Resources every Android developer must know […]
[…] found a link on Google+ to a very useful blog post. It’s called “Resources every Android developer must know“. The author is Sergey […]
[…] Resources every Android developer must know […]
[…] 英文原文:Bongzimo 翻译: ImportNew-黄小非 […]
[…] 英文原文:Bongzimo […]
[…] The CommonsBlog (博主:Mark Murphy) […]
[…] Read http://www.bongizmo.com/blog/android-resources-each-developer-should-know/ […]
[…] Resources every Android developer must know Link […]
[…] http://www.bongizmo.com/blog/android-resources-each-developer-should-know/ […]
[…] The CommonsBlog (博主:Mark Murphy) […]
[…] The CommonsBlog (博主:Mark Murphy) […]