Upload
hetic
View
743
Download
1
Embed Size (px)
DESCRIPTION
Keynote d'accompagnement de la formation au développement mobile iOS. L'école web HETIC vous offre une formation d'initiation au développement d'application iPhone. Evan Peuvergne, étudiant en 1e année à HETIC, vous explique en plus d'une heure les bases du développement iOS et vous réaliserez votre première application de lecture de flux RSS.
Citation preview
Développement IOSEvan Peuvergne
Présentation
• Evan Peuvergne
• Etudiant en H1 à @hetic
• Récent débutant en développement IOS
• Twitter : @vavouweb
Sommaire
1. Présentation du développement IOS
2. Storyboards et sègues
3. Gestion du positionnement
4. Initiation à l’objective-c avec xcode
Dev IOS, késaco ? Devices | Outils | Languages | Tests
Devices
De multiples combinaisons possibles
iPhone iPod Touch iPad
iPhone 3G iPhone 4 iPhone 5 2ème génération 4ème génération 1ère
génération4ème
génération
OS (le plus élevé) IOS 4.2.1 IOS 7.0.4 IOS 7.0.4 IOS 4.2.1 IOS 6.1.5 IOS 5.1.1 IOS 7.0.4
Résolution écran 480 × 320 960 x 640 1136 x 640 480 x 320 960 x 640 1024 x 768 2048 x 1536
Rétina NON NON OUI NON OUI NON OUI
RAM 128 MB 512 MB 1 GB 128 MB 256 MB 256 MB 1 GB
Répartition des OS parmi les devices Apple
7.X6.X5.X4.X
XCODE
L’IDE d’Apple
Objective-C
Cocoa Touch
Le simulateur
Test d’application rapide
Storyboards et sègues Construire l’interface de son application
Xcode
Découverte de l’interface
Les storyboards
• Permet d’établir facilement le cheminement de l’utilisateur au travers de l’application
• Edition WYSIWYG pour l’interface
• Création facile de sègues entre les fenêtres de l’interface
« A UIStoryboardSegue object is responsible for performing the visual transition between two view controllers. »
« Un objet UIStoryboardSegue est responsable de la performance des transitions visuelles entre 2 controleurs de
vue. »
Documentation Xcode
Les contrôles
De la fenêtre au bouton
UIViewController
• Elément permettant la gestion d’une fenêtre de l’application
• Peut gérer plusieurs « vues »
• Une segue est une transition permettant l’affichage d’un contrôleur de vue à la place d’un précédent
UIView
• Objet correspondant à une « vue ».
• Elles peuvent remplir la fenêtre entière ou pas.
Autres contrôles
UILabel UIButton UINavigationBar
Les Sègues
Gestion de la navigation entre les fenêtres
Qu’est-ce qu’une sègue ?
• Push : superposition de 2 fenêtres
• Modal : sortir du cheminement de base
• Custom : comme son nom l’indique …
Creer une sègue
Exercice 1
« Création d’une première application à l’aide des storyboards »
Autolayout Comment positionner les éléments dans une application IOS
Positionner sur IOS
Layouts or not layouts ?
Sans aucun calcul de position
Autoresizing masks
Calcul de positions absolues
Positionnement avec Autoresizing Masks
AutoLayout
Amélioration du principe
Positionnement avec Autolayout
Exercice 2
« Positionnement adaptable avec l’autolayout »
Initiation à l’objective-c Coder avec Xcode
Présentation de l’objective-c
Language orienté objet hérité du C
Variables
int nombre = 1; NSString *chaine = @"hello world";
Types hérités du C
• int (nombres entiers)
• float ou double (nombres à virgule)
• char
Types Cocoa
• NSString (chaîne de caractères)
• NSArray (tableau)
• NSDictionnary
Structures conditionnelles
Condition
if(nombre == 1){ //actions à réaliser } !
switch (nombre) { case 1: //actions break; default: //actions break; }
Boucles
while (nombre < 10) { //actions } !
for (int i=0; i<10; i++) { //actions }
Les fonctions
Déclaration
- (void) concat:(NSString*)chaine1 with:(NSString*) chaine2{ //actions } !!
!
Appel
[self concat:@"chaine 1" with:@"chaine2"];
Principe d’encapsulation
–commentcamarche.net
« L'encapsulation est un mécanisme consistant à rassembler les données et les méthodes au sein d'une structure en
cachant l'implémentation de l'objet, c'est-à-dire en empêchant l'accès aux données par un autre moyen que les services
proposés. L'encapsulation permet donc de garantir l'intégrité des données contenues dans l'objet »
Interface
#import <Foundation/Foundation.h> !
@interface ClassPerso : NSObject !
@property float nombre; @property NSString* chaine; !
- (void) methode:(NSString*)argument; !
@end
Implémentation
#import "ClassPerso.h" !
@implementation ClassPerso !
- (void) methode:(NSString *)argument{ self.chaine = @"hello world"; self.nombre = 5.3; } !
@end
Gestion des contrôles
Associer un contrôle à une classe avec Xcode
UIViewController
• Associer un ViewController à une classe personnalisée (héritant de UIViewController)
• Permet de personnaliser le comportement de la fenêtre
!
!
- (void)viewDidLoad{ [super viewDidLoad]; // Actions !
}
Outlets
Permettent d’accéder à des contrôles depuis une classe personnalisée
!!
!
!
@property (weak, nonatomic) IBOutlet UIView *vue1;
!
Actions
• Une action correspond à un évènement
• On crée une action par clic droit tiré vers le fichier de l’interface (.h)
!
!
!
!
!
- (IBAction)submit:(id)sender;
Exercice 3
« Réalisation de votre première application : un lecteur de flux RSS (très) simplifié »
Ressources Progresser | Réutiliser
Continuer de progresser
• raywenderlich.com/
• mobile.tutsplus.com/
• forum.cocoacafe.fr/
• stackoverflow.com/
Ne pas réinventer la roue
• www.cocoacontrols.com
• github.com