2-Aug-13 (Created: 2-Aug-13) | More in 'Android Basic UI'

A Road map for Learning Android

We (Sayed, Dave, and I) have spent over 4 years exploring and writing about Android. We have published 5 books in that space on Android and a numerous research notes.

Jitesh, A good friend of mine, has asked me a question a while ago: In what order should I learn Android? When do I know I know Android?

As if that is not an incentive enough, the ever enterprising Paul Bittutsky from Stanton prep borrowed my book to learn Android. Now I am compelled to give a road map.

This is a feeble attempt in answering that question. You can use this as a roadmap or a guidepost for your learning of android.

If you have suggestions do send them to me and I will update this document!

Introductory Track - Start Here


Install Java
Install Eclipse
Install ADT
Create Hello World
Compile it
Create an ADT
Run the app in ADT
sign the app
email the app
Run it on a device

Although someone can teach you this, you can slog it out from online directions. It is a bit involved and give 50 to 100 hours to do this. On other hand if someone teaches you in person this is really effective.

Introductory Track - Anatomy of an App where you will know


Structure of the apk
Manifest file
Layout file
activity
controls
logic
resources
logging
debugging

This is best accomplished by writing a very simple single page app like a calculator and exercising each of these topics.

Essential Track - UI


Essential Controls - Text, Button, etc.
List Views
Scroll view
..More controls
Layouts
Styles
Menus and Action bar
Basic dialogs
Field Validation
Dealing with configuration changes

Fragments
Fragbment Dialogs
Drag and Drop
Animation

Essential Track - Persistence


Preferences
Internal files
external files
JSON
SQL
Basic Content Providers
Cloud storage

Essential Track - Services


Simple services
Handlers
Async task
Progress dialogs
rest/http services

Middle of the road - Strengthening Track


Broadcast Receivers
Alarm Manager
Notification Managers
Process model
Long running services
Media: capturing/playing audio/video
Loaders
Text to speech


Sensors
Multitouch
Gestures

Incorporating Search
Putting the app up in the market
Programming for multiple devices
Enabling for ads

Advanced Track


Simple Widgets
List Widgets
Content Providers
Compatibility

Live folders
Google Cloud
Component and Process model
Telephony/SMS
Maps

Advanced debugging for memory/battery usage

Custom views
Custom controls
Custom Layouts
A catalog of Killer custom controls

Differentiating Topics


Android Studio
Testing tools like Monkey runner, Robotium
Other emulators: Genymotion

Cloud storage
Push notifications

OpenGL
Game libraries
Game Tools like Unity 

Thirdy party libraries
third party components

webkit
Jquery Mobile
Phone gap

Enterprise security
etc..