softwareprojekt: mobile development einführung objective-c · 2010. 4. 22. · softwareprojekt:...

Post on 25-Sep-2020

1 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Softwareprojekt: Mobile DevelopmentEinführung Objective-C

Miao Wang, Tinosch GanjinehFreie Universität Berlin, Institut für Informatik

21.04.2010

2Softwareprojekt: Mobile Development, Sommersemester 2010

Agenda

• Organisatorisches• Objective-C Basics (*)• Cocoa Touch Basics (*)• Live-Demo

• (*) basierend auf Material von RWTH Aachen

3Softwareprojekt: Mobile Development, Sommersemester 2010

Organisatorisches

• Zedat Schulungsraum Tornado• Benutzung mit Zedat-Account

• Speichern im Heimatbereich kann fehlschlagen wegen Sonderzeichen• Speichermöglichkeiten über /tmp, wird täglich gelöscht• Wenn möglich, Daten extern speichern• Netzlaufwerk wird zur Verfügung gestellt (tragt euch auf den Zettel ein)

• Programme:• Xcode: /Developer/Applications/Xcode• Interface Builder: /Developer/Applications/Interface Builder• Instruments: /Developer/Applications/Instruments• iPhone Simulator:

/Developer/Platforms/iPhoneSimulator.platform/Developer/Applications/iPhoneSimulator

4Softwareprojekt: Mobile Development, Sommersemester 2010

Organisatorisches

• Subversion Repository• Ort: https://secure.progra.de/svn/appirion/MobileDevelopment/• Benutzername: student• Passwort: siehe Mailingliste

• svn ist vorinstalliert auf den Zedat Rechner• Auschecken:

svn co https://secure.progra.de/svn/appirion/MobileDevelopment/ --username student

• Unterordner für Projekt erstellen• Build-Ordner nicht einchecken, keine Build-Dateien einchecken!

• Lesen aus anderen Projekten erlaubt• Übernehmen von Code nach Anfrage• Modifizieren von fremden Projekten nicht erlaubt

5Softwareprojekt: Mobile Development, Sommersemester 2010

Objective-C Basics

6Softwareprojekt: Mobile Development, Sommersemester 2010

Organisatorisches

• Superset of C• can be mixed with C and C++

• Protocols• Single inheritance• Categories define behavior across classes• Dynamic runtime• Strongly typed, but loosely use of types possible

• Major differences to C• New types

• Anonymous object• Class• Class Definition

• Object Messaging• Selector• Properties• Enumeration

7Softwareprojekt: Mobile Development, Sommersemester 2010

New Types

8Softwareprojekt: Mobile Development, Sommersemester 2010

Identity vs. Equality

9Softwareprojekt: Mobile Development, Sommersemester 2010

Object Messaging

10Softwareprojekt: Mobile Development, Sommersemester 2010

Object Messaging

Each argument has a description:

[receiver methodWithArgument1:(<Typ>)arg1 andArgument2:(<Typ>)arg2];

11Softwareprojekt: Mobile Development, Sommersemester 2010

Selector

12Softwareprojekt: Mobile Development, Sommersemester 2010

Advantages of Object Messaging

Example 1: Late Binding

13Softwareprojekt: Mobile Development, Sommersemester 2010

Advantages of Object Messaging

Example 2: SelectorFromString

14Softwareprojekt: Mobile Development, Sommersemester 2010

Header and Implementation

15Softwareprojekt: Mobile Development, Sommersemester 2010

Header

16Softwareprojekt: Mobile Development, Sommersemester 2010

Implementation

17Softwareprojekt: Mobile Development, Sommersemester 2010

Class Instantiation

18Softwareprojekt: Mobile Development, Sommersemester 2010

Class Variables and Methods

19Softwareprojekt: Mobile Development, Sommersemester 2010

Class Inheritance

20Softwareprojekt: Mobile Development, Sommersemester 2010

Protocols

21Softwareprojekt: Mobile Development, Sommersemester 2010

Categories

22Softwareprojekt: Mobile Development, Sommersemester 2010

Properties

23Softwareprojekt: Mobile Development, Sommersemester 2010

Access Properties

24Softwareprojekt: Mobile Development, Sommersemester 2010

Property Types

25Softwareprojekt: Mobile Development, Sommersemester 2010

Enumeration

26Softwareprojekt: Mobile Development, Sommersemester 2010

Cocoa Touch Basics

27Softwareprojekt: Mobile Development, Sommersemester 2010

Cocoa Touch

28Softwareprojekt: Mobile Development, Sommersemester 2010

Cocoa Touch Design Principles

delegate

target/action

29Softwareprojekt: Mobile Development, Sommersemester 2010

Cocoa Touch Design Principles

delegate

target/action

30Softwareprojekt: Mobile Development, Sommersemester 2010

Cocoa Touch

Cocoa touch

UIKit

• User Interfaces Elements• Application Runtime• Event Handling• Hardware APIs

Foundation

• Utility Classes• Collection Classes• Object wrappers for

system services

31Softwareprojekt: Mobile Development, Sommersemester 2010

Foundation Classes: NSObject

32Softwareprojekt: Mobile Development, Sommersemester 2010

Memory Management in Cocoa Touch

33Softwareprojekt: Mobile Development, Sommersemester 2010

Memory Management in Cocoa Touch

34Softwareprojekt: Mobile Development, Sommersemester 2010

Memory Management in Cocoa Touch

35Softwareprojekt: Mobile Development, Sommersemester 2010

Foundation Classes: NSString

36Softwareprojekt: Mobile Development, Sommersemester 2010

Foundation Classes: NSArray, NSSet

37Softwareprojekt: Mobile Development, Sommersemester 2010

Foundation Classes: NSDictionary

38Softwareprojekt: Mobile Development, Sommersemester 2010

Foundation Classes: NSNumber

39Softwareprojekt: Mobile Development, Sommersemester 2010

Mutable vs. Immutable

40Softwareprojekt: Mobile Development, Sommersemester 2010

Cocoa Touch

Cocoa touch

UIKit

• User Interfaces Elements• Application Runtime• Event Handling• Hardware APIs

Foundation

• Utility Classes• Collection Classes• Object wrappers for

system services

41Softwareprojekt: Mobile Development, Sommersemester 2010

UIKit: UIViewController

42Softwareprojekt: Mobile Development, Sommersemester 2010

UIKit: UIViewController

43Softwareprojekt: Mobile Development, Sommersemester 2010

UIKit: UIViewController

44Softwareprojekt: Mobile Development, Sommersemester 2010

UIKit: UIModalViewController

45Softwareprojekt: Mobile Development, Sommersemester 2010

UIKit: UINavigationViewController

46Softwareprojekt: Mobile Development, Sommersemester 2010

UIKit: UINavigationViewController

47Softwareprojekt: Mobile Development, Sommersemester 2010

UIKit: UINavigationViewController

48Softwareprojekt: Mobile Development, Sommersemester 2010

UIKit: UINavigationItem

49Softwareprojekt: Mobile Development, Sommersemester 2010

UIKit: UINavigationItem

50Softwareprojekt: Mobile Development, Sommersemester 2010

UIKit: UITabBarController

51Softwareprojekt: Mobile Development, Sommersemester 2010

UIKit: UITabBarController

52Softwareprojekt: Mobile Development, Sommersemester 2010

UIKit: UITabBarItem

53Softwareprojekt: Mobile Development, Sommersemester 2010

UIKit: UITableViewController

54Softwareprojekt: Mobile Development, Sommersemester 2010

UIKit: UITableViewController

55Softwareprojekt: Mobile Development, Sommersemester 2010

UIKit: UITableViewDelegate

56Softwareprojekt: Mobile Development, Sommersemester 2010

UIKit: UITableViewDataSource

57Softwareprojekt: Mobile Development, Sommersemester 2010

UIKit: UITableViewCell

58Softwareprojekt: Mobile Development, Sommersemester 2010

Weiterführendes

• Cocoa Touch Einführung RWTH Aachen:http://deimos3.apple.com/WebObjects/Core.woa/Browse/rwth-aachen.de.2800832269

• Objective-C Einführung Stanford:http://deimos3.apple.com/WebObjects/Core.woa/Browse/itunes.stanford.edu.3141732992

• How-Tos zur Ansteuerung von Sensoren:http://www.inf.fu-berlin.de/lehre/SS10/MD/index.html

• iPhone SDK Referenz:http://developer.apple.com/iphone/library/navigation/index.html

• Hello World:http://www.miaowang.de/studium/tutorials/iphone/iphone_1.html

• Objective-C Beginners Guide:http://www.otierney.net/objective-c.html

• iPhone Getting Started Videos:https://deimos.apple.com/WebObjects/Core.woa/BrowsePrivately/adc.apple.com.1479953497

• Basic UI Code Snippets:http://www.ipodtouchfans.com/forums/showthread.php?t=102782

top related