I am trying to compile and curate a collection of resources which can be pretty handy for Android Developers. Something like an aggregator for all the relevant and vital pieces of information for our fraternity.
Note : This is an on-going list and I will keep updating it ! Feel free to comment or submit a PR for changes or additions.
-
Official resources from Google to get you started with designing and developing for Android.
-
Guide about bare bones version of becoming an Android Dev.
-
Code Path is the central crowdsourced resource for complete and up-to-date practical Android developer guides for any topic.
-
This post will help you build your app from scratch and guide you through ideation to publishing on Play Store.
-
Self-Guided Learning Plan : lists down all courses which are free except for (*). Most are video courses, some useful websites are listed.
-
- Training Videos on Caster.io will teach you everything you need to know in order to thrive and survive as an Android Developer.
-
- The Busy Coder's Guide to Android Development
- Android Programming: The Big Nerd Ranch Guide
- Android Activity Book & Android Theory Book can teach you the basics of Android development so you can start creating high quality applications quickly with high quality.
-
- Best practices in Android development is a collection of lessons learned from Android developers in Futurice.
- This is the app that follows all principles of Android Development Culture Document.
- Some of the best practises shared by experts as blog posts : June Edition
-
- Android Architecture Blueprints from Google.
- Getting Clean, Keeping Lean from Joe Birch of Buffer.
-
- Dev Tips from Sebs
- Internet of terms
- 30 things that experience made me learn the hard way : Some of the things learned along the way that Cesar wants to share with you.
-
- Android Audit : You Android app as a crime scene!!!
-
- Instagram - 4 years later : Tyler Kieft shared how Instagram radically improved their Android App in 4 years.
-
- The Journey of Android Engineers: Panel Discussion and Q&A : This panel discussion was part of a "Square Presents" event from February 18th, 2016.
-
- [Developing for the Rest of the World] (https://speakerdeck.com/ericfrohnhoefer/developing-for-the-rest-of-the-world) : This talk provide tips for developing apps intended for an international audience.
-
- 50 Tips, Tricks & Resources you should be familiar with : This article list down helpful tips, tricks, shortcuts and resources for Android Studio that will improve your overall efficiency and performance.
- Android Studio Tips of the day is a series shared by Philippe Breault (GDE). Roundup #1, Roundup #2 and Roundup #3 (It's more about debugging!).
- Fragmented Podcast
- Android Dev Digest
- Android Weekly
- Android Developers
- News, tips, and tricks directly from the Android team
- Android Community
- Android Dialogs
- Grokking Android
- Styling Android
- AndroidDev Reddit
- Novoda Blog
- Droidtalks is a very nice collection of talks about Android Development organized by Topics, Events and Creators.
-
- Material Design Glossary : Speak Intelligently About Your App Anatomy (Material Design Glossary).
- Material Design everywhere using the Android Support Libs : Mike Wolfson highlights some important components of these libraries and demonstrates how to use them effectively.
-
- A series of articles digging on the Material Design Navigation Drawer and a github project to see the code how it's done.
- Playing With NavigationView
- Fragment Navigation Drawer
-
-
- CheeseSquare : Demos the new Android Design library.
-
- Keylines : Painlessly build and ship apps that conform to the Material design specifications.
-
-
This represents the List of "must have" libraries that are extremely popular and are often used in almost any Android project.
-
Android Arsenal is a Portal for Android tools and libraries.
-
Discover top Android libraries based on their popularity in high-ranking apps on Libtastic.
-
Open Source libraries from Square (We just can't thank them enough !)
-
A curated list 1 & list 2 of awesome Android UI/UX libraries.
-
Stuff about Writing and Publishing Libraries
- Jitback.io : Easy to use package repository to publish your JVM and Android libraries on Git.
-
- Hugo
- Lynx : see LogCat output right in the app, useful for QAs and developers
- DebugOverlay : A tiny window overlay to log app internal on top of your android app.
- Timber : A logger with a small, extensible API which provides utility on top of Android's normal Log class.
- Frodo : Android Library for Logging RxJava Observables and Subscribers.
- Hugo : Annotation-triggered method call logging for your debug builds.
-
- LeakCanary : detect memory leaks without IDE! Must have for QAs and developers.
- TinyDancer — see frame rate right on your screen. Must have for QAs and developers.
-
- LightCycle : LightCycle is an Android library that helps break logic out of Activity and Fragment classes into small, self-contained components called LightCycles. It is provided by Soundcloud.
-
- ReactiveLocation : Small library that wraps Google Play Service API in brilliant RxJava Observables reducing boilerplate to minimum.
-
- GreenDAO : Light & fast ORM solution for Android that maps objects to SQLite databases.
- Apollo-Android : A strongly-typed, caching GraphQL client for Android, written in Java.
-
- AutoValue : Value types in Java are hard. Well, not hard, but tedious. Google’s AutoValue library makes them much easier. This article provides nice overview.
- Auto Parcel : AutoValue extension that enables Parcelable values generation.
- Auto Value Json : AutoValue extension to add Gson De/Serializer support.
- Esperando : Easy SharedPreference Engine for Android. Helps in avoiding a lot of boilerplate code & it uses an Annotation Processor to generate a class implementing the defined interface at compile time.
- FuckBoilerplate : Collection of several resources to reduce boilerplate.
- Dart : Extra "injection" library for Android which uses annotation processing to generate code that does direct field assignment of your extras.
- Icepick : Android library that eliminates the boilerplate of saving and restoring instance state. It uses annotation processing to generate code that does bundle manipulation and key generation, so that you don't have to write it yourself.
- DeepLinkDispatch : A simple, annotation-based library for making deep link handling better on Android.
- SqlDelight : Generates Java models from CREATE TABLE statements.
-
- AndroidPhotoFilters : AndroidPhotoFilters aims to provide fast, powerful and flexible image processing instrument for creating awesome effects on any image media.
- uCrop : This project aims to provide an ultimate and flexible image cropping experience.
- 9-Patch-Resizer : Automatically resizes and compresses images.
- GIMP : Open source image editing
- Inkscape : Open source vector image editing.
- Optipng : Optimize PNG files.
-
- 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.
- Easy Video Player : Easy Video Player is a simple but powerful view that you can plugin to your apps to quickly get video playback working.
-
- LoganSquare : Screaming fast JSON parsing and serialization library for Android.
- Moshi : Moshi is a modern JSON library for Android and Java from @square. It makes it easy to parse JSON into Java objects.
-
- Agera : Agera is a set of classes and interfaces to help write functional, asynchronous, and reactive applications for Android.
-
- Nucleus : A simple Android library, which utilizes the Model-View-Presenter pattern to properly connect background tasks with visual parts of an application.
- Mosby : A Model-View-Presenter library for modern Android apps.
- DroidMVP : Small Android library to help you incorporate MVP, Passive View and Presentation Model patterns in your app.
-
- 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.
- Hellochart : Charts/graphs library for Android compatible with API 8+, several chart types with support for scaling, scrolling and animations.
-
- Dexter : Android library that simplifies the process of requesting permissions at runtime.
-
- EasyDeviceInfo : Android library to get device information in a super easy way.
-
- HintCase : HintCase is a library for Android that will help you create really awesome hints/tips for your apps.
-
- Depth-Lib : A library that gives depth to Views.
- Elegant-Underline : Exploring possible implementations for better underline text decoration on Android. There's a detailed article on this as well.
- Focus Resize : A custom animation with scroll listener to recycler views.
- DiscreteSlider : A slider that allows a user to select a value at one of the specified tickmarks.
- Page Indicator View : An page indicator for Android ViewPager.
- Epoxy : Epoxy is an Android library for building complex screens in a RecyclerView.
- Groupie : Groupie helps you display and manage complex RecyclerView layouts.
- Lottie : Kib from Airbnb to render After Effects animations natively on Android and iOS. Here's a blog post explaining how to use it.
-
- Comparison popular ORM libraries : A test between a few of the popular libraries running a speed test on how fast they load and save data.
- greenDAO : Android ORM for your SQLite database.
-
- EventBus : Android optimized event bus that simplifies communication between Activities, Fragments, Threads, Services, etc. Less code, better quality. There's a nice comparison between Otto and EventBus.
- Otto : An enhanced event bus with emphasis on Android support.
- RxAndroid : RxJava bindings for Android.
-
- Calligraphy : Custom fonts in Android the easy way.
-
- Slyc Messaging : A messaging library for Android.
-
- Espresso : Use Espresso to write concise, beautiful, and reliable Android UI tests. It's part of the Android Testing Support Lib.
- OkReplay : Automatically record and replay OkHttp network interaction through your Android application.
- Betamax : Betamax is a tool for mocking external HTTP resources such as web services and REST APIs in your tests.
- Test-Butler : Reliable Android testing, at your service. Provides a reliable solution that would let us rely on our tests to inform us when there was a problem with the app, not the testing environment.
-
- [Stetho](a powerful new debugging platform for Android) : A powerful new debugging platform for Android developed by Facebook. It can help in Inspecting Network Connections, Querying SQLite Databases or Manipulating Your App’s Preferences.
- CharlesProxy : Charles is an HTTP proxy / HTTP monitor / Reverse Proxy that enables a developer to view all of the HTTP and SSL / HTTPS traffic between their machine and the Internet.
- Android Debug Database : Android Debug Database allows you to view databases and shared preferences directly in your browser in a very simple way.
-
- Methods Count : Android libraries are great, but they come at a cost. Use this tool to avoid the dreaded 65K method limit of the DEX file format!
-
- Shape Shifter : For those who want to integrate AnimatedVectorDrawables in the apps. This tool makes it quite easy to create property animations for each individual layer and organize them via a timeline. Alex explained the features here.
-
- Crowdin : Translate and manage the process better, faster, and smarter. Crowdin is the tool that will make localization a part of your development quickly and with less effort.
-
- For keeping a check on latest version of 3rd party libs added in Gradle, you can use Gradle,please in order to avoid checking individually on the official pages. Another way is to use gradle-version-plugin which is a Gradle plugin to discover dependency updates.
- Android Library Finder : Search through thousands of android libraries that can help you scale your projects elegantly.
-
- Climb-Tracker : Climbing tracker app for Android and Android Wear, using Firebase.
- Vysor : It offers a nice Chrome Extension which allows you to easily view and control your Android on your computer. You can use it to show demo with screen sharing.
- Redex : Android bytecode (dex) optimizer originally developed at Facebook. An APK optimized by ReDex should be smaller and faster than its source.
-
-
Jack and Jill : New Android toolchain that comprises a compiler from Java programming language source to the Android dex file format. Very nice post explaining it.
-
From Code to Dex : It tells you about the journey that your app’s code goes through, on its way to becoming part of dex files.
-
-
- Talk by Jack Wharton on Exploring Java's Hidden Costs
-
- How to set up a Continuous Integration server for Android development : It summarizes the installation steps for any developer that may be interested in setting up its own CI server involving Ubuntu + Jenkins + SonarQube.
-
- Android-Check : Static code analysis plugin for Android project. (Checkstyle, PMD)
- Eror Prone : Catch common Java mistakes as compile-time errors. Developed by Google.
- android-project-example : It is project for fast create android applications, using Checkstyle, FindBugs, PMD and lint.
- A good collection can be found here as well.
- Android Lint Checks
- Code Style for Contributors
- Google Java Style
- Android Project Guidelines from Buffer
- Java Code Styles from Square : IntelliJ IDEA code style settings for Square's Java and Android projects.
- Android Style
- Droids on Twitter : I have personally compiled this list.
- Kotlin For Android : Personally curated list of resources focusing only on Kotlin.
- RxJava for Android : Personally curated list of learning resources for this RxJava stuff and how it applies to Android.
-
Droidcon Italy Apr-2016 : Recap #1 by Jeroen and Recap #2 by Kelly.
-
- Rosie : Android framework to create applications following the principles of Clean Architecture.
- Conductor : A small, yet full-featured framework that allows building View-based Android applications.
-
- Book Dash App
- [CleanFit] (https://github.com/Zireck/CleanFit) : A Material Design Nutrition App implementing Clean Architecture.
-
- Kotlin : Kotlin is a Statically typed programming language for the JVM & Android. It's 100% interoperable with Java.
-
- Awesome Android
- Android Architecture
- RxAndroidLibs : A curated list of libraries to aid reactive development on Android.
Success is simple. Do what's right, the right way, at the right time ~ Arnold H. Glasow