Atelier technique : interfaçage et développement des applications smartphones Plates-formes de développement et contraintes d'interfaçage Samuel ROUXEL Le CRT CRESITT est soutenu par :
Interfaçage et développement des applications smartphones Plan Avènement des smartphones et dérivés Smartphone le tout en un Développement d'applications smartphone Outils disponibles (IOS, Android) Conditions d'accès Contraintes d'utilisation Licences Distributions des applications (Apple Store, Google Play, ) Contraintes d'interfaçage Exemples de réalisation 2/68
Avènement des smartphones et dérivés Le marché 720 millions smartphones vendus en 2012 monde (+56%) (886 millions classique) sources GfK 13.5 millions en France (+16% en 2012) (9.2 millions de classiques) 26 millions d'utilisateurs en France 2012 croissance de 46.5% (2012/2013) sources Médiamétrie sources cabinet Gartner 3/68
Avènement des smartphones et dérivés Forte progression du marché 4/68
Avènement des smartphones et dérivés 2 principaux acteurs : IOS (Apple) VS Android (Google) Exhibit 1:Global Smartphone Operating System Shipments and Market Share in Q2 2013 [1] Global Smartphone OS Shipments [Milions of Units] Q2'12 Q2'13 Android 108.7 182.6 Apple IOS 26 31.2 Microsoft 5.6 8.9 Others 16.2 6.9 Total 156.5 229.6 a a a Global Smartphone OS Marketshare % Q2'12 Q2'13 Android 69.5 % 79.50 % Apple ios 16.60 % 13.60 % Microsoft 3.60 % 3.90 % Others 10.4 % 3.00 % Total 100 % 100 % a a a Total Growth Year-over-Year 41.6 % 46.70 % Source : Strategy Analytics, August 2013 5/68
Avènement des smartphones et dérivés Déclinaison des supports : Portabilité des systèmes d'exploitation smartphone tablette carte embarquée pc 6/68
Avènement des smartphones et dérivés Déclinaison des supports : Portabilité des systèmes d'exploitation appareils multimédia pièce automobile montre. 7/68
Smartphone le tout en un Utilisations multiples Téléphone Appareil photo Outil d'accès à internet GPS Boussole Console de jeux Mini-ordinateur Télécommande Lecteur RFID / NFC IHM pour d'autres appareils ou périphériques réseaux 8/68
Smartphone le tout en un Concentré de technologies : Capteurs Accéléromètres, gyroscope, boussole numérique Baromètre Capteur de proximité et d'ambiance GPS Caméra(s) Microphone Périphériques de communication modem 2G/3G/4G, GPRS, EDGE... Wifi, Wimax, Bluetooth, Bluetooth Low Energy RFID/NFC Micro HDMI, Mobile High-Definition Link (MHL) Micro USB Connecteur spécifique (ex : 30 broches) DLNA (Digital Living Network Alliance) 9/68
Smartphone le tout en un Concentré de technologies : Autres Dalle tactile Écran tailles : 10'' 9,4'' 7'' 4,5'' 4'' 3,5''... résolutions : 854x480 ; 1280x800 ; 800x480 ; 720p, 1080p technologies : LED, Super AMOLED, Retina, LCD, IPS Projecteur Haut-parleur Vibreur Micro SD Carte(s) Sim Batterie 10/68
Smartphone le tout en un Développement d'applications pour smartphone / 11/68
IOS / Android OS Outils de développement Market place Appstore 12/68
Comment développer pour IOS / Android? Outils disponibles : Environnement de Développement Intégré (IDE) Éditeur graphique Compilateur Émulateur Cibles matérielles Images de l'os Outils de débogage 13/68
Focus IOS / Android Outils disponibles : Environnement de Développement Intégré (IDE) XCode Eclipse + ADT plugin ou Android Studio + + Version 5 IOS 7 SDK OS X 10.8 SDK nécessite OS X 10.8.4 Software Development Kit (SDK) 14/68
Outils disponibles développement IOS : XCode Version 4.1 4.2 4.3 4.4 4.5 4.6 5 IOS supporté 4.0 5.0 5.1 5.1 6 6.1 7 OS X supporté 10.6 10.7 10.6 10.7 10.7 date de sortie 10.7< 10.7< 10.7< 07/11 10/11 02/12 06/12 09/12 01/13 10.8 09/13 A chaque mise à jour : Nouvel sdk Amélioration de l'interface Amélioration du compilateur Adaptation aux mises à jour de l'os Mise à jour des market place : itunes, Appstore 15/68
Outils disponibles développement IOS : XCode 16/68
Outils disponibles développement IOS : XCode 5 7 6 2 3 1 4 17/68
Outils disponibles développement IOS : XCode 1 Navigation - fichiers - symbols - recherche - erreurs - debug - breakpoint - log 18/68
Outils disponibles développement IOS : XCode 2 Édition - fichiers - storyboard 19/68
Outils disponibles développement IOS : XCode storyboard : conception de l'interface utilisateur spécification des mécanismes d'intéraction entre différentes vues ("pages" visibles à l'écran) 2 20/68
Outils disponibles développement IOS : XCode langage : Objective-C (extension orienté objet du C) bibliothèques (Framework) Framework foundation classes des entités de base (tableaux, chaînes de caractères...) Framework AppKit classes pour IHM graphique (fenêtres, vues, boutons...) Cocoa et Cocoa Touch fournissent des framework pour IOS et OS X Cocoa fournit collection d'api pour application sous OS X Cocoa touch (dérivé de cocoa pour IOS) fournit collection d'api pour IOS Langage XML code les storyboard 21/68
Outils disponibles développement IOS : XCode Utilitaire de paramétrage lié aux items d'inspection 3 22/68
Outils disponibles développement IOS : XCode 4 Compilation / Emulation Liste des devices accessibles - Émulateur(s) - Cible(s) réelle(s) autorisée(s) 23/68
Outils disponibles développement IOS : XCode Débogage 5 24/68
Outils disponibles développement IOS : XCode Débogage 5 25/68
Outils disponibles développement IOS : XCode Options de compilation 26/68
Outils disponibles développement IOS : XCode Options de compilation Signature de son application Choix de la version d'ios désirée 27/68
Outils disponibles développement IOS : XCode Action en cours 6 28/68
Outils disponibles développement IOS : XCode Sélection et disposition des fenêtres 7 Permutation des modes d'édition : Affichage masquage - standard des vues - assisté - version Gestion de l'organisation de l'outil Xcode 29/68
Outils disponibles développement IOS : XCode Gestion de l'organisation de l'outil Xcode liste des devices liste des projets liste des certificats liste des archives documentation 30/68
Outils disponibles développement Android : Eclipse + plugin ADT ou Android Studio Android Developper Toolkit + + Software Development Kit (SDK) Native Development Kit (NDK) Repose sur JAVA 31/68
Outils disponibles développement Android Software Development Kit (SDK) Repose sur Java (jdk + jre) Composition => Outils du SDK (compilateur, créateur d'images, émulateur, débogueur (DDMS)..) => Plates-formes Android => Exemples => Documentation S'intègre à l'ide Eclipse + plug-in Android Developments Tools (ADT) => Accélère le développement Android Studio (IDE + ADT) (mai 2013) 32/68
Outils disponibles développement Android Native Development Kit (NDK) Créer des applications dont une partie s'exécute directement sous GNU/LINUX (langage natif) Langage C/C++ Création de bibliothèque C++ complémentaires libc libm pour l'accès natif à l'opengl. Utiliser pour les parties de code critique (performances) des applications (graphiques, graphismes) Augmente la complexité du développement Attention à la compatibilité des architectures matérielles (ARMv5TE, ARMv7-A) => Indissociable du SDK 33/68
Outils disponibles développement Android : Mise à jour régulière 1.0 1.1 1.5 1.6 2.0 2..0.1 2.1 2.2 2.3 2.4 3.0 09/08 02/09 04/09 09/09 10/09 12/09 01/10 05/10 12/10 04/11 03/11 3.1 3.2 4.0.1 4.1 4.1.1 4.1.2 4.2 4.2.1 4.2.2 4.3 05/11 07/11 10/11 06/12 07/12 10/12 11/12 11/12 02/13 07/13 A chaque mise à jour : Nouvel sdk Amélioration de l'interface Amélioration du compilateur Adaptation aux mises à jour de l'os Mise à jour du market place : Google Play 34/68
Outils disponibles développement Android : Eclipse + ADT + SDK 35/68
Outils disponibles développement Android : Eclipse + ADT + SDK 5 4 3 2 1 6 36/68
Outils disponibles développement Android : Eclipse + ADT + SDK 1 Navigation dans les projets - fichiers sources - fichiers générés - librairies - ressources brutes - ressources (images, tableau, chaîne de caractères) - fichiers xml 37/68
Outils disponibles développement Android : Eclipse + ADT + SDK Edition 2 - fichiers sources (xml, java) - layout 38/68
Outils disponibles développement Android : Eclipse + ADT + SDK Layout Description de l'ihm 39/68
Outils disponibles développement Android langage : Java bibliothèques (java, android) Langage XML ressources layout 40/68
Outils disponibles développement Android : Eclipse + ADT + SDK 3 Paramètres de l'application - layout 41/68
Outils disponibles développement Android : Eclipse + ADT + SDK 4 Compilation / Simulation / Debogage Point d'arrêt (Breakpoint) 42/68
Outils disponibles développement Android : Eclipse + ADT + SDK Compilation / Simulation / Débogage débogage pas à pas déroulement des threads 43/68
Outils disponibles développement Android : Eclipse + ADT + SDK Compilation / Simulation / Debugage accès au valeurs des variables 44/68
Outils disponibles développement Android : Eclipse + ADT + SDK 5 Gestion des devices et versions de SDK 45/68
Outils disponibles développement Android : Eclipse + ADT + SDK 5 Gestion des devices et versions de SDK 46/68
Outils disponibles développement Android : Eclipse + ADT + SDK Panneau d information 6 Erreurs de compilation Console Configurable 47/68
Condition d'accès IOS aucune Développer et simuler compte apple development enregistrement au programme de développement Apple ($99) enregistrement au programme de développement Apple entreprise ($299) x x x x x Tester sur cible (<100) ad hoc Partager ses applications en interne in house (illimité) sans passer par validation apple (App Store) x Mettre à disposition ses applications pour tous sur App Store (*) x (*frais supplémentaires) 48/68
Condition d'accès Programmes IOS 49/68
Condition d'accès Android aucune Développer et simuler x Tester sur cible (<100) ad hoc x Partager ses applications en interne x Mettre à disposition ses applications pour tous sur Google Play (*) compte google x enregistrement au compte de publication ($25) x enregistrement au porte-feuille marchand (si application payante) x (*frais supplémentaires) 50/68
Contraintes d'utilisation IOS : Matériel Plate-forme de développement Apple imac MacBook (Pro -Air) Mac Mini Grand moniteur (24") Logiciel Adéquation cible de développement visée (iphone IOS 7) version d'ide (XCode 5) version d'os (OS X mountain Lion 10.8) => mise à niveau payante (10.7.x => 10.8 ~18 ) => restriction sur les modèles de machines 51/68
Contraintes d'utilisation IOS : Développement Compte apple : Apple ID Adhérer au programme des développeurs Apple IOS Developer Program (80 / $99 / an) IOS Developer Entreprise Program (253 / $299 /an) IOS Developer University Program MAC developer Program, Safari developer Program Ticket à $50 pour débloquer bug avec développeur Apple Distribution en fonction des besoins, adhésions à d'autres programmes (payant) 52/68
Contraintes d'utilisation Android : Matériel Tout type de Plates-formes Windows, Linux, OS X Logiciel JAVA (gratuit) 53/68
Licence Apple : licence Apple liés à chaque programme (IOS Development, IOS Development Entreprise..) licence propriétaire du code Apple reverse ingeneering interdit Android : Licence Apache (ASL) libre possibilité d'intégration dans du code propriétaire redistribution sous autre licences (gratuite/payante) 54/68
Smartphone le tout en un Distribution d'applications pour smartphone / 55/68
Distribution des applications IOS : Signer son application Certifie l'identité du développeur Gère les droits d'accès Cible le déploiement (distribution limitée) Provisionning 1 ou n entités identifiant de l'application les cibles éventuelles (Unique Device IDentity) Automatisé par Xcode vérification systématique des informations par interrogation des serveurs Apple 56/68
Distribution des applications IOS : Modes de distribution Ad-hoc In-house App Store, itunes validation de l'application déposée (délais) fixer un prix entre 0 et $999 (30% pour Apple) vente par région temps d'attente pour percevoir la recette des ventes (seuil de $250) VPP/B2B program site magasin électronique affilié/contrôler par Apple accessible uniquement aux clients du programme de distribution en volume 57/68
Distribution des applications Android : Signer son application Signature = certificat de l'application (authentification) Système n'installe pas d'application non signée Utiliser à chaque release de l'application 2 mode d'application : mode debug / mode release Mode release pour distribution Signature via outils du SDK 58/68
Distribution des applications Android : Signer son application 59/68
Distribution des applications Android : Distribution Libre outils du sdk (adb) en direct (ad_hoc) over-the-air (OTA) ou connecter en usb déposer un fichier apk signé sur un site Google Play https://play.google.com/store?hl/fr Ouvrir un compte de publication ($25) accès à la console de développement déposer et publier ses applications ( 1 jour) Ouvrir un porte-feuille marchand pour vendre ses produits (applications) fixer un prix de 0.5 à 100 (30% royalties) publier l'application 60/68
Smartphone le tout en un Contraintes d'interfaçage avec smartphone 61/68
Contrainte d'interfaçage avec smartphone Contraintes liées aux interfaces de communication des téléphones : connexion radio wifi, wimax, Bluetooth, Bluetooth Low Energy zigbee 3G / 4G (forfait data) 2G (téléphone + SMS) RFID/NFC connexion câblée micro USB -OTG connecteur spécialisé (usb, firewire, audio, video série) entrée jack (entrée antenne / microphone) 62/68
Contrainte d'interfaçage avec smartphone Contraintes liées aux interfaces de communication des téléphones : Disponibilité du matériel sur le téléphone Disponibilité de l'api vis à vis des versions d'os ex : Bluetooth BLE supporté android v4.3 mais uniquement le Bluetooth v Tous les profiles Bluetooth ne sont pas forcément disponibles et attention aux versions supportées ex : Audio/Video Remote control Profile (1.3) et pas encore 1.4 Attention aux développements qui ne sont pas forcément portables sur d'autres plates-formes dus aux spécificités de certaines API d'accès au matériel spécifique =>accès bas niveau matériel spécifique 63/68
Exemples de réalisation 64/68
Questions 65/68
Atelier technique : interfaçage et développement des applications smartphones Plates-formes de développement et contraintes d'interfaçage FIN Samuel ROUXEL Le CRT CRESITT est soutenu par :
Présentation d'android Répartition sur le marché : Historique septembre 2012 Android Eclair et < : 4.3 à 3.9% Android FroYo (2.2) : 14 à 12.9% Android Gingerbread (2.3) 57.5 à 55.8% Android Honeycomb (3.x) : 2.1 à 1.9% Android Ice Cream Sandwich (4.0.x) : 20.9 à 23.7% Android Jelly Bean (4.1.x) : 1.2 à 1.8% Source : www.frandroid.com Android Eclair et < : 1.3% Android FroYo (2.2) : 2.5% Android Gingerbread (2.3) 33.1% Android Honeycomb (3.x) : 0,1% Android Ice Cream Sandwich (4.0.x) : 22.5% Android Jelly Bean (4.1/4.2) : 40.5% août 2013 67/68
Présentation d'ios Historique Répartition sur le marché : Source : www.mac4ever.com 68/68