The 25 Best Android Libraries and Projects of 2020

Tram Ho

Hello guys, in this article, we will go through the list of top 25 projects in 2020 that have been summarized below, they are really worthy projects to test, test and even. apply to your projects. Let’s get started.

1. Pokedex

Pokedex is a demo project, showcasing a stack of modern technologies with MVVM architecture and repository patterns.

The project is written in Koltin, which uses Coroutines plus Flow for asynchronous tasks and standard networking libs, OkHttp and Retrofit.

In fact, it can be said that there is no difference between this project and other similar projects. However, there is one big difference. It uses the recently introduced Dagger Hilt as a DI framework. So if you want to get to know Hilt in a real-world situation, this project is great. It is well documented and licensed under Apache license 2.0

Github: https://github.com/skydoves/Pokedex

2. Kotlin Coroutines – Use Cases on Android

If you’ve never used Coroutines and you want to get to grips with it quickly, then this project is for you. According to the documentation, it looks like a “playground project” where you can “quickly look up and become familiar with the different Android Coroutine implementations. In the package playground , you can learn examples of run directly on Coroutines JVM.

The README file contains lots of examples, from a relatively simple single network request to more complicated, more expensive calculations. It is really well written and has clear explanations. It is licensed under Apache License 2.0.

Github: https://github.com/LukasLechnerDev/Kotlin-Coroutine-Use-Cases-on-Android

3. AnimatedBottomBar

AnimatedBottomBar is a customizable and easy to use bottom bar view with pretty cool animations.

Library is remarkable. It has really comprehensive documentation with lots of usage patterns. It’s at version 1.0. + And support API 16+. It is released under the MIT license, so don’t forget to mention the author in your code.

Github: https://github.com/Droppers/AnimatedBottomBar

4. Motion Toast

Motion Toast is a beautiful universal motion toast gallery in Android and uses Kotlin.

The library offers five types of toast, with the ability to customize:

  • duration time,
  • theme (light / dark),
  • styles (motion or color motion toasts)

Well documented and full of examples. Usage is very easy. It supports API 21 + and is released under MIT license.

Github: https://github.com/Spikeysanju/MotionToast

5. Cycler

Cycler is another interesting library from Square Engineering. The document says it “allows you to easily configure Android RecyclerView in a concise, declarative way.”

It is implemented according to rules, where you declare code with strong types and everything has to be easy (inflating rows, creating common custom items, etc.). The library is in version 0.1.4, so we won’t recommend it for the production code. However, it does represent a really good approach to implement adapters and manage RecyclerViews.

What’s interesting is the documentation saying, “You can tell the API to create a RecyclerView object for you – using the create method – or configure an existing instance – through the adopt method. The latter is useful if you already have a layout where the recycler view is part of it. ”

Documentation is comprehensive. The project contains an introductory application and was released under Apache license 2.0.

Github: https://github.com/square/cycler

6. Zoom Recycler Layout

Let’s continue with RecyclerView. Zoom Recycler Layout is a beautiful zoom library for RecyclerView items and written in Kotlin.

In fact, this is a LinearLayoutManager extends class and overrides two functions: scrollVerticallyBy () and scrollHorizontallyBy (). However, you can think of it as a hint of inspiration for eye-catching vertical or horizontal lists.

The project was released under License Apache 2.0 and supports API 11+.

Github: https://github.com/Spikeysanju/ZoomRecylerLayout

7. Accompanist

Accompanist is a group of libraries that contain several add-ons that Chris Banes has created and replicated around projects using Jetpack Compose.

Currently, it integrates:

  • Material design components theme
  • Coil image-loading composables If you plan to use Jetpack Compose and want a material design theme or download cool images with Coil, then this project is for you. It is well documented and released under the Apache 2.0 License.

Github: https://github.com/chrisbanes/accompanist

8. JetpackComposeCalculator

The Jetpack Compose Calculator is an interesting example of where Accompanist can be used. Ahmed Rizwan has clone the desktop UI on Android 10 using Jetpack Compose.

README is actually very short, but the author has explained the main idea and the approach in my post, so this is a good start. You can think of this project as a way of learning Jetpack Compose, based on lovely examples. No version information available. It’s released under the MIT license and it’s worth checking out.

Github: https://github.com/ahmedrizwan/JetpackComposeCalculator

9. ComposeClock

Do you remember this Flutter clock challenge ? If so, you also remember who and which project won. Based on that design, an author of ComposeClock prepared a version of Jetpack Compose.

No README, only Apache 2.0 code and license.

Github: https://github.com/adibfara/ComposeClock

10. Compose Academy

As a summary of the projects created using Jetpack Compose, you need to check out Joe Birch’s Compose Academy Playground.

This is a free resource that provides practical excerpts and samples on how to use Jetpack Compose for the Android platform. According to the documentation, “the project is broken down by API, with the aim of helping you to eliminate the difficulty of trying to find the pattern you want to explore.” Joe divides the document into eight main parts:

This repo exists and changes over time. It’s definitely worth the follow-up if you want to stay on track with the novelties from Jetpack Compose. Recommended!

Github: https://github.com/hitherejoe/ComposeAcademy-Playground

11. ProtonMail

Let’s go back to good old Java (49.2%). A few months ago, ProtonMail opened-source its Android app.

This is a good source to test the design approach of a truly secure Android app. The project has quite comprehensive documentation with instructions and instructions on how to set up the application. All are released under License GPL-3.0.

Github: https://github.com/ProtonMail/proton-mail-android

12. kotlin-android-template

kotlin-android-template is a simple Github template that allows you to create an Android / Kotlin project that can be up and running in seconds. The document says “this template is focused on delivering a project with static analysis and continuous integration is already 100% available in Kotlin.”

It supports / includes:

  • three sample modules (Android app, Android library, Kotlin library)
  • Sample Espresso, Instrumentation, and JUnit tests
  • 100% installed Gradle Kotlin DSL
  • Dependency versions are managed via buildSrc
  • CI setup with GitHub Actions
  • Kotlin static analysis through ktlint and detekt
  • Publishing ready
  • Issues template (bug report plus request feature)
  • Pull request template

If you are in a hurry or preparing for a recruitment task, perhaps this repo is worth a try. However, it is released under license from MIT

Github: https://github.com/cortinico/kotlin-android-template

13. ThemedToggleButtonGroup

ThemedToggleButtonGroup are customizable toggle buttons within FlexboxLayout.

The document describes it like this: “ThemedToggleButtonGroup is a highly modular toggle button library for Android. It can be configured to choose from one or more selections. For multiple selections, the minimum / maximum number of buttons required / enabled can be specified. Icons can be added. Options include a fun press and a circle display animation. ”

README is really good and full of examples. The project supports API 14+, currently version 1.3.1 and is released under the MIT license.

Github: https://github.com/Bryanx/themed-toggle-button-group

14. CleanRxArchitecture

CleanRXArchitecture is a project based on the clean architecture and MVI (model view intent) principles for the presentation layer.

The demo application is a multi-module project connected to the GitHub API that allows the author to list all of their public repositories. It can be used when disconnected, with a backup copy of all data stored in the database (Room). Dark mode is also available. The entire application is covered with units, UI and functional / integration (= use case). It uses libs like Dagger 2, RxJava 3, Room, and AndroidX.

In this repository, you will also see various tools and good methods (with Git and more).

Github: https://github.com/lopspower/CleanRxArchitecture

15. LightProgress

LightProgress is an Android implementation of the Light animation by Oleg Frolov.

This project is also clearly explained on Medium . You can think of it as an introduction to this kind of animation. It has four types of properties:

  • android: text (string) -> default “Loading”
  • android: textSize (dimension) -> default 56sp
  • android: textColor (color) -> default # 484848
  • app: light_color (color) -> default #FFFFFF

Furthermore, it supports API 16+, is at version 1.0.1 and is released under the Apache 2.0 license.

Github: https://github.com/bitvale/LightProgress

16. Corona Warn App

We live in the COVID era, so the Corona Warn app cannot be missed here.

“The goal of this project is to develop the official Corona-Warn-App for Germany based on the exposure notification API from Apple and Google. Apps (for both iOS and Android) that use Bluetooth technology to exchange anonymously encrypted data with other mobile phones (on which the app is also installed) near the app user’s phone . Data is stored locally on each user’s device, preventing authorities or other parties from accessing or controlling the data. This repository contains the native Android implementation of Corona-Warn-App. Visit our FAQ page for more information and common issues. ”- Corona Warn App documentation

Application created by SAP and Deutsche Telekom developers. There’s also a great documentation explaining many aspects of this project, released under the Apache 2.0 license.

Github: https://github.com/corona-warn-app/cwa-app-android

17. KaMP Kit

KaMP Kit is a code and tools designed to help you or your mobile team get started quickly with Kotlin Multiplatform.

You can think of it as a great resource to learn. The KaMP Kit is designed to help you get past that first hurdle. From the documentation:

“Including what?

  1. The Starter App – A native mobile KMP app with a small set of functional features.
  2. Educational Resources – Introductory information about KMP and Kotlin / Native.
  3. Integration Information – If you are integrating the shared code into an existing application, guide to support that effort ”

Github: https://github.com/touchlab/KaMPKit

18. Kissme

Kissme is the acronym for Kotlin Secure Storage Multiplatform. Kissme can be seamlessly integrated in Kotlin projects built with the Kotlin Multiplatform, Kotlin / Native, and Kotlin Android plugins. It allows to store key-value data in common code modules without adding any boilerplate code.

Currently, the library supports the following platforms: Android (API 23+) iOS (iOS_arm64 and iOS_x64 targets)

The documentation is really comprehensive, but still, the project is at version 0.2.5. It is released under the Apache 2.0 license.

Github: https://github.com/netguru/Kissme

19. DeterminateProgressView

DeterminateProgressView is a highly customizable and easy-to-style circular progress view

The document says “it’s built with Kotlin and supports convenient and heavy customization options for automatic animate progress generation.”

You can use XML and Kotlin / Java functions to customize it. Additionally, there is a very powerful demo application. README includes all the styles of widget styling, as well as a great description of all text and XML attributes. You need to test it out with certainty. The project is released under the MIT license and in version 1.4.0.

Github: https://github.com/owl-93/Determinate-Progress-View

20. Venom

Venom is a tool that simplifies process death testing for your Android app.

The project was created to test apps against Android’s aggressive runtime behaviors. Sometimes, Android terminates background apps while the user interacts with other apps. In this case, all activities are destroyed along with the application scope objects and background tasks. Then we must always make sure that our applications have consistent interface and are checked against the process death scenario.

Venom is quite easy to use and has a decent documentation. It is released under the MIT license. It is currently at version 0.3.1.

Github: https://github.com/YarikSOffice/venom

21. RateBottomSheet

RateBottomSheet is a library that helps you promote your Android app by prompting users to rate your app in the bottom page.

As you may know, Google has released a new API for in-app evaluation. It’s really great but only works from API 21. If for some reason you can’t use this API, you can try RateBottomSheet library. It supports API 16+ and is well designed. The project contains a well-documented, well-documented sample application released under the Apache 2.0 license.

Github: https://github.com/lopspower/RateBottomSheet

22. Decorator

Decorator is a library that helps margins and dividers in RecyclerView.

The idea of ​​this project is also to create decorations and apply it to RecyclerView. It is quite helpful. Furthermore, it has really comprehensive documentation and has a sample project showcasing its usage. It is at version 1.2.0 and released under the Apache 2.0 license.

Github: https://github.com/cabriole/Decorator

23. CornerCutLinearLayout

CornerCutLinearLayout is a great lib that allows cutting LinearLayout (parent and children) angles, complex shadows and dividers.

This LinearLayout extension is really well documented. Honestly it’s been a while since I saw this kind of Java doc. Also, README is awesome.

Additionally, by using built-in properties and customizations, cuts you make with CornerCutLinearLayout can be converted to cuts of different shapes, sizes, etc.

The document says “the sole purpose of a widget is to give children no transformations (like rotation, scale, matrix transformations).” The project is released under the Apache 2.0 license and is in version 1.0.1.

Github: https://github.com/Devlight/CornerCutLinearLayout

24. Recycling Center

According to the document, “The Recycling Center is a library designed to support a reactive, unidirectional data flow model using the immutable ViewModels. It combines reactive data flow of RxJava with the efficient UI of RecyclerView and supports UI composition through Sections of Views and ViewModels ”.

The best way to test how this library works is to go to the template and understand how it works. Also, README is pretty good. The project is released under License BSD-3-Clause.

Github: https://github.com/Snapchat/recycling-center

25. TickTock

TickTock is a time zone data management library for JVM and Android targeting java.time APIs in Java 8+. The documentation says “Use this library if you want to group time zone data directly with your app instead of relying on your device’s current time zone (Android) or default <java.home> / lib version. (JVM only). ”

The library was also inspired by LazyThreeTenBp. The documentation is good and the project itself is very easy to use. The author, Zac Sweers, also wrote an article about the lib. It is released under the Apache 2.0 license.

Github: https://github.com/ZacSweers/ticktock

Conclusion

  • Above are 25 projects that have been selected and synthesized that are said to be the best in 2020, so that everyone can refer and apply, even customize to their own Project.
  • In addition to the projects above there are also many other projects that you can add.
  • Thanks for reading, hope this article will be useful to you, hello and see you in the next articles.

Source

Share the news now

Source : Viblo