L’environnement du
développement mobile
iOS & Android
Omer 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)
iOS
iOS 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…
Android
Android OS relativement
fragmenté.
Tailles d’écrans beaucoup
fragmentées.
2.3 4.0 4,1-4,2-4,3
4.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; christopher.saez@link-value.fr
• Omer Ozkul: Technic partner développeur iOS
@LinkValue

omer.ozkul@link-value.fr

L’environnement du développement mobile iOS & Android

  • 1.
    L’environnement du développement mobile iOS& Android Omer Ozkul / Christopher Saez Juillet 2015 - Mis à jour Janvier 2016 LinkValue #TheGreatPlaceToGeek
  • 2.
    Sommaire • Vue d’ensembledes 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
  • 3.
  • 4.
    iOS • Initialement iPhoneOS, 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)
  • 5.
    iOS iOS très peufragmenté. Tailles d’écrans relativement fragmenté depuis 2014 avec la gamme iPhone6, Apple Watch et désormais AppleTV
  • 6.
    Android • Android OpenSource 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…
  • 7.
    Android Android OS relativement fragmenté. Taillesd’écrans beaucoup fragmentées. 2.3 4.0 4,1-4,2-4,3 4.4 5,0-5,1 6.0
  • 8.
  • 9.
  • 10.
    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)
  • 11.
  • 12.
  • 13.
  • 14.
    Xcode - gestionnairede 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)
  • 15.
  • 16.
    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)
  • 17.
  • 18.
  • 19.
    Eclipse • Lourd, vieux,plante • Officiellement abandonné par Google depuis Android Lollipop
  • 20.
    Android Studio • Versionstable 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)
  • 21.
  • 22.
    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)
  • 23.
    Un développement pensé pourtous les périphériques
  • 24.
    Une multitude de périphériquede 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…
  • 25.
    Une interface pourtous 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)
  • 26.
    Les contraintes du développementmobile • 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é.
  • 27.
    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
  • 28.
    Auteurs • Christopher Saez:Mobile Team Leader @Linkvalue
 @saezChristopher; christopher.saez@link-value.fr • Omer Ozkul: Technic partner développeur iOS @LinkValue
 omer.ozkul@link-value.fr