The start
A good starting point is:http://developer.android.com/training/index.html
I don't recommend to read it all at the beginning. I would suggest:
- Getting started (http://developer.android.com/training/index.html)
- Building apps with content sharing (http://developer.android.com/training/building-content-sharing.html)
Others as needed, Best Practices for Interaction and Engagement (http://developer.android.com/training/best-ux.html) also helps.
The above gives you a rough overview. The real stuff comes in API Guides (http://developer.android.com/guide/components/index.html). I do recommend to read the first three sections:
- Introduction (http://developer.android.com/guide/index.html)
- App Components (http://developer.android.com/guide/components/index.html)
- App Resources (http://developer.android.com/guide/topics/resources/index.html)
This gives you a high level overview of how the Android works.
The lifecycle
You basically should have it at your desk. You will use it often. It's been reported to have some inaccuracies but it's still better than the Google provided simplified version.
(check out: https://github.com/xxv/android-lifecycle)
Codelabs
Google provides two interesting codelabs:
- Build a Material Design App with the Android Design Support Library (https://codelabs.developers.google.com/codelabs/material-design-style/index.html)
- Android Testing Codelab (https://codelabs.developers.google.com/codelabs/android-testing/)
If you have to provide some early results quickly, skip above readings and just do the codelab.
Other must-to-know
Butterknife - http://jakewharton.github.io/butterknife/ - saves you lot of boilerplate with binding view elements to variables.
Android ContentProvider Generator - it will save you a lot of time on boilerplate code - https://github.com/BoD/android-contentprovider-generator
Mosby - http://hannesdorfmann.com/mosby - if you go with MVP this is must to use.
Dagger - dependency injection framework - http://google.github.io/dagger/users-guide
And when you consider which Android version to support, check:
Android stats Dashboard - gives an overview of the Android version distribution - http://developer.android.com/about/dashboards/index.html
Mosby - http://hannesdorfmann.com/mosby - if you go with MVP this is must to use.
Dagger - dependency injection framework - http://google.github.io/dagger/users-guide
And when you consider which Android version to support, check:
Android stats Dashboard - gives an overview of the Android version distribution - http://developer.android.com/about/dashboards/index.html
Learning
Code Examples
https://github.com/mgrzechocinski/dagger2-examplehttps://github.com/cgruber/u2020/tree/dagger2
https://github.com/frogermcs/DaggerExample
Blog Posts
http://www.future-processing.pl/blog/dependency-injection-with-dagger-2/http://fernandocejas.com/2015/04/11/tasting-dagger-2-on-android
http://konmik.github.io/snorkeling-with-dagger-2.html
http://siphon9.net/loune/2015/04/dagger-2-0-android-migration-tips/
http://blog.gouline.net/2015/05/04/dagger-2-even-sharper-less-square