Awesome Android
About
A curated list of awesome Android libraries and
resources. For general Java libraries have a look
at awesome-java.
Supported with ❤️ by
Instabug
Understand How Your Android App is Doing with Real-Time Contextual
Insights From Your Users
>Instabug helps Android developers and product teams easily collect
bugs and feedback from beta testers and users to iterate faster and ship
quality apps. Instabug automatically attaches screenshots, device details,
network logs, repro steps, and tons of other critical insights needed to
resolve issues and prioritize product backlogs. > Mobile teams
accelerate their workflows by seamlessly integrating with third-party
tools like Github, Jira, Slack, Zendesk and much more.
Instabug is offering Awesome Android community an exclusive 15%
discount on all paid plans. Get Started!
How to Use
Awesome-Android is an amazing list for people who need a certain feature
on their app, so the best ways to use are: - Simply press command + F to
search for a keyword - Go through our Content Menu
Content
Emulators
Libraries
Charts
-
AChartEngine -
Charting Engine.
-
EazeGraph - Chart
and graph library.
-
WilliamChart
- Chart library with good motion capabilities.
-
HelloCharts -
Chart and graph library with support for scaling, scrolling and
animations.
-
MPAndroidChart -
An Android chart and graph library supporting scaling and dragging by
gesture.
-
ArcChartView
- Draw Creative Statistic Arc Charts.
-
AnyChart -
Data visualization library, Interactive charts.
Cloud Services
-
CloudRail - Unified API Library for:
Cloud Storage, Social Profiles, Payment, Email, SMS & POIs.
Data binding
-
Anvil - A small library
to create reactive UI components, inspired by React. Provides data
binding and event listener binding, fits well for MVVM.
-
Data Binding Library
- Official Android Data Binding Library to write declarative layouts and
minimize the glue code necessary to bind application logic and layouts.
Dependency Injection
-
Dagger 2 - A fast
dependency injector for Android and Java.
-
Butter Knife -
View “injection” library for Android.
-
ActivityStarter
- Android Library that provide simpler way to start the Activities with
multiple arguments.
-
AndroidAnnotations
- Java annotations with dependency injection at compile time.
-
Toothpick - A
scope tree based Dependency Injection (DI) library for Java.
Android Services
-
Remoter - An
alternative to Android AIDL for Android Remote IPC services using plain
java interfaces.
-
Service Connector
- Bind Android services and callbacks to fields and methods.
Game Development
-
Libgdx - Cross-platform
game engine and SDK.
Open Source
-
Vuforia - Augmented Reality
library.
-
Unity -
Cross-platform game creation system.
-
Rajawali - Android
OpenGL ES 2.0/3.0 Engine
-
Cocos2d-x - Cross-platform 2d game
framework.
-
JustWeEngine - An
easy open source Android Native Game FrameWork.
Security
-
libsignal-protocol-java
- A ratcheting forward secrecy protocol that works in synchronous and
asynchronous messaging environments.
-
Themis -
Multi-language framework for making typical encryption schemes easy to
use: data at rest, authenticated data exchange, transport protection,
authentication, and so on.
GUI
-
Pull to refresh
- A swipe refresh layout is available in the v4 support library.
-
Cardslib -
Android Library to build a UI Card.
-
AndroidStaggeredGrid
- Grid view which supports multiple columns with rows of varying sizes.
-
Flow - Library that helps
with describing an app as a collection of moderately independent
screens.
-
SortableTableView
- An Android library containing a simple TableView and an advanced
SortableTableView providing a lot of customisation possibilities to fit
all needs.
-
MaterialProgressBar
- Material design ProgressBar with consistent appearance.
-
AndroidFillableLoaders
- Fillable progress view working with SVG paths. Nice option too for
creating interesting app logos.
-
NexusDialog -
Allows you to easily and quickly create forms in Android with little
code.
-
Snap RecyclerView Utils
- Populate Single or multiple Layout RecyclerView without creating an
Adapter.
-
MultiSnapRecyclerView
- Android library for multiple snapping of RecyclerView
-
SwipeableCard
- Implementation of swipe card like StreetView!!
-
ElasticProgressBar
- Beautiful loading bar.
-
EntryScreenManager
- Intro/Entry/Walkthrough/Starting Screens.
-
EasyIntro - The
flexible, easy to use, all in one app intro library for your Android
project.
-
Material-Calendar-View
- Material Design Calendar compatible with API 8+
-
CrunchyCalendar
- A material calendar widget with infinite scrolling, date range
selection and color customization.
-
SmoothOverscrollableScrollView
- Small custom view with smooth overscroll. You can add header with
scale background
-
SectionedRecyclerViewAdapter
- An Adapter that allows a RecyclerView to be split into Sections with
headers and/or footers.
-
DragListView -
Drag and drop to reorder items in a list, grid or board.
-
Animated Expanding ListView
- Animated Expanding ListView provides a fancy animation on expanding or
collapsing the content of a listview item.
-
TastyToast -
Toasts with icons and color.
-
DotLoader - A
customizable loading animation with Dots.
-
PodSlider - A
customizable slider widget adhering to material design specs.
-
TapTargetView -
An implementation of tap targets from the Material Design guidelines for
feature discovery.
-
ShowCaseView - The
ShowcaseView library is designed to highlight and showcase specific
parts of apps to the user with a attractive and flat overlay.
-
MaterialIntroScreen
- Material Intro Screen implementation with easily extensible API.
-
FloatingView -
FloatingView can make the target view floating above the anchor view
with cool animation.
-
Timecon -
Easy-to-use animated clock icon
-
Audiogram -
Lightweight audiowave progressbar
-
Bubbles for Android
- Facebook like chat bubble library
-
Litho (By Facebook) - A
declarative framework for building efficient UIs on Android.
-
MultiViewAdapter
- Recyclerview Adapter library to create composable view holders.
-
LGSnackbar - An easy
to use and customisable wrapper of the native Android Snackbar which
stays visible across multiple activities.
-
ShimmerLayout
- Memory efficient shimmering effect for Android applications.
-
CircleProgressBar
- A simple library for creating circular progressbars for Android.
-
Easy-Signature-Android
- An simple ui library that provides a plugable signature view.
-
Flashbar - A highly
customizable, powerful and easy-to-use alerting library for Android.
-
YuanaItemSettingView
- Customizable Item Setting View for Android.
-
Gradients - A
curated collection of splendid gradients.
-
OneAdapter -
RecyclerView Adapter with multiple modules and hooks to simplify and
enhance the use while preventing common mistakes.
Paginate
ActionBar
Navigation
Animations
-
Rebound - Rebound is a
Java library that models spring dynamics.
-
Android View Animations
- Cute view animation collection.
-
Android-Transition
- Allows the easy creation of view transitions that react to user
inputs.
-
Android-View-Actions
- Makes creating complex animations for views easy.
-
Swipper - Android
library for swipeable gestures to control volume , brightness and seek .
-
Spotlight - Android
Library that lights items for tutorials or walk-throughs etc…
Images
-
Crescento -
Explore new style in material design by adding curve below image view.
-
android-crop -
Library project for cropping images.
-
CircularImageView
- Custom view for circular images while maintaining the best draw
performance.
-
Android-Image-Filter
- Library project for applying image filters easily.
-
Compressor -
Compressor is a lightweight and powerful android image compression
library.
-
ShapeImageView
- Library to display images in different shapes.
-
FloatingLabel
- FloatingLabel Allows you to create a blow kind of EditText.
Doesn’t have Gradle or Maven Support.
-
MaterialEditText
- Supporting Floating Labels, Single Line Ellipsis, Max/Min Characters,
Helper Text and Error Text with Custom Colors.
-
EmojiCompat
- Adds emoticons to your app
-
MaterialSearchBar
- Material Design Search Bar for Android
-
InputMask
- Pattern-based user input formatter, parser and validator.
-
SweetPassword
- Password EditText that allows to custom toggle button
-
VoiceOverlay
- An overlay that gets your user’s voice permission and input as text in
a customizable UI.
Loading Images
-
Picasso - A powerful
image downloading and caching library for Android.
-
Universal Image Loader
- Asynchronous, out of the box loading and caching of images.
-
Glide - An image loading
and caching library for Android focused on smooth scrolling, Recommended
by Google.
-
Fresco - An Android
library for managing images and the memory they use.
-
Glide Bitmap Pool
- Glide Bitmap Pool is a memory management library for reusing the
bitmap memory.
-
Coil - Image loading for
Android backed by Kotlin Coroutines.
-
MediaPicker -
Android Library that lets you to select multiple images, video or voice
for Android
-
Android Image Picker
- A library that makes images and videos selection from gallery feels
easy. It also support GIF and simple camera action
Video
-
ijkplayer -
Android/iOS video player based on FFmpeg n3.2, with MediaCodec,
VideoToolbox support.
-
Exoplayer - ExoPlayer
is an application level media player for Android, allow playing audio
and video both locally and over the Internet. Supports features like
Dynamic adaptive streaming over HTTP (DASH), SmoothStreaming and Common
Encryption
-
VideoPlayView
- Custom Android view with video player, play/stop, loader and
placeholder image.
Camera
-
MagicalCamera
- Simple way to take or select photos of your gallery, with other
features for manage pictures.
-
Camera - Use Android
camera to take pictures and videos, based on camera2 api.
Field Validation
-
Convalida - A
simple and annotation-based way to validate your input fields.
JSON
-
Gson - Gson is a Java
library used for serializing and deserializing Java objects from and
into JSON.
-
Jackson JSON Processor
- High-performance JSON processor.
-
Moshi - A modern JSON
library for Android and Java. ### Crash monitoring
-
Fabric Crashlytics - Easy crash
reporting solution.
-
HockeyApp - Distribution, Crash
Reports, Feedback and Analytics
-
Splunk MINT - Monitoring, Crash
Reports, Real time data, Statistic.
-
Bugsnag - Cross platform error
monitoring. Free tier. Support for SDK & NDK. Error reports include
data on device, release, user, and allows arbitrary data.
-
Catcho - No Force
Close any more.
-
Apteligent - Cross platform
crash reporting/analytics solution. Supports NDK log.
-
Instabug - Bug reporting, Crash
Reporting, In-app Feedback.
Networking
-
Ion - Good networking library
for android.
-
OkHttp - An HTTP+SPDY
client for Android and Java applications.
-
RoboSpice -
Library that makes writing asynchronous network requests easy.
-
IceNet - Fast, Simple
and Easy Networking for Android
-
Android Volley
- Official Android HTTP library that makes networking for easier and
faster.
-
IceSoap - Easy,
asynchronous, annotation-based SOAP for Android.
-
node-android
- Run Node.js on Android.
-
HappyDns - A
Dns library, user can use custom dns server, dnspod httpdns. Only
support A record.
-
RESTMock - HTTP Web
server for mocking API responses in Android Instrumentation tests.
-
Fast-Android-Networking
- A Complete Fast Android Networking Library that also support HTTP/2.
Logger
-
logger - Simple,
pretty and powerful logger for android
-
timber - A logger
with a small, extensible API which provides utility on top of Android’s
normal Log class.
-
LoggingInterceptor
- An OkHttp interceptor which pretty logs request and response data.
-
Bugfender
- Upload your logs and check them online, specially made for mobile
-
EzyLogger - Simple
Lightweight logger
-
Logback Android
- Logback port to Android which provides a highly configurable logging
framework for Android apps.
Notifications
Database
-
Cupboard -
Access the sqlite easily via direct database access or through the
ContentProvider framework.
-
DbInspector
- Provides a simple way to view the contents of the in-app database for
debugging purposes.
-
SQLite Asset Helper
- manage database creation and version management using an application’s
raw asset files.
-
Realm - The
alternative to SQLite and ORMs: Simple, modern and fast! Object oriented
API and multi platform support.
-
Realm Asset Helper
- Copies a realm database from the apk assets folder. Efficiently
handles versioning of read-only realm databases.
-
RestorableSQLiteDatabase
- A wrapper to replicate android’s SQLiteDatabase with restoring
capability.
-
Nitrite Database
- A NoSQL embedded document store for Android with MongoDb like API.
ORM
-
requery - Compile time
ORM and SQL query library for Java & Android.
-
GreenDAO - Light &
fast ORM solution.
-
ORMLite -
Lightweight ORM Java package for JDBC and Android.
-
ActiveAndroid - Active record
style ORM.
-
Sugar ORM - Insanely easy
way to work with Android Databases.
-
DBFlow - Fast and
powerful ORM with compile-time annotation processing.
-
NexusData - Object
graph and persistence framework for Android.
-
SimpleNoSQL - A
simple NoSQL client for Android. Meant as a document store using
key/value pairs and some rudimentary querying. Useful for avoiding the
hassle of SQL code.
-
RxSimpleNoSQL -
Reactive extensions for SimpleNoSQL. Manipulate entities using
Observables.
REST
Testing
-
Robotium - Test
automation framework for black-box UI tests.
-
Roboletric - Unit test framework
to run tests inside the JVM on your workstation, not in the emulator.
-
AssertJ Android
- AssertJ assertions geared towards Android.
-
Green Coffee
- Run your Cucumber tests in your Android instrumentation tests.
Tracking
-
MobileAppTracking - Tracking your
marketing campaigns across multiple ad networks.
-
Mixpanel - Analytics platform to
analyze the users.
-
Countly - Open source mobile & web
analytics, push notifications and crash reporting platform, based on
Node.js, MongoDB and Linux.
-
CleverTap - Analytics platform and
user-engagement platform with 1 million free events
Maps
-
Google-Directions-Android
- Allows you to calculate the direction between two locations and
display the route on a Google Map using the Google Directions API.
-
Android Maps Extensions
- Extending capabilities of Google Maps Android API v2, adding marker
clustering among other things
-
MapScaleView -
Scale bar for Google Maps Android API
-
GLMap - Crossplatform offline
vector map with MapCSS styling. Offline search and offline navigation
are included.
Utility
-
Conceal SharedPreferences
- Secured Preferences using Facebook Secure Encryption called Conceal.
-
EventBus - EventBus
is a library that simplifies communication between different parts of
your application.
-
Otto - Event Bus for
Android.
-
Weak handler
- Memory safer implementation of android.os.Handler.
-
Byte Buddy - Runtime code generation
library with support for Android.
-
Secure Preference Manager
- Secure Preference Manager for android. It uses various Encryption to
protect your application’s Shared Preferences.
-
LeakCanary - Catch
memory leaks as they occur.
-
Drekkar - An Android
event bus for WebView and JS.
-
Androl4b - A vm for
assessing android applications.
-
DroidMVP - Android
library to help you incorporate MVP along with Passive View and
Presentation Model patterns into your app.
-
EasyDeviceInfo -
Get device information in a super easy way.
-
Shutter-Android
- Capture photos/videos from device camera or get photos/video from
gallery app with no runtime permissions needed.
-
Validator - An
utilities class to validate text inside TextInputLayout.
-
Keyboard Visibility Event
- A DSL to handle soft keyboard visibility change event.
-
TimeIt - A
stopwatch library for android which makes it easy to start, pause,
display and maintain multiple stopwatches in an app.
-
Reactor - Reactor is
a fast and secure key-value library for Android.
-
Linx - Show logcat inside
the device for debug builds
-
Scalpel - View the
entire hierarchy in 3d in the phone.
-
Stetho - Debug
hierarchy and network from chrome.
-
Android Debug Database
- Android Debug Database is a powerful library for debugging databases
and shared preferences in Android applications.
-
Android Debug Bridge - ADB
- a command-line tool to assist in debugging Android-powered devices
-
ADB Enhanced - a
command-line wrapper around ADB for developers, so that, developers
don’t have to remember esoteric version-dependent commands
-
Pidcat - a colored
command-line ADB wrapper that only shows log entries for a specific
application package
-
AppSpector - Remote Android and iOS
debugging and data collection service. You can debug networking, logs,
SQLite and mock device’s geo location.
Wireless
-
SmartGattLib -
Simplifies the work with Bluetooth SMART devices (a.k.a. Bluetooth Low
Energy in Bluetooth 4.0).
Chat & Messaging
-
Applozic Android Chat SDK
- Android Chat and Messaging SDK for adding real time chat and in-app
messaging into your android application.
-
Qiscus SDK -
Qiscus SDK is a lightweight and powerful android chat library. Qiscus
SDK will allow you to easily integrating Qiscus engine with your apps to
make cool chatting application.
-
Kommunicate Live Chat SDK
- Kommunicate provides open source live chat sdk in android. Kommunicate
lets you add real time live chat and in-app messaging in your mobile
(android, iOS) applications and website for customer support.
-
CometChat Voice, Video and Text Chat SDK with UI
- Add voice, video and text chat to your app (and website) in minutes
using CometChat. CometChat’s SDK includes a complete ready UI so that
you don’t have to spend any time building one! That’s not all, CometChat
has out-of-the-box support for real-time translation, whiteboards,
screen sharing, friends sync, role based access control, credits
deduction and more.
-
Build a one-on-one Android chat app using Kotlin
- Build a one-one-one Android chat app in Kotlin within few minutes
using CometChat Pro. This tutorial discusses the features such as login,
getting list of contacts, user presence indicators, sending/receiving
messages etc.
-
Stream Chat -
Comprehensive SDK & Components for real-time chat, powered by
Stream.
-
Add Push Notifications to Your Android Chat App Using Kotlin
- Add push notifications in your Android chat apps in Kotlin with the
help of CometChat Pro and Firebase Cloud Messaging (FCM).
Custom Dialog
-
MediaRecorderDialog
- Custom Dialog to record audio, store it and play it in your phone.
-
HijriDatePicker
- offers a hijri (Islamic Calendar) Date Picker designed on Google’s
Material Design Principals For Pickers.
-
Noty - A simple library
for creating animated alerts/dialogs/warnings.
Version Checking
-
AppUpdater -
comprehensive and feature rich library, including support for checks at
Amazon and FDroid.
-
Gandalf - comprehensive
features and a “companion” iOS solution.
-
Siren - focused
feature set that mimicks the popular iOS library of the same name.
Supports Play and Amazon.
-
Fit - version checking
callback framework with no UI.
Date & Time
Runtime Permissions
-
Permission Dispatcher
- Simple annotation-based API to handle runtime permissions.
-
RxPermissions -
Android runtime permissions powered by RxJava.
-
NoPermission -
Simple Android library for permissions request. Consists of only one
class.
-
Ask-Permission
- Simple RunTime permission manager.
-
Gota - Simplifying
Android Permissions.
-
EasyPermissions
- EasyPermissions is a wrapper library to simplify basic system
permissions logic when targeting Android M or higher.
Payments
Other
-
Android Support library
- The Android Support Library package is a set of code libraries that
provide backward-compatible versions of Android framework API.
-
Google Play Services
- Library to access Google services, such as account syncing, Google+
(sharing, single sign-on), Google Maps, Location APIs, Google Play
Games, Cloud Messaging, Android Device Manager, and others.
-
Tape - A lightning fast,
transactional, file-based FIFO for Android and Java.
-
Guava: Google Core Libraries for Java
- Collections, caching, primitives support, concurrency libraries,
common annotations, string processing, I/O, and so forth.
-
Android Scripting -
Allows to run scripting languages on Android.
-
Android Priority Job Queue
- Implementation of a Job Queue to easily schedule jobs (tasks) that run
in the background, improving UX and application stability.
-
RateMeMaybe - Asks the
user if (s)he wants to open the Play Store to rate your application.
-
Easy Rating Dialog
- Lib provides a simple way to display an alert dialog for rating app.
-
ZXing Android-Integration -
Integration with Barcode Scanner via Intent.
-
Gradle Retrolambda Plugin
- Java 8 Lambdas on Android!
-
RxJava- RxJava –
Reactive Extensions for the JVM – a library for composing asynchronous
and event-based programs using observable sequences for the Java VM.
-
RxAndroid - Adds
minimum RxJava bindings for easy writing of reactive Android java code.
-
RxBinding-
RxBinding – RxJava binding APIs for Android UI widgets from the platform
and support libraries.
-
Caffeine - A
collection of utility classes that help make Android development faster.
-
AboutLibraries
- Automatically generates an About this app section, with a list of used
libraries.
-
AudioPlayerView
- A view that loads audio from an url and have basic playback tools.
-
andle - command line tool
help you sync dependencies, sdk or build tool version.
-
Typography - An
Android library that makes it easy to use custom fonts in views.
-
Calligraphy -
Custom fonts in Android an OK way.
-
transai - command line
tool help you manage localization string files.
-
Android-Link-Preview
- It makes a preview from an url, grabbing all the information such as
title, relevant texts and images.
-
Sensey - Detecting
gestures in a snap.
-
UserAwareVideoView
- A customized video view that will automatically pause video is user is
not looking at device screen!
-
Flexbox Layout -
FlexboxLayout is a library which brings the similar capabilities of CSS
Flexible Box Layout Module to Android.
-
Agile Boiler Plate
- The boiler plate is based on MVP architecture and it is fully based on
Dependency Injection design pattern using Dagger2.
-
Gradle buildSrcVersions
- A kotlin dsl to simplify dependencies management
-
Teller -
Teller facilitates the downloading, saving, and reading of the cached
data of your app. Keep your user’s data fresh and remove those annoying
loading screens!
Resources
Code examples
Podcasts
-
Fragmented is the Android
developer podcast where Donn Felker and Kaushik Gopal talk about
building good software and becoming better Android developers.
-
Android Developers Backstage
is a podcast by and for Android developers. Hosted by developers from
the Android engineering team, this show covers topics of interest to
Android programmers, with in-depth discussions and interviews with
engineers on the Android team at Google.
-
Android Dialogs
is a video based podcast, where they have bite-sized conversations with
people from the Android community.
-
The Context
a podcast about Android Development with Hannes Dorfmann, Artem
Zinnatullin and wonderful guests!
-
Talking Kotlin - A Podcast on
Kotlin and more.
-
Android Authority
is a weekly Android podcast hosted by Adam Doud, Joe Hindy, and Jonathan
Feist from the Android Authority team.
-
Android Central -
is a weekly Android podcast hosted by the Android Central team.
More lists of libraries
-
The Android Arsenal - Large
list of android libraries
-
Square libraries - Multiple high
quality libraries by square.
-
[Awesome Android @LibHunt](https://android.libhunt.com) - Your go-to Android Toolbox.
-
Android Store - Search
Android Libraries, Projects, and Tools.
Development Alternatives
My personal recommendation is (for now) to use the android api to build a
native app. Scala can help to build this native apps with cleaner code but
it adds to many methods (Multidex required). Kotlin is a modern language
with 100% interoperatibility with java projects
without multidex. But there are also use cases where
alternatives like cross-platform development can be useful.
C#
-
Xamarin -
Framework to create native iOS, Android, Mac and Windows apps in C#.
HTML, CSS and Javascript
-
PhoneGap - Open source framework by
Adobe to create cross platform mobile apps using HTML, CSS, and
JavaScript.
-
Titanium
- Open-source framework to create ‘native’ cross platform apps using
JavaScript.
-
NativeScript - An
open-source framework to build native iOS and Android apps with
JavaScript from a single code base.
-
React Native - A
framework for building native apps with React by Facebook.
-
Ionic Framework - A framework
to build hybrid apps with mobile-optimized HTML, CSS and JS with
AngularJS.
-
Apache Cordova -
Cordova based applications are, at the core, applications written with
web technology: HTML, CSS and JavaScript.
-
Capacitor - Build
cross-platform Native Progressive Web Apps for iOS, Android, and the
web. Very promising Cordova alternative.
Lua
-
Corona SDK - Framework to
create native iOS and Android Apps (especially Games).
Scala
-
Scaloid - Library for
less painful Android development with Scala.
-
Macroid - A modular
functional UI language for Android.
Groovy
Kotlin
-
Anko - DSL for Android
written in Kotlin by JetBrains.
-
Kotterknife -
Android view injection written in Kotlin based on ButterKnife
-
Android Kotlin Samples
- Some basic Android code samples written in Kotlin.
-
Kotlin coding puzzles
- Set of programming challenges thats helps to improve whiteboard coding
and problem-solving skills.
-
KAndroid - Lightweight
library providing useful extensions to eliminate boilerplate code in
Android SDK.
-
RxKotlin/Pocket - This
app help user to save links easily, and can export to Evernote as
weekly.
-
Android Clean Architecture - Kotlin
- A base project using the Uncle Bob’s clean architecture with Kotlin
language and the latest Android technologies.
-
Koin - Lightweight dependency
injection framework for Kotlin
Flutter
-
Flutter - Google’s mobile app SDK for
high-quality native interfaces for Android and iOS in very quick time.
-
awesome-android-performance
- A list of awesome Android tutorials, videos and tools for performance
optimization.
-
Booster - Booster is an
optimization toolkit for Android applications.
Other Awesome Lists
Other amazingly awesome lists can be found in the
awesome-awesomeness
list.
Contributing
Your contributions are always welcome! Please read the
contribution guidelines first.