My Collection of Android libraries

A few tips on choosing Android libraries

  • Make sure to check the size of the library as well as its dependencies because of the 65K methods limitation of Android App.
  • Make sure any annotation process and code generation happens at compile time.
  • If it is an UI component library, make sure it is compatible with Material Design.
  • Be sure to check the stars and activies on Github. Knowing the limitations and issues of your libaries.

Must Have libraries

Support libraries

Network Stacks

  • OkHttp 3: Powerful and fast network stack support HTTP2, connection pooling and interceptor.
  • Retrofit 2: Built on OkHttp. Declare a RESTful client with just annotations and interface. Also, takes care of request and response parsing/map from JSON to POJO.
  • Volley: Light-weight and flexible network API. It is first introduced in Google IO 2013. Seems a bit outdated compared to OkHttp.

View Binding

  • Butterknife: Simply bind view object by annotations at compile time.
  • AndroidAnnotation: Does more than simple view binding. It also supports async tasks and network calls.

Image Loader

  • Glide: All my apps after 2013 uses Glide. The first full featured image loader for Android. 2 levels of cache, support GIF, custom target, custom transformation and more.
  • Fresco: It is developed by Facebook. I have only use Fresco in a couple of my recent projects. It certainly supports more features like WebP and progressive JPEG.

Database

  • Realm: Cross-platform No-SQL for mobile. Also support offline. However, has some limitation on model class and multi-threading.
  • GreenDOA: probably the best ORM for SQLite on Android.
  • Android-debug-database: A nice tool lets you open and debug your SQLite database on your device in a browser interface.

Testing

  • Android support test: Based on Junit 4, it adds Android test runner and Android specific test rules.
  • Mockito: Allow you to mock any class, spy on an instance.
  • Robotium: Similar to espresso, an Android UI testing tools with more features.
  • Robolectric: Free the tests from Android SDK by mocking all Android specific APIs. Has some limitations like supporting the latest Android SDK.

Useful UI Libraries

  • Alert: Display a top banner for alert or messages.
  • Android-SwitchIcon: Switch icon with a nice toggle animation and ripple effects.
  • Frisson: Draw an overlay on an image with nice tides curve at the bottom.
  • PhotoDraweeView: Photo view base on Fresco drawee view. Support pinch zooming.
  • uCrop: crop, rotate and compress an image.
  • andrui: nice animated loading progress.
  • ShineButton: Shinning effect on image button.
  • Sensey: Easy detections for touch gestures, and events from various sensors.
  • Colorful: change the theme color schema dynamically.
  • Subsampling-scale-image-view: If you ever want to display huge images that exceed the memory limit.

Firebase

  • Messaging: Google Cloud Messaging is now merged to Firebase messaging. Read about migrate GCM to FCM.
  • Analytics: This is the key to a success app. Know your users through analytic data.
  • Config: Remote configurations. Useful for feature flagging, A/B testing.
  • Crash: Support both auto and manual exception report as well as remote logging.

If you enjoyed reading, please click the heat icon. Thank you.

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store