/awesome-android

A curated list of awesome Android packages and resources.

Creative Commons Zero v1.0 UniversalCC0-1.0

Awesome Android Awesome

A curated list of awesome Android libraries and resources. For general Java libraries have a look at awesome-java.

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.

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.
  • RoboBinding - A data-binding Presentation Model (MVVM) framework for the Android platform.
  • 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

  • RoboGuice - Dependency injection framework for Android.
  • Dagger - Dependency injection framework for Java and Android.
  • Dagger 2 - A fast dependency injector for Android and Java.
  • Butter Knife - View "injection" library for Android.
  • AndroidAnnotations - Java annotations with dependency injection at compile time.

Game Development

  • AndEngine - Free, Fun and Fast Android 2D OpenGL Game Engine.
  • 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

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.
  • AndroidQuery - Android-Query (AQuery) is a light-weight library for doing asynchronous tasks and manipulating UI elements in Android.
  • Flow - Library that helps with describing an app as a collection of moderately independent screens.
  • Crouton - Context sensitive notifications for Android
  • DragSortListView - Extension of the Android ListView that enables drag-and-drop reordering (No longer maintained).
  • 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.
  • 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+
  • 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.

ActionBar

Navigation

  • SlidingMenu - Library to create applications with slide-in menus.
  • SlidingTutorial - Simple library that helps to create awesome sliding android app tutorials.
  • PagerSlidingTabStrip - An interactive indicator to navigate between the different pages of a ViewPager.
  • Page View indicator - Support for horizontally scrolling ViewPager.
  • MaterialDrawer - Simple take on a material design navigation drawer.

Animations

Images

  • 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.

Inputs

  • 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.
  • Emojicon - Adds emoticons to your app

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.
  • MediaPicker - Android Libary that lets you to select multiple images, video or voice for Android

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.

Crash monitoring

  • Fabric Crashlytics - Easy crash reporting solution.
  • HockeyApp - Distribution, Crash Reports, Feedback and Analytics
  • Splunk MINT - Monitoring, Crash Reports, Real tima data, Statistic.
  • Bugsnag - Cross platform error monitoring.
  • Catcho - No Force Close any more.

Networking

  • Ion - Good networking library for android.
  • OkHttp - An HTTP+SPDY client for Android and Java applications.
  • Asynchronous Http Client - An Asynchronous HTTP Library.
  • 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.
  • AndroidNetworking - Android Networking is a powerful library for doing any type of networking in Android applications.

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.
  • Realm - The alternative to SQLite and ORMs: Simple, modern and fast! Object oriented API and multi platform support.
  • RestorableSQLiteDatabase - A wrapper to replicate android's SQLiteDatabase with restoring capability.

ORM

  • requery - Compile time ORM and SQL query library for Java & Android.
  • GreeDAO - 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

  • Retrofit - Retrofit turns your REST API into a Java interface.

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.

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-engagment 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
  • Clusterkraf - Clustering library for the Google Maps Android API v2

Utility

  • 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.
  • Gota - Simplifying Android Permissions.

Debugging Tools

  • 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.

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.

Custom Dialog

  • MediaRecorderDialog - Cutome Dialog to recoder 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.

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.
  • 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.
  • 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.

Resources

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 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.
  • Reapp.io - Cordova based framework to build hybrid apps with mobile-optimized HTML, CSS and JS with ReactJS.

Lua

  • Corona SDK - Framework to create native iOS and Android Apps (especially Games).

Scala

  • Scala on Android - Introduction to Scala on Android.
  • 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 writen in Kotlin based on ButterKnife
  • Android Kotlin Samples - Some basic Android code samples writen in Kotlin.
  • 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.

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.