With Packt Publishing attempting to recruit me as an android 3.0 development book author and an android training opportunity position opening up in downtown Chicago, I once again have the opportunity to think about how android development should be taught in class form and book form.
Its not that there are not stellar resources already out there such as Mark Murphy’s, etc. Its how do you reach the maximum audience about the power of this new mobile platform through developing code in java/C++ and js/html/css.
First, mobile programming is different. Some of the differences is that its a casual application that does not operate or run-all-the-time. Its security context is around both user authentication within the mobile operator system and the google user system. Its not big screens like the server or desktop.
There are also other differences as well in that not every member of the audience is java programmer as many web programmers are switching to android not just the PhoneGap applications but also the more heavy duty in CPU cycles applications such as games, etc. My respectful disagreement with Markana Inc. was that there is enough basic java patterns in android java programming itself that one could use the android device to teach java.
In android java we use a modified mobile definition of singleton from the javaME area. That theory of why we use it is still valid java programming technique. The android mobile platform uses callbacks. the callback pattern is of course acting as a program pointer, something in java we do not have at the moment. The same pattern and theory are found in complex java systems on the enterprise side.
There are also such things as teaching the development process such as debugging, unit-testing, BDD and TDD, and of course best practices in dealing OEM-device-differentiation(press calls it android fragmentation). Than we have the subject of adding a native library to extend android to be able to use in an application.
Hopefully I get an opportunity to explore these subjects shortly.