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:
Date | Topic | Lecture |
---|---|---|
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:
Date | Topic | Lecture |
---|---|---|
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:
Components | Basic 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
- Prof. Jan Borchers — Lecturer
- Simon Voelker — Coordinator, main contact person for this course
- Aaron Krämer — Student assistant
- Florian Heller — iTunes U management
- Specialized topic lecturers listed in the schedule above
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):
- Matt Neuburg: iOS 7 Programming Fundamentals. Covers the theoretical basics you need - C, ObjC, Xcode, Cocoa Foundation classes, KVC, etc.
- Matt Neuburg: Programming iOS 7. Continues on with views, view controllers, persistence, threads, networking, and many of the key frameworks (including sensors, etc.). (Check out a draft of the previous version: Programming iOS 6 )
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
- L2P: Lecture slides, assignments, and resources (for RWTH students only)
- iTunes U: Lecture videos and slides. Don't have iTunes installed? Subscribe to this RSS.
- iPhone Developer Starting Page: Guide to the Apple iOS Developer Center for RWTH students and institutes.
- Sample iPhone Projects A collection of small examples created for our students.
- Join our Facebook Group
- Apple on Campus: Getting a Mac with student discounts.
Previous courses: