iPhone Application Programming WS 2015/16 (Updated for iOS 9 and Swift 2.1)

 

Video teaser of past course projects

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

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 Nur an email for registration. 
If you cannot register for the lecture please come to the first lecture.
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

LectureTopicPresenterLabTopicWritten AssignmentReading 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:

Attachments:
FileDescriptionFile sizeDownloadsLast modified
Download this file (L06 Exam Preparation .pdf)L06 Exam Preparation .pdf 2743 kB25002016-02-09 13:45
Download this file (S05 View Programming.pdf)S05 View Programming.pdf 7820 kB26172016-02-09 01:57
Download this file (S10 Multimedia and WatchOS.pdf)S10 Multimedia and WatchOS.pdf 31899 kB25852016-02-05 12:16
Download this file (S13 Demos.zip)S13 Demos.zip 18404 kB23952016-02-05 12:10
Download this file (S13 tvOS.pdf)S13 tvOS.pdf 44597 kB27972016-02-05 12:09
Download this file (S12 Data Persistence.pdf)S12 Data Persistence.pdf 32066 kB25942016-02-05 12:08
Download this file (S12 Data Persistence.pdf)S12 Data Persistence.pdf 32066 kB24242016-02-05 12:06
Download this file (S12 Data Persistence.pdf)S12 Data Persistence.pdf 32066 kB25632016-02-05 12:03
Download this file (S12 Data Persistence.pdf)S12 Data Persistence.pdf 32066 kB23532016-02-05 02:05
Download this file (S12 Data Persistence.pdf)S12 Data Persistence.pdf 32066 kB25232016-02-03 12:01
Download this file (S09 Data Persistence.pdf)S09 Data Persistence.pdf 32066 kB25092016-02-03 11:57
Download this file (S09 Location  Maps.pdf)S09 Location Maps.pdf 32937 kB27342016-01-29 15:56
Download this file (S09 Location  Maps.pdf)S09 Location Maps.pdf 32937 kB25782016-01-29 15:55
Download this file (S11 Networking.pdf)S11 Networking.pdf 7829 kB26962016-01-23 23:57
Download this file (Demos.zip)Demos.zip 17736 kB24872016-01-23 23:56
Download this file (S10 Multimedia and WatchOS.pdf)S10 Multimedia and WatchOS.pdf 31899 kB27612016-01-23 23:53
Download this file (L05 Final Project Kickoff.pdf)L05 Final Project Kickoff.pdf 2552 kB27172016-01-08 15:05
Download this file (S04 Foundation and Design Patterns.pdf)S04 Foundation and Design Patterns.pdf 9653 kB31172016-01-05 01:19
Download this file (S03 Swift Part 2.pdf)S03 Swift Part 2.pdf 6234 kB27952016-01-05 00:51
Download this file (S03 Swift Part 2.pdf)S03 Swift Part 2.pdf 7165 kB23262016-01-04 17:08
Download this file (S07 Demos.zip)S07 Demos.zip 16234 kB25852015-12-28 21:18
Download this file (S07 Rendering Metal Sprite kit Scene kit.pdf)S07 Rendering Metal Sprite kit Scene kit.pdf 16918 kB34382015-12-28 21:13
Download this file (Location  Maps ?? Demos.zip)Location Maps ?? Demos.zip 194 kB18712015-12-25 00:43
Download this file (S09 Location  Maps.pdf)S09 Location Maps.pdf 32944 kB27152015-12-25 00:42
Download this file (S08 Demos.zip)S08 Demos.zip 5253 kB21022015-12-22 00:31
Download this file (S08 Event Handling Gesture Recognizers and Core Motion.pdf)S08 Event Handling Gesture Recognizers and Core Motion.pdf 5643 kB33832015-12-22 00:30
Download this file (L05 Final Project Kickoff.pdf)L05 Final Project Kickoff.pdf 2505 kB27702015-12-07 21:49
Download this file (S06 View Controller Programming Core Graphics and Core Animation.pdf)S06 View Controller Programming Core Graphics and Core Animation.pdf 8312 kB31722015-12-01 13:44
Download this file (S05 View Programming.pdf)S05 View Programming.pdf 13344 kB28972015-12-01 13:42
Download this file (Enumerations.playground.zip)Enumerations.playground.zip 11 kB18932015-11-26 00:01
Download this file (S04.pdf)S04.pdf 14094 kB28412015-11-26 00:00
Download this file (A05 Handout.zip)A05 Handout.zip 4827 kB20482015-11-24 02:55
Download this file (L04 Integration Demo.zip)L04 Integration Demo.zip 134 kB19762015-11-24 02:54
Download this file (L04 Integration.pdf)L04 Integration.pdf 3009 kB28442015-11-24 02:53
Download this file (A04 Handout.zip)A04 Handout.zip 82 kB19542015-11-16 18:13
Download this file (S03 Playgrounds.zip)S03 Playgrounds.zip 78 kB19832015-11-10 14:18
Download this file (S03 Swift Part 2.pdf)S03 Swift Part 2.pdf 6404 kB30302015-11-10 14:18
Download this file (TemperatureConverter.zip)TemperatureConverter.zip 49 kB19582015-11-09 17:21
Download this file (L03 Swift Types and Custom Operator  A02 discussion.pdf)L03 Swift Types and Custom Operator A02 discussion.pdf 6289 kB33502015-11-09 17:20
Download this file (A03 Handouts.zip)A03 Handouts.zip 70 kB20452015-11-09 14:44
Download this file (A03 Handouts.zip)A03 Handouts.zip 70 kB18212015-11-09 14:44
Download this file (A02 Handouts.zip)A02 Handouts.zip 79 kB18972015-11-03 01:33
Download this file (Delegation.playground.zip)Delegation.playground.zip 12 kB18582015-11-03 00:45
Download this file (L02 MVC and Delegation  A01 discussion .pdf)L02 MVC and Delegation A01 discussion .pdf 4977 kB34642015-11-03 00:44
Download this file (A02 Handouts.zip)A02 Handouts.zip 79 kB17552015-11-02 13:58
Download this file (S02 Playgrounds.zip)S02 Playgrounds.zip 35 kB20232015-10-28 12:07
Download this file (L01 iOS Development Environment .pdf)L01 iOS Development Environment .pdf 2499 kB29722015-10-28 11:44
Download this file (S02 Swift Part 1.pdf)S02 Swift Part 1.pdf 4571 kB28052015-10-28 05:01
Download this file (Oct 26.pdf)Oct 26.pdf 37 kB23652015-10-26 14:09
Download this file (Handout.zip)Handout.zip 234 kB23002015-10-26 14:06
Download this file (S01 Logistics and Intro to Mobile Programming.pdf)S01 Logistics and Intro to Mobile Programming.pdf 37802 kB33942015-10-20 13:42
Download this file (Accepted students for lab (pulled on 19.10.15).pdf)Accepted students for lab (pulled on 19.10.15).pdf 43 kB26902015-10-19 14:27
Download this file (Accepted students for lab (pulled on 19.10.15).pdf)Accepted students for lab (pulled on 19.10.15).pdf 20 kB24042015-10-19 03:47
Download this file (Oct 6.png)Oct 6.png 380 kB27632015-10-06 15:07
Download this file (Oct 6.pdf)Oct 6.pdf 33 kB25002015-10-06 15:07
Download this file (A04 Invader (1).pdf)A04 Invader (1).pdf[A04]98 kB32652014-12-01 12:53
Download this file (A05 Invader (2).pdf)A05 Invader (2).pdf[A05]39 kB31862014-12-01 12:53
Download this file (A03 BeverageList Swift.pdf)A03 BeverageList Swift.pdfA03 Handout63 kB31422014-11-13 12:01
Download this file ( A02 Handout.zip) A02 Handout.zip 90 kB26912014-10-27 16:17
Download this file (A01 Handout.zip)A01 Handout.zipAssignment 1249 kB39972014-10-21 00:19
Cookies make it easier for us to provide you with our services. With the usage of our services you permit us to use cookies.
More information Ok