25 new Android libraries and projects to check at the beginning of 2018

(⌐⊙_⊙)

This is my newest list of 25 Android libraries and projects which you may find useful, interesting and which are worthy to check. All of them were released in the last 3 months and are not in ranked order.
Check them below and enjoy!

Photo by Aleksi Tappura on Unsplash


1. transitioner

Transitioner is a library which provides easy, dynamic and adjustable animations between two views with nested children. It is written 100% in Kotlin under MIT license and is really well-documented.

This library supports API 19 and above and in the project there is also a sample app which presents its features. Undoubtedly this is worth checking!

2. FragmentRigger

This library manages Fragments in a powerful way. The goal is to make Fragments easy to use and minify the cost of managing them.

The library has a proper documentation as well as a sample app. It is released under MIT license.

3. PRDownloader

This is a file-downloader library for Android with pause and resume support.

This is a short description from README:

PRDownloader can be used to download any type of files like image, video, pdf, apk and etc.
This file downloader library supports pause and resume while downloading a file.
Supports large file download.
This downloader library has a simple interface to make download request.
We can check if the status of downloading with the given download Id.
PRDownloader gives callbacks for everything like onProgress, onCancel, onStart, onError and etc while downloading a file.
Supports proper request cancelling.
Many requests can be made in parallel.
All types of customization are possible.

This library has a good documentation with a sample app and is released under Apache-2.0 license.

4. AnimatedPieView

AnimatedPieView is another approach for displaying pie and ring charts on Android.

This library offers:

  • alpha animation on touch,
  • setting clearance angle,
  • fitting text field position itself during an animation,
  • setting a description and showing it for every paragraph,
  • a click callback,
  • a click effect,
  • transformation between a pie chart and a ring chart,
  • animation when drawing the chart.

It has a really good documentation (also in English). There is also a sample app. All is released under Apache-2.0 license.

5. FloatWindow

This library helps with adding a “Floating Window” which can be displayed on the top of your all Activities. The “Float Window” can be defined as eg. Floating Action button. This is shown below.

This library is released under Apache 2.0 license. It has a good documentation but it is written in Chinese. Just translate to English and have a fun!

6. MyLittleCanvas

The reason for that library was to facilitate work with canvas on Android. Instead of methods, you can use objects now.

By using this library, you can achieve e.g. a custom underline on a TextView which is shown above.
The example in README is self-explanatory and easy to use. The documentation is decent enough and the library is released under Apache-2.0 license. Have fun with drawing!

7. WindowImageView

This is quite interesting library which displays ImageView in RecyclerView and it acts like a window. See the gifs below for the visualization.

This project includes a sample app. The documentation is fair enough for getting started and the library is released under MIT license.

8. ChartView

ChartView is a project which presents, how to draw custom charts using Canvas and ValueAnimator.

9. hyperlog-android

This is an utility logger library, on top of standard Android Log class for storing logs in a database and push them to remote server for debugging.

The documentation is really comprehensive. There is also a blog post about it and a sample application. The library is released under MIT license and currently has version 0.0.7.

10. Fairy

Fairy is an easy debug tool which allows developers to use adb logcat command to view Android system log on an Android phone instead of on a computer.
It also allows to scan the system log information anywhere using Android phone without even having a root.

The library has decent documentation and it is released under Apache-2.0 license. It supports Android API 21 and above.

11. ExpansionPanel

This is another great library from Florent Champigny. It provides us with an implementation of Expansion Panels (which contain creation flows and allow lightweight editing of an element).

The documentation is really comprehensive and the project itself contains a sample app. All the code is under Apache-2.0 license. The sample app is also available on Google Play

12. kotlin-math

This is

Set of Kotlin APIs to make graphics math easier to write. These APIs are mostly modeled after GLSL (OpenGL Shading Language) to make porting code to and from shaders easier.

The various types offered by this library are only meant to be value types. Most APIs are therefore exposed as top-level functions and not as methods

The project is released under Apache-2.0 license.

13. TicketView

This is a library which provides a Ticket View. It offers 3 types of TicketView corners: normal, rounded and scallop.

This project is released under Apache-2.0 license and the sample app can be found in the Github repo or on Google Play. The documentation is decent and the library supports API 15 and above.

14. Cipher.so

This library provides a simple way to encrypt sensitive date into a native .so library.

How the library works? All the key-values are auto-packaged into a native library during a compile time. Then it can be obtained from the Java interface generated by Cipher.so.

The documentation is good enough and the project is released under Apache-2.0 license.

15. android-clean-architecture-mvi-boilerplate

This is a fork of Buffer clean architecture boilerplate using the Model-View-Intent pattern.

In the presentation layer it uses now ViewModels from the Android Architecture Components Library. The caching layer now also uses Room.

16. Android-Indefinite-Pager-Indicator

This library is a lightweight, plug-and-play indefinite pager indicator for RecyclerViews & ViewPagers.

This library has really good documentation, sample app, a lot of dots customisation and is released under MIT license. MinSDK is 16.

17. daggraph

If you use Dagger, you will probably find it interesting to see how your dependencies look on a graph. Daggerph is a tool which provides this functionality for you.

The documentation is quite short but enough to get started with the project, which is released under Apache-2.0 license.

18. ToastCompat

This is an Android library to hook and fix Toast BadTokenException.
The purpose for this library was a fact, that from API 25, a new parameter was added IBinder windowToken for Toast#handleShow() and it brought the BadTokenException. This library tries to workaround that issue.

More info you can find in README on Github. The project is released under Apache-2.0 license.

19. RecyclerBanner

This is not a library but a sample app which shows how to create a carousel using RecyclerView.

Unfortunately there is no English documentation, however you can refer to this article (tutorial) and translate it.

20. FancyToast-Android

This library makes native Android Toasts Fancy. It takes the standard Android Toast to the next level with a variety of styling options. It offers also styling Toasts from the code.

This library has a good documentation and contains a sample app as well. MinSDK is set to 19 and this whole project is released under Apache-2.0 license.

21.

RecyclerViewCardGallery

This library is a fork from this RecyclerViewCardGallery. Instead of using ViewPager, an author used RecyclerView, to achieve carousel effect with swipe to refresh.

The project has basic documentation, sample app and it is released under Apache-2.0 license.

22. ig-lazy-module-loader

This library helps with loading modules (features) in Android apps on demand, whenever needed. Before this library can be used a module needs to be compiled to a separate jar/dex or apk file.

Right now, the library supports java libraries and android libraries which don’t rely on android resources.

The author of the library also mentioned the benefits of Lazy loading of a feature vs having the feature in the main executable file:

  • feature is loaded in memory only when really needed. It offloads code from the main executable file which remains smaller which guarantees better cold start time. On Dalvik it offloads methods off the main dex file decreasing performance penalty of multi dex
  • feature code is clustered together in memory as it lives in one file and it provides most optimal execution in terms of memory access
  • less disk space is used if some features remain unused because code is not uncompressed
  • it may improve developer velocity where many developers concurrently work on the same codebase by providing very rigid isolation between features
  • module hotswapping may be implemented allowing for faster development without restarting the app

23. retrofit2-kotlin-coroutines-adapter

This is an experimental Retrofit 2 CallAdapter.Factory for Kotlin coroutine’s Deferred. Released under Apache-2.0 license.

24. CalendarPicker

This library is another calendar and date picker. It can preset a selected date and is heavily customisable — you can customise almost all text sizes and colours, background colours and month title.

This library is released under MIT license and has basic documentation.

25. avocado

This is a command line tool (similar to svgo) that optimizes Android VectorDrawable (VD) and AnimatedVectorDrawable (AVD) xml files.
It is created by Alex Lockwood and released under MIT license.

What it exactly does:

avdo rewrites the VectorDrawable using the smallest number of <group>s and <path>s possible, reducing their file sizes and making them faster to parse and draw at runtime. The example below shows the contents of a VectorDrawable before and after being run through avdo


That’s it. I hope you enjoyed my list. If you know any other great library, which was released in past 3 months and I didn’t mention about it, please let me know in the comments.


Also, to be notified about my new articles and stories, follow me on Medium and Twitter. You can find me on LinkedIn as well. Cheers!