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:
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.
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.
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.
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.
Media Picker
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.
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.
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
Retrofit - Retrofit turns your REST API into a Java interface.
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.
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.
EasyPermissions - EasyPermissions is a wrapper library to simplify basic system permissions logic when targeting Android M or higher.
Payments
Square In-App Payments for Android - Integrate Square payments into your mobile app with Digital wallet and stored card support for quick checkout.
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 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.
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.
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!
Developing for Android - A series of articles from Googler Chet Hasae and others, answering most commonly asked question: “What are some of the important rules to keep in mind when developing Android applications?”.
Google Developers Training - Google Developers Official Training page has list of various useful learning resources for beginner as well seasoned developer.
Mindorks - Become a complete and happy Android developer.
AndroidVille - Become a better Android Engineer. A website dedicated to Android Development covering advanced topics such as RxJava, Android Zygote and much more.
Code examples
Android Architecture Blueprints - The Android Architecture Blueprints project demonstrates strategies to help solve or avoid common android problems.
Android Modular Architecture - Android Sample App using modular, clean, scalable, testable Architecture written in Kotlin following the best practices with Jetpack.
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!
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.
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.
Performance
awesome-android-performance - A list of awesome Android tutorials, videos and tools for performance optimization.
Booster - Booster is an optimization toolkit for Android applications.
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
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:
Content
Emulators
Libraries
Charts
Cloud Services
Data binding
Dependency Injection
Android Services
Game Development
Security
GUI
Paginate
ActionBar
Navigation
Animations
Images
Inputs
View Pagers
Loading Images
Media Picker
Video
Camera
Field Validation
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
Logger
Notifications
Database
ORM
REST
Testing
Tracking
Maps
Utility
Debugging Tools
Wireless
Chat & Messaging
Custom Dialog
Version Checking
Date & Time
Runtime Permissions
Payments
Other
Resources
Code examples
Podcasts
More lists of libraries
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#
HTML, CSS and Javascript
Lua
Scala
Groovy
Kotlin
Flutter
Performance
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.