L’environnement du développement mobile iOS & Android

C
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
1 sur 28

Contenu connexe

En vedette(20)

Pas à pas Internet mobile sur iOSPas à pas Internet mobile sur iOS
Pas à pas Internet mobile sur iOS
Bouygues Telecom Entreprises 383 vues
Etude internet mobileEtude internet mobile
Etude internet mobile
LE ROUZIC Stéphanie765 vues
Why do we need a Scrum Master?Why do we need a Scrum Master?
Why do we need a Scrum Master?
Qualitest747 vues
Offshore Outsourcing with Scrum Offshore Outsourcing with Scrum
Offshore Outsourcing with Scrum
Alexey Krivitsky2.1K vues
Offshore Scrum TeamsOffshore Scrum Teams
Offshore Scrum Teams
Tai Huynh538 vues
Agile in Offshore developmentAgile in Offshore development
Agile in Offshore development
Hiroshi KURABAYASHI718 vues
Outsourcing With AgileOutsourcing With Agile
Outsourcing With Agile
Vernon Stinebaker1.5K vues
Why both scrum and lean in dist dev 07092010Why both scrum and lean in dist dev 07092010
Why both scrum and lean in dist dev 07092010
Mads Troels Hansen2.1K vues
What's new in iOS 9 ?What's new in iOS 9 ?
What's new in iOS 9 ?
Phonevalley3.4K vues
asiMOVE maxpoulet showcaseasiMOVE maxpoulet showcase
asiMOVE maxpoulet showcase
SwissPay.ch SA (We're hiring)941 vues
Sous-traiter avantages et inconvénientsSous-traiter avantages et inconvénients
Sous-traiter avantages et inconvénients
Dosithée GABELUS Conseil et coaching à l'entrepreneuriat20K vues
Scrum,Test,Metrics #sgt2016Scrum,Test,Metrics #sgt2016
Scrum,Test,Metrics #sgt2016
kyon mm20.2K vues
Le Digital marketingLe Digital marketing
Le Digital marketing
Yacine Iheb Tekkour15.1K vues

Similaire à L’environnement du développement mobile iOS & Android

Passage aux applications mobilesPassage aux applications mobiles
Passage aux applications mobilesneuros
783 vues30 diapositives
Gui android eclipseGui android eclipse
Gui android eclipseESPRIT
559 vues18 diapositives

Similaire à L’environnement du développement mobile iOS & Android(20)

Développement mobile cross-plateformDéveloppement mobile cross-plateform
Développement mobile cross-plateform
Stefan Cosquer107 vues
La Rochelle workshop 2016La Rochelle workshop 2016
La Rochelle workshop 2016
Christian Brousseau392 vues
Développement web mobile avec IONIC 2Développement web mobile avec IONIC 2
Développement web mobile avec IONIC 2
Jean David Olekhnovitch8.5K vues
Gui android eclipseGui android eclipse
Gui android eclipse
ESPRIT559 vues
Hackathon Android  AbidjanHackathon Android  Abidjan
Hackathon Android Abidjan
Bacely YoroBi657 vues
Support developpement applications mobiles avec ionic v3 et v4Support developpement applications mobiles avec ionic v3 et v4
Support developpement applications mobiles avec ionic v3 et v4
ENSET, Université Hassan II Casablanca14.9K vues
Developpement mobile vs open sourceDeveloppement mobile vs open source
Developpement mobile vs open source
Korteby Farouk1.2K vues
Java vs .NetJava vs .Net
Java vs .Net
Algeria JUG8.8K vues
Java vs .NetJava vs .Net
Java vs .Net
Korteby Farouk1.4K vues
Meetup senchaMeetup sencha
Meetup sencha
takeshi iri312 vues
Ch1. Développement mobileCh1. Développement mobile
Ch1. Développement mobile
Haifa Chorfi160 vues
android.pdfandroid.pdf
android.pdf
med_univ786 vues

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’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
  • 4. 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)
  • 5. iOS iOS très peu fragmenté. Tailles d’écrans relativement fragmenté depuis 2014 avec la gamme iPhone6, Apple Watch et désormais AppleTV
  • 6. 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…
  • 7. 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
  • 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)
  • 14. 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)
  • 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)
  • 19. Eclipse • Lourd, vieux, plante • Officiellement abandonné par Google depuis Android Lollipop
  • 20. 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)
  • 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é pour tous les périphériques
  • 24. 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…
  • 25. 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)
  • 26. 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é.
  • 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