Resources every Android developer must know

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 githubHighly 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 HackbornRomain GuyReto MeierTrevor JohnsRoman 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 GuyChris BanesRoman NurikNick ButcherAdam PowellRich HyndmanCyril MottierPaul BurkeJeff 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, 20102009.

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!

0saves
If you enjoyed this post, you can subscribe to the RSS feed or follow via Twitter and Facebook.
This entry was posted in Android, Dev. Bookmark the permalink. Post a comment or leave a trackback: Trackback URL.

32 Comments

  1. Posted March 20, 2013 at 1:37 pm | Permalink

    Thanks for the kind words! Though, I’ll pass on the beer. :-)

  2. Chris Banes
    Posted March 20, 2013 at 1:59 pm | Permalink

    I’ll take any beers given to Mark ;)

  3. Posted March 20, 2013 at 2:33 pm | Permalink

    A very good list.

    Also, thanks for the book mention :)

  4. Posted March 20, 2013 at 2:56 pm | Permalink

    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!

  5. Posted March 20, 2013 at 7:21 pm | Permalink

    Mark sure helped me get off my feet, back when I read his books there were only about 1500 pages combined ;-)

  6. shiv agrahari
    Posted March 20, 2013 at 10:48 pm | Permalink

    so good

  7. Jayshil Dave
    Posted March 21, 2013 at 1:43 am | Permalink

    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.

  8. Posted March 21, 2013 at 12:32 pm | Permalink

    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.

    • Posted March 22, 2013 at 10:18 am | Permalink

      @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.

  9. Posted March 25, 2013 at 6:01 am | Permalink

    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

  10. Jeff McAffee
    Posted March 25, 2013 at 3:02 pm | Permalink

    Don’t forget the awesome tuts at vogella.com

  11. somerandomguy
    Posted March 25, 2013 at 3:42 pm | Permalink

    Could also mention the IRC channel #android-dev on freenode.

  12. dd
    Posted April 4, 2013 at 8:30 am | Permalink

    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/

  13. Posted April 5, 2013 at 8:12 am | Permalink

    How about Basic4Android (http://www.basic4ppc.com/) as a great resource for developing apps easily?

  14. Posted April 17, 2013 at 3:59 am | Permalink

    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!

  15. Posted April 25, 2013 at 8:35 am | Permalink

    i’m an android developer an that is one of the best recopilations i’ve ever seen.
    Good Work! :D

  16. Posted April 26, 2013 at 4:08 am | Permalink

    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.

  17. Jens Helweg
    Posted April 30, 2013 at 3:01 am | Permalink

    Thanks for sharing. Excellent article!

  18. Posted May 16, 2013 at 7:35 am | Permalink

    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

  19. Posted June 11, 2013 at 11:45 pm | Permalink

    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,

  20. Posted June 14, 2013 at 8:42 am | Permalink

    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/

  21. Posted August 2, 2013 at 12:29 am | Permalink

    useful collection!

  22. Posted August 5, 2013 at 4:49 am | Permalink

    Nice Article for those who really wants to make career as Android App Developer.

    Cheers !
    TanzaniteInfotech.Com

  23. Posted August 28, 2013 at 5:22 am | Permalink

    Really nice post. It really motivates a lot those who are interested in becoming as an Android app developer.

  24. Posted October 2, 2013 at 11:33 pm | Permalink

    This is the most comperhensive list of resources every android developer should start his day with!
    Thanks

  25. Posted October 6, 2013 at 3:12 pm | Permalink

    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.

  26. Posted June 29, 2014 at 6:31 am | Permalink

    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.

  27. Posted June 29, 2014 at 6:32 am | Permalink

    Oops, seems like my link is wrong, here it is: nimooli.com/blog/best-android-books-2014/

  28. Posted June 30, 2014 at 4:36 am | Permalink

    This is the most comperhensive list of resources every android developer should start his day with!
    Cheers:)

  29. Goutam
    Posted August 27, 2014 at 9:19 am | Permalink

    Simply wow information!! The Information provided in this place is really appreciable and I feel all my search for android related stuff stop here…I must thanks to SERGEY POVZNER who provided great android resources in a place.

  30. Posted August 31, 2014 at 11:16 pm | Permalink

    First off I would like to say wonderful blog! I had a quick question in which I’d like to ask
    if you do not mind. I was curious to find out how you center yourself and clear your head before writing.
    I’ve had trouble clearing my mind in getting my ideas out.
    I do enjoy writing but it just seems like the first 10 to 15 minutes are generally lost simply just trying to figure out how to
    begin. Any ideas or hints? Thanks!

    Here is my blog … Need Skin Care

12 Trackbacks

  1. [...] Android Resources: A great collection of resources that each Android Developer must keep bookmarked. Superb list. [...]

  2. [...] я хочу поделиться с вами моим вольным переводом статьи, написанной Сергеем Повзнером (Sergey Povzner). Сергей ведёт [...]

  3. [...] Resources every Android developer must know [...]

  4. [...] found a link on Google+ to a very useful blog post. It’s called “Resources every Android developer must know“. The author is Sergey [...]

  5. By 收藏贴 | 马天宇博客 on May 1, 2013 at 9:22 am

    [...] Resources every Android developer must know [...]

  6. [...] 英文原文:Bongzimo  翻译: ImportNew-黄小非 [...]

  7. [...] 英文原文:Bongzimo  [...]

  8. [...] The CommonsBlog (博主:Mark Murphy) [...]

  9. [...] Read http://www.bongizmo.com/blog/android-resources-each-developer-should-know/ [...]

  10. […] Resources every Android developer must know Link […]

  11. By Day 1 – Android Resources | 30 days app on November 6, 2013 at 2:38 am
  12. […] The CommonsBlog (博主:Mark Murphy) […]

Post a Comment

Your email is never published nor shared. Required fields are marked *

*
*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>