objective-c & cocoaheld/teaching/wiss_arbeiten/slides... · 2013-08-06 · objective-c • c...
TRANSCRIPT
![Page 1: Objective-C & Cocoaheld/teaching/wiss_arbeiten/slides... · 2013-08-06 · Objective-C • C mit objektorientierten Erweiterungen • Smalltalk • Striktes Superset von C • Kompatibel](https://reader033.vdocuments.net/reader033/viewer/2022050408/5f857be5e4c05c617d713438/html5/thumbnails/1.jpg)
Objective-C & CocoaWolfgang Klampfer & Andreas Stadler
![Page 2: Objective-C & Cocoaheld/teaching/wiss_arbeiten/slides... · 2013-08-06 · Objective-C • C mit objektorientierten Erweiterungen • Smalltalk • Striktes Superset von C • Kompatibel](https://reader033.vdocuments.net/reader033/viewer/2022050408/5f857be5e4c05c617d713438/html5/thumbnails/2.jpg)
Themen
• Objective-C
• Cocoa
• Xcode
• Demo
![Page 3: Objective-C & Cocoaheld/teaching/wiss_arbeiten/slides... · 2013-08-06 · Objective-C • C mit objektorientierten Erweiterungen • Smalltalk • Striktes Superset von C • Kompatibel](https://reader033.vdocuments.net/reader033/viewer/2022050408/5f857be5e4c05c617d713438/html5/thumbnails/3.jpg)
Objective-C
• C mit objektorientierten Erweiterungen
• Smalltalk
• Striktes Superset von C
• Kompatibel mit C/C++
![Page 4: Objective-C & Cocoaheld/teaching/wiss_arbeiten/slides... · 2013-08-06 · Objective-C • C mit objektorientierten Erweiterungen • Smalltalk • Striktes Superset von C • Kompatibel](https://reader033.vdocuments.net/reader033/viewer/2022050408/5f857be5e4c05c617d713438/html5/thumbnails/4.jpg)
Features
• Geschwindigkeit
• Dynamisch
• C/C++
• Symbiose mit Cocoa
![Page 5: Objective-C & Cocoaheld/teaching/wiss_arbeiten/slides... · 2013-08-06 · Objective-C • C mit objektorientierten Erweiterungen • Smalltalk • Striktes Superset von C • Kompatibel](https://reader033.vdocuments.net/reader033/viewer/2022050408/5f857be5e4c05c617d713438/html5/thumbnails/5.jpg)
String
String ahoi = “hoi“;
NSString* ahoi = @“hoi“;
![Page 6: Objective-C & Cocoaheld/teaching/wiss_arbeiten/slides... · 2013-08-06 · Objective-C • C mit objektorientierten Erweiterungen • Smalltalk • Striktes Superset von C • Kompatibel](https://reader033.vdocuments.net/reader033/viewer/2022050408/5f857be5e4c05c617d713438/html5/thumbnails/6.jpg)
Array
String [] foo = {“one“, “two“, “three“};
NSArray* foo = [NSArray arrayWithObjects: @“One“, @“Two“, @“Three“, nil];
![Page 7: Objective-C & Cocoaheld/teaching/wiss_arbeiten/slides... · 2013-08-06 · Objective-C • C mit objektorientierten Erweiterungen • Smalltalk • Striktes Superset von C • Kompatibel](https://reader033.vdocuments.net/reader033/viewer/2022050408/5f857be5e4c05c617d713438/html5/thumbnails/7.jpg)
Mutability
NSString* orignialString = @“Friday“;
NSMutableString* editableString = [original String mutableCopy];
[editableString setString:@“Saturday“];
[editableString release];
![Page 8: Objective-C & Cocoaheld/teaching/wiss_arbeiten/slides... · 2013-08-06 · Objective-C • C mit objektorientierten Erweiterungen • Smalltalk • Striktes Superset von C • Kompatibel](https://reader033.vdocuments.net/reader033/viewer/2022050408/5f857be5e4c05c617d713438/html5/thumbnails/8.jpg)
Methodenaufruf in Java/C
displayName();
displayNamesWithPrefix( prefix );
addressBook.displayNames();
addressBook.displayNamesWithPrefix( prefix );
![Page 9: Objective-C & Cocoaheld/teaching/wiss_arbeiten/slides... · 2013-08-06 · Objective-C • C mit objektorientierten Erweiterungen • Smalltalk • Striktes Superset von C • Kompatibel](https://reader033.vdocuments.net/reader033/viewer/2022050408/5f857be5e4c05c617d713438/html5/thumbnails/9.jpg)
Methodenaufruf in Objective-C
[addressBook displayNames];
[addressBook displayNamesWithPrefix: prefix];
![Page 10: Objective-C & Cocoaheld/teaching/wiss_arbeiten/slides... · 2013-08-06 · Objective-C • C mit objektorientierten Erweiterungen • Smalltalk • Striktes Superset von C • Kompatibel](https://reader033.vdocuments.net/reader033/viewer/2022050408/5f857be5e4c05c617d713438/html5/thumbnails/10.jpg)
Dot-Syntax für Getter und Setter
allNames = addressBook.names;
addressBook.names = allNames;
![Page 11: Objective-C & Cocoaheld/teaching/wiss_arbeiten/slides... · 2013-08-06 · Objective-C • C mit objektorientierten Erweiterungen • Smalltalk • Striktes Superset von C • Kompatibel](https://reader033.vdocuments.net/reader033/viewer/2022050408/5f857be5e4c05c617d713438/html5/thumbnails/11.jpg)
Memory Management
• alloc/retain/release
• Garbage Collection
• ARC - Automatic Reference Counting
![Page 12: Objective-C & Cocoaheld/teaching/wiss_arbeiten/slides... · 2013-08-06 · Objective-C • C mit objektorientierten Erweiterungen • Smalltalk • Striktes Superset von C • Kompatibel](https://reader033.vdocuments.net/reader033/viewer/2022050408/5f857be5e4c05c617d713438/html5/thumbnails/12.jpg)
Cocoa
![Page 13: Objective-C & Cocoaheld/teaching/wiss_arbeiten/slides... · 2013-08-06 · Objective-C • C mit objektorientierten Erweiterungen • Smalltalk • Striktes Superset von C • Kompatibel](https://reader033.vdocuments.net/reader033/viewer/2022050408/5f857be5e4c05c617d713438/html5/thumbnails/13.jpg)
Geschichte
• Nachfolger von Carbon
• Weiterentwicklung von NeXTStep
![Page 14: Objective-C & Cocoaheld/teaching/wiss_arbeiten/slides... · 2013-08-06 · Objective-C • C mit objektorientierten Erweiterungen • Smalltalk • Striktes Superset von C • Kompatibel](https://reader033.vdocuments.net/reader033/viewer/2022050408/5f857be5e4c05c617d713438/html5/thumbnails/14.jpg)
Mach Microkernel
BSD Unix
Window Server
Cocoa Appevents
drawing
![Page 15: Objective-C & Cocoaheld/teaching/wiss_arbeiten/slides... · 2013-08-06 · Objective-C • C mit objektorientierten Erweiterungen • Smalltalk • Striktes Superset von C • Kompatibel](https://reader033.vdocuments.net/reader033/viewer/2022050408/5f857be5e4c05c617d713438/html5/thumbnails/15.jpg)
Frameworks
• Foundation
• AppKit/UIKit
• Core Data
![Page 16: Objective-C & Cocoaheld/teaching/wiss_arbeiten/slides... · 2013-08-06 · Objective-C • C mit objektorientierten Erweiterungen • Smalltalk • Striktes Superset von C • Kompatibel](https://reader033.vdocuments.net/reader033/viewer/2022050408/5f857be5e4c05c617d713438/html5/thumbnails/16.jpg)
Cocoa TouchMultitouch
Accelerometer
Gyroskop
Annäherungssensor
Kompass
![Page 17: Objective-C & Cocoaheld/teaching/wiss_arbeiten/slides... · 2013-08-06 · Objective-C • C mit objektorientierten Erweiterungen • Smalltalk • Striktes Superset von C • Kompatibel](https://reader033.vdocuments.net/reader033/viewer/2022050408/5f857be5e4c05c617d713438/html5/thumbnails/17.jpg)
Xcode
• Entwicklungsumgebung
• Hauptsächlich für Cocoa & Objective-C
• Unterstützt auch C, C++, Java, Ruby, Python, Perl, ...
![Page 18: Objective-C & Cocoaheld/teaching/wiss_arbeiten/slides... · 2013-08-06 · Objective-C • C mit objektorientierten Erweiterungen • Smalltalk • Striktes Superset von C • Kompatibel](https://reader033.vdocuments.net/reader033/viewer/2022050408/5f857be5e4c05c617d713438/html5/thumbnails/18.jpg)
Xcode IDE
• Editor
• Projekt- und Dateiverwaltung
• Grafischer Debugger und Compiler
• Versionsverwaltung
• Dokumentationsassistent
• Hardware-Simulator für iPhone
![Page 19: Objective-C & Cocoaheld/teaching/wiss_arbeiten/slides... · 2013-08-06 · Objective-C • C mit objektorientierten Erweiterungen • Smalltalk • Striktes Superset von C • Kompatibel](https://reader033.vdocuments.net/reader033/viewer/2022050408/5f857be5e4c05c617d713438/html5/thumbnails/19.jpg)
Interface Builder
• Erstellung von GUI
• Mac OS X
• iOS
• Verbindet Interface-Objekte zum Programmcode
• HIG- Human Interface Guidelines
![Page 20: Objective-C & Cocoaheld/teaching/wiss_arbeiten/slides... · 2013-08-06 · Objective-C • C mit objektorientierten Erweiterungen • Smalltalk • Striktes Superset von C • Kompatibel](https://reader033.vdocuments.net/reader033/viewer/2022050408/5f857be5e4c05c617d713438/html5/thumbnails/20.jpg)
Instruments
• Analyse von Anwendungen
• Speicherverbrauch
• Funktionsaufrufe
• Leerlaufzeit
• ...
• Basiert auf DTrace
![Page 21: Objective-C & Cocoaheld/teaching/wiss_arbeiten/slides... · 2013-08-06 · Objective-C • C mit objektorientierten Erweiterungen • Smalltalk • Striktes Superset von C • Kompatibel](https://reader033.vdocuments.net/reader033/viewer/2022050408/5f857be5e4c05c617d713438/html5/thumbnails/21.jpg)
Quartzcomposer
• Basistechnologie: Quartz
• Läuft direkt auf GPU
• Visuelle Programmierumgebung
• Bildschirmschoner
• Animationen
• Videoeffekte
![Page 22: Objective-C & Cocoaheld/teaching/wiss_arbeiten/slides... · 2013-08-06 · Objective-C • C mit objektorientierten Erweiterungen • Smalltalk • Striktes Superset von C • Kompatibel](https://reader033.vdocuments.net/reader033/viewer/2022050408/5f857be5e4c05c617d713438/html5/thumbnails/22.jpg)
Demo