IFD:IOSDev: Difference between revisions

From Medien Wiki
 
(30 intermediate revisions by 7 users not shown)
Line 38: Line 38:


== Topics ==
== Topics ==
* [[iPhone]] (General, App Showcase)
* [[iOS]], [[iPhone]] & [[iPad]] (General, App Showcase)
** [[iPhone Coding Resources & Tools]] - incl. 3rd Party Frameworks, Templates, Open Source Projects & Classes...
* [[iOS Coding Resources and Tools]] - incl. 3rd Party Frameworks, Templates, Open Source Projects & Classes...
* [[IPhoneDev|iPhone Development]] (SDK-Download, App-Signing How-To)
* [[IPhoneDev|iOS Development Setup]] (SDK-Download, App-Signing How-To)
** [[Application Types]]
** [[Application Types]]
*** Immersive, Productivity, Utility
*** Immersive, Productivity, Utility
Line 61: Line 61:
** TableViews
** TableViews
** ... (see Syllabus for further topics)
** ... (see Syllabus for further topics)
* [http://developer.apple.com/technologies/iphone/whats-new.html#api iPhone OS 4]
* [http://developer.apple.com/technologies/iphone/whats-new.html#api iOS 4 & iOS 5 Sneak Peek]
* Einführung in [[Systemtheorie|kybernetische Systemtheorie]] als Interaktionsmodell
* Einführung in [[Systemtheorie|kybernetische Systemtheorie]] als Interaktionsmodell
== Projects ==
Below you find a documentation of the Student's Projects:
* [[/Projects/Example|Example Project]] (Please duplicate this example link and add your project)
* [[/Projects/Michaela|Mobile Shopping Websites]]
* [[/Projects/Fabian|feindura Webmaster Tool]]
* [[/Projects/Andreas|LivingCampus]]
* [[/Projects/Pavlos|UPIC]]
* [[/Projects/Patawat_Phamuad|SantaBlock: the marvelous addictive casual game for iPhone]]
* [[/Projects/jreizner|Whose Museum: an exhibition and collections platform]]
* [[/Projects/Caren-Maria|PICtureControl]]


== Requirements ==
== Requirements ==
Line 102: Line 114:


== Syllabus ==
== Syllabus ==
This is a preliminary syllabus, there will be changes according to the needs of the student's projects
# 12.04. Intro, Showcase, Application Types, iOS, Project Talk
# 12.04. Intro, Showcase, Application Types, iOS, Project Talk
# 19.04. <s>Objective-C 2.0,  Objective-C 2.0, Xcode, Interface Builder, Custom Classes, Memory Management, Object Lifecycle, Properties
# 19.04. Objective-C 2.0,  Xcode, Interface Builder, Custom Classes, Target/Action Demo
# 26.04. Recap Objective-C 2.0, Xcode, Debugging, Foundation Overview
# 26.04. Project Talk, Recap Objective-C 2.0, Memory Management, Object Lifecycle, Properties, Xcode, Debugging Demo
# 03.05. Recap, UIKit Overview, Cocoa Design Patterns (MVC, Target-Action, KVC/KVO, DataSource, Delegates, Notifications, Protocols, Categories ...)
# 03.05. Foundation Overview, UIKit Overview, UIWebview Demo
# 10.05. Recap Design Patterns, Navigation- & View Controllers, TabBar Controller
# 10.05. Project Talk, MVC, View Controllers, Navigation- & TabBar Controller
# 17.05. Recap View Controllers, ScrollViews, Core Animation, TableViews
# 17.05. Cocoa Design Patterns (MVC, Target-Action, KVC/KVO, DataSource, Delegates, Notifications, Protocols, Categories ...)
# 24.05. Views, Quartz 2D Drawing, Timers, Text Input, Custom Table Cells
# 24.05. Recap, Coordinate Space, ScrollViews, Core Animation, Modal Views
# 31.05. ''ENTFÄLLT VORAUSSICHTLICH'' Web View, Location, Maps
# <span style="background-color:yellow;"><s>31.05.</s> ''!! NO LECTURE !!''</span> <!-- Views & Drawing, Audio, Video -->
# 07.06. Touch Events, Multi-Touch, Gestures, Responder Chain<br/>Data & Persistance (UserPreferences, Settings, NSCoder & NSKeyedArchiver, SQLite, CoreData)
# 07.06. Text Input, TableViews, Custom Table Cells, Views, Timers
# 14.06. Accelerometer, Shake, Undo, Camera, ImagePicker
# 14.06. Touch Events, Multi-Touch, Gestures
# 21.06. Audio API, Video Playback, Bonjour, NSStream, GameKit, UIPasteBoard
# 21.06. Location, Maps, Data & Persistance (UserPreferences, Settings, NSCoder & NSKeyedArchiver, SQLite, CoreData)
# 28.06. Localization, Battery Life & Power Management, Performance (Memory Usage, Leaks, Autorelease, Threads), Debugging, Instruments, Unit Testing, Publishing to the App Store, Xcode Tips & Tricks  
# 28.06. Data & Persistance (cont.), CoreMotion & Accelerometer, Shake, Undo, Views & Drawing
# 05.07. Recap - What's really important (focussing on differences to Desktop & iPad),<br/>changes with iPhone OS 4<br/>&nbsp;
# 05.07. Blocks, Multitasking, ImagePicker (Camera), Audio, Video, Localization, UIPasteboard
# 12.07. Ausstellungsvorbereitung gelungener Arbeiten für Summary am 14.07.
# 12.07. Quick Overview: Gamekit, Instruments, Unit Testing, what's new in iOS5<br/>Battery Life & Power Management, Performance (Memory Usage, Leaks, Autorelease, Threads), Xcode Tips & Tricks<br/>Bonjour & Networking<br/>&nbsp;
# xx.09. Abgabe
# 30.08. Final Deadline


Abgabe der Ergebnisse:
Abgabe der Ergebnisse:
* als Dokumentation im Wiki mit Screenshots und Erläuterungen
* als Dokumentation im Wiki mit Screenshots und Erläuterungen
* und (per E-Mail): kompilierbare quelloffene Projektdatei, bis zum xx.09.2010.</s>
* und (per E-Mail): kompilierbare quelloffene Projektdatei, bis zum 30.08.2011.


== Literature ==
== Literature ==
Line 126: Line 139:


=== Official ===
=== Official ===
* [http://developer.apple.com/iphone/manage/overview/index.action Bauhaus-iPhone @ developer.apple.com]
* [http://developer.apple.com/iphone/manage/overview/index.action Bauhaus-iOS @ developer.apple.com]
* Apple's User Interface Guidelines for the iPhone Plattform: [http://developer.apple.com/iphone/library/documentation/UserExperience/Conceptual/MobileHIG/Introduction/Introduction.html User Experience]
* Apple's User Interface Guidelines for the iPhone Plattform: [http://developer.apple.com/iphone/library/documentation/UserExperience/Conceptual/MobileHIG/Introduction/Introduction.html User Experience]
* [http://developer.apple.com/iphone/library/navigation/index.html iPhone Reference Library]
* [http://developer.apple.com/iphone/library/navigation/index.html iOS Reference Library]
* [http://developer.apple.com/iphone/library/documentation/Xcode/Conceptual/iphone_development/000-Introduction/introduction.html iPhone Development Guide] - Introduction
* [http://developer.apple.com/iphone/library/documentation/Xcode/Conceptual/iphone_development/000-Introduction/introduction.html iOS Development Guide] - Introduction
* [http://developer.apple.com/iphone/library/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/Introduction/Introduction.html iPhone OS Programming Guide]
* [http://developer.apple.com/iphone/library/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/Introduction/Introduction.html iOS Programming Guide]


=== Tutorials & Online-Courses ===
=== Tutorials & Online-Courses ===
* '''[http://deimos3.apple.com/WebObjects/Core.woa/Browse/itunes.stanford.edu.2024353965.02024353968 iTunes U: Stanford Programming iPhone Course]'''
* '''[http://deimos3.apple.com/WebObjects/Core.woa/Browse/itunes.stanford.edu.2024353965.02024353968 iTunes U: Stanford Programming iPhone Course]'''
* '''[http://developer.apple.com/videos/wwdc/2010/ Apple WWDC 2010 Videos]''' (for registered developers)
* '''[http://developer.apple.com/videos/ Apple Developer Videos]''' (for registered developers)
* [http://icodeblog.com/2008/07/26/iphone-programming-tutorial-hello-world/ iCodeBlog iPhone Tutorials]
* [http://icodeblog.com/2008/07/26/iphone-programming-tutorial-hello-world/ iCodeBlog iPhone Tutorials]
* [http://www.idev101.com/ iPhone Development 101]
* [http://www.idev101.com/ iOS Development 101]


=== Literatur ===
=== Literatur ===

Latest revision as of 19:22, 14 December 2011

Iosdev newTeaserpic.jpg

Programming for iPhone, iPad und iPod Touch

Fachmodul
Lecturer: Michael Markert
Credits: 6 ECTS, 4 SWS
Date: Tuesday, 15:15 until 18:30 h
Venue: Marienstraße 7b, Projektraum 104
First meeting: 12.04.2011


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 für die iPhone Plattform. 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 4.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 (Smalltalk-ähnliche, auf C aufbauende Sprache)
  • Übersicht Cocoa Touch: iOS 4 Frameworks (UIKit, Foundation…)
  • Einführung in die Entwicklungsumgebungen Xcode und Interface Builder
  • Generelle Programmierkonzepte der objektorientierten Objective-C Sprache
  • 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 dringend empfohlen. Interessierte Gestalter und angehende Künstler, auf die dies nicht zutrifft, sollten sich davon nicht abschrecken lassen, eventuell können Teams gebildet werden.

English Description

Just as the buzzwords "Ubiquitous Computing" and "Augmented Reality" are beginning to loose their thrilling denotation, the iPhone and especially the new 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 4 incl. Objective-C 2.0, the related iOS frameworks and the Xcode/Interface-Builder 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 strongly recommended 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.5.7 or later 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

Projects

Below you find a documentation of the Student's Projects:

Requirements

  • Access to a Intel-Mac running 10.5. or 10.6.
    • 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) is strongly recommended

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)

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

Regelmäßige und aktive Teilnahme sowie die Umsetzung einer Projektidee, entweder als Web-App (online) oder als native Anwendung sowie eine begleitende und abschließende Dokumentation im Wiki mit Kurzpräsentation im Rahmen des Kurses.

Grading:

  • Attendance (20%)
  • Concept of an app (20%)
  • Realisation of the concept, at least partially (60%)
    • Technical Design (20%)
    • Interaction Design (20%)
    • Visual/Acoustic Design (20%)
  • 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

  1. 12.04. Intro, Showcase, Application Types, iOS, Project Talk
  2. 19.04. Objective-C 2.0, Xcode, Interface Builder, Custom Classes, Target/Action Demo
  3. 26.04. Project Talk, Recap Objective-C 2.0, Memory Management, Object Lifecycle, Properties, Xcode, Debugging Demo
  4. 03.05. Foundation Overview, UIKit Overview, UIWebview Demo
  5. 10.05. Project Talk, MVC, View Controllers, Navigation- & TabBar Controller
  6. 17.05. Cocoa Design Patterns (MVC, Target-Action, KVC/KVO, DataSource, Delegates, Notifications, Protocols, Categories ...)
  7. 24.05. Recap, Coordinate Space, ScrollViews, Core Animation, Modal Views
  8. 31.05. !! NO LECTURE !!
  9. 07.06. Text Input, TableViews, Custom Table Cells, Views, Timers
  10. 14.06. Touch Events, Multi-Touch, Gestures
  11. 21.06. Location, Maps, Data & Persistance (UserPreferences, Settings, NSCoder & NSKeyedArchiver, SQLite, CoreData)
  12. 28.06. Data & Persistance (cont.), CoreMotion & Accelerometer, Shake, Undo, Views & Drawing
  13. 05.07. Blocks, Multitasking, ImagePicker (Camera), Audio, Video, Localization, UIPasteboard
  14. 12.07. Quick Overview: Gamekit, Instruments, Unit Testing, what's new in iOS5
    Battery Life & Power Management, Performance (Memory Usage, Leaks, Autorelease, Threads), Xcode Tips & Tricks
    Bonjour & Networking
     
  15. 30.08. Final Deadline

Abgabe der Ergebnisse:

  • als Dokumentation im Wiki mit Screenshots und Erläuterungen
  • und (per E-Mail): kompilierbare quelloffene Projektdatei, bis zum 30.08.2011.

Literature

Weitere Literatur- und Links finden sich in den jeweiligen Untersektionen.

Official

Tutorials & Online-Courses

Literatur

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.