The University of Aberdeen
The Computing Science Department

Information

This page is still being edited to bring it in line with the addition of iOS SDK and Windows mobile SDK so the weekly parts need adjusting, which will happen in coming weeks.


Books, Articles, and Development Resources

Books

There are the main books to be used for this course:

Programming Mobile Devices: An Introduction for Practitioners, which gives the CS view of developing mobile apps with Java and C++ examples.

Kicking Butt with MIDP and MSA: Creating Great Mobile Applications, which provides pointers to all of the basics of Java Mobile.

Android in Action, has lots of useful examples about coding Android applications.

For iPhone you should look at iPhone SDK Development for the basics and iOS Recipies for more advanced ideas.

For windows mobiles ...???

Reports

The Netsize Guides report an annual survey of wireless users around the world. These are the reports that I have from them are available from within the department only. Netsize Guides 2006 2007 2008 2009

Tomi Ahonen, who does the Communitie Dominate Brands blog below, has also put together a number of excerpts for his books, and annual reports on the size of the mobile market which you should also look at. Mobile Industry Size 2009 Mobile Industry Size 2008 Communities Dominate Brands excerpt 7th Mass Media excerpt

Mobile Marketing and Advertising Guide from Tanla Mobile has a useful overview of the state of advertising for mobile applications around the world with essays by many experts in their area, including one by Tomi Ahonen on the 7th Mass Media, and the whole thing is edited by a leading marketer in the mobile area. This also gives a good overview of what 'mobile' is all about from the business perspective with charts of usage, etc in different countries. There is also a handy glossary of mobile terms and acryonyms at the end.

The Economist did a 'special report' on mobility in the 10th April 2008 edition, which is available in the on-line version of the magazine. This covers a lot of interesting issues in real life situations and points to some of the issues that used to slow down mobile take up in the past.

NetmarketShare provides a breakdown of mobile market share each month - if you click on specific months you get more details for the month.

Web Sites

Carnival of the Mobilists - roundup of views in the blogosphere

Mobile Monday - roundup of global Mobile Monday events - check individual chapter sites for presentations and links too. You should also look at the London branch, which also runs a global MoMo mailing list, which is good for specific details on mobile apps, and the mobile web.

Oxford University Next Generation Mobile Applications Panel (FOROX) is an industry-wide discussion forum for mobile topics. This covers mobile internet as well as applications on mobiles, and has some crossover with the Mobile Monday crowd. You can enter as a 'guest' and  read posts, but need to register to post items.

Communities Dominate Brands covers lots of different topics about marketing, but also has tons of useful discussion about mobile marketing and usage. The link points to the 'mobile' topic heading. Some of the discussion about these posts is also found in FOROX (see above).

Open Gardens covers mobile internet applications, and not just web related ones. There's lots here that is first discussed in FOROX (see above), before it is poted here.

Mobile Phone Development run by Simon Judge has a lot of information tucked away down the right-hand column of links to different platforms, market research, etc.

Don's Mobile Blog has a lot of Java ME tutorials on different features and components.

Week 1) Development environment and testing

Mobile Tools for Java Platform is an Eclipse plugin to handle Java ME in Eclipse.

Netbeans also provides plenty of useful tools for mobile development if you prefer that IDE

Antenna provides Ant integration for mobile projects

Proguard optimizer and obfuscator and preverifier for mobile applications

Mobile UI Design Patterns from Little Springs Design is where to find out about designing interfaces for mobiles

Designing Wireless Clients  for Enterprise Applications has links to several documents based on Sun's old Smart Ticket Application, which seems is no longer available. There is also some discusssion of it in the Designing Enterprise Applications with the J2EE Platform book. Note that all of this is dealing with J2EE 1.3/1.4. 

Sun's Java Mobile Enterprise System is a framework of sorts for connecting business applications to mobile devices and there are some documents here about how the parts should work together.

Net Caboodle make tools and plugins for Eclipse and Netbeans for creating mobile SOA solutions using web services and Jini.

The myth of WORA (write once, run anywhere) article more about HTML5 promises, but applies here too.

Week 2) Java ME - client side

Week 3) Google Android

Google Android Downloads, documentation and tutorials

IBM introductory Android tutorial on building an application.

Ten tips for android developers at O'Reilly

Anddev.org provides tutorials at beginner, and advanced levels, as well as discussion forums on Android

Android Software Developer is a blog maintained by Simon Judge, that gives a UK perspective on Android.

Java Ranch Android forum,  and Android Forums are where you can find answers and post questions about Android

Android Game Development Wiki for details about game development on Android

Tools for Android

DroidDraw provides a gui creator tool as an applet, and as standalone executables for when you're offline.

Why Microsoft loves Android (pt 2) There's a link to pt 1 in the text

The three levels of control by Christian Lindholm, of Fjord, who used to design mobiles for Nokia. Android is discussed near the end.

Android on Shaky Ground? Self-inflicted problems at Android and Simon Judge's opinion (along with other Android links), and some possible signs of fragmentation in Android.

Week 4) Java ME - server side

Sun's Mobility site has a range of code samples that you can look through, along with other links too.

There are a number of sites with tutorials, and examples of parsing RESTful XML replies using Java ME libraries, which you can get by installing the WTK 3.0 Early Access release (you want the JSR 172 and JSR 280 jars to add to your project build path).

Jonathan Knudsen of 'Kicking Butt ... ' book above, wrote an article in 2002 on this topic using third-party parsers, some of which are no longer developed, but show you the principles.

Bruno Ghisi points to some useful libraries and projects using XML and REST for Java ME in his blog.

A tutorial from Sony Ericson and another from Java Tips have similar solutions to the same issue of reading and parsing XML files. What neither of these tell you is that the files to be read need to be placed under WTK_HOME/wtklib/devices/MediaControlSkin/filesystem/root1/ if, for example, you're using the MediaControlSkin.

Sun include some interesting code on parsing XML from URIs and integrating the results with other applications as part of their longer tutorial on GPS devices and Bluetooth. Use the link on the right to download the code and see how it is integrated.

Nokia have a partial solution on their wiki, which shows how to parse the XML from the URI, but don't show how it ties into the MIDlet. However, this ties in nicely with the Sun solution.

It's more of a technical article, but Developer's Home offer's a good SMS Tutorial.

O'Reilly have a useful Java based SMS tutorial that uses a variety of open APIs.

Essendex provide a number of free SMS sends for use with their web service API for sending messages from your apps.

Txteagle provide an SMS based outsourcing solution for companies in the same way that AWS use the Mechanical Turk for work.

Week 5) Google Android - Networking

IBM provide a number of useful tutorials about Android, including one on networking, and another on comsuming XML with Android.

Connect and comsume data from a servlet, and learn how to use a background thread for network I/O instead of the UI, or you could use JSON to move the data.

Week 6) Java ME - Data storage with Record Management Store

Part One : Databases and MIDP - Understanding the RMS
Part Two: Data Mappings
Part Three: Putting Data Mapping to Work
Part Four: Filtering and Traversal Strategies
Part Five: Searching a Record Store

RecordComparator Example use this to sort an enumeration of your records.
Google Gears for Mobile is available for Windows Mobile as an IE plugin, and will eventually work with others too

Using a Database instead of RMS

There are a few projects now available for persisting data in Java ME:

Floggy is an object orientated application, which is designed for CDC and CLDC applications. Note that it abstracts the details of the RMS, and doesn't remove it for something else.
Apache Derby currently only works with CDC applications, and NOT CLDC ones.
db4o is an open source object database in .net and Java, which seems to work with Android, so will possibly also work with Java ME.

Nokia Developer Market  and Motodev have details and success stories about mobile applications.

msearchgroove is a search orientated site about mobile marketing, with a lot of resources and articles that can point to case studies.

This from Sun is a bit old now, but shows what people were thinking in the past.

Tomi Ahonen has done two stories on iPhone apps. One in June 2010, which have generated plenty of comment at Forum Oxford, and another in previously in March 2010, as part of a general discussion about money in mobile in general. Also look at Geoff Northcott's discussion of branded iPhone apps referred to by Tomi.This is updated by the costings of developing Twitterific in StackOverflow.


Also look at the Netsize Guides above near the top of the page and the Communities-Dominate-Brands blog for more ideas about this and the excerpts by Tomi Ahonen.

Week 7) Google Android - Data Storage

Tutorial on using database in Android.
There is the question about app stores for Apple, Blackberry, Nokia, and Google, and whether they are a good thing for developers, or just another messy way to serve up applications. You'll find a number of discussions about the merits of these types of  'stores' from Volker Hirsch, William Volk, MSearch Groove, and Tomi Ahonen discusses some of the implications about 'smartphones' and who's ahead of who in a two-part story of  smartphone scale and global market success with smartphones.

Week 8) Location based services

IBM tutorial on LBS using JSR-179 that is slightly older using Eclipse 3.2.

Location Tracking Techniques article discussing your options with links to resources

Week 9) Google Android - Location Based Services

Kevin McDonagh has written up a handy guide about motion and sensors in Android.

IBM have also written a tutorial on sensors in Android.

Week 10) Bluetooth integration

Week 11) ???

Week 12) Reading week - no lectures - assessment due on Friday