Best Android Libraries (2017)

This is an ongoing post that will introduce the best Android libraries that are commonly used or worth trying in new projects. 

See Also: Best Android Game Engines & SDKs for 2D and 3D Game Development

 Database

ORM. My choice is to use ActiveAndroid in small projects and greenDAO in big ones.

Database libraries. If you don’t want to use an ORM, these SQLite and its alternatives will help you save a lot of working with database.

Debug/Log

LeakCanary. LeakCanary is a memory leak detection library for Android, it will automatically show a notification when an activity memory leak is detected in your debug build.

chuck. Chuck is an in-app HTTP inspector for Android OkHttp clients. It intercepts and persists all HTTP requests and responses and display their info in UI.

Stetho. Stetho is debug bridge for Android applications which allows developers to use Chrome Developer Tools. Developers can have access to SQLite, View Hierchary, and Network information within Chrome browser.

timber. A logger with an extensible API which provides utility on top of Android’s Log class.

Dependency Injection

Dagger 2. Dagger is a fully static, compile-time dependency injection framework for Android. Dagger is currently in active development, primarily internally at Google.

Network

Retrofit. Retrofit is the best option in this category. It has become the most commonly used type-safe HTTP client for Android.

Picasso. I use this library whenever I need to load images from assets folder or from the internet. It handles loading and caching image into ImageView well.

Mockito. Mockito is the most popular Mocking framework for unit tests.

Reactive Programming

RxAndroid. It adds the minimum classes to RxJava 2, which make writing reactive components in Android apps easier.

Rx2Animations. The library is a Android animations Rx2 wrapper which was developed to make implementing animation more solid and cohesive.

Timer

Android Job. It is an Android utility library which schedule jobs in the background. The best part about this library is that it uses either JobScheduler, GcmNetworkManager or AlarmManager according to Android version.

UI/UX

Alerter. It showcases a new layout which can be useful than Toasts and Snackbars.

Flexbox for Android. FlexboxLayout brings CSS Flexible Box Layout Module features to Android, which makes complex layout easier to achieve.

Calligraphy. Calligraphy makes changing fonts in all views easier than ever. You don’t need to go through every Textview and swapping new font until you are satisfying.

Butteknife. Forget the repeated findViewbyId(R.id.textView)! Butterknife bind field and method for Android views which uses annotation processing. It supports binding not only views but also resources, actions and listeners.

Android Animation Libraries. If you want to animate View, Android View Animations is the best choice. It is easy to use and has a lot of effects such as Bouce, Fade, FLip, Rotate, Slide, and more.

Hover. Hover provides an easy-to-use way for Android developers to implement floating menu.

Charts and Graphs. Data tracker requires beautiful graphs to display data in a way that is beautiful and easy to read. These libraries provides an quick way for developer to draw graph and chart.

Toasty. This library will help you make a better-looking Toast.

DialogPlus. The library provides android L dialog animation which makes an dialog in any of 3 positions: top, middle and bottom. It supports 3 content types by default, ListHolder, GridHolder and ViewHolder.

excelPanel. The library allows developer to create a two-dimensional RecyclerView which can display data like Excel.

Medium Textview. Medium TextView is an extended TextView which can be used to display medium content such as text, image, and video. If you don’t want to usue WebView, this is a simplified version.

AppIntro. Do you want to introduce about your app when it is first launched by a user? AppIntro helps developers create an introduction view for their apps.

Fancybuttons. Fancybuttons makes styling a button easier. It can quickly customize a button with icon, border, radius and more.