Syllabus07: Difference between revisions
| Line 47: | Line 47: | ||
* [http://uberthings.com/teaching/wiki/index.php?title=Week_2:_Forms-A-Go-Go Forms-A-Go-Go] | * [http://uberthings.com/teaching/wiki/index.php?title=Week_2:_Forms-A-Go-Go Forms-A-Go-Go] | ||
=== Week 3 (September 18): | === Week 3 (September 18): Building the User Interface === | ||
'''Discussion''' | '''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. Threads. Why we love 'em. | 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. Threads. Why we love 'em. Packaging. How to use Canvases. | ||
'''Assignments:''' | '''Assignments:''' | ||
| Line 58: | Line 58: | ||
# Start thinking about an idea for a larger project that you'd like to work on. Blog your idea - include references to APIs that intend to use, links and pictures. Sketch out a simple wireframe / interaction diagram for your idea. Also include a paragraph and some links about your inspiration for this idea. | # Start thinking about an idea for a larger project that you'd like to work on. Blog your idea - include references to APIs that intend to use, links and pictures. Sketch out a simple wireframe / interaction diagram for your idea. Also include a paragraph and some links about your inspiration for this idea. | ||
# Take your idea for the simple MIDlet from Week Two and create it using Forms or Canvases - OR - create a MIDlet which uses the Canvas to listen for button presses and does something interesting with that data. Please add your source code to the Wiki and try use MPowerPlayer's Webstart to link to your JAD files. | # Take your idea for the simple MIDlet from Week Two and create it using Forms or Canvases - OR - create a MIDlet which uses the Canvas to listen for button presses and does something interesting with that data. Please add your source code to the Wiki and try use MPowerPlayer's Webstart to link to your JAD files. | ||
# Create a simple MIDlet which uses a Canvas to create a simple animation. Please add source code to the Wiki. | # Create a simple MIDlet which uses a Canvas to create a simple animation. Please add source code to the Wiki. | ||
# Read [http://uberthings.com/teaching/mobile_application_design/3/readings_from_everyware.pdf chapter 5, 19 and 45 from Everyware]. Think about what Greenfield is saying in light of your own ideas above. Write a short paragraph about how these concepts influenced your idea (or not). Prepare two good questions for in-class discussion. Link these to the HomeworkWiki. Adam Greenfield has kindly provided us with PDFs of the chapters required - so you don't even have to buy the book. | |||
# Read chapter 5, 19 and 45 from Everyware. Think about what Greenfield is saying in light of your own ideas above. Write a short paragraph about how these concepts influenced your idea (or not). Prepare two good questions for in-class discussion. Link these to the HomeworkWiki. Adam Greenfield has kindly provided us with PDFs of the chapters required - so you don't even have to buy the book. | |||
'''Resources''' | '''Resources''' | ||
* [http://uberthings.com/teaching/mobile_application_design/3/week3.pdf Lecture Notes (PDF)] | |||
* [http:// | |||
* [http://eclipseme.org/docs/jadeditor.html EclipseME's JAD Editor] - a good overview of what those pesky JAD attributes mean. | * [http://eclipseme.org/docs/jadeditor.html EclipseME's JAD Editor] - a good overview of what those pesky JAD attributes mean. | ||
* [http://www.onjava.com/lpt/a/793 MIDlet Packaging - more information about the JAD attributes. May be useful for developing on Mac with EclipseME.] | * [http://www.onjava.com/lpt/a/793 MIDlet Packaging - more information about the JAD attributes. May be useful for developing on Mac with EclipseME.] | ||
Revision as of 06:20, 19 September 2007
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
- Create an account on this wiki
- 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
- Set up your development environment correctly.
- Download, install and setup Mobile.Processing
- 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
HelloMidlet Tutorial for Eclipse
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 (Leonard Lin from Upcoming)
Assignments:
Theme: Zombies (or to be decided in class)
- 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
- FOR ADVANCED STUDENTS (OPTIONAL): Use a low-level UI class like the Canvas or GameCanvas to draw an image on the phone's screen.
- 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
- If it isn't there already, add a link to your favourite application in the Links section of the Wiki.
Resources
Week 3 (September 18): Building the User Interface
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. Threads. Why we love 'em. Packaging. How to use Canvases.
Assignments:
Theme: to be decided in class
- Start thinking about an idea for a larger project that you'd like to work on. Blog your idea - include references to APIs that intend to use, links and pictures. Sketch out a simple wireframe / interaction diagram for your idea. Also include a paragraph and some links about your inspiration for this idea.
- Take your idea for the simple MIDlet from Week Two and create it using Forms or Canvases - OR - create a MIDlet which uses the Canvas to listen for button presses and does something interesting with that data. Please add your source code to the Wiki and try use MPowerPlayer's Webstart to link to your JAD files.
- Create a simple MIDlet which uses a Canvas to create a simple animation. Please add source code to the Wiki.
- Read chapter 5, 19 and 45 from Everyware. Think about what Greenfield is saying in light of your own ideas above. Write a short paragraph about how these concepts influenced your idea (or not). Prepare two good questions for in-class discussion. Link these to the HomeworkWiki. Adam Greenfield has kindly provided us with PDFs of the chapters required - so you don't even have to buy the book.
Resources
- Lecture Notes (PDF)
- EclipseME's JAD Editor - a good overview of what those pesky JAD attributes mean.
- MIDlet Packaging - more information about the JAD attributes. May be useful for developing on Mac with EclipseME.
- Sample code (includes Canvas Animation Demo, Video MIDlet, NameThatKeyMIDlet and lots more)
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.