Introduction au Développement Mobile Natif et Cross-plateforme PDF
Document Details
Uploaded by Deleted User
Tags
Summary
Ce document présente une introduction au développement mobile, en se concentrant sur les applications natives et cross-plateformes. Il explique les concepts clés, les technologies utilisées, les avantages du développement natif et les différences entre les deux approches. Un aperçu de l'architecture Android est aussi fourni.
Full Transcript
# Introduction ## Développement mobile natif - Une application native est une application développée spécifiquement pour un système d'exploitation. De ce fait, une application mobile développée pour fonctionner sur iOS ne fonctionnera pas sur Android et vice-versa. - Ceci est dû au fait qu'il exist...
# Introduction ## Développement mobile natif - Une application native est une application développée spécifiquement pour un système d'exploitation. De ce fait, une application mobile développée pour fonctionner sur iOS ne fonctionnera pas sur Android et vice-versa. - Ceci est dû au fait qu'il existe différents langages et technologies pour chaque système d'exploitation. | Entreprise | Appareils | Système d’exploitation | Plateforme de téléchargement | Langage de programmation | Environnement de développement | |:---|:---|:---|:---|:---|:---| | Apple | Iphone/Ipad | iOS | App Store | Objective C/Swift | Xcode | | Google | Les téléphones portables et tablettes des marques: Samsung, Oppo, LG, Huawaei... etc | Android | Google play/Amazon | Java/kotlin | Android Studio | | Microsof | Windows phone (Windows 10 mobile) | Windows phone (Windows 10 mobile) | Windows store | C#, C, C++ | Visual Studio | ## Développement mobile cross plateformes - Une application mobile Cross plateforme est une application développée une seule fois - en un seul code - tout en étant compatible avec les principaux systèmes d'exploitation des smartphones: iOS, Android, Windows Phone. Nous citons trois plateformes: - Plateforme de développement Mobile Hybride: IONIC et CORDOVA - Plateforme de développement Mobile Cross Platform REACT NATIVE - Plateforme de développement Mobile Cross Platform FLUTTER ## Développement mobile natif: les avantages Les avantages de développer les applications en natif : - Meilleure rapidité, fiabilité et dotée d'une meilleure réactivité ainsi qu'une résolution supérieure ce qui assure une meilleure expérience utilisateur. - Un accès plus facile aux fonctionnalités natives avancées du téléphone comme la caméra, le GPS, le répertoire etc... - Ne requiert pas forcément internet pour fonctionner, ce qui est un réel avantage. - Elles respectent les codes design de chaque plateforme afin de proposer aux utilisateurs une expérience optimale. # Les Smartphones vendus selon leur OS (2018) A pie chart is displayed with the following data: - Android: 80% - iOS: 12.8% - Windows Phone: 5.6% - Other OS: 1.6% # Présentation d'Android ## Qu'est ce qu'Android ? - Un système d'exploitation open source conçus pour les dispositifs mobiles au sens large. - Fondé sur le noyau Linux - Lancé en juin 2007 à la suite du rachat par Google en 2005 de la startup Android Inc. ## Les avantages d'Android - **Open source**: Le contrat de licence pour Android respecte les principes de l'open source. - **Gratuit (ou presque)**: Android est gratuit, autant pour vous que pour les constructeurs. En revanche, pour poster vos applications sur le Play Store, il vous en coûtera la modique somme de 25$. - **Facile à vendre**: Le Play Store (anciennement Android Market) est une plateforme très visitée pour le partage des applications. - **Flexible**: Le système est extrêmement portable, il s'adapte avec différents dispositifs (smartphones, tablettes, TV, four, machines à laver, ...). - **Complémentaire**: combiner plusieurs composants totalement différents pour obtenir un résultat surpuissant. Par exemple, si on combine l'appareil photo avec le GPS, on peut poster les coordonnées GPS des photos prises. - **Facile à développer**: Toutes les API mises à disposition facilitent et accélèrent grandement le travail. Ces APIs sont très complètes et très faciles à accéder. - Une API, ou « interface de programmation >> en français, est un ensemble de règles à suivre pour pouvoir dialoguer avec d'autres applications. Par exemple, je peux demander à Google Maps de m'afficher la carte de Mohammedia! ## Téléchargement d'une application - **Google Play store** (ancien Android Market): Système standard de téléchargement/distribution d'applications. Des centaines de milliers d'applications disponibles (57% gratuites). - **APK** (Android Package): un paquet contenant les fichiers d'une application. C'est grâce à lui qu'il est possible d'installer une application sur le téléphone. ## Comment installer un .apk sur téléphone ? **Étape 1**: Autoriser l'installation d'applications issues de sources inconnues. **Étape 2**: Télécharger l'APK 1. Téléchargez l'APK en question (https://www.apkmirror.com/). 2. Allez dans vos téléchargements et ouvrez-la. 3. Cliquez sur l'application, puis confirmez en cliquant sur Installer. **Étape 3**: Installer l'APK ## Architecture Android - **Niveau 1: Le Noyau**: Android s'appuie sur un noyau Linux 2.6 qui agit également comme une couche d'abstraction entre le matériel et le reste de la pile logicielle pour accéder aux périphériques: Camera, Audio, Bluetooth, etc. Il apporte aussi les services de sécurité, le gestionnaire de la mémoire, etc. - **Niveau 2: Librairies** - Android possède de nombreuses bibliothèques natives. Elles fournissent un accès direct aux ressources du système. C'est en quelque sorte la « base » de l'ensemble du système au niveau supérieur. - **SQLite**: Base de donnée relationnelle - **FreeType**: moteur de rendu des polices de caractère. - **Webkit**: moteur de rendu HTML. - **Media Framework**: Cette bibliothèque gère tout ce qui se rapporte aux données multimédia. - **SGL**: gère le graphisme en 2D - **Surface Manager**: ensemble de fonctions permettant la gestion du dispositif d'affichage. Il permet de s'assurer que les pixels s'affichent bien à l'écran. - **Open SSL**: algorithme de cryptage des données. - **OpenGL/ES**: gère le graphisme en 3D. - **Niveau adjacent : Android Runtime (L'environnement d'exécution)**: - **Dalvik virtual Machine (DVM)**: Pour qu'un programme fonctionne, il doit d'abord passer par une étape de compilation, qui consiste à traduire votre code Java en bytecode. Dans le cas d'Android, ce bytecode sera ensuite lu par un logiciel qui s'appelle la machine virtuelle Dalvik. - **Niveau 3 : Le module de développement d'applications**: Cette couche permet au programmeur de construire de nouvelles applications. Parmi les principales ressources offertes par le framework: - **Activity Manager**: gestion de cycle de vie d'une application. - **Content Providers**: le partage de données entres les applications. - **Resource Manager**: gestion des fichiers non codés (images, vidéo, ...). - **Notifications Manager**: affichage d'alerte dans la barre de titre. - **Views System = IHM**: - **Niveau 4 : Applications**: Englobe toutes les applications natives d'un smartphone: Camera, Calculatrice, programmes pour envoyer des SMS, Agenda, navigateur web, répertoire de contacts personnels, ... # Configuration et Installation de l'Environnement du Développement ## Configuration et installation d'environnement de développement - Le développement des application Android s'appuie sur deux piliers: - Le langage Java. - Le SDK (Software Development Kit) qui permet d'avoir un environnement de développement facilitant la tâche du développeur. - anciennement offert par un plugin d'Eclipse (ADT). - maintenant intégré à Android Studio (IntelliJ). - Le kit de développement (SDK) d'Android est un ensemble complet d'outils de développement. Il inclut un débogueur, des bibliothèques logicielles, un émulateur pour visualiser les applications, de la documentation, des exemples de code, les APIs et des tutoriels. ## Android Studio - Depuis mi-2015, les développeurs ont basculé vers Android Studio comme étant l'IDE IntelliJ ayant subi l'intégration de fonctionnalités de développement Android. ## Mise en place d'Android Studio **Étape 1**: Installation de JDK. - Android studio nécessite l'installation du Java Developement Kit JDK (et non JRE). - (Téléchargeable via le lien ci-dessous). - http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html - NB: Choisissez votre configuration et Accepter la licence pour télécharger le fichier d'installation. **Étape 2**: Installation d'Android Studio. - A partir de ce lien télécharger et exécuter le fichier d'installation. - https://developer.android.com/studio/index.html#downloads - NB: Pour Windows (32-bit), dézipper le fichier téléchargé et récupérer l'exe à partir du chemin suivant: android-studio-ide-182.5199772-windows32\android-studio\bin **Étape 3**: Mise à jour et installation des packages de la plateforme. - Lorsque l'installation est terminée, démarrer Android studio. - Sur l'écran d'accueil cliquez sur configure puis SDK manager. - La fenêtre de configuration va s'ouvrir sur la page SDK manager (une application qui permet de choisir les composants à installer et mettre à jour) sur l'onglet SDK plateforms. - I1 faut cocher "Show Package Details", puis choisir élément par élément. - Les éléments suivants sont indispensables: - Android SDK Platform - Intel x86 Atom_64 System Image - 1. Cliquez sur l'onglet SDK Tools. - 2. Cliquez sur Show Package Details et vérifiez les packages cochés avec la figure ci haut. Cochez ceux qui manquent. - 2. Cliquez sur Apply pour valider tous ces changements et lancer la mise à jour et les installations de packages. **Étape 4**: Configuration de l'émulateur. - Android Studio vous offre la possibilité de créer votre propre émulateur virtuel. Pour l'installer il faut aller dans l'onglet AVD Manager et cliquer sur Create Virtual Device. - Après avoir choisi l'émulateur, vous cliquez sur Next. - Ensuite vous choisissez l'image de l'émulateur, si elle n'est pas encore installée vous cliquez sur Download et vous attendez.... - Après avoir terminé le téléchargement vous cliquez sur Done, vous serez emmenés par la suite à la dernière page pour vérifier la configuration de votre émulateur: - Votre émulateur est maintenant prêt à être utilisé. Vous pouvez ajouter autant d'émulateurs que vous voulez, sauf ils sont un peu lourd dans leurs chargement et dans l'exécution des application. - Solution: Utiliser vos Smartphones pour exécuter les applications développées. - Mais comment peut-on les utiliser ?? - Pour connecter votre Smartphone à l'ordinateur et exécuter vos applications, vous aurez besoin de: - Câble USB. - Smartphone avec Android. - Installer l'USB Driver qui correspond à la marque de votre Smartphone. - Ex:Samsung - https://developer.samsung.com/galaxy/others/android-usb-driver-for-windows - Pour la configuration du Smartphone, on procède comme suit: - On clique plusieurs fois sur << Numéro de build >> jusqu'à l'apparition du message. - Activer << Option de développement >>> et << Débogage USB >>> - Afficher les services en cours d'exécution - Débogage USB - Mode débogage lorsqu'un câble USB est connecté - Révoquer les autorisations de débogage USB - Rapports de bugs du menu Marche/Arrêt - Inclure l'option dans le menu Energie pour établir un rapport de bug - Sélectionner une app envoyant des informations de géolocalisation fictives - Aucune app envoyant d'informations de géolocalisation fictives n'a été définie - Activer l'inspection des attributs de la vue - Activer << Vérifier les applications fonctionnant via USB >> - Attente du débogueur - L'application déboguće attent qu'un débogueur soit joint pour s'exécuter - Vérifier les applications fonctionnant via USB - S'assurer de l'innocuité des applications installées via ADB/ADT. - Tailles des tampons du programme de journalisation. - 256 Ko par tampon d'historique - RÉSEAU - Certification affichage sans fil - Afficher les options de certification d'affichage sans fil - Activer la journalisation Wi-Fi en mode verbeux - Augmenter le niveau de journalisation du Wi-Fi, afficher par RSSI SSID dans Wi-Fi Picker # Projet Android sous Android Studio ## Etapes de Création d'un nouveau projet 1. Cliquez sur **"Create New Project"** 2. Choisissez **"Empty Activity"** and click **"Next"**. 3. Fill in the following fields: - **Name**: `Mon projet 01` - **Package name**: `com.example.mon_projet_01` - **Save location**: `C:\Users\Utiisateur AndroidStudio Projects\/Mon_projet_01` - **Language**: `Java` 4. Click **"Finish"**. <start_of_image> This image presents a series of slides that show the different steps in setting up and using Android Studio. The slides cover the basics of native mobile development compared to cross-platform development, installation of software, the architecture of Android and how to connect to a smartphone for development.