The goal of this project is to provide a hand-picked collection of Android libraries, tools, open-source projects, books, blogs, tutorials - you name it.
This project will try to showcase only the best, most popular and well-tested resources that you will actually need and find useful rather than overwhelming you with a plethora of low-quality ones.
Happy learning.
��
Featured In
⭐
Spread Some
❤️
Contribution Guide
This project is open to all kinds of contribution in all of its categories. Together, we can make it the ultimate Android reference available for free, for everyone, forever.
For resource contribution, just follow the following format: [reference-name](link) - Description, and raise a Pull Request. If you want to contribute multiple resources, raise separate PRs for each of them. Please consider adding resources maintaining the default sorting order of the category, like alphabetical sorting.
If you have any suggestion for including more categories, feel free to open a Github issue for us to have more discussion on it. Please DO NOT contribute low-quality, spammy or self-promotional stuff. Let's keep this project clean and useful.
If you feel that a particular resource(s) listed here is not a good fit for this project and should be removed, feel free to let me know by opening an issue.
These are some of the best and the most popular libraries and utilities to boost up your Android development. This list is divided into several essential categories and only includes resources which have been battle-tested by a variety of developers over a long time.
Android Priority Job Queue - A Job Queue specifically written for Android to easily schedule jobs (tasks) that run in the background, improving UX and application stability
HelloCharts - Charts/graphs library for Android compatible with API 8+, several chart types with support for scaling, scrolling and animations
MPAndroidChart - A powerful Android chart view / graph view library, supporting line-bar-pie-radar-bubble-and candlestick charts as well as scaling, dragging and animations
Bugsee - Flight recorder for your iOSand Android apps
Bugsnag - Monitor application errors to improve customer experiences and code quality
CleverTap - A complete tool to track and analyze user activity in your Android app
Countly - End-to-end platform for web, mobile applications and game analytics
Fabric Crash Analytics - Fabric is a platform that helps your mobile team build better apps, understand your users, and grow your business
Firebase Crash Reporting - Google Firebase Crash Reporting for iOS and Android. It creates detailed reports of the errors in your app, groups them into issues based on having similar stack traces, and tagged by the severity of impact on your users
HockeyApp - Bring Mobile DevOps to your apps with beta distribution, crash reporting, user metrics, feedback, and powerful workflow integrations
InstaBug - The top apps in the world rely on Instabug for beta testing, user engagement and crash reporting
MixPanel - Deeply understand every user's journey with instant insights for everyone on mobile and web
Debugging
Android Debug Database - A library for debugging Android databases and shared preferences
Coil - An image loading library for Android backed by Kotlin Coroutines.
Fresco - An Android library for managing images and the memory they use
Glide - An image loading and caching library for Android focused on smooth scrolling
Picasso - A powerful image downloading and caching library for Android
Image Processing
Android GPU Image - Android filters based on OpenGL (idea from GPUImage for iOS)
Fresco Processors - An Android image processor library providing a variety of image transformations for Fresco
Glide Face Detection Transformation - An Android image transformation library providing cropping above Face Detection (Face Centering) for Glide
Glide Transformations - An Android transformation library providing a variety of image transformations for Glide
PhotoFiltersSDK - AndroidPhotoFilters aims to provide fast, powerful and flexible image processing instrument for creating awesome effects on any image media
Picasso Face Detection Transformation - An Android image transformation library providing cropping above Face Detection (Face Centering) for Picasso
Picasso Transformations - An Android transformation library providing a variety of image transformations for Picasso
Pollexor - An Android library, that can download unencrypted and encrypted images, crop, resize, apply filters and convert to another format.
Logging
Hugo - Annotation-triggered method call logging for your debug builds
Logger - Simple, pretty and powerful logger for Android
LoggingInterceptor - An OkHttp interceptor which pretty logs request and response data
Timber - A logger with a small, extensible API which provides utility on top of Android's normal Log class
Networking
Fast Android Networking - A Complete Fast Android Networking Library that also supports HTTP/2
Ion - Android Asynchronous Networking and Image Loading
OkHttp - An HTTP+HTTP/2 client for Android and Java applications
OkDownload - A Reliable, Flexible, Fast and Powerful download engine
PRDownloader - A file downloader library for Android with pause and resume support
Retrofit - Retrofit turns your REST API into a Java interface
Scarlet - A Retrofit inspired WebSocket client for Kotlin, Java, and Android
Volley - Volley is an HTTP library that makes networking for Android apps easier and most importantly, faster
Persistence
ActiveAndroid - Active record style SQLite persistence for Android
DBFLow - A blazing fast, powerful, and very simple ORM Android database library that writes database code for you
Firebase Realtime Database - Store and sync data with our NoSQL cloud database. Data is synced across all clients in realtime, and remains available when your app goes offline
greenDAO - greenDAO is a light & fast ORM solution for Android that maps objects to SQLite databases
ObjectBox - superfast object-oriented database with strong relation support. ObjectBox is embedded into your Android, Linux, macOS, or Windows app
Paper - Fast and simple data storage library for Android
Realm - Realm is a mobile database: a replacement for SQLite & ORMs
Room - Room provides an abstraction layer over SQLite to allow fluent database access while harnessing the full power of SQLite
RxCache - Reactive caching library for Android and Java
StorIO - Beautiful API for SQLiteDatabase and ContentResolver
SQL Brite - A lightweight wrapper around SQLiteOpenHelper which introduces reactive stream semantics to SQL operations
Testing
AssertJ - AssertJ is a library providing easy to use rich typed assertions
AssertJ Android - A set of AssertJ helpers geared toward testing Android
Cucumber - A sweeter Espresso. Never write your own IdlingResource again. Never manually turn off system animations again
Composer - Reactive Android Instrumentation Test Runner
DaggerMock - A JUnit rule to easily override Dagger 2 objects
Espresso - Write easy, simple and human-readable UI tests on Android
Hamcrest - Java (and original) version of Hamcrest
RxIdler - An IdlingResource for Espresso which wraps an RxJava Scheduler
RxPresso - Easy Espresso UI testing for Android applications using RxJava
Selendroid - Selendroid is a test automation framework which drives of the UI of Android native and hybrid applications (apps) and the mobile web with Selendroid
Truth - Assertion/Proposition framework for Java unit tests
UI Components
AdaptiveTableLayout - Library that makes it possible to read, edit and write CSV files
Flashbar - A highly customizable, powerful and easy-to-use alerting library for Android
Flexbox Layout - FlexboxLayout is a library project which brings the similar capabilities of CSS Flexible Box Layout Module to Android
JazzyViewPager - An easy to use ViewPager that adds an awesome set of custom swiping animations. Just change your ViewPagers to JazzyViewPagers, two more steps, and you're good to go
Litho - A declarative framework for building efficient UIs on Android
Material Dialogs - A beautiful, fluid, and customizable dialogs API
Material Drawer - The flexible, easy to use, all in one drawer library for your Android project
Material Search View - Cute library to implement SearchView in a Material Design Approach
Matisse - A well-designed local image and video selector for Android
Paris - Define and apply styles to Android views programmatically
PhotoView - Implementation of ImageView for Android that supports zooming, by various touch gestures
Remixer -Remixer is a framework to iterate quickly on UI changes by allowing you to adjust UI variables without needing to rebuild (or even restart) your app. You can adjust Numbers, Colors, Booleans, and Strings.
Subsampling Scale ImageView - Highly configurable, easily extendable view with pan and zoom gestures for displaying huge images without loss of detail. Perfect for photo galleries, maps, building plans etc.
ShimmerLayout - Memory efficient shimmering effect for Android applications by Supercharge
TapTargetView - An implementation of tap targets from the Material Design guidelines for feature discovery
RetroLambda - A Gradle plugin for getting Java lambda support in Java 6, 7 and android
RxAndroid – This module adds the minimum classes to RxJava that make writing reactive components in Android applications easy and hassle-free. More specifically, it provides a Scheduler that schedules on the main thread or any given Looper.
RxBinding - RxJava binding APIs for Android's UI widgets
RxJava - RxJava – Reactive Extensions for the JVM – a library for composing asynchronous and event-based programs using observable sequences for the Java VM
RxJava2Interop - Library to convert between RxJava 1.x and 2.x reactive types
RxLifecycle - Lifecycle handling APIs for Android apps using RxJava
RxLint - rxlint is a set of lint checks that check your RxJava code. There are currently three checks
RxRelay - RxJava types that are both an Observable and a Consumer
Slick - A Reactive MVP Framework which is Slick to use
Traceur - Easier RxJava2 debugging with better stacktraces
Open-Source Apps
There are lots of open-source apps available in the Android community for developers to learn from, but it becomes very difficult to find the ones which are actually worth your time and can help you learn a lot of things. This list (loosely categorized on the basis of your Android skills) can help you find the resource you always wanted.
Beginner
KISS - Lightning fast, open-source, < 200kb Android launcher
TimberX - Material theme music player that works across all form factors (phones, wear, auto, cast, assistant) and uses latest tools (Kotlin, Architecture components, Room, Databinding)
Tools
"A craftsman is only as good as his tools" - to level up your Android development workflow you need to have the right tools always ready in your toolbox. This list is here to provide you with hand-picked tools to significantly improve your Android development life.
Free
ADB IDEA - A plugin for Android Studio and Intellij IDEA that speeds up your day to day Android development
Android Asset Studio - A collection of tools to easily generate assets such as launcher icons for your Android app
Android Starters - Android starter based on MVP/Dagger2/RxJava2/Robolectric/Espresso/Mockito. It provides a generator to fast create a Android template project
Android Tool for Mac - One-click screenshots, video recordings, app installation for iOS and Android
Android Translator - A web-based tool to quickly and easily create translations for your Android app
Android Wifi ADB - IntelliJ/AndroidStudio plugin which provides a button to connect your Android device over WiFi to install, run and debug your applications without a USB connected
APK DeGuard - DeGuard reverses the process of obfuscation performed by Android obfuscation tools. This enables numerous security analyses, including code inspection and predicting libraries
CodeGlance - Embeds a code minimap similar to the one found in Sublime into the editor pane. Works with both light and dark themes using your customized colors for syntax highlighting
Codota - Supercharge your development workflow by getting great code examples directly in your IDE. The Codota plugin for IntelliJ lets you quickly find the best code examples for every API class or method
Dagger IntelliJ Plugin - An IntelliJ IDEA plugin for Dagger which provides insight into how injections and providers are used
Crowdin - Translate and manage the process better, faster, and smarter
GenyMotion - A unique platform to bring your Android app to perfection!
GitKraken - The most popular Git GUI for Windows, Mac AND Linux
IDE Scout - SQLScout is a plugin for Android Studio and IntelliJ IDEA that provides powerful, dedicated support for managing and debugging SQLite databases
JRebel for Android - Instantly update code and resourcesJRebel for Android is an IDE plug-in that accelerates the development of Android applications
NimbleDroid - Auto-test Your Android Apps for Critical Issues. No Coding Required
Zeplin - Design hand-off has never been easier. Generate styleguides and resources, automatically
Kotlin for Android
Kotlin, the new statically-typed programming language from JetBrains aims to make Android app development fun and enjoyable once again. It's like Java on steroids. Here is a list of some cool Kotlin resources for you to get started.
IDE shortcuts can really make your development workflow fast and smooth and Android Studio shines perfectly in this aspect. Ideally, you should make it a habit to not pick up the mouse to perform most of your actions and slowly migrate towards a mouseless-workflow. Here are some of the most useful shortcuts for you to get started.
(Currently, only Mac shortcuts are available. Windows and Linux shortcuts coming soon.)
Just like shortcuts, Live Templates can make your life a lot easier by generating tons of boring boilerplate code in a jiffy. Android Studio comes pre-loaded with a lot of these templates and here is a collection of some of the best ones for you to get started.
Toast - Creates a new Toast.makeText(context, "", Toast.LENGTH_SHORT).show(); toast
newInstance - Generates the static newInstance factory method in a Fragment with arguments
noInstance - Generates a private empty constructor to prevent instance creation
ViewConstructors - Generates the view constructors
Parcelable - Generates the boilerplate code for Pacelable implementation
fbc - Generates the findViewById code with the appropriate cast
const - Generates a constant according to Android's coding conventions
logd - Generates Log.d(TAG, ""); log. Check the other variants as well
logm - Generates a log with the current method name and its arguments
logr - Generates a log result of the current method
psf - Generates the boilerplate public static final. Also check psfi and psfs
key - Generates the key constant for a Bundle
sout - Prints a string to System.out. Also check soutm and soutp
visible - Sets a view's visibility to VISIBLE
gone - Sets view's visibility to GONE
todo - Adds a TODO comment. Also check stopship
Can't get enough of Live Templates? Here is a huge repository of lots of custom Live Templates for you to get your hands on.
Sites
If you want to keep yourself updated with all the latest Android development news, articles and tutorials then these are some of the best sites in the Internet where the good Androidy-things happen all the time.
AndroidPub - The Pub(lication) for Android & Tech, focused on Development
Android Arsenal - Android developer portal with tools, libraries, and apps
Android Design Patterns - Android Design Patterns is a website for developers who wish to better understand the Android application framework
Android Developers Official - The official Android development page provided by Google containing all the documentations and trainings
Android Hive - Androidhive is independent online publication that covers Android programming tutorials, app reviews and more
Android Niceties - A collection of screenshots encompassing some of the most beautiful looking Android apps
Android Weekly - Android Weekly is a free newsletter that helps you to stay cutting-edge with your Android Development
Antonio Leiva's Blog - Amazing blog on Android development, with special focus on Kotlin from Antonio Leiva
Caster.IO - Skyrocket your Android career with bite sized Android development video training
Codepath Android Cliffnotes - One of the best and most up-to-date crowdsourced resource for Android developers where you will find guides and tutorials about almost everything in Android
Dan Lew Codes - Thoughts on life, the universe and the mystery of it all; but actually mostly just code
Grokking Android - Getting Down to the Nitty Gritty of Android Development
Material Up - Get fresh Material Design inspiration daily
Medium's Google Developers Blog - Engineering and technology articles for developers, written and curated by Googlers. The views expressed are those of the authors and don’t necessarily reflect those of Google
Mindork's Blog - A regularly updated blog talking about various aspects of Android development in detail
Vogella - Learn almost everything about Android development in an easy way
Books
"Books are gifts that you can open again and again" - here is a curated list of some of the best books that can help you sharpen your Android, Java and overall programming skills. Pick one of them and just start reading.
Not too fond of reading books or blogs? You should definately try listening to some of these podcasts in your free time, while driving, cooking or doing the dishes.
The Context Podcast - Podcast about Android Development with Hannes Dorfmann, Artem Zinnatullin and wonderful guests
Sample Projects
If you want to get started with something quick-and-dirty, then sample projects are something which can help you a lot in understanding the concepts and technicalities in almost no time.
Android Clean Architecture Kotlin - This is a movies sample app in Kotlin, which is part of a series of blog posts I have written about architecting android application using different approaches
Android MVP Architecture - This repository contains a detailed sample app that implements MVP architecture using Dagger2, GreenDao, RxJava2, FastAndroidNetworking and PlaceholderView
Android MVVM Architecture - This repository contains a detailed sample app that implements MVVM architecture using Dagger2, Room, RxJava2, FastAndroidNetworking and PlaceholderView
Android Sunflower - A gardening app illustrating Android development best practices with Android Jetpack
Android Testing - A collection of samples demonstrating different frameworks and techniques for automated testing
Android UniversalMusicPlayer - This sample shows how to implement an audio media app that works across multiple form factors and provide a consistent user experience on Android phones, tablets, Auto, Wear and Cast devices
Bubble - ample app showcases the MVP pattern and Robert Martin's Clean Architecture approach
Clean Architecture Manifest - Description of the main principles and rules for building an Android application using Clean Architecture approach
CW Omnibus - Source code to omnibus edition of The Busy Coder's Guide to Android Development
Effective Android UI - Sample project created to show some of the best Android practices to work in the Android UI Layer
Espresso Samples - A collection of samples demonstrating different Espresso techniques
RxJava 2 Android Samples - RxJava 2 Android Examples - Migration From RxJava 1 to RxJava 2 - How to use RxJava 2 in Android
u2020 - A sample Android app which showcases advanced usage of Dagger among other open source libraries
VB Android App Quality - Sample android project using Gradle, with basic quality tools set up
Video Tutorials
Love learning from videos? Don't worry, we have got you covered. This list contains some of the most useful and informative video tutorials to boost up your Android development skills to the next level.
Advanced Android App Development (Udacity) - This course will guide you through the process of productionizing an app, using Sunshine, the weather app we built in Developing Android Apps
Android Developers (YouTube) - Google's official Android development channel on Youtube for all the tutorials, demos, events, etc
Design Patterns Tutorials (YouTube) - Learn about all the Java design patterns in details from these quick and easy video tutorials by Derek Banas
Developing Android Apps (Udacity) - As the first course in the Android Developer Nanodegree, Developing Android Apps is the foundation of our advanced Android curriculum. This course blends theory and practice to help you build great apps the right way
Firebase in a Weekend: Android (YouTube) - In this course, you’ll learn how to use Firebase. Firebase is app development platform that provides developers a variety of tools and a scalable infrastructure to build high quality apps
If you are somebody who loves to engage with other fellow developers and surround yourself with all the latest news, ideas and happenings, then this list is just for you. Start following some of the best and most active Android and Java developers on Twitter.
Android Developers - News and announcements for developers from the Android team
Annyce Davis - #AndroidDev, Conference #Speaker, and #Instructor
Chet Haase - Willful misinterpretation. Android. Comedy. That kind of stuff
Chris Banes - #Android Developer Relations @Google
Chiu-Ki Chan - @monkeywrite & @heartcollage creator, Android developer, public speaker (@techspeakdigest), sketchnoter, language lover, world traveller
Cyril Mottier - Mobile Product Devsigner & Android expert. ex-Head of Mobile & Web @captaintrain. #UI #UX #Design
Dan Lew - Android @Trello/@Atlassian, gamer and geek. The views expressed in these tweets are yours and your employer's
Donn Felker - Best Selling Mobile Dev Book Author. Android GDE. Android Consultant. Co-Host of the @fragmentedcast. Teaching Android at @caster_io. Remote workforce advocate
Dave Smith - I write, speak, and build...mostly with Android+Embedded. IoT @ Google. Recovering spark-chaser
GenyMotion - The most complete Android emulation platform (desktop, cloud, on-demand)
��
• Trusted by 5M+ developers, testers & enthusiasts
��
• Made by @Genymobile in France
Huyen Tue Dao - Native Android Code Monkey: monkey code, monkey break, monkey debug, monkey iterate. Randomly typing on @Trello for @Atlassian. GDE. ½ of Android Dialogs
Jesse Wilson - Android and jokes. Sometimes also inclusivity & sustainability
Joe Birch - Android Engineer @Buffer. Instructor @caster_io & @Pluralsight. Public Speaker, Android Tinkerer
Kaushik Gopal - I'm ½ of the @FragmentedCast and a Google Developer Expert. I build Android apps for @Instacart. I watch atleast 1 movie every week and Jon Stewart is my hero
Kristin Marsicano - Android Developer and Instructor @bignerdranch. Co-author of Android Programming: The Big Nerd Ranch Guide. Always learning
Lars Vogel - Eclipse platform UI and e4 project lead. Android and Eclipse RCP developer. CEO of vogella GmbH, book author, speaker, trainer and proud Dad and husband
Rebecca Franks - Android Engineering Lead at @DVT_Corporate | Google Developer Expert for #Android and #IoT #GDE | Made @bookdash app | I
❤
baking and travelling
Reto Meier - Developer Advocate at Google, Android developer, and author of Professional Android Application Development series. Views expressed are mine alone
Romain Guy - Android Graphics team manager @Google, Photography
Roman Nurik - Designer on @Firebase at @Google · Android/Web Developer
Ryan Harter - Freelance Android Developer, Google Developer Expert, community leader
Tor Norbye - Tor Norbye is the tech lead for Android Studio at Google
Ty Smith - Android at @Uber Dev Platform - Google Developer Expert - @specializedtype investor - @sfaug and @droidconsf organizer - ex @twitter @fabric @evernote @zagat
Zarah Dominguez - Having a love/hate affair with the little green 'droid at @domaincomau; Google Developer Expert for Android; a walking contradiction
Game Development
If you aspire to develop amazing games for the Android platform, we haven't forgotten about you. Here are some of the best resources which can help you in kickstarting your Android game development career.
Copyright 2017 aritraroy
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.