iPhone Application Programming WS 2014/15 (iOS 8 and Swift)

Content

In this course, you'll learn to develop and deploy mobile applications on Apple's iPhone, iPod touch and iPad (and Apple Watch!).

Apple's designed its mobile iOS operating system and its SDK from scratch. The iOS SDK follows many modern software development patterns, making it an ideal subject to learn how to design such SDKs today. Smartphones and tablets are also very interesting devices from an HCI perspective. The user interface has to deal with multitouch interaction, which presents new challenges to the software architecture, e.g., in event handling. With their rich sets of sensors, iOS devices also allow for input far beyond mouse and keyboard. Finally, both the iPhone and the iPad have simply become "in"-devices since their introduction. Didn't you ever want to show your own app to your friends on your iPhone?

Credits

This course has two tracks

  • Basic track (3 ECTS = V3) — You are required to pass the the final exam.
  • Hands-on track (6 ECTS = V3 + Ü2) — In addition to the 3 ECTS requirements, you are required to (1) hand in assignments regularly, and (2) participate in a final project. You will have access to lab schedules on Mondays. We have only 16 slots for the 6-credit track. These will be allocated at the beginning of the semester.

Course Registration

Dates Basic Track (3 ECTS) Hands-on Track (6 ECTS)
As early as possible
Register for the lecture in CAMPUS
TK students: please drop Simon an email for registration. 
If you cannot register for the lecture please come to the first lecture.
Within the first week of class
Make sure you have access to L2P. Otherwise, contact Simon. 
Register with the Apple iOS Development Program. Make sure you can view WWDC videos.
Before Oct 17   Register for the lab by filling out this form.
Oct 17   Check your email for registration results and preparation instructions. 
If you don't get a lab slot, you are still in the Basic track.
Sept 14–Nov 23 Register for the exam "iPhone Programming 3 Credits - Exam Registration" in CAMPUS. Register for the exam "iPhone Programming 6 Credits - Exam Registration" in CAMPUS.

Schedule

Lecture Tue 8:30-11:00 Room 2222
Lab Mon 16:15-17:45 Room 2222

Note: This class will take place as scheduled above. Please ignore the dates stated in CAMPUS system.

Lecture:

DateTopicLecture
14.10. Introduction to Mobile Programming Jan
21.10. Objective-C Programming Fundamentals Jan
28.10. Foundation Classes Simon
04.11. Foundation Classes Part 2 Simon
11.11. Swift Thorsten
18.11. View Programming Florian
25.11. iOS Run-Time and View Controller Simon
2.12. Render Engines Simon
9.12. Instruments Moritz
16.12. Touch and Input Simon
6.1. Audio Florian
13.1. Data Persistence Jan-Peter
20.1. Location & Maps Chat
27.1. Networking Jonathan
3.2. Final Project Presentations  


Lab:

DateTopicLecture
20.10. Introduction, Setup Simon, Aaron
27.10. Interface Builder Simon, Aaron
03.11. No Lab!  
10.11. Blocks and Threads Simon
17.11. Swift Programming Thorsten
24.11. No Lab!  
01.12. Game Presentations Simon

Grading:

ComponentsBasic Track (3 ECTS)Hands-on Track (6 ECTS)
Assignments 20%
Project 20%
Final Exam 100% 60%

Information for Hands-on Track

Mac Lab@RBI

The RBI has a Mac-Lab (Room 4U15) in which you can work on the assignments. You can work there according to the reservation plan. We reserved additional lab slots exclusively for you on Monday 13:00–16:00 and Thursday 12:00–18:00.

Assignments

Assignments will be handed out on Monday in each lab as shown in the schedule above. The deadline of each assignment is the following Monday at 9:00. Late submission will not be graded.

People

Testimonies

I'd like to thank you and your assistants for your hard work. Your iOS programming course is absolutely awesome and I have been able to start programming in Objective-C. Another book I tried had given me literally nothing, and I wasn't able to switch from Python development to ObjC. Your "theory comes first" approach really works well, much better than so-called "hands-on programming" approaches. -- Michael Samoylov, software developer (Feb 2, 2013)

Literature Recommendations

iOS 8

iOS 7 (including Cocoa and Objective-C):

I highly recommend these two books. They are very well-written, explain things clearly, and provide the thorough grounding that is appropriate for a university class - and which you need to really fully understand and leverage iOS for your apps. You can buy them on paper or in electronic form. O'Reilly has a very good policy, providing DRM-free files, which you can support by buying your own copy. They are really the two volumes of what used to be a single book until iOS 6; it was getting too much for a single bound volume. - Jan

COCOA, Objective C (not iOS specific):

Links



Previous courses: