iPhone Application Programming WS 2015/16 (iOS 9 and Swift 2.1)
The site contains additional learning materials and logistics.
News:
- 04.01.16 first lecture after Xmas is on 12.01.16 and first lab 11.01.16
- 19.10.15 the list of accepted students in the lab is now available
- 19.10.15 L2P room is now open
- 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 How to Setup iOS Development Environment |
Nur | 26.10 | L01 iOS Development Environment |
A01 Debugger and App Life Cycle |
Designing for iOS Case Study: From Desktop to iOS |
|
27.10. | S02 Swift Part1 | Nur | 02.11. | L02 MVC and Delegation + A01 discussion |
A02 MVC and Delegation |
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 |
A03 BeverageList: Swift Types, Undo, and Unit Tests |
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 |
Nur | 16.11. | No lab | A04 UpcomingMovies: Tables, View Navigation, NSData + JSON, Web View, GCD |
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 |
A05 Instagram: Building a complete app, User Documents, Integration |
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 |
Nur | 30.11. | S05 View Programming |
Continue A05 | View Programming Guide UIKit Framework UIKit User Interface Catalog |
|
01.12. | S06 View Controller Programming, Core Graphics and Core Animation |
Nur | 07.12. | L05 Final Project Kickoff |
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 |
Simon Voelker | 21.12. | S08 Event Handling, Gesture Recognizers and Core Motion + project discussion | Continue with project | – | – |
22.12. | S09 Location & Maps | Krishna Subramanian | Xmas break until 05.01.16 | ||||
– | – | – | 11.01. | Project discussion | Continue with project | – | – |
12.01. | S10 Multimedia and WatchOS |
Jan-Peter | 18.01. | Project discussion | Continue with project | – | – |
19.01. | S11 Networks | Christian Cherek | 25.01. | Project discussion | Continue with project | – | – |
26.01. | No lecture | – | 01.02. | S12 Data Persistence (Jan-Peter) S12 Demos |
Continue with project | – | – |
02.02. | S13 tvOS |
Christian Corsten and Krishna | 08.02. | No lab | Continue with project | – | – |
09.02. | Projects presentation and exam preparation | Nur |
Course Plan (updated 10.11.15)
Previous courses: