Compiled & Curated List of Resources for Android Developers
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.
Learning what it takes to become one
-
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
- Training Videos on Caster.io will teach you everything you need to know in order to thrive and survive as an Android Developer.
-
Ebooks
- 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 shared by others to help you
-
General Lessons
- 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
-
Architecture
- Android Architecture Blueprints from Google.
-
Pro Dev Tips
-
Necessary Evaluation Criterias
- Android Audit : You Android app as a crime scene!!!
-
Valuable Insights shared by Popular Apps
- Instagram - 4 years later : Tyler Kieft shared how Instagram radically improved their Android App in 4 years.
-
Interesting Panel Dicussions
- The Journey of Android Engineers: Panel Discussion and Q&A : This panel discussion was part of a "Square Presents" event from February 18th, 2016.
Stuff I can read to revise my knowledge
Regular Updates, Banter & Articles
- 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
Podcasts
Design and UX
-
Material Design
- 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.
-
Navigation Drawer
- 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
-
Android Design Library
- CheeseSquare : Demos the new Android Design library.
Third-party Libraries
-
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.
-
Fitness
-
Lifecycle Handling
-
Logging
- 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.
-
Debugging
- 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.
-
Improved Architecture
- 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.
-
Location
- ReactiveLocation : Small library that wraps Google Play Service API in brilliant RxJava Observables reducing boilerplate to minimum.
-
Data Access Layer
- GreenDAO : Light & fast ORM solution for Android that maps objects to SQLite databases.
-
Code Generation / Reducing Boilerplate code
- 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.
-
Images Loading & Caching
-
Image Processing
- 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.
-
JSON Parsing and Serialization
- LoganSquare : Screaming fast JSON parsing and serialization library for Android.
-
Reactive Programming
- Agera : Agera is a set of classes and interfaces to help write functional, asynchronous, and reactive applications for Android.
-
MVP
- 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.
-
Graph/Charts
- 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.
-
Permissions
- Dexter : Android library that simplifies the process of requesting permissions at runtime.
-
Device Info
- EasyDeviceInfo : Android library to get device information in a super easy way.
-
Showing Hints
- HintCase : HintCase is a library for Android that will help you create really awesome hints/tips for your apps.
-
Custom Views and Animations
- 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.
-
Database
- greenDAO : Android ORM for your SQLite database.
-
Simplifying Communication between building blocks
- 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.
-
Fonts
- Calligraphy : Custom fonts in Android the easy way.
-
Communication
- Slyc Messaging : A messaging library for Android.
-
Crash Reports
Third-party tools
-
Debugging
- [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.
-
Static Code Analysis
- Infer : Facebook Infer is a static analysis tool - if you give Infer some Objective-C, Java, or C code, it produces a list of potential bugs.
-
Avoiding the dreaded 65K limit
- 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!
-
3rd Party Libs
- 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.
Third-party useful plugins/projects
-
Static code analysis
- 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
Rules, Code Style and Best Practices
Experts & Devs to follow
- Droids on Twitter : I have personally compiled this list.
Kotlin
- Kotlin For Android : Personally curated list of resources focusing only on Kotlin.
Rx
- RxJava for Android : Personally curated list of learning resources for this RxJava stuff and how it applies to Android.
Communities and User Groups
Tracking Droidcon events
-
Droidcon Italy Apr-2016 : Recap #1 by Jeroen and Recap #2 by Kelly.
Open Source
-
Bootstrap
-
Frameworks
- 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.
-
Other Awesome Apps out there
- Book Dash App
- [CleanFit] (https://github.com/Zireck/CleanFit) : A Material Design Nutrition App implementing Clean Architecture.
-
Other Programming languages for Android
- Kotlin : Kotlin is a Statically typed programming language for the JVM & Android. It's 100% interoperable with Java.
Other Collections
-
Resources Lists
-
Community
-
Security
Success is simple. Do what's right, the right way, at the right time ~ Arnold H. Glasow