iPhone Application Programming (WS 2013/14)





News

  • 22.10.13 The video of the first lecture is now available. See Links section below.
  • 14.10.13 Detailed schedule of the first five lectures are updated.
  • 30.09.13 Lecture and lab schedule is updated
  • 27.09.13 Want to join us in the lab? Fill in this form before Oct. 18th.
  • 23.09.13 Around September 27th, we will announce the procedure for lab registration. You will have time until October 16th to register for the lab. We will announce the result of lab selection on October 18th. The first lab starts on October 21st.
  • 26.08.13 Registration details are updated for WS 2013/14. See below.
  • 27.07.13 Updated homepage for WS 2013/14
  • 03.06.13 In WS13/14, this class will take place Tue 9:15-11:45 (lecture) and Mon 16:15-17:45 (lab) as in past years.
    Please ignore any other dates posted in CAMPUS.

Content

In this course students learn to develop and deploy mobile applications on Apple's iPhone, iPod touch and iPad.

The iPhone OS SDK was designed from scratch when introduced with the iPhone OS 2. In its design, it follows various established software development patterns, making it an ideal subject to teach how to create such an SDK. This shows how software design patterns can advance from pure theory to a real-world setting. On the other hand, the iPhone is a very interesting device from an HCI perspective. The user interface has to deal with (multi-)touch interaction, which results in new challenges to the software architecture, e.g., in event handling. With its rich set of sensors, the iPhone allows 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 Allocation

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, (2) participate in a final project. You will have access to lab schedules on Mondays. We have only 20 slots which will be allocated at the beginning of the semester.


Course Registration

Dates Basic Track (3 ECTS) Hands-on Track (6 ECTS)
Earliest as possibleRegister for the lecture in CAMPUS System
• TK students: please drop Chat an email for registration.
• If you cannot register for the lecture please come to the first lecture.
Within the first week of the lecture • Make sure that you have access to L2P. Otherwise, contact Chat.
• Register with Apple iOS Development Program. Make sure that you can view WWDC videos.
Before Oct. 18th Register for the lab by filling out this form
Oct. 19th Check your email for registration result and preparation instruction. If you don't get a lab slot, you are still in the Basic track.
11.9.–22.11.Register for the exam "iPhone Programming 3 Credits - Exam Registration" in CAMPUS system. Register for the exam "iPhone Programming 6 Credits - Exam Registration" in CAMPUS system.

Schedule

LectureTue9:15-11:45Room 2222
LabMon16:15-17:45Room 4U15 (See Mac Lab@RBI below)
Note: This class will take place as scheduled above. Please ignore the dates stated in CAMPUS system.

LabTopicFacilitatorAssignmentLectureTopicPresenter
Part 1: Basics
15.10.• Course logistics
• Mobile App Design Principles
• iOS Technology Overview

Slides: 1up 4up

Reading assignment
Jan
21.10.• Xcode basics
• Debugger basics

Slides: 1up 4up

Reading assignment
Chat, Leonhard A01: Xcode basics
• Debugging, refactoring, and commenting
• Memory management

A01
22.10.• Objective-C language constructs
• Memory Management
• Cocoa design patterns

Slides (complete): 1up 4up Reading assignment
Gero
28.10.• Memory management
• Assignment feedback
Chat A02: Calculator (1)
• Objective-C coding basics
• Using Foundation classes

A02
29.10.• Data structures
• Timer
• Notifications
• Key-value Observing

Slides (complete):1up 4up
Jan
04.11. (no lab) 05.11. (no lecture)
11.11.• Concurrency demo

Lab3Demo
Chat A03: Calculator (2)
• Cocoa design patterns
• Concurrency

A03
12.11.
• View programming
• Localization

Slides (complete): 1up 4up
Reading assignment
Jan, Chat
18.11.• NSPurgabledata
• Investigating CPU usage
• In-class exercise in concurrency

Lab4Demo
Chat A04: iPhone Invader (1)
• Game design
• Basic screens

A04
19.11.• iOS run-time considerations
• Application life cycle
• View controllers

Slides: 1up 4up
Chat
25.11.• A04 presentation Chat A05: iPhone Invader (2)
• Visualization

A05
Part 2: In-Depth Topics
26.11.• Drawing with Quartz
• GL Kit
• Sprite Kit

Slides: 1up 4up
Simon
02.12.• Assignment feedback
• Device lend-out
Simon, Chat A06: iPhone Invader (3)
• Game input with touch and motion

A06
03.12.• Touch and gesture recognizers
• Motion input
• Proximity sensor and remote control

Slides: 1up 4up
Christian, Nur
09.12.• Assignment feedback Leonhard Final project: Conception

P01
10.12.Instruments

Slides: 1up 4up
Moritz
16.12. Instruments lab Moritz Final project: prototyping and technology survey
(see P01 above)
Part 3: Specific Programming Topics
17.12.Data Persistence
Slides: 1up 4up
Jan-Peter
(winter break)
06.01.• Project feedback Chat Final project week 1 07.01.Networking
Slides: 1up 4up
Jonathan
13.01.• Introduction to L2P API
• Project feedback
CiL Staff, Chat Final project week 2 14.01.Integration
Slides: 1up 4up
Leonhard
20.01.• Project feedback Chat Final project week 321.01.Location & Maps
Slides: 1up4up
Chat
27.01.• Project feedback Chat Final project week 428.01.Audio
Slides: 1up 4up
Florian
03.02.• Final project performance tuning Chat, Moritz, Leonhard, Florian 04.02. (Final project presentation)
Exam and Project Presentation
04.02. Final Project Presentation
9:15–11:45, Room 2222
10.03.Exam
9:00–11:00, Room 2222
13.03.Exam review
17:00–18:00, Room 2222
31.03.Exam second chance
9:00–11:00, Room 2222

Grading:

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



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.


Final Project

This year, students will develop iOS application that help enhancing learning experience. The application will leverage the content and information from L2P, RWTH Aachen University's online learning platform.


Target user group: Students at RWTH Aachen University. Selecting a specific group of students will allow you to fine-tune your app to their need; hence, this makes your app stands out. For example, you may choose to cater students from a major, a semester year, or a course. Alternatively, you may choose to develop an app for a specific disability (sight, hearing, motor disability) or for a situational disability (e.g., an app that chemistry students will use during their chemical experiment that they cannot continuously look at the screen).

Main use case: Activities related to learning. You must specify at least one concrete use case in users' language. The use case must include the context that the app will be used, goals that the user want to achieve, and roles of your app.

Use case:
  • Yelp allows users to look for restaurants nearby based on rating an reviews generated by other users.
  • Things allows users to manage their tasks with a system of check lists.
  • Level Money graphically shows users' daily cash flow to encourage them to better manage their money.
  • Shazam recognizes music playing in the vicinity to allow users to explore and buy music.

NOT a use case
  • view PDF (View what PDF? In which context? Why do the users want to view PDF?)
  • download file (Download what file? What's the utility of the file?)

For a passing grade (4.0), your project must to satisfy all of the the following requirements:
  • Your team must consists of 3 to 5 students.
  • You must create one paper prototype, test with real users, and report the changes that you made in your final UI.
  • You must submit source code of your app for grading. All rights of your source code belongs to you. We will not distribute the code.)
  • Your app must be significantly worked on during this semester. Although you may use existing source code, projects, and libraries, you have to explicitly indicate any existing codes that you've adopted in your source code and documentation.
  • Your app must allows users to accomplish at least one main use case (see above).
  • Your app must be able to run the main use case without crashes or hangs.
  • Your app must use L2P API. We will evaluate how your code handle network communications.
  • At least one of your team member present your app in the final presentation session announced above.
  • Your app and source code must be in English


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 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:
Attachments:
FileDescriptionFile sizeDownloadsLast modified
Download this file (S13 Audio  4up.pdf)S13 Audio 4up.pdf[4up]1641 kB55312014-01-28 17:40
Download this file (S13 Audio  1up.pdf)S13 Audio 1up.pdf[1up]35961 kB21172014-01-28 17:40
Download this file (S12 Location and Maps 4up.pdf)S12 Location and Maps 4up.pdf[4up]3048 kB39612014-01-21 14:56
Download this file (S12 Location and Maps 1up.pdf)S12 Location and Maps 1up.pdf [1up]26545 kB19622014-01-21 14:55
Download this file (S11 Integration 4up.pdf)S11 Integration 4up.pdf[4up]2698 kB35802014-01-15 17:12
Download this file (S11 Integration 1up.pdf)S11 Integration 1up.pdf[1up]30022 kB19652014-01-15 17:12
Download this file (S10 Networking  4up.pdf)S10 Networking 4up.pdf[4up]301 kB28072014-01-09 18:03
Download this file (S10 Networking  1up.pdf)S10 Networking 1up.pdf[1up]3378 kB29762014-01-09 18:03
Download this file (S09 Data Persistence  4up.pdf)S09 Data Persistence 4up.pdf[4up]1078 kB24782014-01-08 17:55
Download this file (S09 Data Persistence  1up.pdf)S09 Data Persistence 1up.pdf[1up]2625 kB23142014-01-08 17:53
Download this file (S08 Instruments  4up.pdf)S08 Instruments 4up.pdf[4up]2108 kB22292013-12-15 17:53
Download this file (S08 Instruments  1up.pdf)S08 Instruments 1up.pdf[1up]3457 kB22322013-12-15 17:53
Download this file (S07 Touch and Input  4up.pdf)S07 Touch and Input 4up.pdf[4up]2338 kB26172013-12-11 16:25
Download this file (S07 Touch and Input  1up.pdf)S07 Touch and Input 1up.pdf[1up]40512 kB19032013-12-11 16:24
Download this file ( P01 Handout.zip) P01 Handout.zip[P01]67 kB20202013-12-08 15:43
Download this file (S06 Drawing  4up.pdf)S06 Drawing 4up.pdf[4up]2685 kB44082013-12-03 20:13
Download this file (S06 Drawing  1up.pdf)S06 Drawing 1up.pdf[1up]51777 kB20722013-12-03 20:13
Download this file ( A06 Handout.zip) A06 Handout.zip[A06]44 kB20472013-12-02 06:15
Download this file (A05 Invader (2).pdf)A05 Invader (2).pdf[A05]40 kB25152013-11-25 03:09
Download this file (S05 View Controllers  4up.pdf)S05 View Controllers 4up.pdf[4up]2294 kB25752013-11-19 14:58
Download this file (S05 View Controllers  1up.pdf)S05 View Controllers 1up.pdf[1up]27948 kB19542013-11-19 14:58
Download this file (S04 UI Design (complete)  4up.pdf)S04 UI Design (complete) 4up.pdf[4up]7164 kB26922013-11-19 14:55
Download this file (S04 UI Design (complete)  1up.pdf)S04 UI Design (complete) 1up.pdf[1up]35237 kB19742013-11-19 14:55
Download this file (Lab4Demo.zip)Lab4Demo.zip[Lab4Demo]63955 kB18802013-11-18 16:54
Download this file (Lab4Demo.zip)Lab4Demo.zip[Lab4Demo]63953 kB17682013-11-18 16:27
Download this file ( A04 Handout.zip) A04 Handout.zip[A04]84 kB21892013-11-18 09:13
Download this file (S04 UI Design (part1)  4up.pdf)S04 UI Design (part1) 4up.pdf[4up]3772 kB22602013-11-12 15:03
Download this file (S04 UI Design (part1)  1up.pdf)S04 UI Design (part1) 1up.pdf[1up]24834 kB19002013-11-12 15:02
Download this file (S03 Foundation Classes (complete)  4up.pdf)S03 Foundation Classes (complete) 4up.pdf[4up]1808 kB31712013-11-12 14:32
Download this file (S03 Foundation Classes (complete)  1up.pdf)S03 Foundation Classes (complete) 1up.pdfS03 Foundation Classes (complete) - 1up33845 kB19902013-11-12 14:31
Download this file (Lab3Demo.zip)Lab3Demo.zip[Lab3Demo]34 kB22152013-11-11 16:54
Download this file (Lab3Demo.zip)Lab3Demo.zip[Lab3Demo]34 kB20142013-11-11 16:52
Download this file (Lab3Demo.zip)Lab3Demo.zip[Lab3Demo]29 kB20922013-11-11 16:21
Download this file ( A03 Handout.zip) A03 Handout.zip[A03]67 kB20422013-11-11 09:25
Download this file (S02 ObjC Cocoa (complete)  4up.pdf)S02 ObjC Cocoa (complete) 4up.pdf 534 kB25112013-10-30 13:37
Download this file (S02 ObjC Cocoa (complete)  1up.pdf)S02 ObjC Cocoa (complete) 1up.pdf 22438 kB20372013-10-30 13:36
Download this file (S03 Foundation Classes (part 1)  4up.pdf)S03 Foundation Classes (part 1) 4up.pdf 339 kB24452013-10-30 13:20
Download this file (S03 Foundation Classes (part 1)  1up.pdf)S03 Foundation Classes (part 1) 1up.pdf 9710 kB23882013-10-30 13:18
Download this file (S02 ObjC Cocoa (complete)  1up.pdf)S02 ObjC Cocoa (complete) 1up.pdf 22438 kB19182013-10-30 13:00
Download this file ( A02 Handout.zip) A02 Handout.zip[A02]125 kB20822013-10-28 15:14
Download this file (S02 ObjC Cocoa (part 1)  4up.pdf)S02 ObjC Cocoa (part 1) 4up.pdf[4up]357 kB25252013-10-22 18:04
Download this file (S02 ObjC Cocoa (part 1)  1up.pdf)S02 ObjC Cocoa (part 1) 1up.pdf[1up]15217 kB20222013-10-22 18:04
Download this file (L01 Provisioning profiles walkthrough  4up.pdf)L01 Provisioning profiles walkthrough 4up.pdf[4up]583 kB26472013-10-22 18:03
Download this file (L01 Provisioning profiles walkthrough  1up.pdf)L01 Provisioning profiles walkthrough 1up.pdf[1up]1339 kB30862013-10-22 18:03
Download this file ( A01 Handout.zip) A01 Handout.zip[A01]234 kB21672013-10-21 19:41
Download this file (S01 Introduction  4up.pdf)S01 Introduction 4up.pdf[4up]15445 kB20792013-10-15 17:12
Download this file (S01 Introduction  1up.pdf)S01 Introduction 1up.pdf[1up]42776 kB23012013-10-15 17:11
Download this file (L01 Reading Assignment (Handson Track).pdf)L01 Reading Assignment (Handson Track).pdf[Reading assignment]35 kB27742013-10-13 21:17
Download this file (L01 Reading Assignment (Handson Track).pdf)L01 Reading Assignment (Handson Track).pdf[Reading assignment]32 kB24652013-10-13 20:58
Download this file (S04 Reading Assignment.pdf)S04 Reading Assignment.pdf[Reading assignment]37 kB26592013-10-13 03:59
Download this file (R01x Reading Assignment (Handson Track).pdf)R01x Reading Assignment (Handson Track).pdf[Reading assignment]31 kB23862013-10-13 03:44
Download this file (R02 Reading Assignment.pdf)R02 Reading Assignment.pdf[Reading assignment]38 kB26152013-10-13 03:40
Download this file (R01 Reading Assignment.pdf)R01 Reading Assignment.pdf[Reading assignment]42 kB30712013-10-13 03:34
Download this file (110715 CTHCI exam rules.pdf)110715 CTHCI exam rules.pdfExam decision tree53 kB26622013-07-29 18:40
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