47
iOS Immersion 1 Pascal Batty mardi 11 décembre 12

Immersion à iOS - Soat

  • Upload
    soat

  • View
    382

  • Download
    1

Embed Size (px)

DESCRIPTION

Le monde du développement sur iPhone et iPad est aussi séduisant qu'il est impressionnant. Un nouveau langage à apprendre, des tonnes d'API et une grammaire tactile à découvrir, on peut assez vite se noyer. Pascal Batty, consultant Soat, vous propose de revenir sur l'histoire de ce SDK et d'en démystifier les bases, puis de mettre les mains dans le cambouis pour créer votre première application. Que vous veniez du Java ou du .net, vous pourrez découvrir que si l'eau paraît froide au début, elle est très bonne quand on est dedans. La vidéo de la présentation est visible ici : http://youtu.be/spo2KUHBHlM

Citation preview

Page 1: Immersion à iOS - Soat

iOS Immersion

1

Pascal Batty

mardi 11 décembre 12

Page 2: Immersion à iOS - Soat

Je veux !

2

mardi 11 décembre 12

Page 3: Immersion à iOS - Soat

๏ Idée de génie

๏Maquettes révolutionnaires

๏API de fou

๏App Mobile

3

mardi 11 décembre 12

Page 4: Immersion à iOS - Soat

4

Mobile ?mardi 11 décembre 12

Page 5: Immersion à iOS - Soat

5

4.x5,7 %

5.x24,8 %

6.x69,5 %

Version ?mardi 11 décembre 12

Page 6: Immersion à iOS - Soat

6

Moyen ?mardi 11 décembre 12

Page 7: Immersion à iOS - Soat

7

mardi 11 décembre 12

Page 8: Immersion à iOS - Soat

Objective-C : Historique

8

mardi 11 décembre 12

Page 9: Immersion à iOS - Soat

9

Naissance d'Objective-C

1980

mardi 11 décembre 12

Page 10: Immersion à iOS - Soat

NeXTstep

1986

mardi 11 décembre 12

Page 11: Immersion à iOS - Soat

11

MacOS X

2001

mardi 11 décembre 12

Page 12: Immersion à iOS - Soat

12

iphone

2007

mardi 11 décembre 12

Page 13: Immersion à iOS - Soat

13

iPhone OS SDK

2008

mardi 11 décembre 12

Page 14: Immersion à iOS - Soat

iOS 3 iOS 4 iOS 5 iOS 6 …

2009 2010 2011 2012

Xcode 3.2 Xcode 4.0

mardi 11 décembre 12

Page 15: Immersion à iOS - Soat

Objective-C : Technique

15

mardi 11 décembre 12

Page 16: Immersion à iOS - Soat

16

FrameworkRuntime

Compilo Langage

ObjC

mardi 11 décembre 12

Page 17: Immersion à iOS - Soat

17

struct

Pointeurs

malloc()

int[]

char*

int main(int argc, char** argv)Références

Headersuint

typedef

enumtry-catch

#ifdef

#define

Allocation

Désallocation

mardi 11 décembre 12

Page 18: Immersion à iOS - Soat

18

Pointeurs

mardi 11 décembre 12

Page 19: Immersion à iOS - Soat

19

@class

Héritage

Protocoles

@protocol

NSString

Méthode d’instance

Méthode de classe

NSObject

Propriétés

@property

Polymorphisme

RetainRelease

nil

mardi 11 décembre 12

Page 20: Immersion à iOS - Soat

20

NSObject

mardi 11 décembre 12

Page 21: Immersion à iOS - Soat

21

nil

mardi 11 décembre 12

Page 22: Immersion à iOS - Soat

Boîte à outils

22

• NSString

• NSArray

• NSDictionary

• NSSet

mardi 11 décembre 12

Page 23: Immersion à iOS - Soat

Boîte à outils

22

• NSString

• NSArray

• NSDictionary

• NSSet

• NSMutableString

• NSMutableArray

• NSMutableDictionary

• NSMutableSet

mardi 11 décembre 12

Page 24: Immersion à iOS - Soat

Syntaxe

23

mardi 11 décembre 12

Page 25: Immersion à iOS - Soat

Déclaration

24

#import <Foundation/Foundation.h>

@interface Person:NSObject

@property NSString *name;

- (id)initWithName:(NSString *)name;

+ (id)personWithName:(NSString *)name;

@end

mardi 11 décembre 12

Page 26: Immersion à iOS - Soat

Implémentation

25

#import "Person.h"

@implementation Person@synthesize name = _name;

- (id)initWithName:(NSString *)name {…}

+ (id)personWithName:(NSString *)name {…}@end

mardi 11 décembre 12

Page 27: Immersion à iOS - Soat

Envoi de message

26

[teller sayHello];

teller.sayHello();

[teller sayHelloTo:person];

teller.sayHello(person);

ObjC

Java/C#

ObjC

Java/C#

mardi 11 décembre 12

Page 28: Immersion à iOS - Soat

Envoi de message

27

ObjC

Java/C#

[teller say:message to:person];

teller.say(message, person);

mardi 11 décembre 12

Page 29: Immersion à iOS - Soat

Sélecteur

28

say:to:

mardi 11 décembre 12

Page 30: Immersion à iOS - Soat

Initialisation, Propriétés

29

Person *person1 = [[Person alloc] init];

Person *person2 = [[Person alloc] initWithName:@"Noé"];

Person *person3 = [Person personWithName:@"Jim"];

[person1 setName:@"Jen"];

person2.name = @"Pam"];

NSString *name = [person1 name];

NSString *otherName = person2.name;

Setter

Getter

mardi 11 décembre 12

Page 31: Immersion à iOS - Soat

Gestion de la mémoire

30

mardi 11 décembre 12

Page 32: Immersion à iOS - Soat

mardi 11 décembre 12

Page 33: Immersion à iOS - Soat

Reference Counting

32

mardi 11 décembre 12

Page 34: Immersion à iOS - Soat

Setter (retain)

33

- (void)setText:(NSString *)textValue {

if (textValue != _text) {

[textValue retain];

[_text release];

_text = textValue;

}

}

mardi 11 décembre 12

Page 35: Immersion à iOS - Soat

Ouf…

34

Automatic Reference Counting

mardi 11 décembre 12

Page 36: Immersion à iOS - Soat

Anatomie d’une App

35

mardi 11 décembre 12

Page 37: Immersion à iOS - Soat

Révisions

36

ModelView

Controller

mardi 11 décembre 12

Page 38: Immersion à iOS - Soat

Interface Utilisateur

37

ViewController Interface

Outlets

Actions

mardi 11 décembre 12

Page 39: Immersion à iOS - Soat

38

View≠

ViewController

mardi 11 décembre 12

Page 40: Immersion à iOS - Soat

Délégation

39

UITextField

@protocol UITextFieldDelegate• textFieldShouldBeginEditing:

• textFieldDidBeginEditing:

• textFieldShouldEndEditing:

• textFieldDidEndEditing:

• textField:shouldChangeCharactersInRange:replacementString:

• textFieldShouldClear:

• textFieldShouldReturn:

mardi 11 décembre 12

Page 41: Immersion à iOS - Soat

Délégation

40

delegateUITextField

mardi 11 décembre 12

Page 42: Immersion à iOS - Soat

Délégation

40

delegate

L’utilisateur a appuyé sur Retour !

UITextField

[delegate textFieldShouldReturn:self]

mardi 11 décembre 12

Page 43: Immersion à iOS - Soat

Délégation

40

delegate

L’utilisateur a appuyé sur Retour !

UITextField

Ok, je lance une recherche

[delegate textFieldShouldReturn:self]

mardi 11 décembre 12

Page 44: Immersion à iOS - Soat

Là où tout commence…

41

AppDelegate

mardi 11 décembre 12

Page 45: Immersion à iOS - Soat

42

Pause !puis demo

mardi 11 décembre 12

Page 46: Immersion à iOS - Soat

Pour commencer

43

http://developer.apple.com/ios

mardi 11 décembre 12

Page 47: Immersion à iOS - Soat

44

Merci

mardi 11 décembre 12