L’environnement du développement mobile iOS & Android

Preview:

Citation preview

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; christopher.saez@link-value.fr

• Omer Ozkul: Technic partner développeur iOS @LinkValueomer.ozkul@link-value.fr

Recommended