1. DÉVELOPPEMENT MOBILE
Enseignante: Mme Haïfa Chorfi Sayari
Institut Supérieur des Etudes Technologiques
NIVEAU : 3ÈME ANNÉE LICENCE APPLIQUÉE DSI
CHAPITRE 1: INITIATION À LA PROGRAMMATION MOBILE
3. Systèmes d’exploitation mobile
3
Les appareils mobiles possèdent un système d’exploitation mobile qui est un
ensemble de programmes qui gère l'utilisation des capacités de l’appareil.
4 principaux systèmes, représentant la quasi-totalité des parts de marché
Android (Google)
iOS (Apple)
Windows phone (Microsoft)
Blackberry (RIM)
Autres
Bada de Samsung
Firefox OS
MeeGo
Tizen
PalmWebOS
Symbian OS de Nokia
Ubuntu touch
4. Systèmes d’exploitation mobile
4
OS Société Langage de
développement
Environnement de
développement intégré EDI
Android Google Java et Android SDK
C++ et Android NDK
Android Studio
Eclipse avec le plugin ADT
(Android DevelopmentTools)
Netbeans
…
IOS Apple Swift(remplace Objective-C)
iPhoneSDK
Xcode
Windows
Phone
Microsoft C#,VB.NET
Phone SDK
Visual Studio 2010 et Expression
Blend.
6. Pourquoi l’OS de Google?
6
Au niveau des ventes de Smartphones, Android est l’écosystème n°1 sur le
segment des smartphones depuis la fin de l’année 2010 mais aussi depuis
début 2012 sur le segment des tablettes.
Pourquoi Android ?
Android laisse le choix du terminal : Lorsque l’on souhaite utiliser iOS,
on est obligé de faire l’acquisition d’un iPhone contrairement à Android qui
permet de choisir le smartphone parmi des dizaines disponibles sur le marché.
Une mémoire extensible : Lors de l’achat d’un appareil sous iOS, il faut
choisir sa capacité de mémoire définitive. De 8 Go à 32 Go, elle est
inextensible. Android fait fi de ce blocage matériel en proposant un port
microSDHC sur les appareils qu’il anime.
7. Pourquoi l’OS de Google?
7
Android est le plus ouvert de tous : Basé sur une plateforme
Linux, le système de Google est ouvert et libre.
Services intégrés : Les services Google sont parfaitement intégrés
à les terminaux équipés de son OS mobile.
Le Google Play, riche en applications gratuites : Si l’App
Store d’Apple et le Google Play ont maintenant un nombre similaire
d’applications, les versions gratuites sont plus nombreuses sur le
système mobile de Google.
9. WebApp
9
Application mobile exécutable via le navigateur internet via tous les
appareils mobiles quelque soit leur marque et leur système
d'exploitation.
Cette application est développée avec les technologies web
classique, comme HTML5, CSS3 ou javascript.
App.ft.com walgreens.com
10. WebApp
10
Avantages :
Un seul et unique code pour les différentes plateformes
Coût de développement moins important
Compatible avec tous les navigateurs
Inconvénients :
Non accessible en mode hors connexion (sauf s’il y a une mise
en cache du site)
Ne peut pas accéder aux applications natives du mobile (GPS,
appareil photo…)
Pas adapté aux traitements lourds (réalité augmentée, 3D, etc.)
Difficulté d'intégrer un module de payement pour les services
offerts
11. Application native
11
Application que l'on télécharge et que l'on installe sur son
Smartphone ou sur sa tablette via des magasins d'applications.
Cette application est développée pour un des systèmes
d'exploitation utilisé par les Smartphones ou tablettes.
Elle est développée avec un langage spécifiques aux différents
systèmes d'exploitation
Instagram WhatsApp
12. Application native
12
Avantages :
Accessibilité de l’application hors connexion
Bonne performance et rapidité
Meilleure expérience utilisateur
Meilleur référencement dut aux téléchargements sur les plateformes
comme l’App Store ou le Play Store.
Inconvénients :
Pas la même application sur les différentes plateformes (Apple,
Android,Windows Phone, BlackBerry) ;
Coût de développement important ;
Problème de compatibilité après les mises à jour.
13. Application hybride
13
Mélange d’application native et de Web App, vous bénéficiez des
avantages des applications natives sans développer l’intégralité du
produit dans le langage de chaque plateforme.
Elle combine des éléments HTML5 sous forme de webApp et des
éléments de l'application native.
Le développement d'application hybride repose sur des passerelles
natives (phonegap/Cordova,Trigger.io, sencha space) , qui
permettent de créer une application indépendante à partir de pages
webs.
Banana Republic BBC Olympics
14. Application hybride
14
Avantages :
Un seul et unique code pour les différentes plateformes
Coût de développement moins important
Accessibilité direct de l’application hors connexion
Disponibilité de l'application mobile sur les stores (Google Play,
Apple Store)
Inconvénients:
Performance de l'application par rapport à un développement
natif
Toutes les fonctionnalités des appareils ne sont pas exploitables
Problème de validation des applications par les stores
15. Qu’est-ce qu’Android ?
15
Android est un système d’exploitation mobile:
orienté dispositif mobiles : il s’agit donc d’un
ensemble de logiciels qui sert d’interface entre le
matériel (Tablette, smartphone, netbook,
télévision, embarqué) et les logiciels applicatifs.
open source : disponibilité du code, importante
communauté d’utilisateurs.
basé sur le noyau Linux
16. Versions d’Android
16
Les versions se succèdent rapidement et les changements qui les
accompagnent sont souvent conséquents en termes de nouvelles
fonctionnalités et d’améliorations
Dernière version 8.0 (Oreo : Version sortie le 21 août 2017.)
http://www.dreamcatchercarriage.com/cool-drag-drop-android-7-0-nougat-features/
17. Fonctionnalités d’Android
17
Android fournit un certain nombre de fonctionnalités pour vous
aider à développer des applications :
Stockage : Vous pouvez packager des fichiers de données
dans une application, pour y stocker ce qui ne changera jamais
– les icônes ou les fichiers d’aide, par exemple.
Réseau : Les terminaux Android sont généralement conçus
pour être utilisés avec Internet, via un support de
communication quelconque..
Multimédia : Les terminaux Android permettent
d’enregistrer et de jouer de la musique et de la vidéo.
18. Fonctionnalités d’Android
18
GPS : Les fournisseurs de positionnement, comme GPS,
permettent d’indiquer aux applications où se trouve le
terminal. Il vous est alors possible d’afficher des cartes ou
d’utiliser ces données géographiques pour retrouver la trace
du terminal s’il a été volé, par exemple.
Services téléphoniques : Évidemment, les terminaux
Android sont généralement des téléphones, ce qui permet à
vos programmes de passer des appels, d’envoyer et de
recevoir des SMS et de réaliser tout ce que vous êtes en droit
d’attendre d’une technologie téléphonique moderne.
19. Contraintes
19
Pour vos développements, on doit garder à l'esprit que les
appareils mobiles ont :
Une puissance processeur plus faible
Une RAM limitée
Des capacités de stockage permanent limitées
De petits écrans avec de faibles résolutions
Des coûts élevés de transfert de données
Des taux de transfert plus lents avec une latence élevée
Des connexions réseau moins fiables
Des batteries à autonomie limitée
21. Architecture d’Android
21
Offre les services systèmes : gestion de la
mémoire , gestion processus, sécurité, réseau,
pilotes de matériel
Offre les fonctionnalités de la bibliothèque Java
standard et la machine virtuelle ART (Android
RunTime, remplaçant Dalvik officiellement depuis la
version 50 en 2014)
Linux Kernel
HAL
fournit des interfaces standard qui exposent les
fonctionnalités matérielles du périphérique au
frameworkAPI Java de niveau supérieur.
Android Runime
22. Architecture d’Android
22
fournissent un accès direct aux ressources du système.
•SurfaceManager: permet l'accès au sous-système d'affichage.
•Media Framework : lecture audio /vidéo
•SQLite. Base de données légère et puissante.
•OpenGL et SGL : Bibliothèques graphiques 3D et 2D.
•FreeType : Rendu des polices de caractères.
•SSL &WebKit : Moteur de rendu de pages Internet.
le courrier électronique, la messagerie SMS, les
calendriers, la navigation sur Internet, les contacts et ...
Les applications fonctionnent à la fois comme des
applications pour les utilisateurs et pour fournir des
fonctionnalités clés auxquelles les développeurs peuvent
accéder depuis leur propre application
Bibliothèques natives
C/C++
API Java fournit des classes qui seront utilisées pour la création
d’applicationsAndroid (gestion des fenêtre, téléphonie, ..).
Applications
23. Environnement de développement
23
Langage de développement
Langage Java etAndroid SDK
C++ et Android NDK
Environnement de développement Intégré (EDI)
Android Studio
Eclipse avec le pluginADT (Android DevelopmentTools)
Netbeans
…
24. Développement de l’application
24
1. Obtention des .class
2. Conversion des .class en .dex (du bytecode en DVM code)
3. Génération de l'apk (Packaging), Android Package file : Les applications
doivent être signées pour être déployées (pas nécessaire en
développement)
4. Téléchargement vers émulateur ou mobile pour l’exécution : il suffit
de redémarrer l’application via Android Studio pour qu’elle se recharge
dans le terminal.