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!
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 app and check, how it is implemented in
It is released under Apache 2.0 license and it is really worthy to check.
point_right: Customize the LayoutManager of RecyclerView(自定义LayoutManager) - DingMouRen/LayoutManagerGroup
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.
Creative View Pager easy to use in Android. Contribute to tommybuonomo/creative-viewpager development by creating an…
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 post you 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.
Introducing Auto Screen Recording, Network Performance Monitoring, Crash Severity, and More |…
We've had some exciting new feature releases this month, especially when it comes to our best-in-class bug reporting…
In-app feedback and bug reporting tool for apps. Contribute to Instabug/Instabug-Android development by creating an…
This is a checkable widget for Android based on the EventFilterView from the Google I/O 2018 app. 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.
Android Chipview Widget. Contribute to okdroid/checkable-chip-view development by creating an account on GitHub.
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.
A beautiful material calendar with endless scroll, range selection and a lot more! - CleverPumpkin/CrunchyCalendar
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.
Build expandable descendant navigation, inspired by Google Inbox - saket/InboxRecyclerView
This is a small but interesting library which provides a
SlideBackView inside your
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.
一个仿 即刻APP 滑动返回效果的小东西. Contribute to ChenTianSaber/SlideBack development by creating an account on GitHub.
This library creates drawables programmatically and gets rid of the boring and always repeated
It is released under Apache 2.0 license. It has a really comprehensive documentation and works with API 14 and above.
🛠️ The missing drawable toolbox for Android. Create drawables programmatically and get rid of the boring and always…
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.
🎨 A color picker for Android. Pick a color using color wheel and slider (HSV & alpha). - duanhong169/ColorPicker
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 2.0 license.
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.
MvRx: Android on Autopilot. Contribute to airbnb/MvRx development by creating an account on GitHub.
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
(Observable<Action>, StateAccessor<State>) -> Observable<Action>).
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.
Redux implementation based on RxJava. Contribute to freeletics/RxRedux development by creating an account on GitHub.
12. Emoji Slider
It is a custom
SeekBar inspired by Instagram’s Emoji Slider.
The project contains a really good documentation as well as a sample app with generated
apk. It has 0.3.0 version and is released under Apache 2.0 license.
🤯 A slider widget rich in emoji and highly customisable. - bernaferrari/EmojiSlider
This is a library which helps to implement Material Swipe Actions in a
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.
Covert is an Android library for Material Swipe Actions within a RecyclerView - TradeMe/Covert
This is a library that can save any
SurfaceView as an image in the formats:
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.
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.
PixelShot is an awesome Android library that can save any View in your app as an image - Muddz/PixelShot
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.
Wrapper around WifiManager and ConnectivityManager for Android - isuPatches/WiseFy
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.
MVI framework (not just) for Android, with events, middlewares, and time-travel debugger - badoo/MVICore
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.
A Rotary Dialer loading for Android. Contribute to SaeedMasoumi/DialerLoading development by creating an account on…
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.
HtmlRecycler Converts a simple html page into A RecyclerView of Native android widgets. - m7mdra/HtmlRecycler
The boilerplate is released under MIT license.
A fork of our clean architecture boilerplate, this time using Koin - bufferapp/clean-architecture-koin-boilerplate
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.
A family of small Kotlin libraries for delightful Android development - LouisCAD/Splitties
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.
A lightweight android image watermark library that supports invisible digital watermarks. :foggy: (轻量级安卓水印框架，支持隐形数字水印)…
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.
A collection of Android libraries to build browsers or browser-like applications. - mozilla-mobile/android-components
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.
RxJava and RxKotlin bindings for Biometric Prompt (Fingerprint Scanner) on Android - pwittchen/RxBiometric
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.
A different BottomNavigationView that you could find in all android apps - florent37/EnhancedNavigationView
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.
Kotlin extension for LiveData, chaining like RxJava - Shopify/livedata-ktx
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.
Easy interpolations for Java & Android projects. Contribute to noties/Tumbleweed development by creating an account on…
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.
A stylist creates cool styles. Stylist is a Gradle plugin that codegens a base set of Android XML themes. …
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.
A small, Rx-powered shared preferences library for Kotlin. - afollestad/rxkprefs
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.
An easy way to dynamically replace Strings of your Android App or provide new languages Over-the-air without needed to…
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: