Formation développement iOS - Tutoriel
description
Transcript of Formation développement iOS - Tutoriel
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