Starting on Android
After learning a few (mostly web) frameworks over time, with Django powering most of my every day work in the past few years, and playing with iOS a few years back, I finally started spending some serious time learning Android.
I've been using a few resources, including Udacity's Android course targeted at non-beginners, and the great and constantly updated Android guide and reference at Commonsware.com.
Being used to understanding framework internals it's pretty hard going back into treating most of a (huge) framework as more or less a "black box". This is potentially unavoidable when you first start learning something, as you have to break it down into levels:
- Gain general understanding of what the high-level components are and how they are meant to interact though their high-level features.
- Become able to use these features to build a basic application. Implementation of new requirements and debugging is still hard.
- Start clarifying some best practices for developing on the platform, such as the separation of responsibility between these components, code organisation, respecting compatibility and device limitations.
- Get a more detailed understanding of the framework, be able to build common features without stress and be able to relatively easily debug many problems by looking at the framework code.
- Start looking into other subjects like stricter platform-specific publishing guidelines, enhancing performance, maintainability, localisation etc.
Udacity's program is interesting as they make you work on a side-project/assignment, as you're progressing through the course, which requires you to develop an app from scratch, given specific requirements (a simple movie recommendation app).
I'm currently working on that and it greatly frustrates me that I don't yet have a good picture of what the framework really does under the hood, but I'm positive that I'm learning quite a lot in the process!
To be continued :)