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
- Introduction
iPhone details??? Yes, you need a Mac laptop to do anything
with this.
Windows details???
Sun Java Wireless Toolkit 2.5.2 for CLDC is the basic Java ME download that you need to start. You could also opt for the Java ME SDK 3.0 if you're on Windows or a Mac. The link also leads to other information about Java ME that you'll find useful too. All of this assumes you're on either Linux, or Windows. If you want to do this on a Mac, then this blog post has some useful info about errors, etc.
Mobile
Java from Nokia has a number of links to different tools
and SDKs that they provide. There is A LOT of materials and
plugins here for Eclipse and other tools, so take the time to
browse around. You will need to register though for the
downloads in order to get free licence keys. Come back later
for the discussion
forums, wiki,
and code samples. Only use the S40 Emulator, as the S60 one
seems to cause problems with Eclipse plugins.
J2ME Polish- (Optional - we'll not use this) Eclipse Plugin plus device database for configuration for multiple platforms
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.
-
Discussion: Mobile app ideas and develelopment
Mobile phone useful article with discussion of the different terms and technologies around the mobile.
Wikipedia article on Mobile Development has lots of useful links, and comparisons between the different technologies available.
Why Care about mobile development is an older (2005?) article, but interesting in how it lays out the reasons for mobile development.
Mobile
Application Development from one of its leading
developers, and another of his papers on 'people-centric'
computing
Mobile Development Report highlights with its case study on India, why mobiles are especially important to the poor and very poor in the developing world, and why mobile applications are therefore more important in some ways than PC applications. The photos are probably by Jan Chipchase, who works for Nokia as an HCI type of developer researching how people use their mobiles. His presentations are always thought provoking.
Mobile Life Report (UK) report published in 2007 and 2006 about mobile usage in the UK.
M:Metrics is a useful source of mobile survey results. IT Facts (mobile usage also provides briefer notices about survey and forecast results.
Mobile and Embedded Community at java.net has a range of articles and guides for mobile development, as well as their own open source mobile Java product.
Week 2) Java ME - client side
-
Java clients
-
Discussion: Mobile client languages and their market share
Survey
of Java ME Today (Nov 2007) provides a good overview of
the MIDP, CLDC, MSA, etc
Look at the Wikipedia article on mobiles noted above for market share.
The Economist magazine offers a good range of articles on mobiles
Mobile
applications for Rural Communites and the
Invisible Computer Revolution
Top Ten Mobile Apps for 2007 Also compare this list with the awards given out by Mobile Monday from the link above.
clicmobile blog has a good categorisation and overview of different types of applications and companies in the mobile area.
Device
fragmentation is a big problem for Java applications, as
also discussed in 'write
once... not working for phones', and on this thread
about J2ME in Forum Oxford.
Week 3) Google Android
-
Google Android
Google Android Downloads, documentation and tutorials
IBM introductory Android tutorial on building an application.
Ten tips for android developers at O'Reilly
Android Developers Blog has been revitalised since Tim Bray took over android evangalism at Google
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.
-
Discussion: Does Android Matter?
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
-
Networking Java clients
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.
-
Discussion: SMS, SIM, MMS and barcode applications
Pondering Primate list of real world links to companies, plus also look at his other articles under the mobile barcode heading, and elsewhere on his site.
You can also find a list, and screenshots of examples, at mobile
tagging. However, while it's in German, you can see the
images, and the links to the different providers clearly
enough.
Realeyes3d
provides barcode readers, and digitizers.
'Every
printer
becomes an appstore' with barcode readers and 'over the
paper' service when network availability is gone. The phrase
taken from Jan
Chipchase, where you'll also find more details.
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
-
Connectivity with Android to consume services and send data
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.
-
Discussion: What are your off-device strategy options?
Week 6) Java ME - Data storage with Record Management Store
- Record Management System (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.
-
Discussion: Mobile Revenue - where's the money?
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.
There are a lot of stories about making money from iPhone
apps, and a growing number looking at Android app. Such as
this one at techcrunch,
whch is followed up in Wired
too. And AdMob at Google are also enabling in-game
advertising, which will enable 'free' apps to also
produce revenue. Plus ReadWriteWeb
discusses the topic in general for Android.
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
-
Databases and other options
-
Discussion: Will the appstore work for you?
Week 8) Location based services
-
Location Determination in Mobiles
Forum Nokia Tutorial on LBS using JSR-179 that you can download and implement.
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
-
Discussion: Location based applications - why haven't they gone anywhere?
LBS
in
wikipedia article is a good place to start for
background.
Week 9) Google Android - Location Based Services
-
Location determination with Android
Kevin McDonagh has written up a handy guide about motion and sensors in Android.
IBM have also written a tutorial on sensors in Android.
-
Discussion: Google's other mobile applications
Week 10) Bluetooth integration
-
Bluetooth with Java
-
Discussion: Bluetooth business models and applications
Forum Nokia Wiki Entry on Bluetooth Some useful links to tutorials and technical details
Sun's Bluetooth articles: Part
1 (overview) , Part
2 (the APIs) has a basic connection code example.
BlueCove Bluetooth libary for Java
Bluetooth
Server Tutorial with OBEX
Adverblog monitors advertising on the internet, so use the search facility to search for 'bluetooth' or bluetooth marketing to see what she's covered.