Home

Awesome

UltimateAndroidReference

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. :+1:

Featured In :star:

Android Weekly AndroidDev Digest AndroidDev Digest CodePath Android Cliffnotes

Spread Some :heart:

GitHub stars GitHub forks GitHub watchersGitHub followers Twitter Follow

Open Source Love License

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.

Categories

Libraries

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.

Animations

Background Processing

Charts

Crash Reporting & Tracking

Debugging

Dependency Injection

Image Loading

Image Processing

Logging

Networking

Persistence

Testing

UI Components

Utilities

Utilities (Advanced)

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

Intermediate

Expert

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

Free (+ Pro)

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.

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

Must-Know Shortcuts:

Never-ever-ever forget these shortcuts.

DescriptionShortcut
Find everything (like files, classes, symbols, etc.)<kbd>Shift</kbd> + <kbd>Shift</kbd>
Show a list of automatic fixes and IDE suggestions at the cursor<kbd>Option</kbd> + <kbd>Enter</kbd>
Rename all copies of the variable/method/class at the cursor<kbd>Shift</kbd> + <kbd>F6</kbd>
List all usages of the variable/method/class at the cursor<kbd>Command</kbd> + <kbd>Option</kbd> + <kbd>F7</kbd>
Generate code (like getters, setters, constructors, method overrides)<kbd>Command</kbd> + <kbd>N</kbd>
Search for any action in Android Studio<kbd>Command</kbd> + <kbd>Shift</kbd> + <kbd>A</kbd>
Find text occurencesin the current file (Enter = cycle through results, Esc. = cancel)<kbd>Command</kbd> + <kbd>F</kbd>
Show the list of recently used files in the IDE<kbd>Command</kbd> + <kbd>E</kbd>
Run the app or test<kbd>Control</kbd> + <kbd>R</kbd>

Frequently Used Shortcuts:

You will surely need these quite often.

DescriptionShortcut
Search for and open any file by name<kbd>Command</kbd> + <kbd>Shift</kbd> + <kbd>O</kbd>
Move a piece of code in upward/downward direction<kbd>Command</kbd> + <kbd>Shift</kbd> + <kbd>Up/Down</kbd>
View javadoc of symbol at cursor in pop-up<kbd>F1</kbd>
View definition of method at cursor in pop-up<kbd>Command</kbd> + <kbd>Y</kbd>
Search for and list any occurrences of text<kbd>Command</kbd> + <kbd>Shift</kbd> + <kbd>F</kbd>
Comment/Uncomment all selected lines (also works in xml files)<kbd>Command</kbd> + <kbd>/</kbd>
Show available parameters for current method (must be inside parentheses)<kbd>Command</kbd> + <kbd>P</kbd>
Format code to match Android Studio's default style<kbd>Command</kbd> + <kbd>Option</kbd> + <kbd>L</kbd>
Delete a complete line at one go<kbd>Command</kbd> + <kbd>Delete</kbd>
Navigate through classes and methods<kbd>Command</kbd> + <kbd>Left Click</kbd>

Useful Shortcuts:

These can help you level up your development workflow.

DescriptionShortcut
Go to next highlighted error in current file<kbd>F2</kbd>
Go to the declaration of the variable/method/class at cursor<kbd>Command</kbd> + <kbd>B</kbd>
Go to given line number in current file<kbd>Command</kbd> + <kbd>L</kbd>
Duplicate current line<kbd>Command</kbd> + <kbd>D</kbd>
Search for and go to any symbol (incl. variables and methods)<kbd>Command</kbd> + <kbd>Option</kbd> + <kbd>O</kbd>
Show class structure in pop-up<kbd>Command</kbd> + <kbd>F12</kbd>
List recently edited files in pop-up<kbd>Command</kbd> + <kbd>Shift</kbd> + <kbd>E</kbd>
View full refactor menu<kbd>Control</kbd> + <kbd>T</kbd>
Collapse/expand all code blocks<kbd>Command</kbd> + <kbd>Shift</kbd> + <kbd>+/-</kbd>
Collapse/expand individual code block<kbd>Command</kbd> + <kbd>+/-</kbd>
Insert new line below current cursor position<kbd>Shift</kbd> + <kbd>Enter</kbd>
Complete statement (add braces, parentheses, semi-colon)<kbd>Command</kbd> + <kbd>Shift</kbd> + <kbd>Enter</kbd>

Android Studio Live Templates

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.

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.

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.

Podcasts

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.

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.

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.

Twitter Profiles

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.

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.

Frameworks

Open-Source Games

:heart: Found this project useful?

If you found this project useful, then please consider giving it a :star: on Github and sharing it with your friends via social media.

Project Maintained By

Aritra Roy

Android & Backend Developer. Blogger. Designer. Fitness Enthusiast.

<a href="https://play.google.com/store/apps/details?id=com.codexapps.andrognito&hl=en"><img src="https://github.com/aritraroy/social-icons/blob/master/play-store-icon.png?raw=true" width="60"></a> <a href="https://blog.aritraroy.in/"><img src="https://github.com/aritraroy/social-icons/blob/master/medium-icon.png?raw=true" width="60"></a> <a href="https://stackoverflow.com/users/2858654/aritra-roy"><img src="https://github.com/aritraroy/social-icons/blob/master/stackoverflow-icon.png?raw=true" width="60"></a> <a href="https://twitter.com/aritraroy"><img src="https://github.com/aritraroy/social-icons/blob/master/twitter-icon.png?raw=true" width="60"></a> <a href="http://linkedin.com/in/aritra-roy"><img src="https://github.com/aritraroy/social-icons/blob/master/linkedin-icon.png?raw=true" width="60"></a>

License

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.