Immersion à iOS - Soat
-
Upload
soat -
Category
Technology
-
view
383 -
download
1
description
Transcript of Immersion à iOS - Soat
![Page 1: Immersion à iOS - Soat](https://reader030.fdocuments.net/reader030/viewer/2022020718/55625d89d8b42aed7d8b47a6/html5/thumbnails/1.jpg)
iOS Immersion
1
Pascal Batty
mardi 11 décembre 12
![Page 2: Immersion à iOS - Soat](https://reader030.fdocuments.net/reader030/viewer/2022020718/55625d89d8b42aed7d8b47a6/html5/thumbnails/2.jpg)
Je veux !
2
mardi 11 décembre 12
![Page 3: Immersion à iOS - Soat](https://reader030.fdocuments.net/reader030/viewer/2022020718/55625d89d8b42aed7d8b47a6/html5/thumbnails/3.jpg)
๏ Idée de génie
๏Maquettes révolutionnaires
๏API de fou
๏App Mobile
3
mardi 11 décembre 12
![Page 4: Immersion à iOS - Soat](https://reader030.fdocuments.net/reader030/viewer/2022020718/55625d89d8b42aed7d8b47a6/html5/thumbnails/4.jpg)
4
Mobile ?mardi 11 décembre 12
![Page 5: Immersion à iOS - Soat](https://reader030.fdocuments.net/reader030/viewer/2022020718/55625d89d8b42aed7d8b47a6/html5/thumbnails/5.jpg)
5
4.x5,7 %
5.x24,8 %
6.x69,5 %
Version ?mardi 11 décembre 12
![Page 6: Immersion à iOS - Soat](https://reader030.fdocuments.net/reader030/viewer/2022020718/55625d89d8b42aed7d8b47a6/html5/thumbnails/6.jpg)
6
Moyen ?mardi 11 décembre 12
![Page 7: Immersion à iOS - Soat](https://reader030.fdocuments.net/reader030/viewer/2022020718/55625d89d8b42aed7d8b47a6/html5/thumbnails/7.jpg)
7
mardi 11 décembre 12
![Page 8: Immersion à iOS - Soat](https://reader030.fdocuments.net/reader030/viewer/2022020718/55625d89d8b42aed7d8b47a6/html5/thumbnails/8.jpg)
Objective-C : Historique
8
mardi 11 décembre 12
![Page 9: Immersion à iOS - Soat](https://reader030.fdocuments.net/reader030/viewer/2022020718/55625d89d8b42aed7d8b47a6/html5/thumbnails/9.jpg)
9
Naissance d'Objective-C
1980
mardi 11 décembre 12
![Page 10: Immersion à iOS - Soat](https://reader030.fdocuments.net/reader030/viewer/2022020718/55625d89d8b42aed7d8b47a6/html5/thumbnails/10.jpg)
NeXTstep
1986
mardi 11 décembre 12
![Page 11: Immersion à iOS - Soat](https://reader030.fdocuments.net/reader030/viewer/2022020718/55625d89d8b42aed7d8b47a6/html5/thumbnails/11.jpg)
11
MacOS X
2001
mardi 11 décembre 12
![Page 12: Immersion à iOS - Soat](https://reader030.fdocuments.net/reader030/viewer/2022020718/55625d89d8b42aed7d8b47a6/html5/thumbnails/12.jpg)
12
iphone
2007
mardi 11 décembre 12
![Page 13: Immersion à iOS - Soat](https://reader030.fdocuments.net/reader030/viewer/2022020718/55625d89d8b42aed7d8b47a6/html5/thumbnails/13.jpg)
13
iPhone OS SDK
2008
mardi 11 décembre 12
![Page 14: Immersion à iOS - Soat](https://reader030.fdocuments.net/reader030/viewer/2022020718/55625d89d8b42aed7d8b47a6/html5/thumbnails/14.jpg)
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](https://reader030.fdocuments.net/reader030/viewer/2022020718/55625d89d8b42aed7d8b47a6/html5/thumbnails/15.jpg)
Objective-C : Technique
15
mardi 11 décembre 12
![Page 16: Immersion à iOS - Soat](https://reader030.fdocuments.net/reader030/viewer/2022020718/55625d89d8b42aed7d8b47a6/html5/thumbnails/16.jpg)
16
FrameworkRuntime
Compilo Langage
ObjC
mardi 11 décembre 12
![Page 17: Immersion à iOS - Soat](https://reader030.fdocuments.net/reader030/viewer/2022020718/55625d89d8b42aed7d8b47a6/html5/thumbnails/17.jpg)
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](https://reader030.fdocuments.net/reader030/viewer/2022020718/55625d89d8b42aed7d8b47a6/html5/thumbnails/18.jpg)
18
Pointeurs
mardi 11 décembre 12
![Page 19: Immersion à iOS - Soat](https://reader030.fdocuments.net/reader030/viewer/2022020718/55625d89d8b42aed7d8b47a6/html5/thumbnails/19.jpg)
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](https://reader030.fdocuments.net/reader030/viewer/2022020718/55625d89d8b42aed7d8b47a6/html5/thumbnails/20.jpg)
20
NSObject
mardi 11 décembre 12
![Page 21: Immersion à iOS - Soat](https://reader030.fdocuments.net/reader030/viewer/2022020718/55625d89d8b42aed7d8b47a6/html5/thumbnails/21.jpg)
21
nil
mardi 11 décembre 12
![Page 22: Immersion à iOS - Soat](https://reader030.fdocuments.net/reader030/viewer/2022020718/55625d89d8b42aed7d8b47a6/html5/thumbnails/22.jpg)
Boîte à outils
22
• NSString
• NSArray
• NSDictionary
• NSSet
mardi 11 décembre 12
![Page 23: Immersion à iOS - Soat](https://reader030.fdocuments.net/reader030/viewer/2022020718/55625d89d8b42aed7d8b47a6/html5/thumbnails/23.jpg)
Boîte à outils
22
• NSString
• NSArray
• NSDictionary
• NSSet
• NSMutableString
• NSMutableArray
• NSMutableDictionary
• NSMutableSet
mardi 11 décembre 12
![Page 24: Immersion à iOS - Soat](https://reader030.fdocuments.net/reader030/viewer/2022020718/55625d89d8b42aed7d8b47a6/html5/thumbnails/24.jpg)
Syntaxe
23
mardi 11 décembre 12
![Page 25: Immersion à iOS - Soat](https://reader030.fdocuments.net/reader030/viewer/2022020718/55625d89d8b42aed7d8b47a6/html5/thumbnails/25.jpg)
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](https://reader030.fdocuments.net/reader030/viewer/2022020718/55625d89d8b42aed7d8b47a6/html5/thumbnails/26.jpg)
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](https://reader030.fdocuments.net/reader030/viewer/2022020718/55625d89d8b42aed7d8b47a6/html5/thumbnails/27.jpg)
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](https://reader030.fdocuments.net/reader030/viewer/2022020718/55625d89d8b42aed7d8b47a6/html5/thumbnails/28.jpg)
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](https://reader030.fdocuments.net/reader030/viewer/2022020718/55625d89d8b42aed7d8b47a6/html5/thumbnails/29.jpg)
Sélecteur
28
say:to:
mardi 11 décembre 12
![Page 30: Immersion à iOS - Soat](https://reader030.fdocuments.net/reader030/viewer/2022020718/55625d89d8b42aed7d8b47a6/html5/thumbnails/30.jpg)
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](https://reader030.fdocuments.net/reader030/viewer/2022020718/55625d89d8b42aed7d8b47a6/html5/thumbnails/31.jpg)
Gestion de la mémoire
30
mardi 11 décembre 12
![Page 32: Immersion à iOS - Soat](https://reader030.fdocuments.net/reader030/viewer/2022020718/55625d89d8b42aed7d8b47a6/html5/thumbnails/32.jpg)
mardi 11 décembre 12
![Page 33: Immersion à iOS - Soat](https://reader030.fdocuments.net/reader030/viewer/2022020718/55625d89d8b42aed7d8b47a6/html5/thumbnails/33.jpg)
Reference Counting
32
mardi 11 décembre 12
![Page 34: Immersion à iOS - Soat](https://reader030.fdocuments.net/reader030/viewer/2022020718/55625d89d8b42aed7d8b47a6/html5/thumbnails/34.jpg)
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](https://reader030.fdocuments.net/reader030/viewer/2022020718/55625d89d8b42aed7d8b47a6/html5/thumbnails/35.jpg)
Ouf…
34
Automatic Reference Counting
mardi 11 décembre 12
![Page 36: Immersion à iOS - Soat](https://reader030.fdocuments.net/reader030/viewer/2022020718/55625d89d8b42aed7d8b47a6/html5/thumbnails/36.jpg)
Anatomie d’une App
35
mardi 11 décembre 12
![Page 37: Immersion à iOS - Soat](https://reader030.fdocuments.net/reader030/viewer/2022020718/55625d89d8b42aed7d8b47a6/html5/thumbnails/37.jpg)
Révisions
36
ModelView
Controller
mardi 11 décembre 12
![Page 38: Immersion à iOS - Soat](https://reader030.fdocuments.net/reader030/viewer/2022020718/55625d89d8b42aed7d8b47a6/html5/thumbnails/38.jpg)
Interface Utilisateur
37
ViewController Interface
Outlets
Actions
mardi 11 décembre 12
![Page 39: Immersion à iOS - Soat](https://reader030.fdocuments.net/reader030/viewer/2022020718/55625d89d8b42aed7d8b47a6/html5/thumbnails/39.jpg)
38
View≠
ViewController
mardi 11 décembre 12
![Page 40: Immersion à iOS - Soat](https://reader030.fdocuments.net/reader030/viewer/2022020718/55625d89d8b42aed7d8b47a6/html5/thumbnails/40.jpg)
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](https://reader030.fdocuments.net/reader030/viewer/2022020718/55625d89d8b42aed7d8b47a6/html5/thumbnails/41.jpg)
Délégation
40
delegateUITextField
mardi 11 décembre 12
![Page 42: Immersion à iOS - Soat](https://reader030.fdocuments.net/reader030/viewer/2022020718/55625d89d8b42aed7d8b47a6/html5/thumbnails/42.jpg)
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](https://reader030.fdocuments.net/reader030/viewer/2022020718/55625d89d8b42aed7d8b47a6/html5/thumbnails/43.jpg)
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](https://reader030.fdocuments.net/reader030/viewer/2022020718/55625d89d8b42aed7d8b47a6/html5/thumbnails/44.jpg)
Là où tout commence…
41
AppDelegate
mardi 11 décembre 12
![Page 45: Immersion à iOS - Soat](https://reader030.fdocuments.net/reader030/viewer/2022020718/55625d89d8b42aed7d8b47a6/html5/thumbnails/45.jpg)
42
Pause !puis demo
mardi 11 décembre 12
![Page 46: Immersion à iOS - Soat](https://reader030.fdocuments.net/reader030/viewer/2022020718/55625d89d8b42aed7d8b47a6/html5/thumbnails/46.jpg)
Pour commencer
43
http://developer.apple.com/ios
mardi 11 décembre 12
![Page 47: Immersion à iOS - Soat](https://reader030.fdocuments.net/reader030/viewer/2022020718/55625d89d8b42aed7d8b47a6/html5/thumbnails/47.jpg)
44
Merci
mardi 11 décembre 12