28
L’environnement du développement mobile iOS & Android Omer Ozkul / Christopher Saez Juillet 2015 - Mis à jour Janvier 2016 LinkValue #TheGreatPlaceToGeek

L’environnement du développement mobile iOS & Android

Embed Size (px)

Citation preview

Page 1: L’environnement du développement mobile iOS & Android

L’environnement du développement mobile

iOS & AndroidOmer Ozkul / Christopher Saez

Juillet 2015 - Mis à jour Janvier 2016

LinkValue #TheGreatPlaceToGeek

Page 2: L’environnement du développement mobile iOS & Android

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

Page 3: L’environnement du développement mobile iOS & Android

Vue d’ensemble des deux écosystèmes

Page 4: L’environnement du développement mobile iOS & Android

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)

Page 5: L’environnement du développement mobile iOS & Android

iOSiOS très peu fragmenté.

Tailles d’écrans relativement fragmenté depuis 2014 avec

la gamme iPhone6, Apple Watch et désormais

AppleTV

Page 6: L’environnement du développement mobile iOS & Android

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…

Page 7: L’environnement du développement mobile iOS & Android

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

Page 8: L’environnement du développement mobile iOS & Android

La plateforme iOS

Page 9: L’environnement du développement mobile iOS & Android

Le SDK iOS

Page 10: L’environnement du développement mobile iOS & Android

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)

Page 11: L’environnement du développement mobile iOS & Android

Aperçu de project builder

Page 12: L’environnement du développement mobile iOS & Android

Aperçu d’interface builder

Page 13: L’environnement du développement mobile iOS & Android

SDK iOS Le simulateur

Page 14: L’environnement du développement mobile iOS & Android

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)

Page 15: L’environnement du développement mobile iOS & Android

Les langages utilisés (Applications natives)

Page 16: L’environnement du développement mobile iOS & Android

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)

Page 17: L’environnement du développement mobile iOS & Android

La plateforme Android

Page 18: L’environnement du développement mobile iOS & Android

Les IDE Android

Page 19: L’environnement du développement mobile iOS & Android

Eclipse

• Lourd, vieux, plante

• Officiellement abandonné par Google depuis Android Lollipop

Page 20: L’environnement du développement mobile iOS & Android

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)

Page 21: L’environnement du développement mobile iOS & Android

Le SDK Android

Page 22: L’environnement du développement mobile iOS & 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)

Page 23: L’environnement du développement mobile iOS & Android

Un développement pensé pour tous les

périphériques

Page 24: L’environnement du développement mobile iOS & Android

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…

Page 25: L’environnement du développement mobile iOS & Android

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)

Page 26: L’environnement du développement mobile iOS & Android

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é.

Page 27: L’environnement du développement mobile iOS & Android

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

Page 28: L’environnement du développement mobile iOS & Android

Auteurs

• Christopher Saez: Mobile Team Leader @Linkvalue @saezChristopher; [email protected]

• Omer Ozkul: Technic partner développeur iOS @[email protected]