Summertime is ending (at least in the Northern Hemisphere) and during this time
many great Android libraries and tools were developed and updated.
This is my newest unranked list of Android libraries, tools and projects which you may find interesting or helpful during your day-to-day work. They are also great for an inspiration or experiments.
I hope you will enjoy it. Let’s start!
Childish Gambino — Feels Like Summer
This is a library which offers set of LayoutManagers for RecyclerViews to achieve features and effects like in the gif below.
These LayoutManagers mainly extend
RecyclerView.LayoutManager or just
LinearLayoutManager and add more functionality on the top of that.
This library has a really short and limited documentation, but, as always, code
is the answer. The best way to get know it, is to go to the sample
check, how it is implemented in
It is released under Apache 2.0 license and it is really worthy to check.
Creative View Pager is a fresh approach to the
ViewPager that combines a
header list, which is scrolled smoothly and automatically in a coordination with
the page contents.
The documentation is comprehensive and explains how to use the library.
It is released under Apache 2.0 license and written almost in 100% in Kotlin.
an in-app feedback and bug reporting tool for mobile apps. With just a simple shake, your users or beta testers can report bugs or send in-app feedback and the SDK will capture an environment snapshot of your user’s device including all console logs, server-side network requests and bug reproduction steps compiling all these details in one organised dashboard to help you debug and fix bugs faster.
It was recently updated and lots of bug fixes were introduced. In this blog postyou can find more about changes. Instabug gives a possibility to:
- report bugs and crashes,
- create in-app surveys which is great and really facilitate discussions on the product,
- request features which we would love to have in the app,
- monitor network performance,
- auto record a screen.
I have been using it since 2016 when I did a research for my product team about tools which can support their work and our users. I highly recommend this tool.
This is a checkable widget for Android based on the EventFilterView from the
Google I/O 2018
It requires Android
minSdkVersion 21 to work.
README is comprehensive and allows a quick start with the widget. The initial
implementation was made by Nick Butcher and Jose
Alcérreca from Google.
The widget is released under Apache 2.0 license and written in Kotlin.
This is light, powerful and easy to use Calendar Widget.
It offers a number out of the box features:
- Infinite vertical scrolling in both directions,
- setting date boundaries to restrict scrolling inside of a specific time period,
- single / multiple / range dates selection,
- pre-selecting dates,
- color customization,
- displaying color indicators,
- setting own custom
- presented as a
Viewsubclass which can be displayed everywhere: in
Dialog, or can be integrated into another custom
This project is released under MIT license.
The author also wrote a really good
article about it.
This library is definitely worthy to check. It is released under Apache 2.0 license.
This is a small but interesting library which provides a
Activity. To understand what it does, please check the gif below.
Unfortunately, the documentation is quite poor and written in Chinese.
I would treat it more like an experiment than a fully operational solution. Still, you can check the code of a sample app and the library itself.
It is released under MIT license.
This library creates drawables programmatically and gets rid of the boring and
It is released under Apache 2.0 license. It has a really comprehensive documentation and works with API 14 and above.
This is a library written by the same developer, who wrote DrawableToolbox. It is just another approach to the colour picker.
This library has quite good documentation. It is released under Apache 2.0 license and works with API 14 and above. If you need the colour picker in your app, you can always test and check this one.
This is just huge. MvRx (pronounced mavericks) is the Android framework from Airbnb that they use for nearly all product development.
MvRx provides a framework that makes Android screens, from the simplest to the most complex, easier to write than before. However, it is built on top of existing components such as Fragments and architecture components so it doesn’t constrain you and is easy to incrementally adopt.
The main goal was to build and deliver products faster and with less effort. MvRx uses the following existing technologies and concepts:
- Android Architecture Components
- React (conceptually)
- Epoxy (optional but recommended)
Currently, the framework has the version 0.5.0 and it is released under Apache
The documentation and wiki are also great. Wiki contains
tl;dr version, as well as a normal one, with all the explanation needed to
understand the concept.
If you heard about Redux, its’
main concepts and three
principles, you will
probably know what is this library about.
RxRedux is an implementation based on RxJava (inspired by redux-observable) that helps to isolate side effects (A Side Effect is a function of type
StateAccessor<State>) -> Observable<Action>).
RxRedux is (kind of) a replacement for RxJava’s
README is really well-written and also enriched by this article.
This library has version 1.0.0 and it is released under Apache 2.0 license.
12. Emoji Slider
It is a custom
SeekBar inspired by Instagram’s Emoji
The project contains a really good documentation as well as a sample app with
apk. It has 0.3.0 version and is released under Apache 2.0 license.
This is a library which helps to implement Material Swipe
RecyclerView. It is written according to Material Design principles.
It is easy to setup thanks to the good documentation. The project is released under MIT documentation and it has version 1.0.0.
This is a library that can save any
SurfaceView as an image in the
JPG/PNG/nomedia. The library works on a asynchronous task behind the
scenes, handles errors of I/O operations and manages memory allocation for
You can easily use it to take screenshots inside your app (e.g. for reporting a bug or an improvement).
It is quite easy to use and docs are enough just to start. It is released under Apache 2.0 license and supports API 19 and above.
WiseFy is a wrapper for
ConnectivityManager for Android. It
adds easy WiFi configuration and utils on the top of the managers, like:
- adding and removing networks,
- checking device connectivity,
- checking the current network,
- enabling and disabling WiFi and many more.
This is not a new library, but some time ago it had huge refactor and it was rewritten 100% in Kotlin.
The documentation is really detailed and definitely worthy to check. License: Apache 2.0.
MVICore is a modern MVI framework from Badoo Tech featuring:
- 100% Kotlin: An easy way to implement your business features in a reactive way with unidirectional dataflow,
- Scaling with complexity: operate with a single Reducer if needed, with the option of having the full power of additional components to handle more complex cases,
- Event handling: A solution to handling events that you don’t want to store in the state,
- Reactive component binding: A super simple API to bind your reactive endpoints to each other with automatic lifecycle handling,
- Custom Middlewares: for every single component in the system, with flexible configuration options,
- Logger: An out-of-the-box logger Middleware,
- Time Travel Debugger: for ALL of your reactive components (not just your state machine!) with UI controls for recording and playback.
Currently it has version 1.0.0 and really comprehensive docs. If you want to rewrite your app in MVI way, I think this solution is really worthy to check.
This library might be useful when developing a custom views. It is a rotary dialer loading view and can be used as a replacement of e.g. indeterminate Progress Bar.
There is a short README in the project, which was released under Apache 2.0 license. Written 100% in Kotlin.
This library is under development so treat it more like an experiment than ready
to production code.
The documentation is good and explains how to use the lib. It is released under Apache 2.0 license.
The boilerplate is released under MIT license.
Splitties is a collection of small independent Android libraries that aims to
make developing apps and libraries for Android (including Wear, TV, Things, Auto
and ChromeOS targeted) easier and more fun.
I really like the idea of it and it is really worthy to check. According to the author:
This project is named “Splitties” because it is split in small modules, distributed as independent Android libraries, so you can add only the ones you need to your project/module, helping reduce the size of the final apk.
Each module has been designed to have a small footprint and be as efficient as possible.
The documentation is really comprehensive and the project is released under Apache 2.0 license.
This is a lightweight android image watermark library that supports encrypted and invisible digital watermarks.
The library is quite powerful and offers building multiple watermarks, selecting
a drawing mode and how we can load resources (from text,
View or Android
resources). The documentation is really good , there is also a sample app.
Currently, the library has version 0.1.9 and is released under Apache 2.0 license.
This is second collection of libraries in this article. This time it comes from
Mozilla team and it may be useful during building
browsers or browser-like applications.
The diagram below shows some of available components.
The project contains 4 sample apps which showcase, how to use various components. It has also a really good documentation and it is released under MPL 2.0 license.
This library adds RxJava and RxKotlin bindings for Biometric Prompt (Fingerprint Scanner) on Android (added in Android 9 Pie, API Level 28+).
According to the Google Android Developers Blog, when
your app is drawing its own fingerprint auth dialogs, you should switch to using the BiometricPrompt API as soon as possible.
RxBiometric helps you to do that via RxJava stream. It has robust documentation
with usage and examples.
It is released under Apache 2.0 license.
This is a library which extends Google’s
BottomNavigationView and add more
interesting look to it.
The project is written in Kotlin, released under Apache 2.0 license and contains a sample app to test it out.
This is Kotlin extension for
LiveData, chaining like RxJava delivered by
Shopify team. If you use
LiveData from Android
Architecture Components, you can replace it with
LiveData KTX and create
chains like below:
The project is maintained by 4 developers and released under MIT license.
Tumbleweed is a fork of Universal-Tween-Engine and it
allows you to create smooth interpolations on every attribute from every object in your projects.
Tumbleweed comes with few changes and differences:
- decreased mutation of Tweens and Timelines (split definition and execution of tweens)
- encapsulated interpolation by introducing specific type (
- removed pooling (a constant source of unexpected behaviour) and many more.
It has comprehensive docs and is released under Apache 2.0 license. It has also sample app included to the project.
Stylist is a project delivered by Uber Developers. It is a Gradle plugin written in Kotlin that generates a base set of Android XML themes. Stylist-generated themes are created using a stencil and trait system. For instance, if you want to define text size in Dark and Light themes, you will create following class:
And you will get generated XML themes like below:
Currently, the project has version 0.0.1 and it is released under Apache 2.0 license.
This is a small library which provides reactive shared preferences interaction
with very little code. It is designed specifically to be used with Kotlin.
RxkPrefs instance, you can retrieve preferences. But it will not be the
raw value of the preference, but an instance of the
Pref interface which
provides more functionality.
The library has version 1.0.2 and it is released under Apache 2.0 license.
This library offers an easy way to dynamically replace
Strings of your Android
App or provide new languages Over-The-Air without needed to publish a new
release on Google Play. How does it work?
Philology doesn’t replace the way you are using resources in your current Android Development. Instead, it improves the process by intercepting the value returned from your hardcoded translation files inside of the app and check if there is a newer value in the server. This allows for typo fixing, better wording or even for adding a new language. All in real time, without releasing a new version of the App.
With Philology you could replace hardcoded texts instantly and win time before the new release is done.
It is a really nice idea released under Apache 2.0 license. The project contains a sample app as well as as really comprehensive documentation.
This is a Retrofit inspired
WebSocket client for Kotlin, Java, and Android
from Tinder dev team. The documentation of this client is really comprehensive
and also covered by Taming WebSocket with Scarlet article.
You can also check it usage by checking realtime Bitcoin price from Gdax WebSocket Feed which is posted as a demo app.
Scarlet is driven by a StateMachine also presented by Tinder team.
The project is released under BSD 3-Clause license and it has 0.1.4 version.
That’s it! I hope you enjoyed the list and some of the projects inspired you. If you know any other great library, which was released in past 5 months* and I didn’t mention about it, please let me know in the comments. You can also check my other articles that have been released earlier this year or last year:
- 25 new Android libraries, projects and tools worthy to check in Spring 2018
- 25 new Android libraries and projects to check at the beginning of 2018
- 30 new Android Libraries and Projects released in Summer 2017 which should catch your attention