DEV Community

Cover image for 25 Best Android Libraries, Projects, and Tools You Won’t Want to Miss Out in 2021
Michal Bialas
Michal Bialas

Posted on • Originally published at Medium

25 Best Android Libraries, Projects, and Tools You Won’t Want to Miss Out in 2021

Hello everyone, this is my first post on dev.to 🚀
I start to post new content here as well as on other platforms. Actually this is cross-post from Medium, however you all know that Medium is quite restrictive for non-members.

Due to this fact, I want to post my articles on dev.to too.
I believe that free and open content is just better for everyone. Enjoy then!

It has been quite some time when I posted my last pieces about [Medium links alert!] 🙃 20 Android Dev Tools You’ve Probably Never Heard Of and The 25 Best Android Libraries and Projects of 2020 — Summer Edition.

Now I am back with a brand new compilation of really inspirational, worthy to check, promising Android projects, libraries, and tools released or heavily refreshed in 2021.

I have listed projects written in Kotlin and Kotlin Multiplatform in an unordered list so if you are eager to learn new things, check them all!

1. Expenso

This is a simple application for tracking your expenses.

Alt Text

The project was built to showcase the usage of Android modern development components based on MVVM architecture, like:

The documentation is really good and presents the overall project structure and architecture.

The project supports dark and light mode and it is released under Apache 2.0 license.

2. TimeRangePicker

Here is a customisable, easy-to-use, and functional circular time range picker library.

Alt Text

The project is 100% written in Kotlin and was created to mimic Apple’s iOS or Samsung’s bedtime picker. It has good documentation, which also helps with the first configuration.

The library is copyrighted under an MIT license.

3. SSCustomBottomNavigation

This is another customizable bottom bar library with curved animations and Jetpack Navigation support.

Alt Text

This library is quite inspirational and has a fresh approach to the bottom bar’s animations and UI. It offers:

  • Customization of text, color, background, and icon
  • Animated wave with customizable height
  • Native control and Jetpack Navigation support

The project is well documented and released under Apache 2.0 license.

4. Curtains

Curtains provides centralized APIs for dealing with Android windows.

Alt Text

This library is developed by Py ⚔ from Square Engineering.

It can be used for:

Intercepting touch events on all activities and dialogs: for logging, detecting frozen frames on touch, fixing known bugs or ignoring touch events during transitions.

Knowing when root views are detached, e.g. to detect if they might be leaking (LeakCanary).

Listing all attached root views for debugging (Radiography) or test purposes (Espresso).

Real-life scenario: currently many popular apps, like TeamViewer, can take control or record screen on the phones. Sometimes, as developers, we need to prevent these actions. Using Curtains we can detect some users’ touch events (e.g. entering a PIN).

The library has great documentation, examples, samples, and FAQ. It is developed under Apache License, Version 2.0, and currently has a 1.2.1 version, so it is ready for production projects.

5. RoundedProgressBar

Here’s another interesting library for creating elegantly rounded ProgressBars.

Alt Text

It allows us to create progress bars with animations and text customizations. The documentation is quite comprehensive, there is even a sample in Google Play.

The project has version 2.1.0 and is released under the Apache License, Version 2.0.

6. SurveyKit

This is a library for creating beautiful surveys on Android.

Alt Text

It was inspired by ResearchKit Surveys on iOS and allows you to create many types of surveys. You can check them in the really good comprehensive documentation with examples.

The project is covered with tests (which is not so common) and released under an MIT license.

7. Gamedge

Another application that demonstrates the latest trends in Android development by utilizing the best practices, libraries, and tools to develop a fully-fledged Android application.

Alt Text

The application is modularized, written 100% in Kotlin, uses Dagger Hilt, Coroutines, Navigation Component, and many more. Also, it is covered with tests. Big recommendation from my side!

All are released under Apache 2.0 license.

8. SegmentedProgressBar

SegmentedProgressBar is an Instagram-like segmented progress bar.

Alt Text

The library has quite good documentation, sample app and it is easy to use.

Released under MIT license and has version 0.0.4, which indicates that is in quite an early stage of development and I would recommend it more to play than to include in a production project. Still, it is quite interesting.

9. Licensee

This is Gradle plugin which validates the licenses of your dependency graph match what you expect, or it fails your build.

Long story short, thanks to that plugin, you will not be bothered by 3rd party libs which licenses have been changed e.g. from Apache 2.0 to MIT or to different ones. 

You can decide on your own, which licenses you accept or the project accepts.

Alt Text

In the picture above there is a configuration that makes the project fail during a build time if the author of a 3rd party library changes the license to different than Apache 2.0 or MIT.

This plugin is developed and supported by Square Engineering, offers lots of customizations, and is released under Apache 2.0 license. Big recommendation!

10. TedImagePicker

This is an implementation of a simple yet beautiful image picker.

Alt Text

The library supports:

  • image and video picking
  • single and multi-select
  • lots of configuration options like animations, showing camera tile background, image, back button, etc. All the configuration options you can find in quite comprehensive documentation.

All is released under Apache 2.0 license, written 100% in Kotlin.

11. Radiography

This is another great library from Square Engineering team. It can print a subset of the view hierarchies by specifying a ScanScope. By default, Radiography will scan all the windows owned by your app.

Alt Text

Alt Text

As you can see, this lib can be utilized as a Hierarchy Viewer tool which returns the view hierarchy as a pretty string that you can print in the logcat or in a TextView. Square Engineering team describes it as “Text-ray goggles for your Android UI.”.

The library has great documentation, Jetpack Compose support, is often maintained and released under Apache 2.0 license.

12. PanelLayout

Panel Layout is a UI library for Android that allows you to display a floating and resizable panel that can also snap to the edges.

Alt Text

The library was inspired by the iOS UI framework PanelKit and uses ConstraintLayout to lay out the panel with rest of the content.

It is quite interesting but I would use it only for testing purposes, as it was removed from jfrog() repositories. It was released under 2-clause BSD License. The documentation is useful and worthy to check.

13. KMM Production Sample

The project was created to showcase Kotlin Multiplatform Mobile. It is a simple RSS reader which is also available in the App Store and Google Play.

Alt Text

The project was designed to demonstrate how KMM can be used in real production projects.​​

What is quite uncommon, the project defines an architecture, which not only shares the data and domain layer but also application state:

Alt Text

This is a great project to learn about Kotlin Multiplatform Mobile and boost your know-how. 100% recommendation.

The project is under Apache 2.0 license.

14. Smart Recycler Adapter

Here’s a small and generic adapter for RecyclerView with advanced data to ViewHolder binding.

Alt Text

The library has lots of features and supports:

  • OnViewEventListener
  • ItemTouchHelper Swipe, Drag & Drop extensions
  • ViewTypeResolver
  • Sticky header
  • Nested adapter
  • Pagination, DiffUtil, Filters and many more.

The project has really good documentation as well as a simple project. All are released under Apache 2.0 license.

15. Cabaret Log

This is an Kotlin Library that enables Annotation-triggered method call logging for Kotlin Multiplatform

We can use an annotation like DebugLog to e.g. automatically log all arguments that are passed to some function.

Alt Text

This code will log:

Alt Text

Quite useful, isn’t it? The library has comprehensive documentation with all setup and usage features. It is released under Apache 2.0 license and currently, it has a 1.0.4 version.

16. SuperBottomBar

This is Spotify-like Android Material Bottom Navigation bar library.

Alt Text

The library is quite simple and we can use it to see how to implement a custom bottom bar or even use it in our playground project.

The documentation is sufficient but remember that the project is released under an MIT license.

17. Mosaic

Mosaic is an experimental tool for building console UI in Kotlin using the Jetpack Compose compiler/runtime.

Alt Text

The library was developed by Jake Wharton who was inspired by Ink.

Ink provides the same component-based UI building experience that React offers in the browser, but for command-line apps.

Despite the fact the project is experimental and released as version 0.0.1, the documentation is very comprehensive and includes the purpose of this lib, FAQ, and many samples. All are released under Apache 2.0 license.

18. LabeledSeekSlider

This is a custom and highly configurable seek slider with sliding intervals, disabled state, and every possible setting to tackle.

Alt Text

The library is in version 1.1.0, but the documentation is quite poor. Still, you can deduce all the usage from the code and from the sample app. All are released under an MIT license.

19. EitherNet

This is a library from Slack Engineering and gives us a pluggable sealed API result type for modeling Retrofit responses.

By default, Retrofit uses exceptions to propagate any errors. This library leverages Kotlin sealed types to better model these responses with a type-safe single point of return and no exception handling needed

So after using this lib, you can achieve something similar:

Alt Text

The project is released in version 1.0.0 under Apache 2.0 license. It is well documented too.

20. Channelify

Channelify is an application that showcases the usage of YouTube Data API v3. If you do not like to read docs but check most of the features from the API in the code, this project is for you.

Alt Text

It features:

  • Latest Videos
  • Channel Playlists
  • Add videos to favorites
  • Channel info and statistics
  • Search
  • Comments and replies
  • Light & dark theme options
  • Push Notifications using Firebase
  • Browse Merchandise Store

The project has really good documentation and it is released under MIT license.

21. Custom Floating Action Button

This library was refreshed in 2021. It delivers a replacement for the standard Floating Action Button.

Alt Text

It offers a possibility to customize:

  • type of FAB
  • size, colors, icon, ripple effect
  • positions of FAB
  • animations and more

The documentation is well written. The project is released in 3.1.4 version under Apache 2 license.

22. Testify — Android Screenshot Testing

Testify is a library from Shopify App Devs which helps with expanding test coverage by including screenshots tests in your application.

Capturing a screenshot of your view gives you a new tool for monitoring the quality of your UI experience. It’s also an easy way to review changes to your UI.

Alt Text

Testify screenshot tests are built on top of Android Instrumentation tests and so already integrate seamlessly with existing test suites. Screenshots can be captured directly from within Android Studio or using the Gradle command-line tools.

The library is released under MIT license and currently is in version 0.1.2.

23. MixAnimationsMotionLayout

This is a project where you can find many examples how to use MotionLayout.

Alt Text

In the Github repo, there are examples like:

  • circular carousel picker and carousel helper
  • multi snake cards
  • cards stack
  • instagram stories
  • emoji dance
  • Telegram view

If you want to get to know MotionLayout, this repo is for you. Everything is released under Apache 2.0 license.

24. SpotiFlyer

This is an open-source Kotlin Multiplatform Music Downloader, which supports Spotify, Youtube, Gaana, Jio-Saavn.

Alt Text

The application features Playlist, Albums, Tracks, and many more. Works on Android, desktop (macOS, Linux, Windows), and web (with iOS support soon).

If you are interested in how to write this kind of app (music player and music downloader) for multiple platforms, this project is for you. It is released under GPL-3.0 License.

25. Quantitizer

This is a highly customizable quantity stepper for Android projects.

Alt Text

The library gives you several configuration options, like changing:

  • animation type (FALL_IN, SLIDE_IN, SLIDE_IN_REVERSE, SWING) and disabling / enabling it,
  • animation duration,
  • icon background,
  • text and background color etc.

The project is released under MIT license and it has version 1.6.1. The documentation is quite comprehensive and contains also sample app.

Conclusion

That’s it. I hope you enjoyed the list and that some of the libs or projects inspired you. If you would like to read more, please follow me here on dev.to, on Twitter and on Github. Thanks for reading ✌️

Discussion (1)

Collapse
vtsen profile image
Vincent T

So many of them. Thank you for sharing..