SlideShare uma empresa Scribd logo
1 de 62
APPLE : iOS
By
RICHARD Eddy
Sommaire

1. Historique iOS
2. L’environnement de développement

3. Historique du langage
4. Comment ça marche ?
5. Questions

2
Historique
Les différentes version iOS

3
iPhone OS 1

Sortie : 29 juin 2007
Sortie SDK : 6 mars 2008

Premier système d’exploitation
tactile, sans stylet

4
iPhone OS 2

Sortie & SDK: 11 juillet 2008

Apparition de l’ App Store

5
iPhone OS 3

Sortie & SDK : 17 juin 2009

Intégration de MMS
Intégration de l’application native
Dictaphone

6
iOS 4

Sortie & SDK : 21 Juin 2010

Multitâche
Facetime pour passer des appels
vidéos sur le réseau Wifi

7
iOS 5

Présentation publique : 6 juin 2011
Rendu disponible : 12 octobre
2011

Présence d'un centre de
notifications, par l'intégration de
iMessage et de Kiosque

8
iOS 6

Sortie SDK : 11 juin 2012
Sortie : 19 septembre 2012

Récupération de documents
Paiement par mobile

9
iOS 7

Sortie SDK : 10 juin 2013
Sortie : 18 septembre 2013

Musique et la
radio dans
iTune
Multitâches
iOs dans la
voiture

AirDrop
App Store
Appareil photo
Centre de
control

10
L’environnement de
développement
Xcode (version 5.0.2)

11
Prérequis

12
Présentation : Xcode

13
Les perspectives de projet (1/4)

Master-Detail Application

OpenGL Game

14
Les perspectives de projet (2/4)

Page-Based Application

Single View Application

15
Les perspectives de projet (3/4)

Tabbed Application

Utility Application

16
Les perspectives de projet (4/4)

Empty Application

SpriteKit Game

17
Création de projet

18
Enregistrement du projet

19
Historique du langage
L’objective-C

20
La création

C'est l'américain Brad Cox qui
crée l'Objective-C au début des
années 80. Il a pour objectif de
rajouter des classes au langage C.
Pour cela, Cox s'appuie sur un
autre langage, le Smalltalk-80, qui
est un langage orienté objet créé
au début des années 70.

21
Le développement

L’avantages de NeXTStep une API
très performante et orientée
objet. Mais la firme NeXT, créée
par Steve Jobs. Cela donna un
nouveau souffle pour Apple, qui
développa un nouveau système
d'exploitation pour les Macintosh
basé sur NeXTStep. NeXTStep est
abandonné, mais les standards du
système sont toujours présents
dans les frameworks Cocoa et
GNUstep.
22
Le framewok : GNUstep

Une implémentation libre du
framework OpenStep. GNUstep
fait partie du projet GNU et est
inclus dans les dépôts de certaines
distributions
GNU/Linux.
On le définit souvent comme
environnement de bureau ou
système d'exploitation, étant donné
ses liens au projet NeXTSTEP.

23
Le framewok : Cocoa Touch

Une API dédiée à l'écriture d'applications pour iPhone, iPod Touch et
iPad. Cocoa Touch ne déroge pas à la règle ; elle est spécifiquement
développée
pour
les
devices
Apple.

Elle est accessible à travers Xcode.

24
Comment ça marche ?
La mécanique de l’Objective-C

25
L’objective-C : Définition

L'Objective-C est un langage de
programmation
orienté
objet
réflexif.
C'est une extension du C ANSI,
comme le C++, mais qui se distingue
de ce dernier par sa distribution
dynamique des messages, son
typage faible ou fort, son typage
dynamique et son chargement
dynamique.
26
La syntaxe

L'Objective-C est fait pour être lu et compris directement par le
programmeur.

Une comparaison entre deux chaînes de caractères :
C : strcmp(‘maChaine', ‘maChainedeComparaison');
Objective-C : [maChaine isEqualToString:@”maChainedeComparaison”];

27
Définition d’une classe

interface (.h)

implémentation (.m)

28
L’interface (1/2)

@interface nom : type
@end

29
L’interface (2/2)

30
L’implémentation

@implementation nom : type
@end

31
Déclaration de méthodes

typeMethode (typeRetour) nomMethode : paramètres { }

 typeMethode : « + » pour une méthode de classe ou « - » pour

une méthode d'instance;
 typeRetour : type de l'objet retourné par la méthode;
 nomMethode : nom de la méthode;
 parametres : aux paramètres de la méthode.
32
Appel de méthode

[objet methode];

[objet methode:entree];

[objet methode:valeur1 param2:valeur2 param3:valeur3];

variable = [objet methode]; / variable = [objet methode:entree];
[[objet1 methode1:param1] methode2:param2];
33
Crochets ou points ?

Deux styles d'écriture peuvent être utilisés pour appeler une méthode :
les crochets ou les points.
L'écriture « à point » ne fonctionne que pour les variables d'instance.
[voiture setCouleur:@"rouge"];
voiture.couleur = @"rouge";

laCouleur = [voiture couleur];
laCouleur = voiture.couleur;
34
Cycle de vie des objets

Création

Utilisation
Destruction
35
Le typage

Le typage faible :
@property (weak, nonatomic) IBOutlet UITextField *champPrenom;

Le typage fort :
@property (strong, nonatomic) IBOutlet UITextField *champPrenom;

36
L'héritage

NSObject

NSResponder

C'est un système très efficace qui
permet une réutilisation du code
optimale, ainsi qu'une modularité
des objets et des classes.

NSView

NSControl

NSButton

NSTextField

NSSlider

37
Comment hériter ?
#import <Foundation/Foundation.h>

@interface Personnage : NSObject
@end

#import <Foundation/Foundation.h>
#import "Personnage.h"
@interface Guerrier : Personnage
@end
38
Les protocoles

Les protocoles sont (plus ou moins) une façon différente de faire hériter
une classe, mais qui ne se focalise cette fois que sur les méthodes.

Object
Delegate

Tableau
39
Gérer la mémoire

La méthode alloc alloue de la mémoire pour l'objet demandé.
NSString *leGap = [[NSDateComponents alloc] init];

La méthode dealloc libère de la mémoire pour l'objet demandé.
[super dealloc];

40
Les chaînes de
caractère
Ceci est une chaîne de caractères
123 est plus petit que 456
@ç/w&!

41
Définition

Une chaîne de caractères est une suite de zéro, un ou
plusieurs caractères.

42
NSString

Les chaînes de caractères sont
manipulées Cocoa Touch
NSString:

NSString * maChaine;
(NSString*) maChaine;
NSString* maChaine;

Affecter une valeur à une chaîne lors de sa définition:
NSString *maChaine = @"Ceci est une chaîne de caractères";

43
Tester l'égalité

Utilisation de l’égalité :
if (chaine1 == chaine2){}

La méthode isEqualToString de la classe NSString :
if ([chaine1 isEqualToString:chaine2]){}

44
Longueur d'un NSString

La méthode length de la classe NSString :

NSString *a = @"ceci est une chaîne";
NSLog(@"Longueur de la chaine : %i", [a length]);

Longueur de la chaîne : 19

45
Concaténer deux NSString

Pour concaténer deux chaînes utiliserez la méthode stringWithFormat :

NSString *chaine1=@"première partie";
NSString *chaine2= @" deuxième partie";
NSString *chaine3;
chaine3 = [NSString stringWithFormat:@"%@%@",chaine1,chaine2];
NSLog(@"%@",chaine3);

première partie deuxième partie
46
Les nombres
−2048
8246954
1

47
NSNumber

Pourquoi utiliser une classe dédiée à la manipulation des
nombres alors que les types int, float, double, etc. sont déjà
disponibles ?
 Convertir des types de données;

 Le type d'un objet NSNumber peut être facilement modifié en

utilisant les méthodes floatValue, doubleValue, intValue,
longValue, etc.

48
Les dates et les heures
Jeudi 13 Février 2014
13/02/14
2014-02-13T06:00:00+01:00

49
Définition

Plusieurs classes sont associées à la manipulation des
objets
date
et
heure
dans
Objective-C
:
NSDate, NSCalendar, NSTimeZone, NSDateComponents
, NSDateFormatter.

50
La date courante (1/3)

NSDate *date = [NSDate date];
NSDateFormatter *miseEnForme = [[NSDateFormatter alloc] init];

 [NSDate date] :: affecte la date courante
 NSDateFormatter :: format d'affichage pour la date

51
La date courante (2/3)

[miseEnForme setDateStyle:NSDateFormatterMediumStyle];

 setDateStyle :: format d'affichage de la date

52
La date courante (3/3)

NSLocale *usLocale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US"];
[miseEnForme setLocale:usLocale];
NSLog(@"Date au format %@: %@", [[miseEnForme locale] localeIdentifier],
[miseEnForme stringFromDate:date]);

NSLocale *frLocale = [[NSLocale alloc] initWithLocaleIdentifier:@"fr_FR"];
[miseEnForme setLocale:frLocale];
NSLog(@"Date au format %@: %@", [[miseEnForme locale] localeIdentifier],
[miseEnForme stringFromDate:date]);

53
Une date système

NSDate *dateCourante = [NSDate date];
NSTimeInterval secondesParJour = 24 * 60 * 60;
NSDate *demain = [[NSDate alloc]
initWithTimeIntervalSinceNow:secondesParJour];
NSDate *hier = [[NSDate alloc] initWithTimeIntervalSinceNow:secondesParJour];

54
Opérations sur les dates

NSDate *date = [NSDate date]; //Aujourd'hui
NSDateComponents *leGap = [[NSDateComponents alloc] init];
[leGap setYear:1];
[leGap setMonth:3];
[leGap setDay:10];
NSDate *nouvelleDate = [[NSCalendar currentCalendar]
dateByAddingComponents:leGap toDate:date options:0];
NSLog(@"Date système : %@", date);
NSLog(@"Nouvelle date : %@", nouvelleDate);
55
Les tableaux

56
Définition

La classe NSArray est dédiée à la manipulation de tableaux. En
programmation, on parle aussi d'array.

57
Définir et initialiser

NSArray *monTableau = [NSArray arrayWithObject :@"premier"];

NSArray *monTableau = [NSArray arrayWithObject :[NSNumber
numberWithInt: 10]];

NSArray *monTableau = [NSArray arrayWithObjects
:@"premier",@"deuxième",@"troisième",@"quatrième", nil];

NSArray *monTableau2 = [NSArray arrayWithArray :monTableau1];
58
Accéder aux objets
 containsObject renvoie la valeur true ou false  si le tableau contient au

moins un objet
 count retourne le nombre d'objets du tableau
 objectAtIndex retourne l'objet situé à l'index
 lastObject retourne le dernier objet contenu dans le tableau

P0

P1

Pn

I0

I1

In
59
Accéder aux objets

NSArray *monTableau = [NSArray arrayWithObjects
:@"premier",@"deuxième",@"troisième",@"quatrième", nil];
if ([monTableau containsObject:@"premier"]) {
NSLog(@"L'objet premier a été trouvé dans le tableau");
} else {
NSLog(@"L'objet premier n'a pas été trouvé dans le tableau");
}
if ([monTableau containsObject:@"dixième"]) {
NSLog(@"L'objet dixième a été trouvé dans le tableau");
} else {
NSLog(@"L'objet dixième n'a pas été trouvé dans le tableau");
}
NSLog(@"Dernier objet du tableau : %@", [monTableau lastObject]);
60
QUESTIONS ?

61
Web discographie :

http://fr.wikipedia.org/wiki/Historique_des_versions_d%27iO
http://en.wikipedia.org/wiki/IOS_6
http://en.wikipedia.org/wiki/IOS_7
http://fr.wikipedia.org/wiki/GNUstep
http://fr.openclassrooms.com/informatique/cours/creez-des-applicationspour-iphone-ipad-et-ipod-touch
http://fr.openclassrooms.com/informatique/cours/programmez-enobjective-c
http://a-renouard.developpez.com/tutoriels/ios/base-objective-c/

62

Mais conteúdo relacionado

Destaque

Intelligente Spracherkennung - einen Schritt weiter bringen
Intelligente Spracherkennung  -  einen Schritt weiter bringenIntelligente Spracherkennung  -  einen Schritt weiter bringen
Intelligente Spracherkennung - einen Schritt weiter bringenKlaus Stanglmayr
 
Les Collectivités et les Réseaux Sociaux - Etudes 2013
Les Collectivités et les Réseaux Sociaux - Etudes 2013Les Collectivités et les Réseaux Sociaux - Etudes 2013
Les Collectivités et les Réseaux Sociaux - Etudes 2013Aurélia Ledoux
 
Social Media-Center-vs-Call-Center | Vodafone-Company-Camp-2011
Social Media-Center-vs-Call-Center | Vodafone-Company-Camp-2011Social Media-Center-vs-Call-Center | Vodafone-Company-Camp-2011
Social Media-Center-vs-Call-Center | Vodafone-Company-Camp-2011Axel Hoehnke
 
Atelier 10 SADI et M-Tourisme - Julie Coudray Raccourci - RTB8
Atelier 10 SADI et M-Tourisme  - Julie Coudray Raccourci - RTB8Atelier 10 SADI et M-Tourisme  - Julie Coudray Raccourci - RTB8
Atelier 10 SADI et M-Tourisme - Julie Coudray Raccourci - RTB8R-Evolutions Touristiques de Brive
 
Atelier 12 -Habitants mes 1ers touristes, exemple d'Auxerre Garçon la note #rtb8
Atelier 12 -Habitants mes 1ers touristes, exemple d'Auxerre Garçon la note #rtb8Atelier 12 -Habitants mes 1ers touristes, exemple d'Auxerre Garçon la note #rtb8
Atelier 12 -Habitants mes 1ers touristes, exemple d'Auxerre Garçon la note #rtb8R-Evolutions Touristiques de Brive
 
Kneippianum Broschüre
Kneippianum BroschüreKneippianum Broschüre
Kneippianum BroschüreKneippianum
 
Hibernate3.2官方中文参考手册
Hibernate3.2官方中文参考手册Hibernate3.2官方中文参考手册
Hibernate3.2官方中文参考手册yiditushe
 
Mobile Plattformen - ein gesunder Mischwald
Mobile Plattformen - ein gesunder MischwaldMobile Plattformen - ein gesunder Mischwald
Mobile Plattformen - ein gesunder MischwaldSIC! Software GmbH
 

Destaque (16)

Dossier de presse Top
Dossier de presse TopDossier de presse Top
Dossier de presse Top
 
Infographies FFTélécoms - étude Greenwich
Infographies FFTélécoms - étude GreenwichInfographies FFTélécoms - étude Greenwich
Infographies FFTélécoms - étude Greenwich
 
Intelligente Spracherkennung - einen Schritt weiter bringen
Intelligente Spracherkennung  -  einen Schritt weiter bringenIntelligente Spracherkennung  -  einen Schritt weiter bringen
Intelligente Spracherkennung - einen Schritt weiter bringen
 
Les Collectivités et les Réseaux Sociaux - Etudes 2013
Les Collectivités et les Réseaux Sociaux - Etudes 2013Les Collectivités et les Réseaux Sociaux - Etudes 2013
Les Collectivités et les Réseaux Sociaux - Etudes 2013
 
Social Media-Center-vs-Call-Center | Vodafone-Company-Camp-2011
Social Media-Center-vs-Call-Center | Vodafone-Company-Camp-2011Social Media-Center-vs-Call-Center | Vodafone-Company-Camp-2011
Social Media-Center-vs-Call-Center | Vodafone-Company-Camp-2011
 
Atelier 10 SADI et M-Tourisme - Julie Coudray Raccourci - RTB8
Atelier 10 SADI et M-Tourisme  - Julie Coudray Raccourci - RTB8Atelier 10 SADI et M-Tourisme  - Julie Coudray Raccourci - RTB8
Atelier 10 SADI et M-Tourisme - Julie Coudray Raccourci - RTB8
 
Atelier 12 -Habitants mes 1ers touristes, exemple d'Auxerre Garçon la note #rtb8
Atelier 12 -Habitants mes 1ers touristes, exemple d'Auxerre Garçon la note #rtb8Atelier 12 -Habitants mes 1ers touristes, exemple d'Auxerre Garçon la note #rtb8
Atelier 12 -Habitants mes 1ers touristes, exemple d'Auxerre Garçon la note #rtb8
 
Git
GitGit
Git
 
Kneippianum Broschüre
Kneippianum BroschüreKneippianum Broschüre
Kneippianum Broschüre
 
Infographies FFTélécoms - étude Greenwich
Infographies FFTélécoms - étude GreenwichInfographies FFTélécoms - étude Greenwich
Infographies FFTélécoms - étude Greenwich
 
GETraining by Guiding Scents
GETraining by Guiding ScentsGETraining by Guiding Scents
GETraining by Guiding Scents
 
Soiree pasta
Soiree pastaSoiree pasta
Soiree pasta
 
Hibernate3.2官方中文参考手册
Hibernate3.2官方中文参考手册Hibernate3.2官方中文参考手册
Hibernate3.2官方中文参考手册
 
Eheleben
EhelebenEheleben
Eheleben
 
Test 4
Test 4Test 4
Test 4
 
Mobile Plattformen - ein gesunder Mischwald
Mobile Plattformen - ein gesunder MischwaldMobile Plattformen - ein gesunder Mischwald
Mobile Plattformen - ein gesunder Mischwald
 

Semelhante a Apple : iOS

Web-In 2010: Programmation Native iOS (French)
Web-In 2010: Programmation Native iOS (French)Web-In 2010: Programmation Native iOS (French)
Web-In 2010: Programmation Native iOS (French)Fred Brunel
 
201303 - Java8
201303 - Java8201303 - Java8
201303 - Java8lyonjug
 
Dotnet csharp
Dotnet csharpDotnet csharp
Dotnet csharpSDFG5
 
CocoaHeads Rennes #14: Programmation Responsive par Celedev
CocoaHeads Rennes #14: Programmation Responsive par CeledevCocoaHeads Rennes #14: Programmation Responsive par Celedev
CocoaHeads Rennes #14: Programmation Responsive par CeledevCocoaHeadsRNS
 
Formation iPhone ENSI by (Orange Tunisie)
Formation iPhone ENSI by (Orange Tunisie)Formation iPhone ENSI by (Orange Tunisie)
Formation iPhone ENSI by (Orange Tunisie)Farouk Mezghich
 
Aspect avec AspectJ
Aspect avec AspectJAspect avec AspectJ
Aspect avec AspectJsimeon
 
L’environnement de programmation fonctionnelle DrRacket
L’environnement de programmation fonctionnelle DrRacketL’environnement de programmation fonctionnelle DrRacket
L’environnement de programmation fonctionnelle DrRacketStéphane Legrand
 
Environnement de développement de bases de données
Environnement de développement de bases de donnéesEnvironnement de développement de bases de données
Environnement de développement de bases de donnéesISIG
 
Code flow - Cocoaheads paris
Code flow - Cocoaheads parisCode flow - Cocoaheads paris
Code flow - Cocoaheads parisCocoaHeads France
 
Connected Developper Ep6 (25-05-2013)
Connected Developper Ep6 (25-05-2013)Connected Developper Ep6 (25-05-2013)
Connected Developper Ep6 (25-05-2013)Badr Hakkari
 
Qualité logicielle
Qualité logicielleQualité logicielle
Qualité logiciellecyrilgandon
 
Environnement de développement de bases de données
Environnement de développement de bases de donnéesEnvironnement de développement de bases de données
Environnement de développement de bases de donnéesISIG
 

Semelhante a Apple : iOS (20)

Web-In 2010: Programmation Native iOS (French)
Web-In 2010: Programmation Native iOS (French)Web-In 2010: Programmation Native iOS (French)
Web-In 2010: Programmation Native iOS (French)
 
Chapitre 1
Chapitre 1Chapitre 1
Chapitre 1
 
201303 - Java8
201303 - Java8201303 - Java8
201303 - Java8
 
Dotnet csharp
Dotnet csharpDotnet csharp
Dotnet csharp
 
CocoaHeads Rennes #14: Programmation Responsive par Celedev
CocoaHeads Rennes #14: Programmation Responsive par CeledevCocoaHeads Rennes #14: Programmation Responsive par Celedev
CocoaHeads Rennes #14: Programmation Responsive par Celedev
 
Fascicule tp programmation c
Fascicule tp programmation cFascicule tp programmation c
Fascicule tp programmation c
 
Formation iPhone ENSI by (Orange Tunisie)
Formation iPhone ENSI by (Orange Tunisie)Formation iPhone ENSI by (Orange Tunisie)
Formation iPhone ENSI by (Orange Tunisie)
 
Plugins Xcode
Plugins XcodePlugins Xcode
Plugins Xcode
 
Aspect avec AspectJ
Aspect avec AspectJAspect avec AspectJ
Aspect avec AspectJ
 
Tiny os_2
Tiny os_2Tiny os_2
Tiny os_2
 
L’environnement de programmation fonctionnelle DrRacket
L’environnement de programmation fonctionnelle DrRacketL’environnement de programmation fonctionnelle DrRacket
L’environnement de programmation fonctionnelle DrRacket
 
Environnement de développement de bases de données
Environnement de développement de bases de donnéesEnvironnement de développement de bases de données
Environnement de développement de bases de données
 
Code flow - Cocoaheads paris
Code flow - Cocoaheads parisCode flow - Cocoaheads paris
Code flow - Cocoaheads paris
 
8-socket.pdf
8-socket.pdf8-socket.pdf
8-socket.pdf
 
Aspectj
AspectjAspectj
Aspectj
 
openFrameworks
openFrameworksopenFrameworks
openFrameworks
 
Connected Developper Ep6 (25-05-2013)
Connected Developper Ep6 (25-05-2013)Connected Developper Ep6 (25-05-2013)
Connected Developper Ep6 (25-05-2013)
 
Introduction à ASP.NET
Introduction à ASP.NETIntroduction à ASP.NET
Introduction à ASP.NET
 
Qualité logicielle
Qualité logicielleQualité logicielle
Qualité logicielle
 
Environnement de développement de bases de données
Environnement de développement de bases de donnéesEnvironnement de développement de bases de données
Environnement de développement de bases de données
 

Último

Le Lean sur une ligne de production : Formation et mise en application directe
Le Lean sur une ligne de production : Formation et mise en application directeLe Lean sur une ligne de production : Formation et mise en application directe
Le Lean sur une ligne de production : Formation et mise en application directeXL Groupe
 
SciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdfSKennel
 
Presentation de la plateforme Moodle - avril 2024
Presentation de la plateforme Moodle - avril 2024Presentation de la plateforme Moodle - avril 2024
Presentation de la plateforme Moodle - avril 2024Gilles Le Page
 
le present des verbes reguliers -er.pptx
le present des verbes reguliers -er.pptxle present des verbes reguliers -er.pptx
le present des verbes reguliers -er.pptxmmatar2
 
Annie Ernaux Extérieurs. pptx. Exposition basée sur un livre .
Annie   Ernaux  Extérieurs. pptx. Exposition basée sur un livre .Annie   Ernaux  Extérieurs. pptx. Exposition basée sur un livre .
Annie Ernaux Extérieurs. pptx. Exposition basée sur un livre .Txaruka
 
SciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdf
SciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdfSciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdf
SciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdfSKennel
 
Principe de fonctionnement d'un moteur 4 temps
Principe de fonctionnement d'un moteur 4 tempsPrincipe de fonctionnement d'un moteur 4 temps
Principe de fonctionnement d'un moteur 4 tempsRajiAbdelghani
 
Cours SE Le système Linux : La ligne de commande bash - IG IPSET
Cours SE Le système Linux : La ligne de commande bash - IG IPSETCours SE Le système Linux : La ligne de commande bash - IG IPSET
Cours SE Le système Linux : La ligne de commande bash - IG IPSETMedBechir
 
Saint Georges, martyr, et la lègend du dragon.pptx
Saint Georges, martyr, et la lègend du dragon.pptxSaint Georges, martyr, et la lègend du dragon.pptx
Saint Georges, martyr, et la lègend du dragon.pptxMartin M Flynn
 
Evaluation du systeme d'Education. Marocpptx
Evaluation du systeme d'Education. MarocpptxEvaluation du systeme d'Education. Marocpptx
Evaluation du systeme d'Education. MarocpptxAsmaa105193
 
SciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdfSKennel
 
Présentation_ Didactique 1_SVT (S4) complet.pptx
Présentation_ Didactique 1_SVT (S4) complet.pptxPrésentation_ Didactique 1_SVT (S4) complet.pptx
Présentation_ Didactique 1_SVT (S4) complet.pptxrababouerdighi
 
Bibdoc 2024 - Ecologie du livre et creation de badge.pdf
Bibdoc 2024 - Ecologie du livre et creation de badge.pdfBibdoc 2024 - Ecologie du livre et creation de badge.pdf
Bibdoc 2024 - Ecologie du livre et creation de badge.pdfBibdoc 37
 
Cours SE Gestion des périphériques - IG IPSET
Cours SE Gestion des périphériques - IG IPSETCours SE Gestion des périphériques - IG IPSET
Cours SE Gestion des périphériques - IG IPSETMedBechir
 
SciencesPo_Aix_InnovationPédagogique_Bilan.pdf
SciencesPo_Aix_InnovationPédagogique_Bilan.pdfSciencesPo_Aix_InnovationPédagogique_Bilan.pdf
SciencesPo_Aix_InnovationPédagogique_Bilan.pdfSKennel
 
Bibdoc 2024 - Les maillons de la chaine du livre face aux enjeux écologiques.pdf
Bibdoc 2024 - Les maillons de la chaine du livre face aux enjeux écologiques.pdfBibdoc 2024 - Les maillons de la chaine du livre face aux enjeux écologiques.pdf
Bibdoc 2024 - Les maillons de la chaine du livre face aux enjeux écologiques.pdfBibdoc 37
 
SciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdfSKennel
 
Bernard Réquichot.pptx Peintre français
Bernard Réquichot.pptx   Peintre françaisBernard Réquichot.pptx   Peintre français
Bernard Réquichot.pptx Peintre françaisTxaruka
 
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...Faga1939
 

Último (20)

Le Lean sur une ligne de production : Formation et mise en application directe
Le Lean sur une ligne de production : Formation et mise en application directeLe Lean sur une ligne de production : Formation et mise en application directe
Le Lean sur une ligne de production : Formation et mise en application directe
 
SciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdf
 
Presentation de la plateforme Moodle - avril 2024
Presentation de la plateforme Moodle - avril 2024Presentation de la plateforme Moodle - avril 2024
Presentation de la plateforme Moodle - avril 2024
 
le present des verbes reguliers -er.pptx
le present des verbes reguliers -er.pptxle present des verbes reguliers -er.pptx
le present des verbes reguliers -er.pptx
 
Annie Ernaux Extérieurs. pptx. Exposition basée sur un livre .
Annie   Ernaux  Extérieurs. pptx. Exposition basée sur un livre .Annie   Ernaux  Extérieurs. pptx. Exposition basée sur un livre .
Annie Ernaux Extérieurs. pptx. Exposition basée sur un livre .
 
SciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdf
SciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdfSciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdf
SciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdf
 
DO PALÁCIO À ASSEMBLEIA .
DO PALÁCIO À ASSEMBLEIA                 .DO PALÁCIO À ASSEMBLEIA                 .
DO PALÁCIO À ASSEMBLEIA .
 
Principe de fonctionnement d'un moteur 4 temps
Principe de fonctionnement d'un moteur 4 tempsPrincipe de fonctionnement d'un moteur 4 temps
Principe de fonctionnement d'un moteur 4 temps
 
Cours SE Le système Linux : La ligne de commande bash - IG IPSET
Cours SE Le système Linux : La ligne de commande bash - IG IPSETCours SE Le système Linux : La ligne de commande bash - IG IPSET
Cours SE Le système Linux : La ligne de commande bash - IG IPSET
 
Saint Georges, martyr, et la lègend du dragon.pptx
Saint Georges, martyr, et la lègend du dragon.pptxSaint Georges, martyr, et la lègend du dragon.pptx
Saint Georges, martyr, et la lègend du dragon.pptx
 
Evaluation du systeme d'Education. Marocpptx
Evaluation du systeme d'Education. MarocpptxEvaluation du systeme d'Education. Marocpptx
Evaluation du systeme d'Education. Marocpptx
 
SciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdf
 
Présentation_ Didactique 1_SVT (S4) complet.pptx
Présentation_ Didactique 1_SVT (S4) complet.pptxPrésentation_ Didactique 1_SVT (S4) complet.pptx
Présentation_ Didactique 1_SVT (S4) complet.pptx
 
Bibdoc 2024 - Ecologie du livre et creation de badge.pdf
Bibdoc 2024 - Ecologie du livre et creation de badge.pdfBibdoc 2024 - Ecologie du livre et creation de badge.pdf
Bibdoc 2024 - Ecologie du livre et creation de badge.pdf
 
Cours SE Gestion des périphériques - IG IPSET
Cours SE Gestion des périphériques - IG IPSETCours SE Gestion des périphériques - IG IPSET
Cours SE Gestion des périphériques - IG IPSET
 
SciencesPo_Aix_InnovationPédagogique_Bilan.pdf
SciencesPo_Aix_InnovationPédagogique_Bilan.pdfSciencesPo_Aix_InnovationPédagogique_Bilan.pdf
SciencesPo_Aix_InnovationPédagogique_Bilan.pdf
 
Bibdoc 2024 - Les maillons de la chaine du livre face aux enjeux écologiques.pdf
Bibdoc 2024 - Les maillons de la chaine du livre face aux enjeux écologiques.pdfBibdoc 2024 - Les maillons de la chaine du livre face aux enjeux écologiques.pdf
Bibdoc 2024 - Les maillons de la chaine du livre face aux enjeux écologiques.pdf
 
SciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdf
 
Bernard Réquichot.pptx Peintre français
Bernard Réquichot.pptx   Peintre françaisBernard Réquichot.pptx   Peintre français
Bernard Réquichot.pptx Peintre français
 
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
 

Apple : iOS

  • 2. Sommaire 1. Historique iOS 2. L’environnement de développement 3. Historique du langage 4. Comment ça marche ? 5. Questions 2
  • 4. iPhone OS 1 Sortie : 29 juin 2007 Sortie SDK : 6 mars 2008 Premier système d’exploitation tactile, sans stylet 4
  • 5. iPhone OS 2 Sortie & SDK: 11 juillet 2008 Apparition de l’ App Store 5
  • 6. iPhone OS 3 Sortie & SDK : 17 juin 2009 Intégration de MMS Intégration de l’application native Dictaphone 6
  • 7. iOS 4 Sortie & SDK : 21 Juin 2010 Multitâche Facetime pour passer des appels vidéos sur le réseau Wifi 7
  • 8. iOS 5 Présentation publique : 6 juin 2011 Rendu disponible : 12 octobre 2011 Présence d'un centre de notifications, par l'intégration de iMessage et de Kiosque 8
  • 9. iOS 6 Sortie SDK : 11 juin 2012 Sortie : 19 septembre 2012 Récupération de documents Paiement par mobile 9
  • 10. iOS 7 Sortie SDK : 10 juin 2013 Sortie : 18 septembre 2013 Musique et la radio dans iTune Multitâches iOs dans la voiture AirDrop App Store Appareil photo Centre de control 10
  • 14. Les perspectives de projet (1/4) Master-Detail Application OpenGL Game 14
  • 15. Les perspectives de projet (2/4) Page-Based Application Single View Application 15
  • 16. Les perspectives de projet (3/4) Tabbed Application Utility Application 16
  • 17. Les perspectives de projet (4/4) Empty Application SpriteKit Game 17
  • 21. La création C'est l'américain Brad Cox qui crée l'Objective-C au début des années 80. Il a pour objectif de rajouter des classes au langage C. Pour cela, Cox s'appuie sur un autre langage, le Smalltalk-80, qui est un langage orienté objet créé au début des années 70. 21
  • 22. Le développement L’avantages de NeXTStep une API très performante et orientée objet. Mais la firme NeXT, créée par Steve Jobs. Cela donna un nouveau souffle pour Apple, qui développa un nouveau système d'exploitation pour les Macintosh basé sur NeXTStep. NeXTStep est abandonné, mais les standards du système sont toujours présents dans les frameworks Cocoa et GNUstep. 22
  • 23. Le framewok : GNUstep Une implémentation libre du framework OpenStep. GNUstep fait partie du projet GNU et est inclus dans les dépôts de certaines distributions GNU/Linux. On le définit souvent comme environnement de bureau ou système d'exploitation, étant donné ses liens au projet NeXTSTEP. 23
  • 24. Le framewok : Cocoa Touch Une API dédiée à l'écriture d'applications pour iPhone, iPod Touch et iPad. Cocoa Touch ne déroge pas à la règle ; elle est spécifiquement développée pour les devices Apple. Elle est accessible à travers Xcode. 24
  • 25. Comment ça marche ? La mécanique de l’Objective-C 25
  • 26. L’objective-C : Définition L'Objective-C est un langage de programmation orienté objet réflexif. C'est une extension du C ANSI, comme le C++, mais qui se distingue de ce dernier par sa distribution dynamique des messages, son typage faible ou fort, son typage dynamique et son chargement dynamique. 26
  • 27. La syntaxe L'Objective-C est fait pour être lu et compris directement par le programmeur. Une comparaison entre deux chaînes de caractères : C : strcmp(‘maChaine', ‘maChainedeComparaison'); Objective-C : [maChaine isEqualToString:@”maChainedeComparaison”]; 27
  • 28. Définition d’une classe interface (.h) implémentation (.m) 28
  • 32. Déclaration de méthodes typeMethode (typeRetour) nomMethode : paramètres { }  typeMethode : « + » pour une méthode de classe ou « - » pour une méthode d'instance;  typeRetour : type de l'objet retourné par la méthode;  nomMethode : nom de la méthode;  parametres : aux paramètres de la méthode. 32
  • 33. Appel de méthode [objet methode]; [objet methode:entree]; [objet methode:valeur1 param2:valeur2 param3:valeur3]; variable = [objet methode]; / variable = [objet methode:entree]; [[objet1 methode1:param1] methode2:param2]; 33
  • 34. Crochets ou points ? Deux styles d'écriture peuvent être utilisés pour appeler une méthode : les crochets ou les points. L'écriture « à point » ne fonctionne que pour les variables d'instance. [voiture setCouleur:@"rouge"]; voiture.couleur = @"rouge"; laCouleur = [voiture couleur]; laCouleur = voiture.couleur; 34
  • 35. Cycle de vie des objets Création Utilisation Destruction 35
  • 36. Le typage Le typage faible : @property (weak, nonatomic) IBOutlet UITextField *champPrenom; Le typage fort : @property (strong, nonatomic) IBOutlet UITextField *champPrenom; 36
  • 37. L'héritage NSObject NSResponder C'est un système très efficace qui permet une réutilisation du code optimale, ainsi qu'une modularité des objets et des classes. NSView NSControl NSButton NSTextField NSSlider 37
  • 38. Comment hériter ? #import <Foundation/Foundation.h> @interface Personnage : NSObject @end #import <Foundation/Foundation.h> #import "Personnage.h" @interface Guerrier : Personnage @end 38
  • 39. Les protocoles Les protocoles sont (plus ou moins) une façon différente de faire hériter une classe, mais qui ne se focalise cette fois que sur les méthodes. Object Delegate Tableau 39
  • 40. Gérer la mémoire La méthode alloc alloue de la mémoire pour l'objet demandé. NSString *leGap = [[NSDateComponents alloc] init]; La méthode dealloc libère de la mémoire pour l'objet demandé. [super dealloc]; 40
  • 41. Les chaînes de caractère Ceci est une chaîne de caractères 123 est plus petit que 456 @ç/w&! 41
  • 42. Définition Une chaîne de caractères est une suite de zéro, un ou plusieurs caractères. 42
  • 43. NSString Les chaînes de caractères sont manipulées Cocoa Touch NSString: NSString * maChaine; (NSString*) maChaine; NSString* maChaine; Affecter une valeur à une chaîne lors de sa définition: NSString *maChaine = @"Ceci est une chaîne de caractères"; 43
  • 44. Tester l'égalité Utilisation de l’égalité : if (chaine1 == chaine2){} La méthode isEqualToString de la classe NSString : if ([chaine1 isEqualToString:chaine2]){} 44
  • 45. Longueur d'un NSString La méthode length de la classe NSString : NSString *a = @"ceci est une chaîne"; NSLog(@"Longueur de la chaine : %i", [a length]); Longueur de la chaîne : 19 45
  • 46. Concaténer deux NSString Pour concaténer deux chaînes utiliserez la méthode stringWithFormat : NSString *chaine1=@"première partie"; NSString *chaine2= @" deuxième partie"; NSString *chaine3; chaine3 = [NSString stringWithFormat:@"%@%@",chaine1,chaine2]; NSLog(@"%@",chaine3); première partie deuxième partie 46
  • 48. NSNumber Pourquoi utiliser une classe dédiée à la manipulation des nombres alors que les types int, float, double, etc. sont déjà disponibles ?  Convertir des types de données;  Le type d'un objet NSNumber peut être facilement modifié en utilisant les méthodes floatValue, doubleValue, intValue, longValue, etc. 48
  • 49. Les dates et les heures Jeudi 13 Février 2014 13/02/14 2014-02-13T06:00:00+01:00 49
  • 50. Définition Plusieurs classes sont associées à la manipulation des objets date et heure dans Objective-C : NSDate, NSCalendar, NSTimeZone, NSDateComponents , NSDateFormatter. 50
  • 51. La date courante (1/3) NSDate *date = [NSDate date]; NSDateFormatter *miseEnForme = [[NSDateFormatter alloc] init];  [NSDate date] :: affecte la date courante  NSDateFormatter :: format d'affichage pour la date 51
  • 52. La date courante (2/3) [miseEnForme setDateStyle:NSDateFormatterMediumStyle];  setDateStyle :: format d'affichage de la date 52
  • 53. La date courante (3/3) NSLocale *usLocale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US"]; [miseEnForme setLocale:usLocale]; NSLog(@"Date au format %@: %@", [[miseEnForme locale] localeIdentifier], [miseEnForme stringFromDate:date]); NSLocale *frLocale = [[NSLocale alloc] initWithLocaleIdentifier:@"fr_FR"]; [miseEnForme setLocale:frLocale]; NSLog(@"Date au format %@: %@", [[miseEnForme locale] localeIdentifier], [miseEnForme stringFromDate:date]); 53
  • 54. Une date système NSDate *dateCourante = [NSDate date]; NSTimeInterval secondesParJour = 24 * 60 * 60; NSDate *demain = [[NSDate alloc] initWithTimeIntervalSinceNow:secondesParJour]; NSDate *hier = [[NSDate alloc] initWithTimeIntervalSinceNow:secondesParJour]; 54
  • 55. Opérations sur les dates NSDate *date = [NSDate date]; //Aujourd'hui NSDateComponents *leGap = [[NSDateComponents alloc] init]; [leGap setYear:1]; [leGap setMonth:3]; [leGap setDay:10]; NSDate *nouvelleDate = [[NSCalendar currentCalendar] dateByAddingComponents:leGap toDate:date options:0]; NSLog(@"Date système : %@", date); NSLog(@"Nouvelle date : %@", nouvelleDate); 55
  • 57. Définition La classe NSArray est dédiée à la manipulation de tableaux. En programmation, on parle aussi d'array. 57
  • 58. Définir et initialiser NSArray *monTableau = [NSArray arrayWithObject :@"premier"]; NSArray *monTableau = [NSArray arrayWithObject :[NSNumber numberWithInt: 10]]; NSArray *monTableau = [NSArray arrayWithObjects :@"premier",@"deuxième",@"troisième",@"quatrième", nil]; NSArray *monTableau2 = [NSArray arrayWithArray :monTableau1]; 58
  • 59. Accéder aux objets  containsObject renvoie la valeur true ou false  si le tableau contient au moins un objet  count retourne le nombre d'objets du tableau  objectAtIndex retourne l'objet situé à l'index  lastObject retourne le dernier objet contenu dans le tableau P0 P1 Pn I0 I1 In 59
  • 60. Accéder aux objets NSArray *monTableau = [NSArray arrayWithObjects :@"premier",@"deuxième",@"troisième",@"quatrième", nil]; if ([monTableau containsObject:@"premier"]) { NSLog(@"L'objet premier a été trouvé dans le tableau"); } else { NSLog(@"L'objet premier n'a pas été trouvé dans le tableau"); } if ([monTableau containsObject:@"dixième"]) { NSLog(@"L'objet dixième a été trouvé dans le tableau"); } else { NSLog(@"L'objet dixième n'a pas été trouvé dans le tableau"); } NSLog(@"Dernier objet du tableau : %@", [monTableau lastObject]); 60