Développer vos applications sur IPhone/IPad

Développer vos applications sur IPhone/IPad
Durée 21 heures
Tarif HT 1380 euros HT euros par stagiaire
Objectif A l'issue de la formation, les stagiaires seront aptes à développer, tester et publier une application simple sur n’importe quelle plateforme iOS (iPhone, iPad, iPod). Ils auront une vue d'ensemble du développement et de l’architecture des applications iOS. Une application d’exemple est enrichie au fur et à mesure pour illustrer chaque notion. L’angle de présentation prend également en compte les différences entre les applications “entreprise” ou “grand public”.
Pré requis Pour participer le stagiaire doit avoir une experience avec un langage objet.
Méthode pédagogique 40 % de travaux pratiques

Plan de la formation

Comprendre la philosophie iOS

  • Le système d'exploitation : iOS
  • Les terminaux et leurs différences : iPhone, iPad, iPad Mini, écran Retina, iPod
  • Les restrictions techniques de la plateforme
  • Les resources et informations pour bien développer sur iOS

Maitriser la chaine de production

  • XCode 4.x et le simulateur
  • Développer sur un device : provisioning profile et compte developpeur
  • Votre première application : mise en route
  • La configuration globale et l'arboresence de fichier
  • L'intégration et le déploiement continu : Jenkins + Xcode

Introduction à l'objective-C

  • Objective-C : présentation générale
  • Les variables et opérandes
  • Les méthodes et fonctions
  • Les classes et la syntaxe objet : NSObject
  • Les classes-type : NSArray, NSString, NSNumber
  • Les catégories et les extensions
  • Utilisatin de la mémoire autogerée : ARC

Présenter l’information

  • Les "User Experience Guidelines" et le débat sur le skeuomorphisme
  • Cycle de vie de l’application et de ses écrans : famille des viewDid/Will, oû placer son code, démmarer vite
  • Les XIB et les contrôles de base: UILabel, UIButton, UIToolbar
  • La navigation et hiérarchie des vues : UITabBarController, UINavigationController, UIScrollView,...
  • Composer les vues : constraints, fixed dimensions
  • Les listes : TableView et TableViewCell, optimisation, type d'instanciation, CollectionView sous iOS6
  • Les images : UIImageView et la gestion des resources graphiques
  • Les spécifités iPad : UISplitView, UIPopOver et orientation par défaut
  • UIStoryboard : segue, target-action, instanciation manuelle
  • Personaliser l’interface : inclure le travail d’un designer graphique, wireframing, UIAppearance

Modéliser et stocker des données

  • Fichiers plist : structure et utilisation
  • CoreData : création du modèle, lecture, mise à jour des données
  • Migration de données, rétrocompatibilité

Dialoguer avec l’utilisateur

  • Les champs de saisie : UIDatePicker, UITextField, keyboards, UISwitch, ...
  • Les Gestures et le multi-touch: UITapGestureRecognizer, UIPinchGestureRecognizer, UIRotationGestureRecognizer ,UISwipeGestureRecognizer, ...
  • Les fenêtre d’alertes : UIAlert, pourquoi et comment les éviter
  • Les notifications push : avec ou sans serveur distant

Se connecter au reste du monde

  • Embarquer une WebView : request, injection de javascript
  • Ajouter des librairies tierces : importation, configuration, quelques librairies utiles
  • Intégrer un service REST : Recevoir et émettre du JSON

Prendre en compte l'environnement de l’utilisateur

  • L’orientation de l’appareil
  • Le multi-langue : fichiers .strings, stratégies d'intégration
  • Géolocalisation : MapView, UILocation, GPS et économie de batterie
  • Autres capteurs : accèleromètre, micro, luminosité, caméra

Tester son produit

  • Tests unitaires : target de test, GHUnit
  • Tests automatique de l'interface : Instruments, UIAutomation et UISpec
  • Gestion des beta-testeurs : distribution d'un ipa, TestFlightApp

Sécuriser tous les niveaux

  • Données protégées par le système : Keychain, NSFileManager
  • Donnée dans la base : sqlite3_open_v2, CodeData
  • Données sur le réseau : Transport Layer Security

Maintenir et optimiser

  • Utiliser les tâches de fond : Blocks et Grand Central Dispatch
  • Gérer les exceptions : NSException, try...catch
  • Le debuggage : points d’arrêt et lecture des valeurs
  • Les logs : tracer l’execution, NSLog
  • L’outils Instruments : mesurer les performances et identifier les blocages

Diffuser son application

  • Dans l’App Store : processus de soumission, règles de validation par Apple, délais
  • En entreprise : le Mobile Device Management (MDM)