Mobile Application Development
Cette séance porte sur le développement d’applications mobiles, un sujet central dans le cursus informatique mobile. Elle présente les différentes plateformes existantes, les types d’applications mobiles, ainsi que les frameworks et outils utilisés pour créer des applications natives, web et hybrides.
D'après le document Mobile Application Development
Cet article a été rédigé automatiquement à partir du document source, puis vérifié avant publication.
Document source
Software Development and Mobile Computing · PDF · 50 pages · 2012
Afficher l'aperçu du document
Cette séance porte sur le développement d’applications mobiles, un sujet central dans le cursus informatique mobile. Elle présente les différentes plateformes existantes, les types d’applications mobiles, ainsi que les frameworks et outils utilisés pour créer des applications natives, web et hybrides.
La fragmentation des plateformes mobiles
Le développement d’applications mobiles doit composer avec une multitude de plateformes, chacune ayant ses spécificités. Cette diversité entraîne une fragmentation importante, notamment en raison des différences physiques entre appareils : taille d’écran, modes de saisie, défilement (scrolling). Les styles d’interface utilisateur varient également, avec des différences dans la présence et le placement des boutons "Back" et "Cancel", la position des barres de navigation, ou encore les choix de couleurs.
Chaque plateforme est souvent développée par des équipes distinctes, ce qui complique la création d’une expérience utilisateur uniforme. Pourtant, l’objectif est d’offrir une expérience utilisateur cohérente malgré ces disparités.
Les spécificités des plateformes et des navigateurs
Chaque système d’exploitation mobile possède ses propres fonctionnalités et outils. Les nouveaux smartphones sont équipés de navigateurs internes modernes, offrant un meilleur support des standards HTML5 et CSS3. Par exemple :
- Android, iPhone, BlackBerry 6.0+, WebOS, Nokia utilisent majoritairement des navigateurs basés sur Webkit.
- Windows Phone 7 utilise un navigateur basé sur Internet Explorer 7.
Les trois types d’applications mobiles
On distingue trois grandes catégories d’applications mobiles :
- Applications natives : développées spécifiquement pour un système d’exploitation donné, elles sont installées sur le smartphone sous forme de fichiers exécutables (binaires).
- Applications web : accessibles via un navigateur mobile, elles utilisent des technologies web standard comme HTML, CSS et JavaScript.
- Applications hybrides : combinent des éléments natifs et web, utilisant un conteneur natif pour exécuter du code web.
Applications natives : caractéristiques et usages
Les applications natives sont compilées en fichiers binaires stockés sur le smartphone. Elles peuvent accéder à toutes les APIs fournies par le système d’exploitation, notamment pour la géolocalisation, le système de fichiers, l’accéléromètre, etc. Chaque OS propose ses propres SDK (kits de développement) et outils pour concevoir l’interface utilisateur.
Ces applications doivent être installées via un store (Google Play, App Store) ou par un installeur externe, et l’utilisateur doit valider les permissions d’accès aux ressources du smartphone lors de l’installation.
Le développement est spécifique à chaque plateforme, ce qui rend la portabilité difficile. Les applications natives sont recommandées pour :
- Les jeux nécessitant une utilisation intensive du GPU.
- Les applications avec des calculs complexes.
- Les applications à haute performance, où une latence supérieure à 10 ms est inacceptable.
Exemples d’applications natives : VoIP, accès à la caméra, traitement audio et vidéo, présence sur les app stores.
Applications web : fonctionnement et avantages
Les applications web fonctionnent sur un serveur web et sont accessibles via un navigateur mobile. Elles sont développées avec HTML, CSS et JavaScript, et ne nécessitent pas d’installation sur l’appareil. Cela facilite la gestion des mises à jour et permet une sauvegarde centralisée des données sur le serveur.
Les avantages des applications web incluent :
- Multiplateforme, fonctionnant sur tous les appareils disposant d’un navigateur compatible.
- Pas besoin d’installation ni de gestion des mises à jour côté utilisateur.
- Partage d’informations simplifié et rapide.
Applications hybrides : une solution intermédiaire
Les applications hybrides combinent un conteneur natif avec des technologies web (HTML, CSS, JavaScript). Le conteneur natif permet d’accéder aux APIs du système tout en utilisant un code source web commun. Cette approche vise à concilier les avantages des applications natives et web.
Deux stratégies principales existent :
- Common Source : un code source multiplateforme commun est mappé vers les APIs natives.
- Common Platform : utilisation de frameworks qui créent un pont entre JavaScript et les langages natifs (Java, Objective-C).
Frameworks pour applications hybrides
PhoneGap / Apache Cordova est un framework open source permettant de développer des applications mobiles cross-platform en utilisant des APIs web standardisées. Initialement créé par Nitobi Software, il a été racheté par Adobe puis confié à la Fondation Apache, où il est devenu Apache Cordova.
PhoneGap permet de créer des applications mobiles pour plusieurs plateformes (actuellement 11) avec HTML5, CSS et JavaScript. Il nécessite des connaissances en développement web, ainsi que des bases sur les plateformes mobiles (Android, iOS, BlackBerry, WebOS). Chaque plateforme nécessite un projet distinct dans lequel le code PhoneGap est injecté. PhoneGap ne dispose pas d’IDE propre, il faut utiliser Eclipse pour Android et Xcode pour iPhone.
Appcelerator Titanium est un autre framework open source pour le développement d’applications mobiles natives ou desktop, utilisant JavaScript, HTML et CSS. Les applications Titanium sont des programmes JavaScript interprétés à l’exécution par le smartphone.
Le SDK Titanium supporte plus de 5 000 smartphones et systèmes d’exploitation. Il propose une IDE basée sur Eclipse, un framework MVC nommé Alloy, ainsi que des services cloud pour tester les applications.
Comparaison des approches : native, web et hybride
| Critère | Native | Hybride | Web |
|---|---|---|---|
| Accès au matériel | Total | Total | Partiel |
| Vitesse | Très rapide | Aussi rapide que natif si nécessaire | Rapide |
| Coût de développement | Cher | Raisonnable | Raisonnable |
| App Store | Disponible | Disponible | Pas disponible |
| Processus d’approbation | Obligatoire | Surcoût limité | Aucun |
En termes de performances graphiques et d’interface utilisateur, les applications natives offrent le meilleur rendu et une expérience utilisateur optimale. Les applications web sont plus lentes, avec une émulation des interactions tactiles comme le "pinch" souvent limitée. Les applications hybrides peuvent atteindre des performances proches du natif si elles sont bien optimisées.
Enfin, les applications natives peuvent fonctionner hors ligne, tandis que les applications web nécessitent une connexion internet.
Points clés
- La fragmentation des plateformes mobiles impose des défis importants en termes de développement et d’expérience utilisateur.
- Les applications natives offrent un accès complet aux ressources matérielles et des performances optimales, mais sont coûteuses à développer et difficiles à porter.
- Les applications web sont multiplateformes, faciles à maintenir, mais limitées en accès matériel et performances.
- Les applications hybrides combinent les avantages des deux approches, en utilisant des frameworks comme PhoneGap ou Titanium.
- Le choix entre natif, web ou hybride dépend des besoins spécifiques de l’application, des ressources disponibles et des contraintes techniques.
Commentaires
Aucun commentaire pour le moment. Posez la première question.