Introduction au développement mobile
Introduction au développement mobile
-
Objectifs
- Bienvenue dans ce cours d’introduction au développement mobile ! Dans ce cours, nous allons explorer les bases du développement d’applications mobiles, y compris les principaux concepts, les technologies et les outils utilisés dans ce domaine passionnant. Que vous soyez débutant ou que vous ayez déjà des connaissances en programmation, ce cours vous fournira une base solide pour commencer à créer vos propres applications mobiles.
-
Présentation
- Il y a presque 7 milliards de personnes sur la planète, dont 5,1 milliards possèdent un téléphone portable. Le nombre d’utilisateurs accédant à Internet sur leurs smartphones a plus que doublé au cours des 5 dernières années, tout comme le nombre d’utilisateurs téléchargeant et utilisant des applications mobiles.
- Parmi ceux qui utilisent Internet ou le courrier électronique sur leur téléphone, plus d’un tiers se connectent principalement via leurs appareils portables.
- Utilisation des mobiles (D’après l’Union internationale des télécommunications (UIT))
- En 2023, il y a environ 18 milliards de connexions mobiles dans le monde, incluant les smartphones, les tablettes, et d’autres appareils connectés.
- La couverture mobile atteint environ 95% de la population mondiale, avec une pénétration croissante dans les zones rurales.
- Smartphones (D’après l’union internationale des télécommunications)
- En 2023, on estime qu’il y a environ 6,4 milliards d’utilisateurs de smartphones dans le monde.
- Le nombre d’utilisateurs de smartphones a augmenté de 10-15% par rapport à 2022, reflétant une adoption continue, surtout dans les marchés émergents.
- En 2022, le volume de données mobiles transférées a atteint environ 60 exaoctets par mois, une augmentation de 30% par rapport à 2021.
- L’utilisation des applications mobiles continue d’augmenter, avec des utilisateurs passant en moyenne 4 heures par jour sur des applications mobiles.
- En Tunisie
- Plus de 12,63 millions de cartes SIM vendues (115% de taux de pénération) (D’après l’Instance Nationale des Télécommunications (INT) )
- 12% des Tunisiens abonnés à la téléphonie mobile ont des smartphones (D’après Pew Global Attitude)
-
Qu’est-ce qu’une Application Mobile ?
- Une application mobile dédiée est un programme conçu spécifiquement pour être installé sur un appareil mobile. Elle est généralement téléchargée depuis une boutique d’applications comme l’App Store ou Google Play Store. Contrairement à un site mobile, une application peut fonctionner en mode hors ligne et offrir des fonctionnalités plus complexes.
- Une application mobile est créée pour offrir des fonctionnalités spécifiques aux utilisateurs, souvent en tirant parti des capacités matérielles des appareils (comme la caméra, le GPS ou les capteurs tactiles).
- L’application s’exécute sur le dispositif mobile et peut utiliser ses ressources, telles que le GPS, la caméra, et les capteurs de mouvement, afin d’offrir des fonctionnalités interactives et personnalisées. Elles communiquent souvent avec des serveurs distants via internet pour récupérer des données, mettre à jour leur contenu, ou exécuter des tâches qui nécessitent de la puissance de calcul supplémentaire ou un accès à des bases de données volumineuses.
-
Eléments clés du développement mobile
-
Conception :
- La première étape du développement mobile consiste à concevoir l’application, en définissant ses fonctionnalités, son apparence et son expérience utilisateur.
- Il est essentiel de tenir compte des spécificités des appareils mobiles, telles que la taille de l’écran et les interactions tactiles.
-
Développement :
- Une fois la conception terminée, les développeurs commencent à écrire le code source de l’application. Ils utilisent des langages de programmation adaptés aux plateformes cibles, tels que Java ou Kotlin pour Android et Swift ou Objective-C pour iOS.
-
Tests
- Les applications mobiles subissent des tests approfondis pour s’assurer qu’elles fonctionnent correctement sur différentes configurations d’appareils et de systèmes d’exploitation. Les tests comprennent souvent des tests de convivialité, de performance et de sécurité.
-
Publication :
- Une fois que l’application est prête, elle est soumise aux app stores correspondants, tels que Google Play Store pour Android et l’App Store d’Apple pour iOS. Les applications doivent respecter les directives de ces plateformes pour être acceptées.
-
Maintenance :
- Le développement mobile ne se termine pas avec la publication de l’application. Les développeurs doivent continuer à mettre à jour et à entretenir l’application pour corriger les bogues, ajouter de nouvelles fonctionnalités et s’adapter aux évolutions des systèmes d’exploitation et des appareils.
-
Marketing et promotion :
- Pour attirer les utilisateurs, il est essentiel de mettre en place une stratégie de marketing et de promotion de l’application. Cela peut inclure des campagnes publicitaires, des médias sociaux et d’autres méthodes de promotion.
-
Les approches de développement mobile et les principaux langages utilisés
- Le développement d’applications mobiles repose sur différentes approches et langages de programmation, chacun ayant ses avantages et ses inconvénients. Voici un aperçu des principales approches de développement mobile ainsi que des langages associés.
-
Approches de développement mobile
-
Développement natif
- Le développement d’applications mobiles natives consiste à créer des applications spécifiquement pour un système d’exploitation (OS) mobile, en utilisant les outils et langages fournis par le fabricant de l’OS.
- Une application est dite native car on la développe pour un système d’exploitation précis.
- Avantages :
- Performance optimale, car les applications sont directement exécutées sur le matériel natif.
- Accès complet aux fonctionnalités matérielles (caméra, capteurs, GPS, etc.).
- Meilleure intégration avec l’OS et meilleure expérience utilisateur.
- Inconvénients :
- Chaque plateforme (iOS et Android) nécessite un code distinct.
- Temps et coût de développement plus élevés.
- Langages :
- iOS : Swift, Objective-C
- Le système d’exploitation iOs dispose de technologies qui lui sont propres
- Objective-C une extension du langage C créé pour les besoins de Mac
- Swift plus récent créé également pour le développement sur Apple
- XCode IDE outil de développement disponible seulement sur MAC.
- Android : Kotlin, Java
- Pour Android, on recourt à des technologies compatibles avec le système d’exploitation :
- Java, considéré comme le langage officiel par Google
- Kotlin un langage de développement très apprécié par Android
- C et C++ sont aussi largement plébiscités par les développeurs Android
- Android Studio, un environnement de développement
-
Développement multiplateforme (cross-platform)
- Le développement multiplateforme permet de créer une seule application qui fonctionne à la fois sur iOS et Android. Il repose sur des frameworks qui traduisent un code unique pour les deux systèmes.
- Avantages :
- Réduction du temps et du coût de développement, car un seul code est utilisé pour les deux plateformes.
- Maintenance simplifiée avec un seul codebase.
- Inconvénients :
- Performance légèrement inférieure à celle des applications natives.
- Accès aux fonctionnalités matérielles plus limité ou nécessitant des plugins.
- Frameworks et langages :
- Flutter : Dart
- React Native : JavaScript (ou TypeScript)
- Xamarin : C#
- Ionic : HTML, CSS, JavaScript (basé sur Angular)
-
Applications Web progressives (PWA)
- Une applications Web progressives est une application accessible via un navigateur mobile. Elles ne sont pas installées sur l’appareil mais fonctionnent en ligne.
- Les progressive web apps utilisent les dernières technologies pour combiner les meilleures applications Web et mobiles.
- Les PWAs sont des applications web qui offrent une expérience utilisateur similaire à celle des applications natives. Elles fonctionnent dans un navigateur et peuvent être installées sur un appareil mobile.
- Avantages :
- Un seul développement pour toutes les plateformes (mobile et desktop).
- Pas besoin de téléchargement via un store d’applications.
- Mise à jour simplifiée.
- Exemples :
- Twitter Lite est une progressive web app créée par Twitter pour offrir aux utilisateurs une meilleure expérience depuis leur mobile. (https://x.com/)
- Flipkart utilise une application Web progressive pour sa populaire plate-forme de commerce électronique, Flipkart Lite
- Air Berlin utilise une application Web progressive pour son processus d’enregistrement en ligne, permettant aux utilisateurs d’accéder à leurs billets sans connexion Internet.
- Inconvénients :
- Accès limité aux fonctionnalités natives (capteurs, notifications, etc.).
- Performance souvent inférieure aux applications natives.
- Langages :
- HTML, CSS, JavaScript (ou frameworks comme Angular, React, Vue.js)
-
Un site Web Responsive
- Un site Web Responsive, c’est à dire ne pas proposer une application, mais juste optimiser la navigation sur un site web optimisé pour une utilisation Mobile (et sur PC). Attention, un site web responsive n’est pas une App Mobile, c’est juste pouvoir utiliser un site sur un smartphone avec une navigation adaptée, on ne peut faire appel à toutes les fonctions d’un téléphone.
-
Principaux langages de développement mobile
-
Swift
- Utilisé pour : Développement natif iOS
- Caractéristiques : Langage moderne, rapide, et facile à apprendre. Il est fortement soutenu par Apple et est devenu le langage principal pour le développement iOS.
-
Kotlin
- Utilisé pour : Développement natif Android
- Caractéristiques : Langage officiel de Google pour Android. Il est concis, sécurisé, et entièrement interopérable avec Java.
-
Java
- Utilisé pour : Développement natif Android (historiquement)
- Caractéristiques : Langage robuste et fiable, mais considéré comme plus verbeux que Kotlin.
-
Dart
- Utilisé pour : Flutter (développement multiplateforme)
- Caractéristiques : Langage développé par Google. Il se distingue par sa simplicité et ses capacités de compilation à la fois en code natif et en JavaScript.
-
JavaScript
- Utilisé pour : React Native, Ionic, PWA
- Caractéristiques : Langage omniprésent pour le développement web et mobile avec un vaste écosystème de bibliothèques et frameworks.
-
C#
- Utilisé pour : Xamarin (développement multiplateforme)
- Caractéristiques : Langage puissant et bien intégré avec l’écosystème Microsoft, notamment pour les développeurs .NET.
-
Tendances actuelles et futures
- Flutter gagne en popularité pour le développement d’applications multiplateformes en raison de ses performances proches du natif et de sa facilité d’utilisation.
- React Native est également très utilisé, surtout pour les développeurs venant du monde JavaScript.
- Les applications web progressives (PWA) sont en plein essor, car elles combinent le meilleur du web et du mobile tout en réduisant les contraintes liées aux stores d’applications.
- SwiftUI et Jetpack Compose sont des frameworks natifs récents pour iOS et Android respectivement, qui simplifient le développement d’interfaces utilisateur.
-
Systèmes d’exploitation pour mobile (OS mobile)
OS
est une abréviation pourOperating System
. En français, le terme est traduit par « système d’exploitation« .- Un système d’exploitation mobile est un système d’exploitation conçu pour fonctionner sur un appareil mobile. Ce type de système d’exploitation se concentre entre autres sur la gestion de la connectivité sans fil et celle des différents types d’interface.
- Une application mobile ou simplement app mobile, est un programme informatique ou une application logicielle conçue pour s’exécuter sur un appareil mobile tel qu’un téléphone, une tablette, téléviseur, une montre, etc.
- Les applications mobiles contrastent souvent avec les applications de bureau conçues pour s’exécuter sur des ordinateurs de bureau et les applications Web qui s’exécutent dans les navigateurs Web mobiles plutôt que directement sur l’appareil mobile.
- Un système d’exploitation mobile permet à l’utilisateur d’exécuter de différents logiciels d’application sur le mobile, les tablettes, les montres intelligentes, etc. De plus, on peut dire qu’il s’agit d’un type de système d’exploitation spécialement conçu pour les mobiles. Ils sont un mélange de système d’exploitation informatique avec quelques fonctionnalités supplémentaires. En outre, ils sont relativement légers et simples.
-
Exemples d’OS pour Mobile
-
Android : l’OS mobile de Google
- Android de Google fut développé par une petite startup ensuite achetée par Google qui poursuit activement son développement. Android distribué sous licence open source est une variante de Linux.
- Le système d’exploitation Android est le plus utilisé parmi tous les systèmes d’exploitation mobiles qui existent. Il est gratuit et open source basé sur le noyau Linux développé par Google.
-
Système d’exploitation Blackberry
- Le développeur de ce système d’exploitation est Research In Motion (RIM). Il a été spécialement conçu pour les appareils BlackBerry.
-
iOS : l’OS mobile d’Apple
- C’est l’un des OS les plus populaires après Android. Il est conçu pour fonctionner sur les appareils Apple tels que les iPhones, les tablettes iPad, etc. De plus, comme dans le cas du système Android, IOS permet le téléchargement de ses applications via son AppStore.
- C’est le concurrent le plus important de l’OS Android, le système d’exploitation développé par l’entreprise Apple.
- Si la firme américaine équipe bien moins de smartphones puisqu’iOS est réservé aux produits appels (iPhone et iPad), le système d’exploitation iOS est apprécié, car il est considéré comme l’OS proposant la meilleure expérience utilisateur.
-
Harmony OS
- C’est un OS conçu par la société chinoise Huawei. Il est spécialement conçu pour être utilisé dans les appareils IoT en incluant les téléphones portables et tous ce qui est mobile.
-
Bada, l’OS de l’entreprise Samsung
- qui a équipé pour la première fois en 2010 un smartphone (Samsung Wave);
-
Meego, l’OS de Nokia et Intel
- Conçu pour fonctionner sur une majorité d’appareils;
-
Fonctions d’un système d’exploitation pour mobile
-
Gestion de la mémoire
- Quel que soit le programme exécuté, il doit être présent dans la mémoire principale. Par conséquent, il peut y avoir plus d’un programme présent à la fois ce qui rend nécessaire de gérer la mémoire. Le système d’exploitation alloue et désalloue la mémoire pendant le multitraitement.
-
Gestion du processeur
- Lorsque plus d’un processus s’exécute, le système d’exploitation décide comment et quand un processus utilisera le processeur. Le système d’exploitation Alloue et désalloue le processeur aux processus.
-
Gestion des dispositifs
- Les processus peuvent nécessiter des dispositifs pour leur fonctionnement tels que les capteurs et les périphériques d’entrées sorties. Cette gestion est effectuée par l’OS. Le système d’exploitation alloue et désalloue des dispositifs à différents processus.
-
Gestion des fichiers
- Les fichiers d’un système sont stockés dans différents répertoires. Le système d’exploitation :
- Gère des registres de l’état et de l’emplacement des fichiers.
- Alloue et désalloue des ressources.
-
Sécurité
- Le système d’exploitation assure la sécurité du système et des programmes grâce à l’authentification d’une part, et la gestion des permissions de l’utilisation des ressources d’une autre part
.