Plate-formes mobiles

publicité
Développement d'applications pour
terminaux mobiles
Plate-formes mobiles
Jean-Rémy Falleri
[email protected]
ENSEIRB-MATMECA
Département Télécommunication
Historique
2000
2010
2000
●
Téléphones « rudimentaires »
●
Connexion données très lente (GSM, GPRS)
●
Téléphones complètement fermés
●
Taux de pénétration du marché très forte
2010
●
Smartphones : téléphones avancés couplés à
de nombreux capteurs (GPS, photo, ...)
●
Connexion données rapide (Edge, 3G, 4G)
●
Téléphones ouverts et programmables
●
Evolution matérielle très rapide : tablettes, dual
core, ...
Web et mobiles
Applications mobiles
Evolution du marché
Les OS
●
BlackBerry (Rim)
●
Android (Google)
●
IOS (Apple)
●
Windows Phone (Microsoft)
●
Tizen (Samsung)
Parts de marché des OS
Android et IOS
●
Deux acteurs principaux du marché
●
IOS
●
●
Propriétaire,
●
Objective C
●
Convergence logiciel matériel
Android
●
Libre
●
Java / C / Linux
●
Indépendant du matériel sous-jacent
Android
●
Développé par Google
●
Numéro 1 des ventes depuis 2011
●
Google fournit le système d'exploitation
●
Les constructeurs de téléphone l'adaptent à
leur hardware
●
Samsung, HTC, Sony, LG
Les versions
Historique
Architecture
Noyau Linux vs Android
●
Utilise LibC à la place de stdlib
●
Utilise le framebuffer à la place de X11
●
●
Implémente seulement une sous partie de
POSIX
Gestion mémoire et ordonnancement de
processus optimisés
Oracle JDK vs Dalvik
●
●
●
Machine virtuelle basée registre
Byte-code DEX optimisé (un seul fichier pour
tout le programme, …)
Programme final contenant le code et des
ressources : APK
●
Optimisations gestion mémoire
●
Optimisations multi instances
Android NDK vs JDK
●
Le NDK est un framework de développement
au dessus du systèmes et des librairies
●
●
Code C, optimisation, composants bas niveau
Le SDK est un framework de développement
au dessus de la machine virtuelle Dalvik
●
Code Java, rapide à écrire, composants haut niveau
Outils de développement
●
●
SDK Android
ADT : Android Development Tools (plugin
Eclipse)
●
AVD : Android Virtual Device
●
ADB : Android Debug Bridge
Développement natif
●
●
Avantage
●
Meilleure intégration
●
Permet de profiter des widgets natifs
●
Performant
Désavantages
●
Il faut développer plusieurs fois l'application
(Android, iOS, …)
L'approche framework
●
Remplace le développement natif
●
On développe dans le cadre d'un framework
●
●
●
L'application ensuite s'exporte sur plusieurs
plateformes
Plusieurs frameworks
●
Cordova (JavaScript)
●
Kivy (Python)
●
...
L'approche la plus classique : application Web
Applications Web mobiles
●
●
Composants Web dispos sur toutes les plateformes
Idéal pour les applications de type Create, Read,
Update, Delete
●
Api Rest en back-end
●
Client web en front-end
●
Programmées sur le modèle Single Page Application
●
Le serveur renvoie des parties du DOM
●
Requêtes Ajax pour récupérer les bouts de DOM
●
Se comporte comme une appli native
Stack SPA
●
HTML/CSS pour la vue
●
JavaScript pour le comportement
Téléchargement