ECE/CS 495/595 Special Topics in Mobile App & Game Development



Welcome to ECE/CS 495/595 Special Topics in Mobile Application and Game Development, at the University of New Mexico. This course focuses on the development of software for handheld, mobile platforms, specifically the Apple iPhone. Students are assumed to be already comfortable in programming in C/C++. During the course, we will learn the Objective-C programming language and Apple.s Cocoa Touch interface. The topics covered will include general mobile application development paradigms such as the Model-View-Controller design pattern, interface development, and memory management as well as specific iPhone features such as using the built-in navigation system, accelerometers, camera, networking capabilities, etc. The course will have equal emphasis on the development of useful mobile applications as well as games. Students that successfully complete the course will have enough background and experience to develop their own iPhone applications and games in the future.

Class Information

Instructor: Pradeep Sen
Class Location: ECE Room 132
Class Time: Mon, Wed 1:00pm - 2:15pm
Online Forum: here
Office: ECE Room 225C
Office Hours: by appointment

Complete syllabus is available here. Please read it carefully and let me know if you have any questions. Finally, this semester we have set up an online forum for this class. Please check it out for updates and announcements, as well as to ask and discuss questions.

Lectures

In this section, we provide the slides and notes for each lecture. Note that these are not a substitute for coming to class.
Date Description Slides
08/24/09 Lecture 1: Introduction to the iPhone [ pdf ]
08/26/09 Lecture 2: Objective-C [ pdf ]
08/31/09 Lecture 3: Objective-C and memory management [ pdf ]
09/02/09 Lecture 4: Model View Controller [ pdf ]
09/09/09 Lecture 5: Controllers and Views [ pdf ]
09/14/09 Lecture 6: Drawing Views and animation [ pdf ]
09/16/09 Lecture 7: Using View Controllers [ pdf ]
09/21/09 Lecture 8: Navigation Controllers [ pdf ]
09/23/09 Lecture 9: Navigation Controllers and Tab Bar [ pdf ]
09/28/09 Lecture 10: Preparing your app for the AppStore (video) [ N/A ]
09/30/09 Lecture 11: Guest Speaker: Case study on DishView application [ N/A ]
10/05/09 Lecture 12: Scroll Views and Table Views [ pdf ]
10/07/09 Lecture 13: More on Table Views [ N/A ]
10/12/09 Lecture 14: Handling Data [ pdf ]
10/14/09 Lecture 15: In class example of SQL and Table Views [ N/A ]

Reading

Assigned Description
8/26/09 Object-Oriented Programming with Objective-C and The Objective-C 2.0 Programming Language, both available from the Apple Developers page.
8/31/09 Memory Management Programming Guide for Cocoa
9/2/09 Read the Cocoa Design Patterns section in the Cocoa Fundamentals Guide
9/2/09 Look through the Quartz 2D Programming Guide
9/14/09 Read the Core Animation Programming Guide
11/12/09 Apple's iPhone Human Interface Guidelines specify the kinds of things that are required in an iPhone app in order to pass the review process. They also provide good suggestions on how to design your interface. This is a long document (130 pages), but study it carefully!

Homework Assignments

HW1 - Your first iPhone game, due Friday, September 18.

HW2 - Practice with MVC and custom view drawing, due Wednesday, September 23.

HW3 - Your first simple 2-D game, due Thursday October 1.

HW4 - Your first serious application: a music browser, due Thursday October 22.

Proj 1 - This is the Proj 1 handout. Read it carefully!

Proj 2 - This is the Proj 2 handout. Pretty much the same as Proj1, with a few differences.

Sample Code

CODE - A simple program that sets up the slider/label control WITHOUT using InterfaceBuilder

CODE - Program to demonstrate use of the text field and autorotate features. Demoed in class Monday, September 21

CODE - Program that shows the basics of navigation controllers. This "app" allows the user to view album information. Demoed in class Monday, September 21

CODE - Program to demonstrate the custom view. I draw a red or blue triangle depending of which button is pressed. Demoed after class Monday, September 21

CODE - Program I wrote in class on Wednesday, October 14 to demonstrate the creation of a table that read in information from a SQL database.