Which Platform are you teaching?

Win7PhoneNew

Have you spent the time to understand the landscape of device distribution and decide how to prioritize the development of your application training curriculum?

Are you training or developing your courses to meet specific platform or versions?

The following pie chart below demonstrates how many different versions of Android are in use. The chart contains information relating to the number of devices and Android version that has accessed Android Market within a 14-day period ending on the data collection date noted below.

 

ANDROIDchart

Platform Codename API Level Distribution
Android 1.5 Cupcake 3 0.9%
Android 1.6 Donut 4 1.4%
Android 2.1 Eclair 7 10.7%
Android 2.2 Froyo 8 40.7%
Android 2.3 -
Android 2.3.2
Gingerbread 9 0.5%
Android 2.3.3 -
Android 2.3.7
10 43.9%
Android 3.0 Honeycomb 11 0.1%
Android 3.1 12 0.9%
Android 3.2 13

0.9%

Data collected during a 14-day period ending on November 3, 2011
http://developer.android.com/resources/dashboard/platform-versions.html

So what does all this mean?

The purpose of this graph is to demonstrate the shear number of versions which you need to support if your developing apps for the Android market, unfortunately from a teaching perspective this casts a number of issues on which version and API to choose.

With Windows Phone its so much more straight forward

All Windows Phones must have a particular minimum specification, so these are the very least you can expect to find on a device.

The Windows Phone specifications ensure that every Windows Phone has a consistent set of features that customers can rely on. This also provides developers with a base set of features they can build rich and creative applications upon.

  • Standard Hardware http://msdn.microsoft.com/en-us/library/ff967549(v=VS.92).aspx
  • A common set of hardware controls and buttons that include the Start, Search, and Back buttons.
  • A large WVGA (800 x 480) format display capable of rendering most web content in full-page width and displaying movies in widescreen.
  • Capacitive 4-point multi-touch screens for quick, simple control of the phone and its features.
  • Support for data connectivity using cellular networks and Wi-Fi.
  • 256 MB (or more) of RAM and 8 GB (or more) of flash storage.
  • A-GPS
  • Accelerometer

Optional Hardware

  • Compass
  • Gyro
  • Primary Camera
  • Front-facing Camera
 
It is quite likely that different phone manufacturers will add their particular “take” on the platform, so you will find devices with more memory, faster processors, hardware keyboards and larger screens.

A key issue with teaching  Android is that you need to develop your application for the version that is at the very top of the chart, then your application is compatible with 100% of active devices (and all future versions), because all Android APIs are forward compatible. Or, if you develop your application for a version lower on the chart, then it is currently compatible with only a % percentage of devices indicated.

Again a huge issue is the API Support from each device. The following table specifies the API Level supported by each version of the Android platform.

Platform Version API Level VERSION_CODE Notes
Android 4.0 14 ICE_CREAM_SANDWICH Platform Highlights
Android 3.2 13 HONEYCOMB_MR2
Android 3.1.x 12 HONEYCOMB_MR1 Platform Highlights
Android 3.0.x 11 HONEYCOMB Platform Highlights
Android 2.3.4
Android 2.3.3
10 GINGERBREAD_MR1 Platform Highlights
Android 2.3.2
Android 2.3.1
Android 2.3
9 GINGERBREAD
Android 2.2.x 8 FROYO Platform Highlights
Android 2.1.x 7 ECLAIR_MR1 Platform Highlights
Android 2.0.1 6 ECLAIR_0_1
Android 2.0 5 ECLAIR
Android 1.6 4 DONUT Platform Highlights
Android 1.5 3 CUPCAKE Platform Highlights
Android 1.1 2 BASE_1_1
Android 1.0 1 BASE

Windows Phone application development

You write Windows Phone applications in exactly the same way as you write other applications for the Windows desktop. You use the Visual Studio IDE (Integrated Development Environment). You can debug a program running in a Windows Phone device just as easily as you can debug a program on your PC desktop. You can also create solutions that share components across the desktop, Windows Phone and even Xbox platforms.

You can take all your Windows Desktop development skills in Silverlight and your console skills in XNA and use them on the phone. If you learn how to use the Windows Phone you are also learning how to write code for the desktop (Silverlight) or console (XNA).

This is great news for you as it means that you can write programs for Windows Phone without having to learn a lot of new technologies if you have previously written programs for desktop computers then the move to Windows Phone.

The Windows Phone Emulator

The Windows Phone development environment is supplied with an emulator which gives you a Windows Phone you can play with on your PC desktop. If you have a PC system that supports multi-touch input you can even use this with the emulator to test the use of multi-touch gestures with your Windows Phone programs.

While the emulator is feature complete, in that it behaves exactly like a real phone would in response to the requests from your software, it does not mimic the performance of the actual phone hardware. Programs running on the emulator are using the power of your PC, which may well be much greater than the processor in the phone. This means that although you can test the functionality of your programs using the emulator you only really get a feel for how fast the program runs, and what the user experience feels like, when you run your program on a real device.

The emulator will allow you to test motion controlled programs by allowing you to tip and turn a “virtual” phone on your PC screen. The inputs to the program will reflect the orientation that you see on your screen. You can also pre-record a set of movements to allow you to perform repeatable tests using particular movements or gestures. There is also provision for location emulation. You can select on a map where you want the emulated phone to “be”. You can also input paths for the phone to follow and then replay these, so that you can create journeys to test location aware applications.

Resources

So if your interested in developing for Windows Phone download the necessary tools from Microsoft DreamSpark

If your interested in teaching Windows Phone in your curricula see Microsoft Faculty Connection Resources Center for a complete set of resources

If your interested in porting existing Android applications to Windows Phone take a look Windows Phone Interoperability Bridges site http://windowsphone.interoperabilitybridges.com/