Java 🚀 Ultimate Android Reference - Your Road to Become a Better Android Developer
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. 👍
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
Firebase Job Dispatcher - The Firebase JobDispatcher is a library for scheduling background jobs in your Android app. It provides a JobScheduler-compatible API that works on all recent versions of Android (API level 9+) that have Google Play services installed
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 iOS
and 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
MixPanel - Deeply understand every user's journey with instant insights for everyone on mobile and web
InstaBug - The top apps in the world rely on Instabug for beta testing, user engagement and crash reporting.
Gather feedback from your beta testers and have live conversations with your users
Debugging
Android Debug Database - A library for debugging android databases and shared preferences
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 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 Transformations - An Android transformation library providing a variety of image transformations for Picasso
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
Bridge - A simple but powerful HTTP networking library for Java. It features a Fluent chainable API, powered by Java URLConnection classes for maximum compatibility and speed
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
Retrofit - Retrofit turns your REST API into a Java interface
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
Paper - Fast and simple data storage library for Android
Realm - Realm is a mobile database: a replacement for SQLite & ORMs
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
Calabash - Automated Functional testing for Android based on cucumber
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
PhotoView - Implementation of ImageView for Android that supports zooming, by various touch gestures
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
TapTargetView - An implementation of tap targets from the Material Design guidelines for feature discovery
EventBus - Android optimized event bus that simplifies communication between Activities, Fragments, Threads, Services, etc. Less code, better quality
RetroLambda - A gradle plugin for getting java lambda support in java 6, 7 and android
RxJava - RxJava – Reactive Extensions for the JVM – a library for composing asynchronous and event-based programs using observable sequences for the Java VM
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 Androdi skills) can help you find the resource you always wanted.
Beginner
KISS - Lightning fast, open-source, < 200kb Android launcher
"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 Tool for Mac - One-click screenshots, video recordings, app installation for iOS and Android
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
Battery Historian - Battery Historian is a tool to analyze battery consumers using Android "bugreport" files
Buck - A fast build system that encourages the creation of small, reusable modules over a variety of platforms and languages
Butterknife Zelezny - Android Studio plug-in for generating ButterKnife injections from selected layout XML
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
DevKnox - Autocorrect Security Issues As You Write Code
Dex Count Gradle Plugin - A Gradle plugin to report the number of method references in your APK on every build
Dex Method Counts - Command-line tool to count per-package methods in Android .dex files
DTO Generator - Data Transfer Object(DTO) generator that generates Java classes from the given feed
DPI Love - Get accurate DPI information on a wide range of Android devices
Drawable Optimizer - Gradle plugin to optimize png files and reduce resultant apk size within an Android project
Dry Run - Try any android library hosted online directly from the command line
FindBugs - Powerful static code analysis tool for Java and Android
FlatIcon - The largest database of free icons available in PNG, SVG, EPS, PSD and BASE 64 formats
Gradle Please - Quick and easy way to build Gradle based libraries in Android
Infer - A static analyzer for Java, C, C++, and Objective-C
JSONBlob - JSON Blob is a web-based tool to create, edit, view, format, and share JSON
JSONSchema2POJO - Easy and quick way to convert your JSON to Java objects
KeyPromoter - Shows to user how easy he can make same action using only keyboard(menus and toolbar button mouse clicks initiates shortcut display)
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 resources
JRebel 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
Android Studio Shortcuts
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.)
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.
Android Arsenal - Android developer portal with tools, libraries, and apps
Andorid 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
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
Reddit's AndroidDev - News for Android developers with the who, what, where when and how of the Android community. Probably mostly the how
Styling Android - Learn perfecting your Android UI and UX development skills
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.
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 Architecture - A collection of samples to discuss and showcase different architectural tools and patterns for Android apps
Android MVP Architecture - This repository contains a detailed sample app that implements MVP architecture using Dagger2, GreenDao, RxJava2, FastAndroidNetworking and PlaceholderView
Android Testing - A collection of samples demonstrating different frameworks and techniques for automated testing
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
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
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
DroidSmith - 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
jessewilson - Android and jokes. Sometimes also inclusivity & sustainability
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 - Android at @Uber Dev Platform - Google Developer Expert - @specializedtype investor - @sfaug and @droidconsf organizer - ex @twitter @fabric @evernote @zagat
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.