Objective-C & Cocoaheld/teaching/wiss_arbeiten/slides... · 2013-08-06 · Objective-C • C mit...

22
Objective-C & Cocoa Wolfgang Klampfer & Andreas Stadler

Transcript of Objective-C & Cocoaheld/teaching/wiss_arbeiten/slides... · 2013-08-06 · Objective-C • C mit...

Page 1: Objective-C & Cocoaheld/teaching/wiss_arbeiten/slides... · 2013-08-06 · Objective-C • C mit objektorientierten Erweiterungen • Smalltalk • Striktes Superset von C • Kompatibel

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Demo