Développement d'applications pour iPhone et iPad Initiation

Objectifs

Cette formation vous permet de développer des applications pour iPhone et iPad. Identifier les outils de programmation utilisés pour le développement d’applications iPhone et iPad. Décrire le SDK de l'iOS Apple et les différentes possibilités du Framework.

Public

Développeurs et chefs de projet souhaitant développer des applications pour IOS Apple.

Durée

35 heures en présentiel sur 5 jours

Pré-requis

Des notions de programmation orientée objet (POO) sont recommandées ou avoir suivi la formation Introduction à l'objet.

Formateur

Formateur expérimenté spécialiste de la programmation Web.

Méthode pédagogique

8 participants maximum, un poste par stagiaire et un support de cours est remis en fin de stage. La formation est constituée d'apports théoriques, de démonstrations et de mises en pratique basées sur des exercices.

Modalité de validation des acquis

Évaluation en ligne des acquis via un questionnaire. Attestation de fin de stage.

Déroulé

Jour 1

Introduction au développement iPhone / iPad

  • Présentation de Communauté, évènements, blogs et liens utiles
  • Tour d'horizon du hardware : processeur, mémoire, connectivité
  • Grandes différences d'applications, d'ergonomie avec Android ou Windows Phone
  • Historique des versions d’iOs et grandes nouveautés
  • Application native ou web pour vos applications ?
  • HTML5 / CSS3 dans nos applications mobiles
  • L'ergonomie (UX) au centre de votre développement
  • Contraintes de développement

Environnement de développement pour iPhone et iPad

  • Présentation de l’outil Xcode et de l’intégration d’Interface Builder
  • La vue avec les composants view (Web, Text, Image View)
  • Le simulateur : iPhone / iPod / iPad et versions d'iOS
  • Les Instruments fournis par Apple
  • Où trouver la documentation et les Ressources nécessaires à un développement d’applications iOS efficace

Evolutions du SDK

  • Nouveautés iOS 7
  • Nouveautés iOS 8 (HomeKit, HealthKit)

Programmer sur iPhone avec Objective-C

  • Historique du langage Objective-C
  • Comparaisons avec C++ / Java
  • Syntaxe et grammaire du langage Objective-C
  • Rappels objets: créer une classe, un objet, les méthodes, héritage, polymorphisme
  • Signature d’une méthode en objective c
  • Les propriétés (@property)
  • Le null en Objective-C
  • Dynamisme et introspection
  • Gestion de la mémoire: manuelle ou automatique
  • Conventions de codage pour vous assurer un code maintenable dans le temps
  • Présentation et travaux pratiques sur classes du SDK

Swift, le nouveau langage d’Apple

  • Qu’est-ce que Swift ?
  • Les grandes différences entre Swift et Objective-C
  • L’avenir d’Objective-C
  • Présentation de notre site: www.swift-lang.fr

Jour 2

Foundation

  • Architecture d'un Framework Objective C / Cocoa
  • Savoir manipuler NSString (déclaration, concaténation, comparaisons)
  • Utiliser les NSArray (ordonnancement, positionnement, récupération, ajout)
  • Comprendre NSDictionnary (clé/valeur, récupérations, ajout)
  • Connaitre NSSet pour des collections non-ordonnées (utile avec les bases de données à clé unique)
  • Etre à l’aise avec NSDate (pour gérer ses dates), NSData (récupération de données depuis une url par exemple), etc.

Les vues

  • Présentation d’UIView
  • Présentation du système de coordonnées
  • La hierarchie des vues
  • Les @properties utiles aux vues
  • Sous-classer UIVew

Dessiner avec CoreGraphic

  • Méthodologie d’utilisation de CoreGraphic
  • Savoir utiliser le GraphicContext

Les gestures

  • Les différents types de gestures (tap, pan, swipe, rotation, pinch, long press)
  • Présentation de l’UIGestureRecognizer
  • Bonne pratique d’utilisation des @selector
  • Comment interroger un GestureRecognizer

Jour 3

Ecrire du code de qualité

  • Bien architecturer nos applications iOS
  • Délégation (App Delegate), MVC, Notification, Singleton
  • Les bonnes pratiques de développement (noms significatifs, documentation, API, code réutilisable, …)
  • UIViewController, classe d’UIKit indispensable au quotidien
  • Cycle de vie des ViewControllers
  • Utiliser les autres contrôleurs (UINavigationController, UITabBarController, UISplitViewController, UIPageViewController)
  • Une vue spéciale: UIWindow
  • Protocoles / Delegates: utilisation, différences avec @interface, classe déléguée

Jour 4

Echanges réseau

  • Faire des appels HTTP
  • Communiquer avec des Web Services (REST, XML)
  • Savoir analyser et créer du JSON
  • Lier à des composants visuels, des listes
  • Implémenter les échanges réseau en multitâches
  • Savoir gérer les erreurs réseau d’une application
  • Comprendre les problématiques d’appels réseau sur des téléphones pouvant avoir des  connectivités limitées

Grand Central Dispatch

  • Les queues d’opération parallèles
  • Obtenir une queue pour un job asynchrone
  • Ajouter un block à une queue

Stockage de données

  • Stocker des fichiers sur le mobile
  • Les fichiers de préférences
  • Le gestionnaire de fichiers NSFileManager
  • Présentation de la sandbox
  • Utiliser une base de données SQLite
  • Transactions et SQLite ?
  • Transformer son application pour une utilisation Offline
  • Présentation de Core data
  • Outils visuels pour Core Data
  • Interroger Core Data

Jour 5

Les TableView

  • Qu’est ce qu’une UITableView ?
  • Les styles d’une tableview (plan, grouped, etc.)
  • Lier notre tableView à une datasource
  • Les delegates pour notre TableView
  • Savoir utiliser NSIndexPath
  • Représentation de notre cellule: UITableViewCell
  • La bonne pratique d’utilisation: reuseidentifier

Core Location et MapKit

  • Savoir se localiser sur une carte
  • Core Location, l’API de géolocalisation
  • MapKit, L’API graphique
  • Savoir utiliser l’objet CLLocation (coordonnées, distance, vitesse, direction)
  • Le CLLocationManager comme point d’entrée
  • Savoir utiliser la carte (changement de région, de carte, etc.)
  • Utiliser les annotations sur une carte

Réseaux sociaux

  • Partager et publier sur Facebook
  • Partager et publier sur Twitter

App store pour iPhone et iPad

  • Gestion des provisionning profiles et certificats
  • Déposer son application iPhone / iPad sur l'App store
  • Une application iPhone / iPad "App store compliant"