In the article about choosing your Android developer we discussed several aspects that make development for this platform distinct. These aspects include fragmentation, multiple OS and system API versions and customization. However, these are all routine problems that should not influence your decision to take up Android development. To be able to handle these issues as a matter of course, you must acquire the fundamental skills I listed here as comprehensively as possible.
Keep in mind that this list of tutorials and examples will only give you the basics of Android development. The only way to advance further is through experience and long-term commitment. A large portion of knowledge also comes from recent articles and discussions. Don’t hesitate to ask your colleagues for advice as well as it can save you a lot of time.
Required skills, qualifications and things to know
- English (reading comprehension level at least)
- OOP principles, java, jvm, garbage collector, Gradle, Git
- Understanding and differentiating between MVC, MVP and MVVM
- RAM: how it works and how to use it
- Activity Lifecycle
- Fragment Lifecycle
- Material Design goals and principles
- Support Libraries
- Dagger 2 — the most popular Dependency Injection framework for Android
- ButterKnife. Used for field and method binding for Android; also great when you don’t feel like copypasting findById
- Retrofit. Used for working with Rest-API
- Moshi, Json converter
- Picasso, Image Loader Library
- OkHttp
- RxJava
- RxAndroid
- Timber, smart and easy-to-use logger
- Retrolambda. Allows using Java 8 lambda expressions
- Realm, nosql database
- StorIO, wrapper for sqllite
- Cupboard, wrapper for sqllite
- LeakCanary. Helps detect memory leaks
- U2020-MVP, a small example of our app architecture
Other desirable qualifications:
- Kotlin / C++ skills
Guides and tutorials for beginners
- Training for Android developers — original training documentation from Google for beginners in Android development
- Android Tutorial — a tutorial that informs about basic Android concepts and designations that makes reading further documentation a little bit easier
- A set of simple cheat sheets and various in-use examples of Android components. The tutorial might be somewhat dated, but a lot of things in the platform haven’t changed for years. In any case, a solid place for a beginner developer to start.
- Vogella Tutorials — Android expert Lars Vogel’s blog in English. Excellent detailed examples, algorithms, patterns and more.
- The Android Development for Beginners at Udacity is the most basic beginner course possible. The course is free, even though Udacity will try to make you press the payment button. Just take a closer look and poke around the screen to take the course free of charge.
Trends, blogs and sources to follow closely
It’s highly recommended to follow the latest trends in Android development, so be sure to take a look at the following list of big companies and even bigger people and subscribe to their Twitters, blogs and so on.
- Subreddit for Android-developers. Reddit — the best source of daily information in the Android world. Basically, you can substitute all the articles and links with a Reddit subscription, but only if you are committed to following the updates every day.
- Articles tagged Android on Medium. In particular, be sure to look out for updates by the people from this list
- Square Open Source:
- Developer from Square and Android Evangelist Jessie Wilson on Twitter
- Wilson`s oppo Jake Wharton also on Twitter
- Developers Google:
- Developer Android:
- Lars Vogel in social networks
- Xavier Ducrohet`s twitter
- Useful libraries list. Put together and constantly updated by people all around the world
- Examples of UI Design patterns: