Syllabus07

From Mobile Application Design
Jump to navigationJump to search

Week 1 (September 7): Introduction to mobile

Discussion

What you need to know about the mobile ecosystem, technologies (GSM, CDMA, TDMA, iDEN), devices, carriers. Development Process - including J2ME architecture (MIDP, CLDC, lifecycle). How to push your round idea through the square hole of wireframes, architecture and prototypes. Setting up your environment, writing your first program ("Hello Mob").

Assignments

  1. Create an account on this wiki
  2. Presentation groups: Work in groups of 2/3 to research a topic in mobile technology, programming or design that is interesting, innovative or just noteworthy. Prepare a 10 minute presentation which will be presented to the class. Pick a date for your presentations on the PresentationSignup page
  3. Set up your development environment correctly.
  4. Download, install and setup Mobile.Processing
  5. Build your own Hello World type application. Be as creative as you like. Use Eclipse or Mobile.Processing. Compile and run it in an emulator of your choice. Upload the screenshot to your web site and create a link here - Week_One. Extra credit for choosing an exotic/obscure emulator.

Resources

Lecture Notes

HelloMidlet Tutorial for Eclipse

HelloMidlet Code (zipped)

Week 2 (September 11): Designing the Mobile User Experience (UX Workshop)

Discussion

The web/laptop/desktop vs mobile user experience. Considerations when designing for mobile devices. What makes a good mobile application? Review of J2ME architecture + some programming concepts - discussion will cover the MIDlet life cycle, variables, control structures, constraints and limitations of working with J2ME. High level and low-level GUIs.

Special guest: Jennifer Bove from Schematic + another mystery guest

Assignments:

Theme: Zombies (or to be decided in class)

  1. Come up with an idea for a simple one or two screen MIDlet that uses some of the high level user interface components creatively. Run through the steps of the mobile development process that we went through in class. Check out these sites for inspiration: superbad and jodi. View source! Document your work on your blog / site, then link to it here - Week_Two
  2. FOR ADVANCED STUDENTS (OPTIONAL): Use a low-level UI class like the Canvas or GameCanvas to draw an image on the phone's screen.
  3. What is your favourite mobile application (it can be anything on the phone - downloaded apps, native apps, sms etc)? Why? Write up a few paragraphs on why you like it on your blog, and what you would improve (if anything) and bring a screenshot of the interface or the application on your phone. Link all the relevant bits here - Week_Two
  4. If it isn't there already, add a link to your favourite application in the Links section of the Wiki.

Resources

Lecture Notes (PDF)

Week 3 (September 18): Multimedia - Images, Audio, Video

Discussion

Generating possible ideas for midterms, focusing on mapping (mGmaps), games (Mogi, Pang etc), social network applications - Nokia's Sensor, Imahima, BEDD, camera applications (Geosnapper), GPS Applications (uLocate), physical computing. The phone as multimedia production studio. Pros and cons of using the phone as a production platform. This is multimedia week - we learn about MIDP 2.0's Multimedia API and how to access it to record audio, use the onboard camera and get video too.

Week 4 (September 25): Networking - connecting to servers, parsing XML

Discussion

Feedback on project directions. Overview of HTTP, XML. Guest lecture by Adam Greenfield - author of Everyware.

Week 5 (October 2): HTTP Part Deux

Discussion

More HTTP. This time we'll cover the elusive XML data format and how to ensnare it with things like KXML. Also, in part two of our mystery guest series - we'll be getting a workshop from an extraordinary Java developer.

Week 6 (October 9): Where am I? (Location Workshop)

Discussion

This week we'll be thinking about location based applications. Topics include the basics of locating devices, getting data(GPS, BT GPS, Network lookups etc), using data on the server, plugging into maps.

Week 7 (October 16): Dr Strangebug or: How I Learned to Stop Worrying and Love the Exceptions

Discussion

Exceptions, Threads. Going through code in-class. Lots of it. Improved kXML2 example - RSS. Small RMS example.

Week 8 (October 23): Mid-term Presentations

'Nuff said.

Week 9 (October 30): Obfuscation, HTTP POST, Bluetooth

Discussion

We'll cover how, why and when to use obfuscators. Images in J2ME. Sending images and text with HTTP POST. The ins and outs of Bluetooth (if we get time).

Week 10: Final Project Workshop AKA Open Questions/Issues (November 6)

Topics include: Threads, Unicode, Bluetooth, PIM API, N95 and the MMAPI. Build, compile, run. Debug, build, compile, run. Debug, build, compile, package, install. This week is all about getting your application to work. Debug debug debug. Build build build. We'll discuss ways of adding finishing touches to your MIDlets such as icons, packages and awesomeness.

Week 10 (November 6): Final Project Workshop AKA Open Questions/Issues

Discussion

Mmmm... Python. See my Python_Setup_Notes notes on the Wiki to get started.

Week 12 (November 20): Playing (with) the future (WAP + XHTML)

Discussion

Wireframe presentations for finals. I'll be introducing WAP, WML, XHTML MP, CHTML and CSS and we'll at look at how and why Docomo was so successful with it's iMode platform. If there's time we'll look at the WURFL(no, it's not a Star Trek character) and look at a few examples in PHP or Ruby.

Week 13 (November 27): Final Project Presentations

Week 14 (December 4): Final Project Presentation

Guest Critics will be posted here.