Wednesday, September 08, 2010

Programming mobile phones (Part 2) .. Android wins

I have made more progress on the mobile phone subject. We are going with Android as the platform but the bulk of the subject will be platform agnostic.

The initial plan was to use iPhone as the device for teaching (driven by their popularity). However, after carefully considering the practical aspects (need for dedicated Mac labs, teaching Objective-C and the learning curve involved) we are going with Android.

Broad topics that we will cover are:

1. Mobile devices -- Hardware and Operating Systems (we will cover general principles with Android & iPhone as case studies)
2. Interaction Design and UX (mainly usability related aspects and applying a design approach that works well -- navigation and state charts)
3. Development Tools, Libraries and Frameworks (Android and iPhone. Will add Windows Mobile 7 if sufficient detail is available)
4. Design Patterns for User Interface Development (Splash screens, Status updates, MVC, Passing information around, modality, state handling, event handling etc.)
5. Data Handling (File, Network I/O, Local DBMS like sqLite, Resource bundles)
6. Mobile Web Applications (Concepts, Principles, Design patterns, HTML5)

7. Programming mobile devices (Concept-Design-Program-Deploy. Android as the dev. platform)

Teaching method will be based on lectures with demos, spikes, 2 short tests and a portfolio.

I am currently working around 1 hour lecture and a 2 hour lab session model.

We are also planning to develop 3/5-day short courses that are going to focus on training iPhone programmers and Android programmers.
========

One of the interesting things that I find in touch devices is the complete lack of a concept of 'tool-tips' as you hover over a button or a link. This essentially means that the icons have to be really well designed to convey the meaning of the action (or) we need labels -- esp. when you first start playing with an application. But, given the small screen size labels are a challenge -- so what if the user presses a button to learn what the icon does?

There a number of other little subtle aspects that need to be carefully considered when designing applications, esp. related to algorithm efficiency, data capture/handling/representation and strorage.

-- rv

3 comments:

Daniel Chambers said...

*Professor Farnsworth* Good news everyone!

Joost said...

Android is indeed a good choice for those reasons. Not all students can afford a Mac to use at home.

Also I agree with the labels. When I first used the iPhone I thought that the little i in the corner did that, instead of showing a new screen, like settings. They should use another icon for that like a cog.

The subject sounds great. Wish we had a chance of doing it a few years back :)

Anonymous said...

Sounds really good. I'll sit in if I get the chance.