l’environnement du développement mobile ios & android
TRANSCRIPT
L’environnement du développement mobile
iOS & AndroidOmer Ozkul / Christopher Saez
Juillet 2015 - Mis à jour Janvier 2016
LinkValue #TheGreatPlaceToGeek
Sommaire• Vue d’ensemble des deux écosystèmes
• La plateforme iOS
• le SDK iOS
• Gestionnaire de dépendances CocoaPods
• Les langages utilisés sur iOS (Application natives)
• La plateforme Android
• SDK Android
• Android : une plateforme pensé pour tous les périphériques
• Annexes
• Auteurs
Vue d’ensemble des deux écosystèmes
iOS• Initialement iPhone OS, crée en 2007
• Dernière version stable iOS 9.2, iOS 9.3 en bêta
• Utilisé sur iPhone, iPod, iPad, Apple tv(fork iOS5), Apple Watch(fork iOS 8) voiture (iOS in the Car)
• 1,4M d’application disponible dont 700.000 adaptées iPad.
• 14% de pdm (2ème acteur)
iOSiOS très peu fragmenté.
Tailles d’écrans relativement fragmenté depuis 2014 avec
la gamme iPhone6, Apple Watch et désormais
AppleTV
Android• Android Open Source Project + Services(Google,
Samsung ou les forks chinois)
• Crée en 2008 et racheté par Google
• 1 milliard de dispositifs activés l’année dernière
• Se taille la part du lion (+80% pdm)
• Actuellement en version 6.0.
• Présent sur tous les périphériques, y compris dans les frigos connectés, les set-top-box, les lunettes…
AndroidAndroid OS relativement
fragmenté. Tailles d’écrans beaucoup
fragmentées.
2.3 4.0 4,1-4,2-4,34.4 5,0-5,1 6.0
La plateforme iOS
Le SDK iOS
SDK iOS L’IDE Xcode
• Crée en 2003
• Développé par Apple seulement sur MacOSX.
• Regroupe l’Interface builder pour faire les UI, Project Builder pour la partie code et configuration du projet, automator, test unitaires, profiling et déploiement d’applications.
• Regroupe toutes les frameworks pour le développement d’applications Mac OSX, iOS, WatchOS et TvOS
• Automatisable en ligne de commande via les command line tools du SDK.
• Alternative: AppCode (par JetBrains)
Aperçu de project builder
Aperçu d’interface builder
SDK iOS Le simulateur
Xcode - gestionnaire de dépendances CocoaPods
• Crée en Sept 2011, Open Source
• En version 0.39.
• La plus grande communauté
• Gestionnaire alternatifs: Xcode Maven, Xcode Gradle, Carthage (Swift)
Les langages utilisés (Applications natives)
Objective-c et Swift• Objective-c
• Crée en 1983 (pas très moderne).
• Extension du C et inspiré de SmallTalk.
• Orienté objet.
• Swift
• Crée en 2014 et OpenSource depuis fin 2015 (Swift V2).
• Plus moderne (plus de headers, typage statique)
• Supporte le paradigme fonctionnel nativement.
• Interopérabilité avec Objective-c.
• Pas mature pour des gros projets (Swift v2 tend à l’être)
La plateforme Android
Les IDE Android
Eclipse
• Lourd, vieux, plante
• Officiellement abandonné par Google depuis Android Lollipop
Android Studio• Version stable depuis Android Lollipop
• Moderne, complétion plus puissante
• Socle Intellij (phpstorm, pycharm, etc…)
• Edition d’interface plus moderne qu’Eclipse.
• Intégration native repo maven (équivalent de cocoapods ou composer)
Le SDK Android
Composition du SDK• IDE
• Les API Android, la bibliothèque JAVA standard
• Les commandes line tools
• Le NDK (native développement kit: api C/C++)
• Les outils (Debug management system, automatisation de test d’interface, profileur d’interface, simulateur, chrome webtools)
Un développement pensé pour tous les
périphériques
Une multitude de périphérique de toutes tailles • Tailles d’écran fragmentés (moins maintenant
qu’avant)
• Versions fragmentés: 4.0, 4.1, 4.2, 4.3, 4.4, 5.0, 5.1, 6.
• Résolutions différentes(HD 4 sur nexus6, HD3 nexus 5, s4, HD sur tablette, semi HD sur S2, MD et LD sur support écran embarqué
• Supports différents: Montres, lunettes, telephones, phablettes, tablettes, frigo…
Une interface pour tous les devices
• Le SDK Android a été pensé pour que les développeurs créent facilement une interface pour tous les devices.
• Possibilité de faire une UI pour une taille d’écran spécifique sans écrire de code avec un ciblage des media queries très précis (exemple: UI adaptée pour un écran de 500x366 dans la nuit en paysage sur un en français Android 4.3)
Les contraintes du développement mobile
• Temps de compilation qui augmente avec la taille du projet (réduit sous Android studio 2.0 avec Instant run)
• Développement et test pour beaucoup de périphériques.
• iOS
• Configuration du projet(fichier de conf compliqué, certificat de développement, gestion du compte, certificat pour le push, passbook).
• Durée de validation (15j), rejet aléatoire de la validation.
• Android
• IDE ralentit sur les gros projets à cause de la complétion (trop) puissante.
• l’environnement trop fragmenté pour des tests recouvrant 100% du parc.
• Choix techniques cruciaux: natif, hybride ou transpilé.
Annexes• https://developer.apple.com/support/app-store/
• https://itunes.apple.com/fr/app/xcode/id497799835?mt=12
• http://developer.android.com/about/dashboards/index.html
• http://developer.android.com/sdk/index.html
Auteurs
• Christopher Saez: Mobile Team Leader @Linkvalue @saezChristopher; [email protected]
• Omer Ozkul: Technic partner développeur iOS @[email protected]