115

"Introduction aux Developements iOS" in Three hours

Embed Size (px)

DESCRIPTION

Après le succès de la première séance, je présente avec Mélanie Bessagnet (@mbessagnet) pour la deuxième fois la session "Introduction au développement iOS" organisée par iConcept à Toulouse et ekito.La présentation permettra en 3 heures d'aborder de nombreux thèmes, aussi bien pratiques que techniques sur le développement d'application iOS (iPhone et iPad). Elle est destinée à la fois aux néophytes, mais aussi aux développeurs (java, web, php) ... car une séance de 45 minutes sera du code pure (et donc du pure bonheur ;).Voici le programme :Succès d'IOSiOSl'excellence ErgonomiqueApp Store (en quoi consiste la publication sur l'app store ? nous expliquerons aussi en détail les différentes licences développeurs)DévelopperConcevoir (avec Story Boarding)Profiles et CertificatsBeta TestingMDM (nous expliquerons comment est géré une flotte de terminaux (iPhone, iPad) gràce au Mobile Device Management)CoderL'environnement de développement XCodeObjective-C en 15 minutesLes nouveautés du SDK iOS 5 (ARC, iCloud, Apparearence, ...)Coding (Pratique)il s'agit de coder une première (petite) application. Le code de l'application sera disponible en début de séance.

Citation preview

Page 1: "Introduction aux Developements iOS" in Three hours
Page 2: "Introduction aux Developements iOS" in Three hours

2

Page 3: "Introduction aux Developements iOS" in Three hours

3

Laurent Meurisse•Conception et la validation d’une application iPhone pour une grande entreprise•Dev d’une application trafficWave•Coaching agile (entreprise & mobile)

twitter @laurentmeurisse

Mélanie BessagnetConception et développement d’applications iPhone ou iPad.

Smartsy, FidelPass, L’Oréal.twitter @mbessagnet

Page 4: "Introduction aux Developements iOS" in Three hours

ekito /offre mobilité

★ Accompagnement dans toutes les phases des projets

➡ Définition de stratégie et spécifications

➡ Ergonomie & design

➡ Architecture & développement

➡ Distribution

★ Multi plateforme

➡ iOS (iPhone & iPad), Android, Windows Phone, web mobile

★ Intégration dans l’entreprise

➡ Sécurité, gestion de flotte, intégration SI

4

Page 5: "Introduction aux Developements iOS" in Three hours

ekito /Projets d’entreprise

★ Application iPad pour un grand acteur de l’aéronautique

➡ Consultation de documents marketing pour les visiteurs de salons

➡ Conseils, conception & développement

★ Application iPad pour un opérateur téléphonique

➡ Le management avait besoin d’un « dashboard » pour consulter l’état du réseau avec +80.000 antennes

➡Conseils, conception, ergonomie/design & développement

5

Page 6: "Introduction aux Developements iOS" in Three hours

ekito /Projets grand public

★ « Smartsy » (iPhone, iPad & Android)➡Applications réalité augmentée pour

consulter du contenu multimédia en accompagnement de support physique

➡ Reconnaissance d’images, site web, API

➡Distribution dans l’App Store d’Apple et le Market de Google

★ « Fidelpass » (iPhone)

➡Solution de carte de fidélité virtuelle pour smartphone

➡Mode déconnecté, génération de codes

6

Page 8: "Introduction aux Developements iOS" in Three hours

➡ introduction

8

Page 9: "Introduction aux Developements iOS" in Three hours

➡ licence développeur

➡ un iPhone ou iPad

➡ un Mac

➡ La dernière version du SDK

9

que me faut t'il pour démarrer ?

Page 10: "Introduction aux Developements iOS" in Three hours

➡ être habile en design IHM

➡ avoir des bonnes idées

➡ avoir quelques soirées de disponibles

➡ constituer une communauté d’early adopters

10

qu'est ce que je dois savoir faire ?

Page 11: "Introduction aux Developements iOS" in Three hours

partie 1

11

➡ iOS

➡ excellence ergonomique

➡App Store

succès d’iOS

Page 12: "Introduction aux Developements iOS" in Three hours

➡ iOS

12

partie 1

Page 13: "Introduction aux Developements iOS" in Three hours

13

Page 14: "Introduction aux Developements iOS" in Three hours

★ Système d’exploitation de l’iPhone/iPod Touch/iPad

★ Basé sur Mac OS X

★ Offre de nombreuses possibilités d’applications

★ Nécessite aucune notion préalable du développement Mac OS X

14

Page 15: "Introduction aux Developements iOS" in Three hours

★ Architecture iOS

15

OSX kernelpower

management

Core OS

réseau

Collection Core Location

Core Services

Carnet d'adresse

threading file system preference

SQLite

Core Audio JPEG/PNG...

Media layer

PDF

Video Quartz

Multi-touch Webkit

Cocoa Touch

accéléomètre

localisationappareil photo

baseBand bootLoader firmware

Page 16: "Introduction aux Developements iOS" in Three hours

16

ça à l'air très compliqué !!!

Page 17: "Introduction aux Developements iOS" in Three hours

➡ excellence ergonomique

17

partie 1

Page 18: "Introduction aux Developements iOS" in Three hours

➡ le doigt est roi

18

Page 19: "Introduction aux Developements iOS" in Three hours

le doigt est roi

★ iOS est déployé sur des plateformes tactiles.

➡ De nombreuses possibilités de gestes.

➡ Une application trop complexe n’est pas utilisable

➡ L’ergonomie doit être l’une des préoccupations principales.

19

Page 20: "Introduction aux Developements iOS" in Three hours

le doigt est roi

★ L’iOS est une rupture par rapport aux modèles ergonomiques traditionnels

20

Page 21: "Introduction aux Developements iOS" in Three hours

➡ patterns utilisateur

21

Page 22: "Introduction aux Developements iOS" in Three hours

★ Qu’est ce qu’un pattern utilisateur ? ➡ ex. : Possibilité de naviguer dans une

structure hiérarchique, en revenant au départ facilement

➡ ex. : possibilité de naviguer entre différentes partie sans perdre le focus

22

Page 23: "Introduction aux Developements iOS" in Three hours

➡ les principaux éléments

23

Page 24: "Introduction aux Developements iOS" in Three hours

Navigation par onglet

24

Page 25: "Introduction aux Developements iOS" in Three hours

Les listes

25

Page 26: "Introduction aux Developements iOS" in Three hours

La navigation entre vues

26

Page 27: "Introduction aux Developements iOS" in Three hours

...

27

h,p://p,rns.com/

Page 28: "Introduction aux Developements iOS" in Three hours

➡ La règle des 44 pixels

28

Page 29: "Introduction aux Developements iOS" in Three hours

La règle des 44 pixels

29

Page 30: "Introduction aux Developements iOS" in Three hours

➡ la gestuelle

30

Page 31: "Introduction aux Developements iOS" in Three hours

31

Page 32: "Introduction aux Developements iOS" in Three hours

➡ Native ou WebApp ?

32

Page 33: "Introduction aux Developements iOS" in Three hours

★ Application native

➡ Application conçue spécifiquement pour une plateforme en utilisant le SDK propre à celle ci.

★ Web app

➡ Application réalisée via un site Web optimisé pour mobile

33

Page 34: "Introduction aux Developements iOS" in Three hours

WebApp

34

Quels sont les avantages ?

➡ Indépendance à Apple.

➡ Indépendance à la plateforme.

➡Mise à jour facilitée.

➡Coût de développement.

➡Transaction e-commerce

Page 35: "Introduction aux Developements iOS" in Three hours

WebApp

35

➡Moins de visibilité.

➡Difficile à monnayer.

➡Dépendance à la connectivité.

➡ Expérience utilisateur.

➡Consommation des ressources.

Quels sont les inconvéniants ?

Page 36: "Introduction aux Developements iOS" in Three hours

iOS Human interface Guideline

http://developer.apple.com/library/IOS/documentation/UserExperience/Conceptual/MobileHIG/MobileHIG.pdf

36

Page 37: "Introduction aux Developements iOS" in Three hours

Quelques principes de base

➡ Minimiser la quantité d’information.

➡ Respecter la fluidité de l’appareil.

➡ Ne pas offrir trop de réglages à l’utilisateur.

➡ Demander de sauvegarder seulement quand c’est nécessaire

➡ Eviter les écrans «modals».

➡ Démarrer rapidement

★ Toujours faire au plus simple !37

Page 38: "Introduction aux Developements iOS" in Three hours

➡ Respecter les gestes de bases.

➡ utiliser des gestes compliqués comme «raccourcis», mais en permettant d’effectuer l’action autrement.

➡ sur iPad, possibilité d’utiliser plusieurs doigts

➡ en général éviter de définir des nouveaux gestes

38

Page 39: "Introduction aux Developements iOS" in Three hours

➡ Programme, Certificat, Profile

39

partie 1

Page 40: "Introduction aux Developements iOS" in Three hours

40

Page 41: "Introduction aux Developements iOS" in Three hours

iOS Programmes

★ iOS developer program (99$)• 100 devices (dev, tests)

➡ individuelle• nom de la personne sur l’AppStore

• un seul développeur

➡Company• nom de l’entreprise (justification nécessaire)

• nombre illimité de développeurs

• 3 rôles (agent, admin, member)

➡ attention on ne peut pas basculer d’une option à l’autre

41

Page 42: "Introduction aux Developements iOS" in Three hours

iOS Programmes

★ iOS enterprise program (299 $)➡ inHouse deployment

➡Mobile Device Management• gestion de la flote des devices iOS

➡ impossibilité de déployer sur l’AppStore

42

Page 43: "Introduction aux Developements iOS" in Three hours

Certificats

★ Certificats➡Certificat développeur

• unique pour chaque développeur

• lié à une machine

➡Certificat de distribution• un seul par programme

43

Page 44: "Introduction aux Developements iOS" in Three hours

Profiles

★ Profile de développement➡ lié à l’appli (AppId)

➡ lié à un certif de dev (pour chaque dév)

➡ lié aux devices

➡ un seul par développeur

★ Profile de distribution

➡ lié à l’appli

➡ lié à un certif de distribution

➡deux modes de distribution• app store

• adhoc

• entreprise 44

Page 45: "Introduction aux Developements iOS" in Three hours

➡ publication

45

Page 46: "Introduction aux Developements iOS" in Three hours

AppStore

➡ Il y a t’il de la place par rapport à mon application?

➡ quel prix pour les applications concurrentes ?

➡ Version gratuite / Version Payante

➡ Baisse de prix d’application (ou gratuite) .. 2h à 4h

➡ le nombre de téléchargement influes sur le classement

46

Page 47: "Introduction aux Developements iOS" in Three hours

sur l’AppStore

★ Pour publier son application, trois étapes :➡ Rédaction des détails de l’application.

➡Upload de l’exécutable.

➡Validation par Apple.

➡ La période de validation passe par un certain nombre d’états, variables suivant les cas.

★ Si l’application n’est pas validée, le développeur reçoit automatiquement un e-mail d’explications.

47

Page 48: "Introduction aux Developements iOS" in Three hours

★ De nombreuses règles sont à respecter pour qu’une application soit validée par Apple. En voici les plus courantes :

➡ Aucun crash.

➡ Pas de fuite mémoire.

➡ Description conforme à l’application.

➡ Révéler toute fonctionnalité cachée à la validation.

➡ Respecter les droits d’auteur.

➡ Uniquement utiliser les classes documentées d’Apple.

➡ Notifier les changements d’état du réseau.

➡ Apple Human Interface Guidelines.

48

★ Attention, respecter les Guideline Apple

Page 49: "Introduction aux Developements iOS" in Three hours

➡ beta testing

49

Page 50: "Introduction aux Developements iOS" in Three hours

Tester

★ Audience / Logging➡ Flurry

➡TestFlyApp• Session

• Questions in-App

• Crash reports

• Checkpoints

• Remote logging

• in-App updates

50

Page 51: "Introduction aux Developements iOS" in Three hours

pour tester

★ Autre solution pour distribuer une application iOS, la distribution Ad Hoc.

➡ Échelle réduite (maximum 100 appareils).

➡ Aucune validation par Apple.

➡ Inscription à l’iOS Developer Program également obligatoire.

51

Page 52: "Introduction aux Developements iOS" in Three hours

➡ MDM

52

Page 53: "Introduction aux Developements iOS" in Three hours

53

Page 54: "Introduction aux Developements iOS" in Three hours

54

Page 55: "Introduction aux Developements iOS" in Three hours

55

Page 56: "Introduction aux Developements iOS" in Three hours

56

Page 57: "Introduction aux Developements iOS" in Three hours

➡ iTunes Connect

57

Page 58: "Introduction aux Developements iOS" in Three hours

58

Page 59: "Introduction aux Developements iOS" in Three hours

partie 2

59

➡Concevoir

➡ L’environnementde developpement

➡ Bases de l’objective-C

➡ Les nouveautes d’iOS 5

développer

Page 60: "Introduction aux Developements iOS" in Three hours

➡ concevoir

60

partie 2

Page 61: "Introduction aux Developements iOS" in Three hours

61

je vais devoir tailler mon crayon !!

h,p://iphonemockup.lkmc.ch

Page 62: "Introduction aux Developements iOS" in Three hours

62

Page 63: "Introduction aux Developements iOS" in Three hours

Quelques Mockup

★ balsamiq

★ omniGraffle

★ Adobe Illustrator

★ le post it iphone

63

Page 64: "Introduction aux Developements iOS" in Three hours

➡ développement agile

64

Page 65: "Introduction aux Developements iOS" in Three hours

Développements Agiles

➡ deux tendances à connaitre

• lean startup

• scrum

65

Page 66: "Introduction aux Developements iOS" in Three hours

lean startup

66

Page 67: "Introduction aux Developements iOS" in Three hours

Développements Agiles

➡ ne pas surdimentioner la richesse de l’application (priorisation par la valeur), faire des user stories

➡ faire des livraisons et des tests souvent

➡ si on doit s’interfacer : bien définir ! (prévoir un niveau d’information minimal)

67

Page 68: "Introduction aux Developements iOS" in Three hours

68

USERSTORY

USERSTORY

scrum

Page 69: "Introduction aux Developements iOS" in Three hours

69

J'enregistre une réservation (carte d'embarquement)

Je consulte l'actualité d'un vol AF

Je me connecte via le n° FlyingBlue

Je consulte la liste de mes réservations

Je consulte le détail d'une réservation

Je consulte les passagers d'une réservation

Page 70: "Introduction aux Developements iOS" in Three hours

70

USERSTORY

quelle est

sa valeur

métier?

pour quel

effort à

fournir?

13

89

Page 71: "Introduction aux Developements iOS" in Three hours

71

13 1448 233

34 23355 5589 144

144 89

ordr

e de

dev

Je consulte le détail d'une réservation

J'enregistre une réservation (carte d'embarquement)

Je consulte la liste de mes réservations

Je me connecte via le n° FlyingBlue

Je consulte l'actualité d'un vol AF

Je consulte les passagers d'une réservation

Page 72: "Introduction aux Developements iOS" in Three hours

72

RELEASE 1 RELEASE 2

SP

RIN

T 1

SP

RIN

T 2

SP

RIN

T 3

SP

RIN

T 4

SP

RIN

T 5

SP

RIN

T 6

PRODPROD

TESTSTESTS

TESTS TESTS

DE

MO

SP

RIN

T 1

DE

MO

SP

RIN

T 2

DE

MO

SP

RIN

T 3

TESTS

DE

MO

SP

RIN

T 4

DE

MO

SP

RIN

T 5

Page 73: "Introduction aux Developements iOS" in Three hours

➡ base de l’Objective C

73

partie 2

Page 74: "Introduction aux Developements iOS" in Three hours

➡ écrire une classe, une méthode, un protocol

74

Page 75: "Introduction aux Developements iOS" in Three hours

écrire une classe

75

➡ implémentation➡ interface

#import <Foundation/Foundation.h>

@interface Voiture : NSObject { //déclaration des variables NSString *immat; NSInteger *gear; NSInteger *speed; }-(int)multiply:(int)a to:(int)b ;-(int)square:(int)a ;

//déclaration des méthodes@end

#import "Voiture.h"

@implementation Voiture

// implémentation des méthodes

@end

Page 76: "Introduction aux Developements iOS" in Three hours

écrire une classe

76

Page 77: "Introduction aux Developements iOS" in Three hours

écrire une méthode

77

-(int)multiply:(int)a to:(int)b { return a*b;}

-(int)square:(int)a { return [self multiply:a to:a];}

➡ [object doSomething]; au lieu de object.doSomething();

Page 78: "Introduction aux Developements iOS" in Three hours

écrire un protocol

78

#import <Foundation/Foundation.h>

@protocol Vehicule <NSObject>

@optional

-(void)klaxonner;-(void)baisserVitre;-(void)leverVitre;

@required

-(void) demarrer ;-(void) arreter;

@end

Page 79: "Introduction aux Developements iOS" in Three hours

réaliser un protocol

79

#import <Foundation/Foundation.h>#include "Vehicule.h"

@interface Voiture : NSObject <Vehicule> { //déclaration des variables NSString *immat; NSInteger *gear; NSInteger *speed; }-(int)multiply:(int)a to:(int)b ;-(int)square:(int)a ;-(void) demarrer ;

//déclaration des méthodes@end

#import "Voiture.h"

@implementation Voiture

// implémentation des méthodes

-(int)multiply:(int)a to:(int)b { return a*b;}

-(int)square:(int)a { return [self multiply:a to:a];}

-(void) demarrer { NSLog(@"Vrooum");}

-(void) arreter { NSLog(@"...");}

@end

Page 80: "Introduction aux Developements iOS" in Three hours

➡ Cocoa Fondation

80

Page 81: "Introduction aux Developements iOS" in Three hours

Cocoa Fondation

➡ Framework de base pour le développement Mac OS X et iOS.

➡ Importation dans un projet :

➡ (Par défaut dans un nouveau projet Xcode)

81

#import <Foundation/Foundation.h>

Page 82: "Introduction aux Developements iOS" in Three hours

Cocoa Foundation

★ Objets de base :

➡ NSString : Chaîne de caractères.

➡ NSArray : Tableau non modifiable.

➡ NSDictionnary : Structure fixe d’objets référencés par une clé unique.

➡ Mot clé Mutable : Indique si une instance de classe peut être modifiée après création.

➡Exemple : NSMutableArray et NSMutableDictionnary.

82

Page 83: "Introduction aux Developements iOS" in Three hours

➡ gestion de la mémoire

83

Page 84: "Introduction aux Developements iOS" in Three hours

★ Destruction d’un objet :➡ L’objet créé peut être détruit de deux

façons différentes.

➡ Autolibération : La libération de la mémoire allouée est gérée par le système. (autorealease)

➡ Libération : la libération est laissée aux soins de l’utilisateur. (release).

84

Page 85: "Introduction aux Developements iOS" in Three hours

Allocation, destruction, autolibération★ Par défaut, l’utilisateur doit s’occuper de la

libération des objets qu’il alloue :

★ Des fois, il est indispensable de laisser le système s’en occuper :

➡ retain, release et autorelease sont des méthodes de NSObject

★85

-(void)direBonjour{ NSString *maPhrase = [[NSString alloc] initWithString:@"bonjour"]; NSLog(@"%@",maPhrase);! [maPhrase release];}

-(NSString *)creerBonjour{! NSString *maPhrase = [[[NSString alloc] initWithString:@"bonjour"] autorelease];! return maPhrase;}

Page 86: "Introduction aux Developements iOS" in Three hours

Variable d’instance

★ Prototypage des variables d’instance :➡ Ajoute une couche d’abstraction pour la

gestion de la mémoire.

➡ Réduit le nombre de lignes de code.

➡ Garantie l'intégrité des données.

★ Dans l’interface :

★ Dans l’implémentation :

86

@property (nonatomic, retain) Moteur *moteur;

@synthesize moteur;

Page 87: "Introduction aux Developements iOS" in Three hours

➡retain;

➡assign :

retain, assign

87

Page 88: "Introduction aux Developements iOS" in Three hours

★ La règle du comptage par référence est la suivante :

➡ On incrémente le compteur lorsque l’on fait appel aux méthodes +alloc, -retain ou -copy de l’objet.

➡ On décrémente le compteur lorsque l’on fait appel à la méthode - release de l’objet.

➡ Lorsque le compteur atteint 0, l’objet et donc son espace mémoire alloué sont libérés automatiquement.

88

Page 89: "Introduction aux Developements iOS" in Three hours

➡ UIKit

89

Page 90: "Introduction aux Developements iOS" in Three hours

UIKit

➡ Framework supplémentaire pour le développement iOS. Ajoute les fonctions nécessaires pour l’interaction tactile.

➡ Importation dans un projet :

➡ (Par défaut dans un nouveau projet Xcode)

90

#import <UIKit/UIKit.h>

Page 91: "Introduction aux Developements iOS" in Three hours

91

UIButton

Page 92: "Introduction aux Developements iOS" in Three hours

➡ Connections Synchrone et Asynchrone

92

Page 93: "Introduction aux Developements iOS" in Three hours

★ Requête synchrone➡ application en attente du résultat

➡ application non réactive, figée

urlString = [NSString stringWithFormat:@"http://webaddress/trafficservlet?sendTagWave=1&id=%@&posLo=%@&posLa=%@&version=1&course=%@&idSession=%@", ! ! ! ! [userId stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding],! ! ! ! [textLongitude stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding],! ! ! ! [textLatitude stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding],! ! ! ! ! ! ! ! [textCourse stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]! ,! ! ! ! [textIdSession stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]! ! ! ! ];!! NSString *locationString = [NSString stringWithContentsOfURL:[NSURL URLWithString:urlString]];

93

Page 94: "Introduction aux Developements iOS" in Three hours

★ Requête asynchrone

- (void)viewDidLoad {[super viewDidLoad];

! // Effectuer la requête dans un autre thread ! [NSThread detachNewThreadSelector:@selector (chargerXML) toTarget:self withObject:nil]; }- (void)chargerXML { ! NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; ! // Faire la requête ! [self effectuerRequete]; ! // Notifier le thread principal que l’on a fini ! [self performSelectorOnMainThread:@selector (chargementFini) withObject:nil waitUntilDone:NO]; ! [pool release]; }

94

Page 95: "Introduction aux Developements iOS" in Three hours

➡ notifications Push

95

Page 96: "Introduction aux Developements iOS" in Three hours

notification Push

➡ Il permet d’afficher des badges, alertes et sons sans que l’application ne tourne

➡ Il ne nécessite pas de grosses infrastructures serveur

➡ Il préserve la durée de vie de la batterie (par rapport aux connections TCP/IP)

96

Page 97: "Introduction aux Developements iOS" in Three hours

➡ Cartographie et géolocalisation

97

Page 98: "Introduction aux Developements iOS" in Three hours

★ Pouvoir localiser sa position et son orientation sur une carte nécessite l’utilisation de deux frameworks :➡ CoreLocation — permettant d'utiliser les

capacités de géolocalisation de l’iPhone

➡ MapKit — permettant d’insérer des cartes géographiques complètes dans une application.

98

Page 99: "Introduction aux Developements iOS" in Three hours

CoreLocation

★ Framework pour gérer la localisation et l’orientation. ➡CLLocation

➡CLLocationManager

★ Pas d’interface utilisateur.

★ Utilise trois approches pour se situer.

➡GPS

➡Wifi

➡ Réseau Téléphonique

★ Plus la localisation se veut précise, plus elle est coûteuse en énergie.

99

Page 100: "Introduction aux Developements iOS" in Three hours

CLLocationManagerDelegate

★ // Répond aux changements de position - (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation;

100

Page 101: "Introduction aux Developements iOS" in Three hours

➡ pattern delegate

101

Page 102: "Introduction aux Developements iOS" in Three hours

102

Page 103: "Introduction aux Developements iOS" in Three hours

delegation

103

Page 104: "Introduction aux Developements iOS" in Three hours

➡ développement serveur

104

Page 105: "Introduction aux Developements iOS" in Three hours

exemple de plan d’architecture global

105

serveur BACKEND

cron

cache

parser

xml

rss

...

23

connecteur

eSite

14services

notification

push

json

5

Page 106: "Introduction aux Developements iOS" in Three hours

➡ L’environnement de développement XCode

106

partie 2

Page 107: "Introduction aux Developements iOS" in Three hours

107

Paramètres  de  compilaBon

Projet

Page 108: "Introduction aux Developements iOS" in Three hours

108

Page 109: "Introduction aux Developements iOS" in Three hours

➡ Nouveautés d’iOS 5

109

partie 2

Page 110: "Introduction aux Developements iOS" in Three hours

Nouveautés iOS 5

★ ARC

★ Storyboards

★ UIKit Customization

★ iCloud

★ Twitter Integration

★ Nombreux changements dans les APIs

110

Page 111: "Introduction aux Developements iOS" in Three hours

ARC (Automatic Reference Counting)

➡ARC s'occupe des libérations mémoire à la place du développeur, plus de gestion manuelle de la mémoire.

➡ Le code est allégé et la tâche du développeur est simplifié.

➡Avec ARC activé, le compilateur insère automatiquement les méthodes de retain, release et autorelease à la bonne place dans le code.

111

Page 112: "Introduction aux Developements iOS" in Three hours

StoryBoards

112

Page 113: "Introduction aux Developements iOS" in Three hours

UIKit Customization

➡ Pour sortir du lot, une application, en plus d'être fonctionnelle, doit avoir un design attrayant.

➡ La plupart des applications majeures de l'AppStore utilisent des éléments d'interfaces customisés.

➡ Avant la sortie d'iOS 5, la tâche n'était pas du tout aisée. Il fallait très souvent de nombreuses lignes de code pour changer l'apparence d'un élément standard.

➡ A présent, Apple a donné accès à de nouvelles méthodes qui facilitent ce travail.

113

Page 114: "Introduction aux Developements iOS" in Three hours

partie 3

114

➡Hello World

pratique

Page 115: "Introduction aux Developements iOS" in Three hours

code de l’appli

115

h,p://db.,/pbEhiProbasé sur le tutoriel officiel d'Apple "Your first iOS app"