I found the statistic that nearly 50% of the Android devices are high-density (240 dpi) quite interesting, while the other 50% are medium-density screens (160 dpi). So, there is two broad categories of screen resolutions that developers have to target.
See -- http://developer.android.com/resources/dashboard/screens.html
This compares similarly to the iPhone. There is quite a lot of noise in the blogs claiming that iPhone is the perfect device to develop for because the screen size and a whole lot of the hardware is fixed etc -- so developing apps is easier for the iOS platform. While there is some merit to this argument, iPhone also has some of the underlying constraints as Android.
iPhone 3 is an older (slower) 160 dpi device. While iPhone 4 is (relatively) faster and offers a 320 dpi screen. Sadly, there are a lot of iPhone 3's out there still and hence cannot be ignored. This picture will certainly be only complicated once iPhone 5 comes out with a dual-core A5 CPU (iPad 2 has it) and potentially a slight variation on the other aspects -- including a (rumoured) slightly larger screen in terms of physical size.
Having developed for both platforms over the last 8 months, I find this the screen resolution driven design considerations are of similar complexity for both platforms.
There are still a number of other aspects that also come into play making Android slightly challenging -- but IMO these are more around form-factor and information received from sensors etc.
-- rv
Wednesday, March 09, 2011
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
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
Subscribe to:
Posts (Atom)