Mobile Application Design Fall 2007: Difference between revisions

From Mobile Application Design
Jump to navigationJump to search
m Protected "Mobile Application Design Fall 2007" [edit=sysop:move=sysop]
 
(15 intermediate revisions by 3 users not shown)
Line 1: Line 1:
H79.2580 - Thursday 6:30-9:00
== Administrivia ==
H79.2580 - Tuesday 6:30-9:00
 
Instructor: Michael Sharon
Instructor: Michael Sharon


== Administrivia ==
Homework uploads - [[Homework07]]
Homework uploads - [[Homework07]]


Office Hours signup - [[Officehours]] (mail me first)
Office Hours signup - email me  


Tags: '''mobileappdesign''' on [http://del.icio.us/tag/mobileappdesign http://uberthings.com/i/g/d.gif] [http://del.icio.us/tag/mobileappdesign del.icio.us] and [http://flickr.com/photos/tags/mobileappdesign/ http://uberthings.com/i/g/f.gif] [http://flickr.com/photos/tags/mobileappdesign/ flickr]
Tags: '''mobileappdesign''' on [http://del.icio.us/tag/mobileappdesign http://uberthings.com/i/g/d.gif] [http://del.icio.us/tag/mobileappdesign del.icio.us] and [http://flickr.com/photos/tags/mobileappdesign/ http://uberthings.com/i/g/f.gif] [http://flickr.com/photos/tags/mobileappdesign/ flickr]
Line 37: Line 37:


== Grading ==  
== Grading ==  
Participation and Attendance 30%


Participation and Attendance 30%
Weekly Research Assignments 20%
Weekly Research Assignments 20%
 
Midterm 25%
Midterm 25%
Final 25%
 
Final 25%


== Books/Blogs/Readings ==  
== Books/Blogs/Readings ==  


Try to read a few of these blogs every day to stay on top of developments in the mobile space. Check out [http://del.icio.us/tag/mobileappdesign http://del.icio.us/tag/mobileappdesign] for more sites.  
Try to read a few of these blogs every day to stay on top of developments in the mobile space. Check out [http://del.icio.us/tag/mobileappdesign http://del.icio.us/tag/mobileappdesign] for more sites.  
<ul>
<ul>
Line 57: Line 58:
<li> [http://www.receiver.vodafone.com/ Receiver]</li>
<li> [http://www.receiver.vodafone.com/ Receiver]</li>
</ul>
</ul>
[http://uberthings.com/teaching/mobile_application_design/mobile.xml Here's an OPML file of all the mobile blogs I currently follow.]
You should be able to import this directly into your feed reader of choice.
There are no recommended readings for this course, although you may find these books useful and thought provoking.
There are no recommended readings for this course, although you may find these books useful and thought provoking.
Line 62: Line 67:
[http://www.amazon.com/Everyware-Dawning-Age-Ubiquitous-Computing/dp/0321384016/ref=pd_bbs_sr_1/103-5144882-6239032?ie=UTF8&s=books&qid=1189189221&sr=8-1 http://uberthings.com/teaching/mobile_application_design/i/books/0321384016.01._AA_SCMZZZZZZZ_.jpg]
[http://www.amazon.com/Everyware-Dawning-Age-Ubiquitous-Computing/dp/0321384016/ref=pd_bbs_sr_1/103-5144882-6239032?ie=UTF8&s=books&qid=1189189221&sr=8-1 http://uberthings.com/teaching/mobile_application_design/i/books/0321384016.01._AA_SCMZZZZZZZ_.jpg]


[http://www.amazon.com/Everyware-Dawning-Age-Ubiquitous-Computing/dp/0321384016/ref=pd_bbs_sr_1/103-5144882-6239032?ie=UTF8&s=books&qid=1189189221&sr=8-1 Everyware: The Dawning Age of Ubiquitous Computing (Paperback)] by Adam Greenfield
[http://www.amazon.com/Everyware-Dawning-Age-Ubiquitous-Computing/dp/0321384016/ref=pd_bbs_sr_1/103-5144882-6239032?ie=UTF8&s=books&qid=1189189221&sr=8-1 Everyware: The Dawning Age of Ubiquitous Computing (Paperback)]
by Adam Greenfield
 
[http://www.amazon.com/Beginning-J2ME-Novice-Professional-Third/dp/1590594797/ref=pd_bbs_sr_1/103-5144882-6239032?ie=UTF8&s=books&qid=1189189378&sr=8-1 http://uberthings.com/teaching/mobile_application_design/i/books/1590594797.01._AA_SCMZZZZZZZ_.jpg]


[http://www.amazon.com/Beginning-J2ME-Novice-Professional-Third/dp/1590594797/ref=pd_bbs_sr_1/103-5144882-6239032?ie=UTF8&s=books&qid=1189189378&sr=8-1 http://uberthings.com/teaching/mobile_application_design/i/books/1590594797.01._AA_SCMZZZZZZZ_.jpg] [http://www.amazon.com/Beginning-J2ME-Novice-Professional-Third/dp/1590594797/ref=pd_bbs_sr_1/103-5144882-6239032?ie=UTF8&s=books&qid=1189189378&sr=8-1 Beginning J2ME: From Novice to Professional, Third Edition (Novice to Professional)] by Jonathan Knudsen
[http://www.amazon.com/Beginning-J2ME-Novice-Professional-Third/dp/1590594797/ref=pd_bbs_sr_1/103-5144882-6239032?ie=UTF8&s=books&qid=1189189378&sr=8-1 Beginning J2ME: From Novice to Professional, Third Edition (Novice to Professional)]
by Jonathan Knudsen


== Syllabus ==
== Syllabus ==


=== Week 1 (September 7): Introduction to mobile ===
The Syllabus has moved here -> [[Syllabus07]].
 
'''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'''
# 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 [http://uberthings.com/teaching/wiki/index.php?title=PresentationSignup PresentationSignup page]
# [http://uberthings.com/teaching/wiki/index.php?title=Setup Set up your development environment correctly.]
# Download, install and setup [http://mobile.processing.org Mobile.Processing]
# Build your own Hello World type application. Be as creative as you like. Compile and run it in an emulator of your choice. Upload the screenshot to your web site and create a link in the [http://uberthings.com/teaching/wiki/index.php?title=WeekOneHomework Wiki]. Extra credit for choosing an exotic/obscure emulator.
 
'''Resources''' (posted after class)
 
[http://uberthings.com/teaching/wiki/index.php?title=Week_1:_HelloMIDlet HelloMidlet Tutorial for Eclipse]
 
[http://uberthings.com/teaching/mobile_application_design/1/code.zip 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.
=== 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 <a href="http://jexe.net">Jessie Boyes</a> - Java developer extraordinaire.
 
=== 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 [http://wurfl.sourceforge.net 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.

Latest revision as of 16:46, 20 January 2008

Administrivia

H79.2580 - Tuesday 6:30-9:00

Instructor: Michael Sharon

Homework uploads - Homework07

Office Hours signup - email me

Tags: mobileappdesign on d.gif del.icio.us and f.gif flickr

Description

Mobile phones are the electronic devices that we keep closest to our bodies, minds and social lives. These minute multimedia production studios contain within their narrow plastic shells contact numbers, pictures, messages and videos of people that we hold dearest, communicate with daily and are most closely connected to. This class will focus on teaching students the fundamentals of developing applications for a number of mobile phones. Students are free to to use the tools and techniques learned as a means of expression in conjunction with other projects as well as to develop standalone projects.

The class will be taught mainly using the Java (J2ME) language although students are able to choose from other languages/platforms such as Flash Lite, BREW and Python. I will try to provide examples in as many languages as possible. Topics covered include an overview of the mobile industry, mobile user experience, mobile hardware platforms, development languages, cross-platform graphical user interfaces, network communication, optimisation techniques, versioning systems, and common development pitfalls. Weekly assignments will develop familiarity with the devices and techniques and students will be allowed to work independently or in groups to develop midterm and final projects.

Objectives

The goal of this course is for students to develop an understanding of how to develop applications for mobile devices and explore the possibilities for realizing their ideas on the platform. Readings, discussion and hands-on development will provide students with insights and experience in developing mobile applications. Mobile application design and development is a huge field that is constantly evolving. We're only going to be able to scratch the surface, so this course aims to achieve three things:

  1. Teach students the basics of developing applications for mobile devices including creating wireframes, graphics and software as well as packaging and provisioning.
  2. Familiarize students with the global mobile industry including the leading thinkers, sites, technologies and applications.
  1. Learn some of the conventions of mobile user experience and think about ways of improving upon existing experiences.

Assignments

There will be weekly programming assignments for nearly every class in the first half of the semester. These assignments are short, simple tasks which reinforce the concepts and techniques that have been taught in class. They are generally basic examples which give you a feel for the technologies or concepts being illustrated, and should be taken as starting points which you can use to generate your own applications. Assignments are required and turning in an assignment late will adversely affect your grade.

Participation & Attendance

Attendance is mandatory and desirable if you'd like to maintain your grades and/or remain in the class. Please inform me via email if you are going to miss a class. Habitually showing up late for class or an excessive number of absences will adversely affect your grade.

Laptop & Mobile Etiquette

Unless we're working on code in class, I will be sticking with the laptops closed rule. Although they may be invaluable for note taking and the Wikipedia is your special friend, the desire to answer emails, ping your friends and google obscure acronyms is far too strong. Since we're all going to be working on mobile phones, please turn your phone to silent before class begins so that we're not constantly interrupted by ring tones.

Grading

Participation and Attendance 30%

Weekly Research Assignments 20%

Midterm 25%

Final 25%

Books/Blogs/Readings

Try to read a few of these blogs every day to stay on top of developments in the mobile space. Check out http://del.icio.us/tag/mobileappdesign for more sites.

Here's an OPML file of all the mobile blogs I currently follow.

You should be able to import this directly into your feed reader of choice.

There are no recommended readings for this course, although you may find these books useful and thought provoking.

0321384016.01._AA_SCMZZZZZZZ_.jpg

Everyware: The Dawning Age of Ubiquitous Computing (Paperback) by Adam Greenfield

1590594797.01._AA_SCMZZZZZZZ_.jpg

Beginning J2ME: From Novice to Professional, Third Edition (Novice to Professional) by Jonathan Knudsen

Syllabus

The Syllabus has moved here -> Syllabus07.