iPhone Application Programming WS 2015/16 (Updated for iOS 9 and Swift 2.1)
Starting in Winter Semester 2016/2017, this course was redesigned. It's now using a new teaching format, and has a new URL: https://hci.rwth-aachen.de/ios
News:
- 04.01.16 first lecture after Xmas is on 12.01.16 and first lab 11.01.16
- 19.10.15 the list (updated) of accepted students in the lab
- 19.10.15 L2P room is now open
- 19.10.15 the list of accepted students in the lab
- 06.10.15 the lectures will be recorded and uploaded to iTunes
- 06.10.15 L2P room will be open after the first week of lectures
- 06.10.15 first lecture will take place on 20.10.15 Tuesday at 9:15-11:45 in room 2222, Ahornstr. 55
- 06.10.15 there will be no lab on 19.10.15
- 24.08.15 registration will open soon. If you are interested in registering for the lab in addition to the, fill this form. We only have 16 slots in the lab. If you are accepted in the lab you can register for the course as 6 ECTS credits, otherwise you can only take it as 3 ECTS credits.
Why Take This Course?
- At the end of the course you will be able to implement full iOS apps
- You will know Swift: syntax, concepts, and how to use it correctly. Swift can be used to program iOS, OS X, watchOs, and tvOS
- You will be able to design your apps to look and feel according to Apple’s Human Interface Guidelines
- Your implementation will follow the recommended design strategies: MVC, delegation, target-action
- You will be able to use the most important frameworks in Cocoa Touch (UIKit, Foundation, SpriteKit, MapKit, AVFoundation, etc.) and can easily learn more!
- Your will know how to make your apps interactive: animations, multimedia, graphics, sensors, etc
Swift or Objective-C?
If you are starting, Swift. If you know Objective-C, then Swift. Objective-C is not going away any time soon, but Swift is slowly taking over as an independent language for all Apple devices(iOS, OS X, tvOS, watchOS). You can (almost) write all Swift apps now.
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 the Mac lab and iPhone devices if needed. We have only 16 slots for the 6-credit track. These will be allocated at the beginning of the semester.
- The course can be taken for master credit
People
- Prof. Jan Borchers — Lecturer
- Nur Al-huda Hamdan — Coordinator, main contact person for this course
- Specialized topic lecturers listed in the plan above
Course Registration
Dates | Basic Track (3 ECTS) | Hands-on Track (6 ECTS) | |||||
As early as possible | |||||||
Before Oct 20 | Register for the lab by filling out this form. | ||||||
Before Oct 26 | Check your email for registration results and preparation instructions. If you don't get a lab slot, you are still in the Basic track. |
||||||
Before Nov 27 | 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 | 9:15-11:45 | Room 2222 | ||||
Lab | Mon | 14:15-15:45 | Room 2222 |
Exams
Final | 19.02.16 | 10:00-12:00 | Room 9222 | ||||
Final second chance | 29.02.16 | 10:00-12:00 | Room 9222 |
NOTE: Seminar room 9222 is in building E3 is (the newest building in Informatik-Gebäude, ahornstraße. 55). To reach the room, go to the Informatik library, E2 (Bibliothek der Fachgruppe Informatik), take the stairs down one floor, take the door to exit the building, on your left is building E3. Room 9222 is in the 2nd floor (you can take the elevator/lift).
Grading
Scored Items | Basic Track (3 ECTS) | Hands-on Track (6 ECTS) | |||||
Assignments | – | 20% | |||||
Project | – | 20% | |||||
Final Exam | 100% | 60% |
Course Work
Lecture | Topic | Presenter | Lab | Topic | Written Assignment | Reading Assignment (good apps) | Advanced Topics (successful apps) |
---|---|---|---|---|---|---|---|
20.10. | S01 Logistics and Intro to Mobile Development S01 Slides How to Setup iOS Development Environment |
Nur | 26.10 | L01 iOS Development Environment L01 Slides |
A01 Debugger and App Life Cycle A01 Handout |
Designing for iOS Case Study: From Desktop to iOS |
|
27.10. | S02 Swift Part1 S02 Slides S02 Demos |
Nur | 02.11. | L02 MVC and Delegation + A01 discussion L02 Slides L02 Demos |
A02 MVC and Delegation A02 Handout |
From Swift Language Guide: the basics, basic operations, strings and characters, collection types, control flow, functions, closures, classes and structures, and properties. (Do the "Experiment" with Playground. Consider the "Notes" they are quite informative.) To catch up with the lab: Check out the Jump Right In iOS programming tutorial from Apple (we covered until “Implement a Custom Control") |
|
03.11. | No lecture | – | 09.11. | L03 Swift Types and Custom Operator + A02 discussion L03 Slides L03 Demo |
A03 BeverageList: Swift Types, Undo, and Unit Tests A03 Handout |
Debugging with Xcode: Quick Start | Debugging with Xcode: Debugging Tools WWDC 2014:Debugging in Xcode 6 WWDC 2015:Advanced Debugging and the Address Sanitizer |
10.11. | S03 Swift Part 2 S03 Slides (updated on 04.01.16) S03 Demos |
Nur | 16.11. | No lab | A04 UpcomingMovies: Tables, View Navigation, NSData + JSON, Web View, GCD A04 Handout |
WWDC 2015:Protocol-Oriented Programming in Swift WWDC 2015:Building Better Apps with Value Types in Swift |
Energy Efficiency Guide for iOS Apps |
17.11. | No lecture | – | 23.11. | L04 Integration with Cocoa Touch L04 Slides L04 Demo |
A05 Instagram: Building a complete app, User Documents, Integration A05 Handout |
The rest of The Swift Programming Language (Swift 2.1) Cocoa Core Competencies: MVC, Bundle, Key-value observing, Notification and Property list. |
Swift Language Reference |
24.11. | S04 Foundation and Design Patterns S04 Slides S04 Demos |
Nur | 30.11. | S05 View Programming S05 Slides |
Continue A05 | View Programming Guide UIKit Framework UIKit User Interface Catalog |
|
01.12. | S06 View Controller Programming, Core Graphics and Core Animation S06 Slides |
Nur | 07.12. | L05 Final Project Kickoff L05 Slides |
A05 deadline extended to Wednesday 09.12. 10:00pm P01 Health App Concept. Submit a 3 line description of your app, list of features, expected users, screens of the main screens, and a working app name (see example). Deadline Mon. 14.12. 9:00am Recommended to know what data you can get from HealthKit: WWDC '14 Introduction to HealthKit |
App Programming Guide for iOS: The App Life Cycle and Strategies for Handling App State Transitions View Controller Programming Guide |
Core Animation Programming Guide WWDC '15 Designing with Animation Quartz 2D Programming Guide Xcode Guide |
08.12. | No lecture | – | 14.12. | No lab | Recommended for project: WWDC '15 What's New in Core Motion WWDC '15 Building Responsive and Efficient Apps with GCD |
WWDC '15 Implementing UI Designs in Interface Builder WWDC '15 What's New in Notifications Learn how to do data validation and understand the benefits of structs: WWDC '14 Advanced iOS Application Architecture and Patterns |
|
15.12. | S07 Rendering, Metal, Sprite kit, Scene kit S07 Slides S07 Demos |
Simon Voelker | 21.12. | S08 Event Handling, Gesture Recognizers and Core Motion + project discussion S08 Slides S08 Demos |
Continue with project | – | – |
22.12. | S09 Location & Maps S09 Slides S09 Demos |
Krishna Subramanian | Xmas break until 05.01.16 | ||||
– | – | – | 11.01. | Project discussion | Continue with project | – | – |
12.01. | S10 Multimedia and WatchOS S10 Slides S10 Demos |
Jan-Peter | 18.01. | Project discussion | Continue with project | – | – |
19.01. | S11 Networks S11 Slides |
Christian Cherek | 25.01. | Project discussion | Continue with project | – | – |
26.01. | No lecture | – | 01.02. | S12 Data Persistence (Jan-Peter) S12 Slides S12 Demos |
Continue with project | – | – |
02.02. | S13 tvOS S13 Slides S13 Demos |
Christian Corsten and Krishna | 08.02. | No lab | Continue with project | – | – |
09.02. | Projects presentation and exam preparation Exam Prep. Slides |
Nur |
Course Plan (updated 10.11.15)
Previous courses: