Programming for iPhone, iPad und iPod Touch
Fachmodul
Lecturer: Michael Markert
Credits: 6 ECTS, 3 SWS
Date: Tuesdays, 13:30 until 16:00 h
Venue: Marienstraße 7b, Room 105
First meeting: Tuesday, 16.4.2013
IMPORTANT: This is the first part of a two-term Fachmodul! It is expected that participants attend both courses.
The course from last year can be found here: IFD:IOSDevI SS12
Gerade als die Schlagworte "ubiquitäres Computing" und "Augmented Reality" trotz immer leistungsfähigeren mobilen Endgeräten ihren Glanz zu verlieren scheinen, sind die iOS Geräte und das iPad dabei, diese Begriffe mit neuem Leben zu füllen: Nicht nur in Bedienung und User Interface werden neue Maßstäbe gesetzt, vor allem die auf den Absatz von Applikationen ausgerichtete Konzeption der Gerätefamilie und eine gut durchdachte Entwicklungsumgebung befördert Rekordzahlen an Software-Neuerscheinungen im App Store. 2010 gab es nur ein Tablet: das iPad. Die Absatzzahlen der iPhones haben sich von 2009 zu 2010 verdoppelt und die Berufsaussichten für iOS Entwickler sind im Moment glänzend.
Dieses Fachmodul zollt dieser Entwicklung Anerkennung und gibt Einblick in die Programmierung für iOS 5.x. Die Einführung des Kurses in Objective-C 2.0, die Vorstellung der wichtigsten Frameworks sowie der Entwicklungsumgebung Xcode / Interface Builder sind übrigens in weiten Teilen auch für native OS X Anwendungen gültig.
Im Lauf des Werkmoduls soll eine kleine Applikation umgesetzt werden (Medienkunst, Experiment, Game, Utility…). Verknüpfungen mit Semesterprojekten und das Zusammenfinden in Teams von Programmierern und Designern sind ausdrücklich erwünscht. Ein spezieller Developer Account mit Zertifikat für teilnehmende Studenten ist vorhanden; damit können Anwendungen auch ohne weitere Kosten auf den eigenen Geräten getestet werden.
Das Fachmodul richtet sich sowohl an Studierende der Medieninformatik als auch der Medienkunst/Mediengestaltung und Gestaltung, die sich mit mobilen Anwendungen für iOS Geräte (iPhones, iPod Touch und iPad Geräten) technisch beschäftigen und künstlerisch auseinandersetzen wollen. Der Kurs stellt die beiden grundsätzlichen Möglichkeiten (Web-Apps und ObjC-Apps) vor. Dabei liegt der Schwerpunkt auf nativen Applikationen, die mit Objective-C programmiert werden.
Themen des Kurses sind:
- Einführung in Objective-C 2.0
- Übersicht Cocoa Touch: iOS 5 Frameworks (UIKit, Foundation…)
- Einführung in die Entwicklungsumgebung Xcode 4
- Generelle Programmierkonzepte der objektorientierten Objective-C Sprache und des Cocoa-Touch Frameworks
- Künstlerische Auseinandersetzung mit dem Medium und Fragen der Interaktion
Als Voraussetzung für dieses Fachmodul ist aufgrund der erhöhten Komplexität (Umgang mit einer höheren objektorientierten Programmiersprache) die Vorkenntnis einer (beliebigen) Programmiersprache erforderlich. Außerdem wird für die Entwicklung ein eigener Mac Rechner mit Intel-Prozessor und OS X 10.7 benötigt.
Dieser Kurs wird auf Englisch abgehalten.
English Description
Just as the buzzwords "Ubiquitous Computing" and "Augmented Reality" are beginning to lose their thrilling denotation, the iPhone and especially the iPad is becoming an exciting platform to set standards - not only regarding the user interface, but also with its application based paradigm and a well-thought development environment. In 2010 there was just one tablet available: the iPad. And the career prospects for iOS developers are certainly very promising.
This module is paying tribute to this progress and is aiming to give an insight into programming concepts for iOS 5 incl. Objective-C 2.0, the related iOS frameworks and the Xcode IDE (which is - by the way - also valid in most parts for application development for the Mac OS X operating system).
At the end of this course, students should have developed a small (!) application (media art, experiment, game, utility...). Combinations with semester projects and teamwork between artists/designers and programmers are very welcome. All participants may access a University's iPhone Developer Account, that enables us to test applications on devices without further expenses.
The Module is open for Media-Systems, MediaArts & Design and the Design Faculty. Because of the advanced topics, it is required to have knowledge of at least one programming language (the concepts of variables, functions, arrays etc... should be known). To develop for iOS, an Intel-based Mac running Mac OS X 10.7 is required. Unfortunately we have no iOS devices to lend, so if you don't want to be restricted to the simulator, you should also have a iOS device (iPhone, iPod Touch, iPad).
Topics
- iOS, iPhone & iPad (General, App Showcase)
- iOS Coding Resources and Tools - incl. 3rd Party Frameworks, Templates, Open Source Projects & Classes...
- iOS Development Setup (SDK-Download, App-Signing How-To)
- Application Types
- Immersive, Productivity, Utility
- View-Based, Quartz 2d, OpenGL
- Xcode
- Interface Builder
- Debugging
- Application Types
- Objective-C 2.0
- Cocoa Design Patterns
- Messaging (Methods, Subclassing, Delegation, Notification...)
- Target-Action-Paradigm
- MVC (Model / View / Controller)
- KVC (Key-Value-Coding)
- Cocoa Touch - the iPhoneOS Frameworks
- Foundation Classes (NSNumber, NSString, NSArray…)
- UIKit Classes (UIApplication, UIView, UIViewController, UITouch ...)
- ViewControllers: Navigation Controller, TabBar Controller, TableView Controller, ...
- TableViews
- ... (see Syllabus for further topics)
- What's new in iOS
- Einführung in kybernetische Systemtheorie als Interaktionsmodell
Projects
Below you find a documentation of the Student's Projects:
- Example Project (Please duplicate this example link and add your project)
- IPuppet
- I Don't Know
- Ringer
- Deutsche Grammatik
- What's The Sum
- Bodhi Tree
Projects from the last year can be found at IFD:IOSDevI SS12#Projects
Requirements
- Access to a Intel-Mac running 10.7.
- We have one Mac Mini available. Please get in touch with Michael!
- An iOS Device (iPhone, iPod Touch, iPad)
- It's possible to develop without device (Simulator)
- Previous knowledge of at least one programming language (e.g. C or JAVA)
If you have questions, please send an eMail!
Registration Procedure
To register for the course, please send an eMail to Michael.Markert (at) uni-weimar.de incuding the following informations:
- Name
- program and semester (Studienprogramm und Fachsemester)
- matriculation number (Matrikelnummer)
- Angabe der geltenden Prüfungsordnung (eg. PV27 or PV29)
- Valid email address @uni-weimar.de (no other mailing addresses will be accepted)
- Do you fulfill the requirements?
- Do you have access to an Intel Mac running at least Mac OS 10.7
- Important: Which programming languages do you know and to what extend?
Sollte es mehr als 20 Bewerber geben, entscheidet die Reihenfolge des Eingangs, die gleichzeitige Teilnahme an begleitenden Semesterprojekten der Professur Interface Design und das Fachsemester (evtl. letzte Chance zur Kursbelegung) über die Aufnahme in den Kurs.
Leistungsnachweis
Regular and active attendance, compilation of all demos, realisation of a small iOS project idea, either as Web-App (HTML/CSS/JavaScript) or (preferred) as native application. Additional ongoing and final documentation in the wiki and short presentation during the course and the IFD:Showreel. It may be that the results of some short online-test will be added to the grading.
Grading:
- Attendance (25%)
- Documentation (30%)
- Realisation of the concept (45%)
- Technical Design (15%)
- Interaction Design (15%)
- Visual/Acoustic Design (15%)
- Wiki-Bonus (10%)
Zielgruppe
Das Werkmodul richtet sich an Studierende aller Fachrichtungen, die sich mit Anwendungen für iPhones, iPads bzw. iPod Touch Geräten technisch beschäftigen und künstlerisch auseinandersetzen wollen, insbesondere an:
- Master-Studenten der Medienkunst/Mediengestaltung
- Master-Studenten der Medieninformatik
- Master-Studenten des postgradualen Studiengangs Media-Architecture
- Diplom-Studenten der Gestaltung
Syllabus
This is a preliminary syllabus, there will be changes according to the needs of the student's projects
09.04.NO COURSE (due to illness, sorry!)- 16.04. Intro, Showcase, Application Types, iOS, Xcode, Interface Builder, Target/Action Demo
- 23.04. Designing for iOS, Objective-C 2.0, Datatypes
- 30.04. Objective-C 2.0, Properties, Object Oriented Programming, Classes & Instances, Project Talk
- 07.05. Foundation Overview, UIKit Overview, UIWebView Demo
- 14.05. Memory Management & ARC, Object Lifecycle, Xcode in depth, Debugging Demo
- 21.05. Recap, Quick Test, Project Talk (Attendance absolutely required!)
- 28.05. MVC, View Controllers, Navigation- & TabBar Controller
- 04.06. Cocoa Design Patterns I (MVC, Target-Action, DataSources, Delegates, KVC/KVO, Notifications ...)
- 11.06. Cocoa Design Patterns II (Categories, Singletons, Protocols: ModalViews), Blocks
- 18.06. TextInput (TextInput Delegation, UIPasteboard & Localisation), UIImagePicker (Photo & Camera Access)
- 25.06. Timers, Data & Persistance (UserPreferences, Settings, NSCoder & NSKeyedArchiver, SQLite, CoreData), Project Talk
- 02.07. Shake, Xcode Tipps & Tricks, Project Talk
- 09.07. TableViews, Project Talk
- To be continued in iOS Dev II next term: Views, Coordinate Space, ScrollViews, Core Animation, Views & Drawing, Audio, Video, Custom Table Cells, Touch Events, Multi-Touch, Gestures, Location, Maps, CoreMotion & Accelerometer, Undo, Blocks, Multitasking, Quick Overview: Gamekit, Instruments, Unit Testing, what's new in iOS, Battery Life & Power Management, Performance (Memory Usage, Leaks, Autorelease, Threads vs. Blocks)
Bonjour & Networking
- 20.09. Final Deadline (see below)
Hand-in of the results:
- Brief documentation here in the Wiki with one to three screenshots and short explanation
- (Maybe) 2-min presentation at the IFD:Showreel
- and (via E-Mail or Download-Link): compilable, open Xcode project file (please delete the intermediate build folder!), Deadline is the 20.09.2012.
Literature
Weitere Literatur- und Links finden sich in den jeweiligen Untersektionen.
Official
- Bauhaus-iOS @ developer.apple.com
- Apple's User Interface Guidelines for the iPhone Plattform: User Experience
- iOS Reference Library
- iOS Development Guide - Introduction
- iOS Programming Guide
Tutorials & Online-Courses
- iTunes U: Stanford Programming iPhone Course
- Apple Developer Videos (for registered developers)
- iCodeBlog iPhone Tutorials
- iOS Development 101
Literatur
- O'Reilly: Head First iPhone Development, ISBN 978-0-596-80354-4
- O'Reilly & MAKE: iPhone Open Application Development, ISBN 9780596516642
- O'Reilly iPhone Game Development: Paul Zirkle & Joe Hogue, ISBN 978-0-596-15985-6
- Beginning iPhone Development: Dave Mark, Jeff LaMarche, ISBN 978-1430224594
- iPhone SDK Programming, Advanced Mobile Development: Maher Ali, ISBN 978-0-470-68398-9
- iPhone Advanced Projects: Apress, ISBN 978-1430224037
- iPhone Design Award Winning Projects: Apress, ISBN 978-1-4302-7235-9 & eBook ISBN 978-1-4302-7234-2
- Beginning iPhone SDK Programming with Objective-C, Wei-Meng Lee, ISBN 978-0470500972
- Pragmatic iPhone 3.0 SDK Development: Bill Dudney & Chris Adamson. ISBN 978-1-93435-625-8
- Web-Applications: Professional iPhone and iPod Touch Programming - Building Applications for Mobile Safari, ISBN 978-0-470-25155-3
Hinweis: Die hier aufgeführte Literatur ist optional und nicht verbindlich! Beim Privatkauf englischsprachiger Literatur bitte beachten, dass diese nicht der deutschen Buchpreisbindung unterliegt (z.B. Head First iPhone Dev im Januar 2010 bei Thalia 48,-, bei Amazon 27,-)!
Teile der o.g. Literatur werden für die Teilnehmer des Kurses auf Metacoon digital verfügbar sein.
Diese Seite ist Teil des Werkmoduls iOS Development von Michael Markert für Interface Design / Fakultät Medien an der Bauhaus-Universität Weimar.