#iOS App Development
Course: INFO1-CE9236
Semester: Summer 2014
Section: #1 Monday 6:30PM - 9:30PM
Date: June 09 - August 11
Location: 7 E. 12th Street
Instructor: Keith Harris ([email protected])
This course will teach students how to create applications for the Apple iPad, iPhone, and iPod Touch using the iPhone operating system iOS. Learn the Objective-C language, write apps in the Macintosh Xcode development environment using Apple's Cocoa Touch API of classes, protocols, and objects. Build the visual interface of the app with touch-sensitive windows and views containing common UI elements such as buttons, sliders, and tables. Distinguish between taps and swipes, responding to them with animations. Explore the roles played by objects as delegates, targets, controllers, and data sources integrated into the Model-View-Controller design pattern.
Students should have experience programming in any object-oriented language. Students are expected to understand programming constructs such as operators, loops, conditional statements, and functions as implemented in languages such as C#, Java or C++.
No tests will be given, the final grade will be determined by student attendance and the correctness of submitted homework assignments.
20% - Attendance
80% - Assignments
Students must use an Intel based Mac running Maverics or Lion with the latest updates of Xcode 5 and iOS 7 installed.
iOS Programming: The Big Nerd Ranch Guide 4th Edition by Christian Keur, Aaron Hillegass, & Joe Conway
If given, the reading assignment will either help you prepare you for the next class, or review what was presented in the previous class.
The current syllabus lists many topics and it is possible that more or fewer will be covered in class. Syllabus revisions may be made after gauging the skill level of students. Throughout the term, we may decide to discuss additional relevant topics for which there is significant student interest.
Programming assignments are due by midnight of the due date.
Projects will be submitted to the course management system unless otherwise indicated.
If you have any class-related questions, send an email to the instructor.
New York University takes plagiarism very seriously and regards it as a form of fraud. The definition of plagiarism that has been adopted by the School of Continuing and Professional Studies is as follows:
"Plagiarism is presenting someone else's work as though it were one's own.
More specifically, plagiarism is to present as one's own words quoted without quotation marks
from another writer; a paraphrased passage from another writer’s work; or facts or ideas gathered,
organized, and reported by someone else, orally and/or in writing. Since plagiarism is a matter of
fact, not of the student's intention, it is crucial that acknowledgement of the sources be accurate
and complete. Even where there is not a conscious intention to deceive, the failure to make
appropriate acknowledgement constitutes plagiarism. Penalties for plagiarism range from failure for
a paper or course to dismissal from the University.”
Concerning software development, it is common practice among developers to share code and many useful code snippets can be found on the Internet. In this course, students are encouraged to research problems online and are free to use found code (so long as the copyright owner has published no objection), provided the code is typed in by the student and not pasted from the clipboard. The reason against pasting from the clipboard is that the act of typing furthers the learning process and affords more code writing opportunities.
- Course introduction, Objective-C
- Views
- View Controllers and delegation
- UITableView and UITableViewController
- UINavigationController and the camera
- Autolayout
- Autorotation, UIPopoverController and modal view controllers
- Subclassing UITableViewCell and dynamic type
- Web Services, the UIWebView, and UISplitViewController
- Core Data
Course Introduction
Chapters 1-3
No lab during this class, ensure prerequisites are met
Complete the Quiz application from chapter 1
- Course introduction
- Introduction to iOS development, the Cocoa Touch Framework, and the Xcode IDE
- C language highlights
- Overview of Objective-C
Views
Chapters 4-5
View Controllers and delegation
Chapters 6-7
UITableView and UITableViewController
Chapters 8-9
UINavigationController and camera
Chapters 10-11
Autolayout
Chapters 15-16
Autorotation, Popover Controllers, and Modal View Controllers
Saving and loading application state
Chapters 17-18
Subclassing UITableViewCell
Dynamic Type
Chapters 19-20
Web Services, UIWebView, and UISplitViewController
Chapters 21-22
Core Data
Chapters 23-24