Plan du site  
pixel
pixel

Articles - Étudiants SUPINFO

Introduction au développement iPhone

Par Mathieu ROSSETTO Publié le 14/11/2016 à 13:44:45 Noter cet article:
(0 votes)
Avis favorable du comité de lecture

Historique

L’iPhone est un smartphone conçu par Apple à Cupertino (en Californie) et assemblé par Foxxcon. Le première modèle fut vendu fin 2007.

Lors de l’apparition de l’iPhone 3G (deuxième génération) l’App Store est apparu avec iPhone OS 2.0 et a permis aux développeurs de créer leurs propres applications iPhone en utilisant le langage Objective-C.

L’Objective-C n’est pas un langage développé par Apple, mais Apple quant à lui a développé tous les outils et frameworks nécessaires au développement d’applications iPhone, iPod touch, iPad et Mac. En l’occurence l’UIKit qui permet de créer des interfaces graphiques pour les interfaces appelés Cocoa et Cocoa Touch.

En 2014, Apple a développé le Swift et a rendu beaucoup plus simple la tache car ce langage est plus intuitif pour la plupart des personnes et reste tout de même très bien optimisé. Voyons comment développer notre première application.

Outils nécessaires

Vous aurez besoin d’un Mac sous processeur Intel (donc sorti après 2007 environ) pour pouvoir développer des applications pour les déployer sur iPhone et iPad car ces outils n’existent pas sous Windows.

Il suffit alors de télécharger Xcode depuis le Mac App Store. Il est conseillé d‘avoir la dernière version de Xcode pour dénifrcier de Swift en sa version 3.0 car c’est sur celle-ci que nous allons nous concentrer.

l’IDE Xcode pèse une dizaine de giga-octets, il est donc important de vérifier l’espace disponible pour les macbook qui auraient un disque dur de petite capacité.

Il existe deux options pour tester l’application:

-Soit directement depuis son propre appareil sous iOS

-Soit via le simulateur, iOS compris dans la suite Xcode (où il est possible de choisir l’appareil iOS cible que l’on veut tester pour l’application en question).

Interface d’Xcode

Quand on crée un nouveau projet, plusieurs options nous sont offertes.

Le premier sert à effectuer des tests (Playgrounds) de code swift pour déboguer sans démarrer de véritable projet.

Le deuxième permet de créer un nouveau véritable projet.

Le troisième sert si vous avez un repository à votre dispotition sur un git, il est alors possible de le récupérer ainsi.

On va créer sa première application iPhone : un compteur de clics.

Donc on crée un nouveau projet Xcode !

Ici on a à disposition une multitude de templates pour démarrer.

Créons une application de type « Single View » pour commencer. Enfin voilà votre première application, pour l’instant elle est vide

En haut, vous pouvez déployer votre application soit pour le simulateur iOS, soit pour votre propre smartphone, soit pour déployer l’application à d’autres utilisateurs.

Bon à savoir :

En effet, vous pouvez créer une application pour vous-même (gratuit pour des tests), pour la distribution Ad-Hoc (limitée à 100 personnes enregistrés via le panel du compte de développeur), soit pour l’App Store (compte de développeur à 99$/an nécessaire) soit sur un serveur web entreprise (compte de développeur entreprise à 299$/an nécessaire). Il existe donc une multitude de moyens disponibles pour la distribution de votre prochaine application iOS.

Regardons donc maintenant la structure d’un projet iOS. Celle-ci est extrêmement importante car elle repose sur le modèle MVC (modèle vue contrôleur) C’est quoi ça ? Pas de panique, je vais vous expliquer !

M = Modèle = Les données de l’applications, par exemples les différents articles d’un blog perso.

V = Vue = La partie visuelle de l’application, c’est en quelque sorte l’IHM (Interface graphique)

C = Contrôleur, c’est la partie logique de votre application, elle va permettre d’interagir entre les différentes vues, de jouer une musique, de lancer une vidéo, de récupérer les billets d’un blog perso, et bien d’autres encore… Cela se fera à partir de frameworks.

Qu’est-ce qu’un framework ? C’est un morceau de code source destiné à rendre plus facile le développement d’une application. Ils peuvent être développés par un particulier, ou même une entreprise.

Pour en conclure avec cela, les fichiers AppDelegate.swift et Main.swift sont donc les code sources des contrôleurs de votre application. Les fichiers .storyboard sont les vues de l’application (LaunchScreen pour l’écran de démarrage d’une application, et Main pour la première vue de l’application)

Regardons ensemble Main.storyboard pour voir comment ça fonctionne

On voit en bas à droite une liste d’objets à ajouter à votre application. Par exemple, ajoutons un bouton et un label, pour cela il suffit juste de les glisser-déposer sur la vue principale.

Voilà maintenant si on compte et qu’on teste on a une application qui ne dispose que d’une IHM sans partie logique, c’est déjà ça

Interaction logique

Allons voir maintenant ViewController.swift

ViewDidLoad est une méthode appelée automatiquement lorsque la vue se charge et didRecieveMemoryWarning est appelée lorsque l’iPhone est surchargé en mémoire vive (RAM), c’est donc pour permettre une bonne optimisation et donc éviter que l’application ne crash.

On va glisser déposer avec un control clic les deux éléments récemment ajoutés depuis la fenêtre de la vue vers la fenêtre du contrôleur pour obtenir ceci :

On va glisser déposer avec un control clic les deux éléments récemment ajoutés de la vue vers le contrôleur pour obtenir ceci :

import UIKit

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }
    @IBOutlet weak var lbl: UILabel!
    
    @IBAction func btn(_ sender: AnyObject) {
    }
    

}
      

Maintenant connectons remplacez le code votre classe par ceci :

import UIKit

class ViewController: UIViewController {
    
    var compte: Int = 0
    var valeur: String = ""
    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
        lbl.text = "0 clics"
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }
    @IBOutlet weak var lbl: UILabel!
    
    @IBAction func btn(_ sender: AnyObject) {
        
        compte += 1
        valeur = String(compte) + " clics"
        lbl.text = valeur
        
    }

}

Et compilez !

En effet, lorsqu’on clique sur le bouton, la valeur du texte du label s’incrémente de 1, le tour est joué !

A propos de SUPINFO | Contacts & adresses | Enseigner à SUPINFO | Presse | Conditions d'utilisation & Copyright | Respect de la vie privée | Investir
Logo de la société Cisco, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société IBM, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Sun-Oracle, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Apple, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Sybase, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Novell, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Intel, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Accenture, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société SAP, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Prometric, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Toeic, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo du IT Academy Program par Microsoft, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management

SUPINFO International University
Ecole d'Informatique - IT School
École Supérieure d'Informatique de Paris, leader en France
La Grande Ecole de l'informatique, du numérique et du management
Fondée en 1965, reconnue par l'État. Titre Bac+5 certifié au niveau I.
SUPINFO International University is globally operated by EDUCINVEST Belgium - Avenue Louise, 534 - 1050 Brussels