Sapan Diwakar

Software developer

Follow me on Twitter Check out my code on GitHub View some of my designs on Dribbble Take a look at my Linked In profile

Useful Android resources

I started Android development a few years before and have been working on some really cool projects with Android. Here's a list of resources that I have found to be really useful so far:

Libraries

  1. Android Annotations: Android Annotations is a library that simplifies code maintainance and development by allowing the use of annotations for performing common Android tasks. It makes the code look so much cleaner and doesn't have performance impacts on the application. It has annotations to help with a lot of stuff from background tasks to tasks on UI thread, rest services, application class, activities, fragments and a lot more. This is one of my personal favorites and something that I have been using in all my Android applications. Have a look at the wiki, cookbook or some of my posts(1, 2) about AndroidAnnotations.
    ButterKnife - View "injection" library for Android which uses annotation processing to generate boilerplate code. Although Android Annotations is much more powerful, Butterknife is very light weight, has no "magic", and you don't need to worry about generated classes at all.

  2. ActionBarSherlok: ActionBarSherlock is an extension of the support library designed to facilitate the use of the action bar design pattern across all versions of Android with a single API. This is another one that is a must use if you are planning to support old Android versions. The API is almost the same as for the native android action bar and the library automatically uses the native one if its available.
    Toolbar: Not a library per se, but it is the standard go to widget for having an action bar on Android now with compatibility with older versions using the support library.

  3. Spring Android: The name must sound familiar to Java developers. Its an extension of the wonderful Spring framework for simplifying the development of Android applications. The feature that I use the most from Spring Android is the RestTemplate features. AndroidAnnotations has integrated support for Spring Rest Template and makes writing REST clients a piece of cake. I use it with Google Gson to serialize between JSON and POJOs.
    Retrofit and OkHTTP: Retrofit turns your REST API into a Java interface. Just mark your methods with annotations and it generates the rest requests for you. Retrofit uses Gson by default to convert HTTP bodies to and from JSON. Fall back to OkHttp for building low level requests outside of Retrofit.

  4. URLImageViewHelper: If you want to use remote images from URL in you applications, this is the way to go. It provides helper classes to make it easy to laod remote images and also offers caching of images.
    Picasso: Picasso allows for hassle-free image loading in your application—often in one line of code!

  5. SubtlePatterns: Subtle Patterns is a high quality (free) resource for tilable texture patterns. The patterns look great for backgrounds and are really simple to use. Have a look at my post on how to use these patterns in Android applications.

  6. Sliding Menu: As the name suggests, SlidingMenu is a library for adding sliding menus in Android applications. There are several such implementations available online, but I found this one to the be best in terms of performance and ease of integration.
    DrawerLayout: Again, something that's now built in with Android for creating side drawers. Use the support library for backward compatibility.

  7. Android ViewPagerIndicator: Another great library from the creator of ActionBarSherlock. Provides indicators for current page in a view pager.
    PagerSlidingTabStrip: Interactive paging indicator widget, compatible with the ViewPager from the Android Support Library.

  8. Parse: BaaS for your mobile app which takes care of everything including the core of your app to analytics, crash reports and push notifications.

  9. Android-PullToRefresh: Pull to refresh library for android.

  10. Commonsware Github Repositories: Several Android libraries to make your life easier.
    Square Github Repositories: Android libraries to make your life easier.

Tutorials/Guides

  1. Vogella Android tutorials: The vogella team has tutorials for almost everything in Android. These are some of the most detailed tutorials and really good for quickly getting into Android development.
  2. Android Guides by CodePath: Crowdsourced resources for up-to-date practical Android developer guides.

  3. Android Best Practices: Lessons learned from Android developers in Futurice.

  4. Android tutorials by Google: Guides/Training resources for getting started with Android development.

  5. Google Material Design Guidelines: Guidelines and best practices on how to design your app based on the material spec.

  6. ???: Have a suggestion? Head to the comments.

Join the discussion on HackerNews and Reddit.