0% ont trouvé ce document utile (0 vote)
215 vues63 pages

Terminaux Mbile Bio 1 IGL

Transféré par

perrinebellamaffo19
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
215 vues63 pages

Terminaux Mbile Bio 1 IGL

Transféré par

perrinebellamaffo19
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

CHAPITRE I : GENERALITES

OBJECTIFS

A la fin de ce cours l’étudiant sera capable de maitriser :

 Les base du développement d’applications mobiles, les concepts ; les technologies et


les outils utilisés dans ce domaine

INTRODUCTION
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.

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.

I. SYSTEMES D’EXPLOITATION POUR


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.

By TCHANQUE 1 ICLII
Un système d'exploitation (OS) est un programme qui agit comme une interface entre
le matériel du système et l'utilisateur. De plus, il gère toutes les interactions entre le logiciel etle
matériel

A. FONCTIONS D'UN SYSTEME 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.
 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
 Gestion des fichiers :

B. EXEMPLES D’OS POUR MOBILE

 Android : 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.
 Apple iOS : 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.

By TCHANQUE 2 ICLII
 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.
 Système d'exploitation Windows Mobile Le développeur de ce système
d'exploitation est Microsoft. Il est essentiellement conçu pour les Pocket PC et les
smartphones fabriqués par la société Microsoft.
 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’appareil.

II. TYPES D’APPLICATION MOBILE

Une application mobile est composée principalement d’une partie interface


utilisateur et une partie qui définit le comportement des composantes.

 Interface de l’utilisateur
 Visible : les composantes visibles de l’interface de l’utilisateur sont représentées
par les boutons, champs de texte, Images, Liste déroulante, etc. elles sont
utilisées comme un moyen d’interaction avec l’utilisateur pour lui permettre
d’entrer des informations ou lui afficher un contenu.
 Invisible : sont des composantes qui permettent une interaction avec les
utilisateurs sans qu’elles soit visible en permettant d’utiliser les ressources du
mobile comme l’envoi et la réception des SMS, la géolocalisation,
textToSpeech, accéléromètre, etc.
 Comportement
 Evènements : ce sont les évènements auxquels peut s’associer une action
comme le clique d’un bouton, l’activation de camera, la réception d’un appel,
etc.
 Méthodes : ce sont les actions et les comportements qu’on veut associer à des
évènements. Elles sont paramétrables, réutilisables et personnalisables.

Il existe trois types de base d’applications mobiles si nous les catégorisons selon la
technologie utilisée pour les coder :

By TCHANQUE 3 ICLII
Les applications natives sont créées pour une plate-forme ou un système d’exploitation
spécifique.

Les applications Web sont des versions réactives de sites Web qui peuvent fonctionner
sur n’importe quel appareil mobile ou système d’exploitation, car elles sont fournies à l’aide
d’un navigateur mobile.

Les applications hybrides sont des combinaisons d’applications natives et Web, mais
enveloppées dans une application native, ce qui lui donne la possibilité d’avoir sa propre icône
ou d’être téléchargée à partir d’un magasin d’applications.

A. Les applications natives


1. Présentation

 Les applications natives sont conçues spécifiquement pour le système d’exploitation


(OS) d’un appareil mobile. Ainsi, vous pouvez avoir des applications mobiles Android
natives ou des applications iOS natives, sans parler de toutes les autres plates-formes et
appareils. Parce qu’ils sont conçus pour une seule plate-forme, vous ne pouvez pas
mélanger et assortir – par exemple, utilisez une application Blackberry sur un téléphone
Android ou utilisez une application iOS sur un téléphone Windows.
 Ces applications ne fonctionnent que sur les appareils pour lesquels elles sont conçues.
 Si une application est développée pour les mobiles Apple, c’est-à-dire macOS, cette
application ne fonctionnera sur aucun autre appareil doté d’un système d’exploitation
autre que macOS.

By TCHANQUE 4 ICLII
 Si une application est développée pour le système d’exploitation Android, elle ne
fonctionnera que sur les appareils dotés du système d’exploitation Android, et sur aucun
autre appareil.
 Les avantages des applications natives sont qu’elles communiquent facilement avec
l’appareil sur lequel elles s’exécutent,
 Il communique facilement avec le matériel de l’appareil comme l’appareil photo, les
haut-parleurs, le moteur graphique, les boutons, le toucher, les capteurs de localisation
et les accéléromètres, etc.
 Le rendu de la page, c’est-à-dire le rendu de l’interface utilisateur, se poursuit sans
aucun problème de suspension ou de blocage.
 Le flux de mise en page est impeccable et facile à utiliser.
 Ces applications sont plus conviviales, plus faciles à utiliser et peuvent facilement
tolérer une charge d’activité rapide des utilisateurs
 Ces applications peuvent réagir à la même vitesse avec ce que l’utilisateur les utilise.
 Ces applications en termes d’interactivité remplacent tous les autres types
d’applications.

2. Technologie utilisée

Les applications natives sont codées à l’aide de divers langages de programmation.


Voici quelques exemples : Java, Kotlin, Python, Swift, Objective-C, C++ et React.

3. Avantages

 En raison de leur orientation singulière, les applications natives ont l’avantage d’être
plus rapides et plus fiables en termes de performances. Ils sont généralement plus
efficaces avec les ressources de l’appareil que d’autres types d’applications mobiles.
Les applications natives utilisent l’interface utilisateur native de l’appareil, offrant aux
utilisateurs une expérience client plus optimisée.
 Et comme les applications natives se connectent directement au matériel de l’appareil,
elles ont accès à un large choix de fonctionnalités de l’appareil telles que Bluetooth, les
contacts du répertoire, la pellicule, le NFC, etc.

By TCHANQUE 5 ICLII
4. Inconvénients

 Cependant, le problème avec les applications natives réside dans le fait que si vous
commencez à les développer, vous devez dupliquer les efforts pour chacune des
différentes plateformes. Le code que vous créez pour une plateforme ne peut pas être
réutilisé sur une autre. Cela fait grimper les coûts. Sans parler de l’effort nécessaire pour
maintenir et mettre à jour la base de code pour chaque version.
 Et puis, chaque fois qu’il y a une mise à jour de l’application, l’utilisateur doit
télécharger le nouveau fichier et le réinstaller. Cela signifie également que les
applications natives occupent un espace précieux dans le stockage de l’appareil.

B. Applications Web
1. Présentation

Les applications Web se comportent de la même manière que les applications natives,
mais sont accessibles via un navigateur Web sur votre appareil mobile. Ce ne sont pas des
applications autonomes dans le sens où vous devez télécharger et installer du code sur votre
appareil. Ce sont en fait des sites Web réactifs qui adaptent leur interface utilisateur à l’appareil
sur lequel l’utilisateur se trouve. En fait, lorsque vous rencontrez l’option « d’installer » une
application Web, elle marque souvent simplement l’URL du site Web sur votre appareil.

Un type d’application Web est l’application Web progressive (PWA), qui est
essentiellement une application native exécutée dans un navigateur.

2. Technologie utilisée

Les applications Web sont conçues à l’aide de HTML5, CSS, JavaScript, Ruby et des
langages de programmation similaires utilisés pour le travail Web.

3. Avantages

By TCHANQUE 6 ICLII
 Parce qu’il est basé sur le Web, il n’est pas nécessaire de le personnaliser en fonction
d’une plate-forme ou d’un système d’exploitation. Cela réduit les coûts de
développement.
 De plus, il n’y a rien à télécharger. Ils n’occuperont pas d’espace sur la mémoire de
votre appareil comme une application native, ce qui facilite la maintenance – il suffit de
pousser la mise à jour en direct sur le Web. Les utilisateurs n’ont pas besoin de
télécharger la mise à jour sur l’App Store.
 Le coût de développement de ces applications est faible.
 Disponibilité facile des développeurs.
 Entretien facile et moins cher.
 Les données ou l’interface utilisateur qu’ils contiennent peuvent être mises à jour
immédiatement car elles se trouvent sur les serveurs plutôt que sur l’appareil utilisateur.

4. Inconvénients

 Mais cela est également pertinent : les applications Web dépendent entièrement du
navigateur utilisé sur l’appareil. Il y aura des fonctionnalités disponibles dans un
navigateur et non disponibles dans un autre, offrant éventuellement aux utilisateurs des
expériences variées.

C. Applications hybrides

1. Présentation

Le terme hybride signifie « mélange ». Ainsi, une application hybride fait référence à
des applications natives et basées sur le Web.

Les applications hybrides sont une intégration d’applications natives et Web. Ces
applications utilisent à la fois des technologies Web et des API natives.

Ces applications peuvent utiliser la plupart des fonctionnalités de l’appareil, telles que
les applications natives. Semblables aux applications Web, les applications hybrides sont
constituées de technologies Web telles que HTML, CSS, Javascript, jquery, AJAX, JSON, etc.

By TCHANQUE 7 ICLII
Ceux-ci utilisent également des navigateurs Web pour afficher le contenu et les
interfaces utilisateur, mais ils utilisent les éléments natifs ainsi que les éléments Web pour le
développement.

Le code de ces applications doit juste être modifié pour le rendre compatible sur
plusieurs plates-formes.

2. Technologie utilisée

Les applications hybrides utilisent un mélange de technologies Web et d’API natives.


Ils sont développés en utilisant : Ionic, Objective C, Swift, HTML5 et autres.

3. Avantages

 Construire une application hybride est beaucoup plus rapide et plus économique qu’une
application native.
 En tant que telle, une application hybride peut être le produit viable minimum – un
moyen de prouver la viabilité de la création d’une application native.
 Ils se chargent également rapidement, sont idéaux pour une utilisation dans les pays où
les connexions Internet sont plus lentes et offrent aux utilisateurs une expérience
utilisateur cohérente. Enfin, comme ils utilisent une base de code unique, il y a beaucoup
moins de code à maintenir.
 Facile à développer.
 Une base de code d’application est compatible avec plusieurs plates-formes.
 Faible entretien.
 Plus facile à développer, mettre à jour, tester et ajuster.

4. Inconvénients

 Les applications hybrides peuvent manquer de puissance et de vitesse, caractéristiques


des applications natives.

By TCHANQUE 8 ICLII
III. LANGAGE DE PROGRAMMATION POUR LE
DEVELOPPEMENT D’APPLICATIONS
MOBILES

Le choix du langage de programmation pour le développement d’applications mobiles


dépend souvent de la plateforme cible (iOS, Android, etc.) et des préférences de l’équipe de
développement. Voici quelques-uns des langages de programmation les plus couramment
utilisés pour le développement mobile sur les principales plateformes :

A. Pour le développement d’applications iOS


(iPhone et iPad) :

 Swift : C’est le langage de programmation principal recommandé par Apple pour le


développement d’applications iOS. Il est moderne, rapide, sûr et offre une syntaxe
concise.
 Objective-C : Bien que de moins en moins utilisé, Objective-C reste un langage
important pour le développement iOS. Il a été le langage standard avant l’introduction
de Swift.

B. Pour le développement d’applications


Android :

 Kotlin : Kotlin est devenu la langue de programmation préférée pour le développement


d’applications Android. Il est entièrement compatible avec Java, mais offre des
fonctionnalités modernes et une syntaxe plus concise.
 Java : Java était historiquement la principale langue pour le développement Android et
est toujours largement utilisé, bien que Kotlin soit devenu le choix prédominant.

C. Pour le développement multiplateforme :

By TCHANQUE 9 ICLII
 Flutter (Dart) : Flutter est un framework de développement mobile multiplateforme de
Google qui utilise le langage Dart. Il permet de créer des applications natives pour iOS,
Android et le web à partir d’un seul code source.
 React Native (JavaScript/TypeScript) : Développé par Facebook, React Native
permet de créer des applications mobiles multiplateformes en utilisant JavaScript ou
TypeScript. Il utilise React pour la création d’interfaces utilisateur.
 Xamarin (C#) : Xamarin, de Microsoft, permet de développer des applications mobiles
pour iOS et Android en utilisant le langage C# et la plateforme .NET.
 PhoneGap (JavaScript/HTML/CSS) : PhoneGap (ou Apache Cordova) permet de
créer des applications mobiles hybrides en utilisant des technologies web standard telles
que HTML, CSS et JavaScript.

Ces langages de programmation sont couramment utilisés pour le développement


mobile, mais il existe également d’autres options plus spécifiques à certaines technologies ou
frameworks. Le choix du langage dépendra de nombreux facteurs, notamment les exigences du
projet, les compétences de l’équipe, la plateforme cible et les performances souhaitées. Il est
important de choisir le langage qui convient le mieux à votre projet spécifique.

IV. OUTILS ET FRAMEWORK DE


DEVELOPPEMENT DES APPLICATIONS
MOBILES
Beaucoup de Framework et d’outils ont été développés pour répondre aux besoins
spécifiques des constructeurs d’appareils mobiles.

Elles offrent des mécanismes puissants, facile à mettre en œuvre et sécurisés pour le
développement efficace et rapide d’applications mobiles.

Cela est assuré tout en respectant le mieux les standards adoptés par les OS mobile.

La création d’une application mobile est une tâche complexe. En tant que développeur,
il faut trouver des moyens créatifs pour combiner toutes les fonctionnalités suivantes dans un
seul projet.

 Hautes performances : utile pour garder les utilisateurs connectés et augmenter la base
de données.

By TCHANQUE 10 ICLII
 Rentabilité : développer une application prend du temps, et le temps coûte cher. Un
projet bien fait aura toujours à l’esprit le coût de production et la portée du marché
potentiel.
 Évolutivité : le monde des applications mobiles est en constante évolution. De
nouvelles mises à jour des systèmes d’exploitation sortent chaque jour ce qui nécessite
que les applications à développer doivent êtres évolutifs.

De nouveaux frameworks ont été créés pour répondre à toutes ces considérations. Des
Framework multiplateformes ont connu un succès vue la possibilité de déployer leurs produits
sur plusieurs types de mobile comme le cas de Flutter, Ionique, et React native.

A. Flutter
1. Présentation

 Flutter est le plus récent des Framework multiplateformes. Il a été créé par Google en
2013.
 Son langage de programmation DART a été inventé par Google en 2011. Flutter est
présenté comme étant le successeur de JavaScript en mieux. Depuis sa 1ere version en
2018, Flutter connais une croissance d’utilisation de 279 %. Comme exemple
d’applications conçues avec Flutter, on peut citer Alibaba.
 Flutter est un kit de développement logiciel (SDK) d’application mobile créé par
Google. Il a été publié en 2017 et depuis lors, il a pris un essor considérable parmi les
organisations de développement de logiciels et les développeurs.
 Il utilise le langage de programmation Dart de Google, qui est calqué sur l’approche
conventionnelle orientée objet, qui offre non seulement une pléthore de fonctionnalités,
mais est facilement reconnaissable par les développeurs C++ ou Java.

2. Avantages de Flutter

By TCHANQUE 11 ICLII
 Simplicité : Flutter est facile à apprendre car il est basé sur Dart qui ressemble un peu
à Javascript. Il produit des applications compatibles avec les deux plateformes Android
et IOS à partir d’une base de code unique.
 Outils et fonctions avancés : Flutter permet de bénéficier de nombreux outils de
développement comme la fonction de rechargement à chaud intégrée qui permet de voir
instantanément les modifications apportées à l’application sans avoir à la recompiler.
 Utilisable pour autres plateformes non mobiles : en mai 2019, Google a annoncé une
nouvelle prise en charge de Flutter pour les applications de bureau, intégrées, mobiles
et Web à partir de la même base de code.

3. Inconvénients du flutter

 Des mises à jour fréquentes : cela rend plus difficile le suivi de toutes les mises à jour
du framework.
 Dart : ce langage est encore très nouveau. Il peut donc être difficile de trouver un
personnel suffisamment qualifié pour créer une application avec.
 Les applications Flutter sont volumineuses : en raison de leurs widgets intégrés, les
applications Flutter sont plus volumineuses que leurs homologues natives. Étant donné
que les utilisateurs ont une mémoire limitée sur leurs appareils, il faut toujours en tenir
compte de cette contrainte.

4. Applications développées avec Flutter

 Google Ads
 Reflectly
 Google Pay
 Stadia
 eBay Motors

B. Ionic

1. Présentation

By TCHANQUE 12 ICLII
 Ionic est disponible gratuitement, open-source et un Framework SDK frontal qui vous
permet de créer des applications mobiles pour les téléphones iOS, Windows et Android
en utilisant la même base de code. Il s’avère être un outil multiplateforme pour le
développement mobile.
 Ionic est un Framework gratuit créé en 2013 qui utilise les technologies web comme
HTML, CSS ou JavaScript.
 Il s’appuie sur AngularJS, Cordova et Node JS. IONIC est utilisé pour développer des
applications mobiles et aussi des applications web comme le cas de Flutter.
 Cet outil permet de créer des applications mobiles hybrides. Cette plate-forme vous
permet de créer des applications mobiles à l’aide d’applications Web et de langages tels
que HTML , CSS , Javascript , Angular et Typescript . . Ionic possède une collection de
composants qui fournit les fonctionnalités d’une plate-forme mobile. À l’exception de
la fonctionnalité, Ionic propose différents comportements. Ionic est livré avec des
performances efficaces avec un minimum de manipulation DOM.

2. Avantages d’Ionic

 Prise en charge de différentes technologies : à partir d’Ionic 4, il est possible d’utiliser


n’importe quel Framework frontend pour créer des applications mobiles.
 Facile : il se base sur HTML, CSS et JavaScript, donc l’utilisation de Ionic ne nécessite
pas beaucoup d’effort pour une personne qui a été déjà formé au développement Web.

3. Inconvénients d’Ionic

 Ne convient pas aux applications volumineuses : Malheureusement, pour les


applications volumineuses, l’utilisation de la composante WebView qui est très utile
pour Ionic peut entraîner un manque de performances important.

By TCHANQUE 13 ICLII
 Peut manquer de prise en charge des plugins natifs : certains plugins natifs ne sont
pas stables et peuvent entrer en conflit les uns avec les autres. De plus, ils peuvent être
complètement absents dans la liste des plugins d’une distribution.

C. React Native
1. Présentation

 React Native a été créé par Facebook. Sa première version date de 2015. Il est basé sur
React qui est une librairie JavaScript, langage habituellement utilisé pour le Web.
Facebook, Instagram, Skype ou Airbnb ont été réalisés en partie ou entièrement grâce à
cette technologie.
 React Native est un Framework d’application mobile de Facebook. Ce Framework
open-source peut être utilisé pour développer des applications Android, web, iOS et de
bureau.
 React Native est très populaire en tant que cadre basé sur JavaScript utilisé pour le
rendu natif des applications Android et iOS.
 Les développeurs peuvent utiliser React en conjonction avec les fonctionnalités des
plateformes natives.
 React Native est basé sur la bibliothèque JavaScript de Facebook, axée sur l’interface
utilisateur, et convient au développement de plateformes mobiles.
 Les développeurs peuvent utiliser la bibliothèque JavaScript pour écrire des applications
natives et partager du code entre les plates-formes. React Native facilite également un
meilleur développement simultané d’applications iOS et Android.

By TCHANQUE 14 ICLII
2. Avantages de React Native
 Apprentissage facile : comme il est basé sur JavaScript ou React, l’utilisation de ce
framework est simple. Il n’y a rien à apprendre de nouveau à part gérer les composants
personnalisés offerts par cet outil.
 Idéal pour la productivité : React Native est livré avec des fonctionnalités utiles telles
que le rechargement à chaud et les outils de développement Chrome pour le débogage
des applications.
 Performances : les performances des applications créées à l’aide de React Native sont
proches de celles d’un code Natif.
 Fort soutien de la communauté : Le framework React Native est soutenu par une large
communauté de développeurs, ce qui facilite la tâche des nouveaux développeurs qui
choisissent de l’utiliser. Le soutien communautaire facilite le développement
d’applications mobiles.

3. Inconvénients de React Native

 Peu de composants tiers : ce projet étant encore nouveau, il n’y a pas autant de
composants tiers que parfois, on est obligé de mettre en œuvre une solution
personnalisée à partir de zéro.

4. Applications développées avec React Native

 Facebook : Facebook a d’abord été un site web, et il a été utilisé comme une plateforme
de réseaux sociaux, mais au fur et à mesure que la technologie des ordinateurs a
progressé, ils ont développé une application. Non seulement il a émergé d’un type
d’ordinateur à un autre, mais il a également couvert le monde avec beaucoup de ses
caractéristiques étonnantes.
 Instagram : Instagram est une application qui n’a pas beaucoup de fonctionnalités
complexes et de choses qui se passent. Il permet à leurs développeurs de gérer très
facilement les choses sur toutes les plateformes.
 Bloomberg : Étant une plateforme qui fournit des informations commerciales à tous les
utilisateurs, elle a gagné de nombreux utilisateurs, mais cela a été très difficile pour les

By TCHANQUE 15 ICLII
développeurs. C’est parce que la gestion de deux applications différentes pour des
plateformes différentes a pris beaucoup de temps.
 Artsy : Il existait de nombreux marchés en ligne dans le monde, mais aucun n’était
spécifiquement destiné aux artistes. De plus, les places de marché déjà disponibles
n’étaient pas adaptées aux artistes. C’est parce que les œuvres d’art sont vendues
principalement par enchères, et Artsy a été la plate-forme qui a offert une opportunité à
plus de 100 000 artistes.
 Coinbase Pro : Cette application fournit l’interface commerciale aux utilisateurs, mais
il a été difficile pour l’équipe de conserver son interface phare et ses fonctionnalités
standard pour les différentes plateformes. C’est la raison pour laquelle ils sont passés
des applications natives aux applications React Native. Il a permis une gestion plus
facile et de nouvelles fonctionnalités qui n’existaient pas auparavant.
 Airbnb : C’était une autre excellente application en raison d’une idée novatrice. Il a
apporté de l’innovation sur le marché, de nombreuses personnes ont adoré leur
application et leur base d’utilisateurs s’est rapidement développée.
 Tesla : C’est l’un des plus grands noms en matière de voitures électriques. L’une des
raisons est que leurs voitures sont très efficaces sur le plan énergétique et qu’elles sont
très riches en fonctionnalités pour les utilisateurs.

D. Xamarin
1. Présentation

 Xamarin est un autre Framework cross Platform pour le développement d’applications


iOS et Android.
 Puisqu’il utilise le langage de programmation C#, il nécessite relativement peu de lignes
de codes. Le résultat est donc un processus de codage beaucoup plus rapide.

2. Avantages d’Xamarin
 Xamarin vous permet également un transfert facile de vos scripts entre les différentes
plateformes, à l’image de Windows et macOS.

By TCHANQUE 16 ICLII
 Puisque la création d’applications mobiles est très rapide de nos jours, vous pourriez
penser que cela insinue une perte en performances ou d’esthétique.
 Pourtant, les applications développées avec Xamarin présentent des performances
natives irréprochables.
 Par ailleurs, Microsoft a racheté Xamarin permettant une connexion beaucoup plus
simple à Microsoft Visual Studio, ce qui est un avantage pour les développeurs.
Xamarin est apprécié pour :
 Le fait qu’il cible toutes les plateformes,
 Intègre plus facilement les API,
 Permet un développement plus rapide et plus rentable,
 Son support UI et l’accès aux API natives.

3. Inconvénients de Xamarin

 Frais généraux de l’application


 Manque de soutien communautaire
 Impossible de partager des codes en dehors de Xamarin
 Certains codages manuels requis

E. PhoneGap (Apache Cordova)


1. Présentation

 PhoneGap, également connu sous le nom d’Apache Cordova, est un framework open
source qui permet aux développeurs de créer des applications mobiles hybrides en
utilisant des technologies web standard telles que HTML, CSS et JavaScript.
 Le principal objectif de PhoneGap est de permettre aux développeurs de créer des
applications mobiles multiplateformes en partageant une grande partie du code source

By TCHANQUE 17 ICLII
entre les différentes plateformes mobiles, notamment iOS, Android, Windows, et bien
d’autres.

2. caractéristiques et avantages clés de PhoneGap

 Utilisation de technologies web familières : Les développeurs peuvent utiliser leurs


compétences en HTML, CSS et JavaScript pour créer des applications mobiles, ce qui
simplifie la transition depuis le développement web traditionnel.
 Développement multiplateforme : Une grande partie du code source peut être partagée
entre les différentes plateformes mobiles, ce qui réduit le temps et les coûts de
développement.
 Accès aux API natives : PhoneGap fournit un ensemble d’API JavaScript qui
permettent aux applications d’accéder aux fonctionnalités natives du dispositif, telles
que la caméra, le GPS, les contacts, etc.
 Bibliothèque de plugins : Il existe une vaste bibliothèque de plugins Cordova
disponibles, permettant aux développeurs d’étendre les fonctionnalités de leurs
applications en ajoutant des fonctionnalités natives.
 Support de la communauté : PhoneGap étant open source, il bénéficie d’une
communauté active de développeurs et de contributeurs, ce qui signifie qu’il existe de
nombreuses ressources en ligne et des forums de support.
 Intégration avec d’autres frameworks : PhoneGap peut être utilisé en combinaison
avec des frameworks JavaScript tels que Angular, React, ou Vue.js pour faciliter le
développement d’applications mobiles.
 Déploiement sur les app stores : Les applications PhoneGap peuvent être publiées sur
les app stores iOS App Store et Google Play Store, ce qui leur permet d’être largement
distribuées aux utilisateurs finaux.

3. Limites de PhoneGap

 Cependant, il est important de noter que le développement d’applications hybrides avec


PhoneGap peut présenter quelques limitations par rapport aux applications natives en
termes de performances et d’accès complet aux fonctionnalités du dispositif.

By TCHANQUE 18 ICLII
 Le choix entre le développement hybride et natif dépendra des besoins spécifiques de
votre projet et des compromis que vous êtes prêt à faire en termes de performances et
d’expérience utilisateur.

V. LES ELEMENTS CLES DU DEVELOPPEMENT


MOBILE

1. La conception : La première étape dans le développement mobile consiste


à concevoir l’application, en définissant ses fonctionnalités, son apparence
et son expérience utilisateur. Pour cela, il est essentiel de tenir compte des
spécificités des appareils mobiles, telles que la taille de l’écran et les
interactions tactiles.
2. Le 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 adaptes aux plateformes cibles, tels que java
ou kotlin pour Android et Swift ou objective-C pour iOS.
3. Les tests : les applications mobiles subissent des tests approfondis pour
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é.
4. Publication : une fois que l’application est prête, elle est soumise aux app
stores correspondants, tel 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.

By TCHANQUE 19 ICLII
5. La maintenance : le développement mobile ne se termine pas avec la
publication de l’application. Les développeurs doivent continuer à mettre a
jour et entretenir l’application pour corriger les bogues, ajouter de nouvelle
fonctionnalités et s’adapter aux évolutions du systèmes d’exploitation et
des appareils.
6. 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 autres
méthodes de promotion.

VI. LES CONTRAINTES LIEES AU


DEVELOPPEMENT MOBILE

Lorsque que l’on cherche à concevoir une application mobile, le positionnement de


l’application ou le choix de la technologie ne sont pas les seules contraintes.

En développant des applications pour mobiles, il faut prendre en considération certaines


contraintes des appareils cibles

Le développement sur smartphones doit prendre en compte les spécificités de ce type


de terminaux comme la gestion des ressources matérielles et réseaux limitées, la fragmentation
importante des systèmes et des marketplaces, et l’hétérogénéité des environnements de
développement.

 Mémoire limitée / processeur lent : Bien que les nouveaux modèles haut de gamme
arrivent à 3Go de RAM (même 4 prévu pour 2015), la plupart des smartphones souffrent
d’un temps de chargement long
 Capacité de stockage : Quelques smartphones très haut de gamme (iPhone6) ont une
mémoire de 128Go. Mais plusieurs modèles d’entrée de gamme n’ont que 4Go (majorité
de 1660)
 Automobile : Éviter les applications gourmandes en énergie (caméra vidéo par
exemple, nécessaire pour la réalité augmentée)

By TCHANQUE 20 ICLII
 Taille d’écran réduite et variable : Réduction du contexte de l’application par rapport
à un écran. Tailles varient d’un appareil à un autre (smartphone, tablette,
phablette,…).Exploiter tout l’espace fourni de manière optimale
 Problèmes de connectivité : Problèmes de connectivité dus à la mobilité, Penser à un
mode offline pour vos applications/sites
 Téléchargement plus lent : Connexions internet plus lentes, latence réseau et mémoire
et processeur limités, Vitesse de téléchargement assez faible par rapport aux ordinateurs

By TCHANQUE 21 ICLII
CHAPITRE II :
ANDROID : UN EXEMPLE
D’OS
INTRODUCTION
Android est un système libre et open source construit sur le noyau Linux, géré par
Google, qui a été acheté auprès des principaux développeurs du système en 2005, alors que
l’annonce officielle a été faite le 5 novembre 2007 Android a été fondée à Palo Alto, en
Californie, aux États-Unis par plusieurs professionnels de la technologie: Andy Rubin, Rich
Meiner, Nick Sears et Chris White.

 Ce système a été le premier système à être mis en place pour les téléphones mobiles
fonctionnant sous Linux.
 Android est le système d’exploitation mobile crée par Google. Il équipe la majorité des
téléphones portables du moment (smartphones).
 Android c’était le premier système open-source, et n’importe qui peut facilement le
développer.
 Android est un logiciel de type système d’exploitation mobile comme « Windows » est
un système d’exploitation sur PC. Il fait tourner votre mobile. Il existe d’autres systèmes
d’exploitation mobiles concurrents comme iOS Apple, BlackBerry OS, Bada, Windows
mobile…

Android sera potentiellement embarqué dans une multitude d’appareils du quotidien


tels que des télévisions, des voitures, des appareils photos, des consoles de jeux, les
réfrigérateurs, votre maison… les perspectives sont infinies… tout dépend des choix des
dirigeants et des comportements d’achat des consommateurs

Au début, l’objectif d’Android était considéré comme un système d’exploitation


mobile. Cependant, avec l'avancement des bibliothèques de codes et sa popularité parmi les
développeurs du domaine divergent, Android devient un ensemble absolu de logiciels pour tous

By TCHANQUE 22 ICLII
les appareils comme les tablettes, les appareils portables, les décodeurs, les téléviseurs
intelligents, les ordinateurs portables, etc.

I. Caractéristiques d'Android
Android est un puissant système d'exploitation open source qui offre d'immenses
fonctionnalités et certaines d'entre elles sont répertoriées ci-dessous.

 Projet Android Open Source afin que nous puissions personnaliser le système
d'exploitation en fonction de nos besoins.
 Android prend en charge différents types de connectivité GSM, CDMA, Wi-Fi,
Bluetooth, etc. pour les conversations téléphoniques ou le transfert de données.
 Grâce à la technologie Wi-Fi, nous pouvons nous connecter à d'autres appareils tout en
jouant à des jeux ou en utilisant d'autres applications.
 Il contient plusieurs API pour prendre en charge les services de localisation tels que le
GPS.
 Nous pouvons gérer toutes les activités liées au stockage de données en utilisant le
gestionnaire de fichiers.

By TCHANQUE 23 ICLII
 Il contient une large gamme de supports multimédias tels que AVI, MKV, FLV,
MPEG4, etc. pour lire ou enregistrer une variété de fichiers audio/vidéo.
 Il prend également en charge différents formats d'image comme JPEG, PNG, GIF,
BMP, MP3, etc.
 Il prend en charge le contrôle matériel multimédia pour effectuer la lecture ou
l'enregistrement à l'aide d'une caméra et d'un microphone.
 Android dispose d'un navigateur Web open source intégré basé sur la mise en page
WebKit pour prendre en charge les interfaces utilisateur telles que HTML5 et CSS3.
 Android prend en charge le multitâche, ce qui signifie que nous pouvons exécuter
plusieurs applications à la fois et basculer entre elles.
 Il prend en charge la réalité virtuelle ou les graphiques 2D/3D.

II. Versions Android


Google a annoncé publiquement Android pour la première fois en novembre 2007, mais
il a été lancé le 23 SEPTEMBRE 2008 pour être exact. Le premier appareil à introduire Android
sur le marché a été le HTC Dream avec la version Android 1.0. Depuis lors, Google a publié de
nombreuses versions d'Android telles que Apple Pie, Banana Bread, Cupcake, Donut, Éclair,
Froyo, Gingerbread, Jellybeans, Kitkat, Lollipop, guimauve, Nougat, Oreo, etc. avec des
fonctionnalités supplémentaires et de nouvelles fonctionnalités.

Le tableau suivant montre les détails de la version d'Android publiée par Google de 2007
à ce jour.

Nom de Niveau
code Version API Date de sortie

– Android 1.0 1 23 septembre 2008

– Android 1.1 2 9 février 2009

Petit gâteau Android 1.5 3 30 avril 2009

Donut Android 1.6 4 15 septembre 2009

By TCHANQUE 24 ICLII
Nom de Niveau
code Version API Date de sortie

Android 2.0
Éclair 5-7 26 octobre 2009
– 2.1

Android 2.2
Froyo 8 20 mai 2010
– 2.2.3

Android 2.3
pain d'épice 9-10 6 décembre 2010
– 2.3.4

Rayon de Android 3.0.x


11 – 13 22 février 2011
miel – 3.2.x

Sandwich à Android 4.0


14 – 15 18 octobre 2011
la crème glacée – 4.0.4

Android 4.1
Dragée 16 – 18 9 juillet 2012
– 4.1.2

Android 4.4
Kitkat 19 9 juillet 2012
– 4.4.4

Android 5.0
Sucette 21 – 22 17 octobre 2014
– 5.1

Android 6.0
Guimauve 23 5 octobre 2015
– 6.0.1

Android 7.0
Nougat 24 – 25 22 août 2016
– 7.1

Oréo Android 8.0 26 21 août 2017

Tarte Android 9.0 27 6 août 2018

Android Q Android 10.0 29 3 septembre 2019

Android 11 Android 11.0 30 8 septembre 2020

By TCHANQUE 25 ICLII
Nom de Niveau
code Version API Date de sortie

Cône de Android 12.0


31-32 4 octobre 2021
neige – 12.1

tiramisu Android 13 33 15 août 2022

Android 14 A VENIR

A. Avantages du développement Android


 Android est un système d'exploitation open source et possède donc une vaste
communauté de support.
 La conception de l'application Android suit les directives de Google, ce qui permet aux
développeurs de produire plus facilement des applications utilisateur plus intuitives.
 La fragmentation donne plus de puissance aux applications Android. Cela signifie que
l'application peut exécuter deux activités sur un seul écran.
 La publication de l'application Android sur le Google Play Store est plus facile par
rapport à d'autres plates-formes.

B. Inconvénients du développement Android


 La fragmentation offre une approche très intuitive de l'expérience utilisateur, mais elle
présente certains inconvénients, dans lesquels l'équipe de développement a besoin de
temps pour s'adapter aux différentes tailles d'écran des smartphones mobiles désormais
disponibles sur le marché et pour invoquer les fonctionnalités particulières de
l'application.
 Les appareils Android peuvent varier considérablement. Le test de l’application
devient donc plus difficile.
 À mesure que le développement et les tests prennent plus de temps, le coût de
l'application peut augmenter, en fonction de la complexité et des fonctionnalités de
l'application.

By TCHANQUE 26 ICLII
III. ARCHITECTURE D'ANDROID
L'architecture Android contient différents nombres de composants pour répondre aux
besoins de tous les appareils Android. Le logiciel Android contient un noyau Linux open
source contenant un certain nombre de bibliothèques C/C++ exposées via des services de
structure d'application. Parmi tous les composants, le noyau Linux fournit les principales
fonctionnalités du système d'exploitation aux smartphones et la machine virtuelle Dalvik
(DVM) fournit une plate-forme pour exécuter une application Android. Les principaux
composants de l'architecture Android sont les suivants : -
 Applications
 Cadre d'application
 Exécution Android
 Bibliothèques de plateforme
 Noyau Linux
Représentation picturale de l'architecture Android avec plusieurs composants principaux et
leurs sous-composants

By TCHANQUE 27 ICLII
 Applications : Les applications constituent la couche supérieure de l’architecture
Android. Les applications préinstallées comme la maison, les contacts, l'appareil photo,
la galerie, etc. et les applications tierces téléchargées depuis le Play Store comme les
applications de chat, les jeux, etc. seront installées sur cette couche uniquement. Il
s'exécute dans le cadre d'exécution d'Android à l'aide des classes et des services fournis
par le framework d'application.
 Cadre d'application : Application Framework fournit plusieurs classes importantes
qui sont utilisées pour créer une application Android. Il fournit une abstraction
générique pour l'accès matériel et aide également à gérer l'interface utilisateur avec
les ressources de l'application. Généralement, il fournit les services à l'aide desquels
nous pouvons créer une classe particulière et rendre cette classe utile pour la création

By TCHANQUE 28 ICLII
d'applications. Il comprend différents types de gestionnaire d'activités et de services,
gestionnaire de notifications, système de visualisation, gestionnaire de packages, etc.
qui sont utiles pour le développement de notre application en fonction des prérequis.
 Temps d'exécution de l'application : L'environnement d'exécution Android est l'une des
parties les plus importantes d'Android. Il contient des composants tels que les bibliothèques
principales et la machine virtuelle Dalvik (DVM). Principalement, il fournit la base du cadre
d'application et alimente notre application à l'aide des bibliothèques principales. Comme Java
Virtual Machine (JVM), Dalvik Virtual Machine (DVM) est une machine virtuelle basée
sur des registres et spécialement conçue et optimisée pour Android pour garantir qu'un
appareil peut exécuter efficacement plusieurs instances. Cela dépend de la couche du noyau
Linux pour le threading et la gestion de la mémoire de bas niveau. Les bibliothèques principales
nous permettent d'implémenter des applications Android en utilisant les langages de
programmation standards JAVA ou Kotlin.
 Bibliothèques de plateforme : Les bibliothèques de plate-forme comprennent diverses
bibliothèques de base C/C++ et des bibliothèques basées sur Java telles que Media,
Graphics, Surface Manager, OpenGL, etc. pour fournir une prise en charge du
développement Android.
 La médiathèque prend en charge la lecture et l'enregistrement de formats
audio et vidéo.
 Gestionnaire de surface chargé de gérer l’accès au sous-système d’affichage.
 SGL et OpenGL, tous deux multilingues et multiplateformes, sont utilisés
pour l'infographie 2D et 3D.
 SQLite fournit une prise en charge des bases de données et FreeType fournit
une prise en charge des polices.
 Web-Kit Ce moteur de navigateur Web open source fournit toutes les
fonctionnalités nécessaires pour afficher le contenu Web et simplifier le
chargement des pages.
 SSL (Secure Sockets Layer) est une technologie de sécurité permettant
d'établir un lien crypté entre un serveur Web et un navigateur Web.
 Noyau Linux : Le noyau Linux est au cœur de l'architecture Android. Il gère tous les
pilotes disponibles tels que les pilotes d'affichage, les pilotes de caméra, les pilotes
Bluetooth, les pilotes audio, les pilotes de mémoire, etc. qui sont requis pendant
l'exécution. Le noyau Linux fournira une couche d'abstraction entre le matériel de
l'appareil et les autres composants de l'architecture Android. Il est responsable de la

By TCHANQUE 29 ICLII
gestion de la mémoire, de l'alimentation, des périphériques, etc. Les fonctionnalités
du noyau Linux sont :
 Sécurité : Le noyau Linux gère la sécurité entre l'application et le système.
 Gestion de la mémoire : il gère efficacement la gestion de la mémoire, offrant
ainsi la liberté de développer nos applications.
 Gestion des processus : il gère bien le processus, alloue des ressources aux
processus chaque fois qu'ils en ont besoin.
 Pile réseau : elle gère efficacement la communication réseau.
 Modèle de pilote : il garantit que l'application fonctionne correctement sur les
fabricants de périphériques et de matériel responsables de l'intégration de leurs
pilotes dans la version Linux.

IV. L’ENVIRONNEMENT DE
DEVELOPPEMENT ANDROID STUDIO
A. Présentation
Android Studio est l'environnement de développement intégré (IDE) officiel pour le
système d'exploitation Android. Il est basé sur le logiciel IntelliJ IDEA de JetBrains et conçu
spécifiquement pour le développement Android. Il est disponible en téléchargement sur les
systèmes d'exploitation Windows, macOS et Linux ou sous forme de service par abonnement
en 2020. Il remplace les outils de développement Android Eclipse (E-ADT) en tant qu'IDE
principal pour le développement d'applications Android natives.

 Avantage:
 Meilleur intégration du SDK dans Android Studio
 Puissance de l'IDE IntelliJ
 Meilleur gestion des dépendances avec gradle
 Désavantage:
 Lourdeur de l'IDE IntelliJ
 Moins d'outils standalone (gestion des émulateurs, du SDK)
 Obligation de s'habituer à un autre IDE
 Nouvelle architecture des répertoires (parfois compliquée)

B. Les prérequis d’un système pour installer Android Studio

By TCHANQUE 30 ICLII
La dernière version d’Android peut être téléchargée du site officiel «
https://developer.android.com/studio ». Afin de vérifier les prérequis que doit avoir la machine
du développeur, il existe une partie tout en bas de la page du site officiel d’Android qui montre
tous ce qui est nécessaire pour l’installation et l’utilisation de Android. La figure ci-dessous
montre ces prérequis.

C. Configuration d’Android Studio et création de projets


Une fois Android installé, on peut le lancer et démarrer la création d’un nouveau projet
comme montré par la figure.

By TCHANQUE 31 ICLII
Pour la configuration de l’application en cours de création sur Android studio, on peut
accéder à la configuration avancée comme montré par la figure.

Cette configuration avancée concerne en particulier le Software Development Kit


(SDK) et le Android Virtual Device (AVD).

Après la configuration des paramètres de l’environnement d’Android Studio pour le


projet encours de création, il nous propose de choisir un modèle (Template) pour préparer à
l’avance des outils spécifiques à la nature d’application qu’on veut créer. La figure ci-dessous,
montre la proposition des modèles disponibles.

By TCHANQUE 32 ICLII
Le reste de la configuration est lié à l’application à créer, son nom, le nom de son
package, l’endroit de sa sauvegarde sur le disque dure, le langage de programmation que ce soit
Java ou Kotlin, et à la fin la version minimum de l’OS Android supportée. La figure ci-dessous,
montre les champs à spécifier pour la configuration de l’application à créer.

By TCHANQUE 33 ICLII
Après avoir installé Android Studio, On peut utiliser le gestionnaire de SDK pour
télécharger et installer plusieurs versions du SDK Android. La disponibilité de plusieurs
versions du SDK permet d'écrire des programmes qui ciblent différents appareils. Par exemple,
on peut créer une version d'une application qui cible spécifiquement Android Pie, mais étant
donné que cette version d'Android est présente sur moins de 39.5 % des appareils, on peut
sélectionner la version Android Lollipop ou KitKat qui sont supportés par plus de 94% des
appareils fonctionnant avec Android.

D. Structure du dossier du projet Android

Après avoir terminé la configuration de l'architecture Android, nous pouvons


créer une application Android dans Android studio. Nous devons créer un nouveau
projet pour chaque exemple d'application et nous devons comprendre la structure des
dossiers. Cela ressemble à ceci :

By TCHANQUE 34 ICLII
Le projet Android contient différents types de modules d'application, de fichiers
de code source et de fichiers de ressources. Nous explorerons tous les dossiers et
fichiers de l’application Android.

i. Dossier manifestes
Le dossier Manifests contient AndroidManifest.xml pour créer notre application
Android. Ce fichier contient des informations sur notre application telles que la version
Android, les métadonnées, le package d'états pour le fichier Kotlin et d'autres composants de
l'application. Il agit comme intermédiaire entre le système d'exploitation Android et notre
application.
Voici la structure des dossiers manifestes dans l’application Android.

<?xml version="1.0" encoding="utf-8"?>


<manifest xmlns:android="http:// schemas.android.com/apk/res/android"
package="com.geeksforgeeks.myapplication">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>

By TCHANQUE 35 ICLII
ii. Dossier Java
Le dossier Java contient tous les fichiers de code source Java et Kotlin , que
nous créons lors du développement de l'application, y compris d'autres fichiers de
test. Si nous créons un nouveau projet à l'aide de Kotlin, par défaut, le fichier de classe
MainActivity.kt sera créé automatiquement sous le nom du package «
com.geeksforgeeks.myfirstkotlinapp », comme indiqué ci-dessous.

MainActivity.kt

package com.geeksforgeeks.myapplication
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
Class MainActivity: AppCompatActivity() {
Override fun onCreate(savedInstanceState: Bundle?)
{
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
}
}

By TCHANQUE 36 ICLII
iii. Dossier de ressources (res)
Le dossier de ressources est le dossier le plus important car il contient toutes les
sources non codées telles que les images, les mises en page XML et les chaînes
d'interface utilisateur de notre application Android.

 Dossier res/drawable
Il contient les différents types d’images utilisées pour le développement de l’application. Nous
devons ajouter toutes les images dans un dossier drawable pour le développement de l'application.

 Dossier res/layout
Le dossier layout contient tous les fichiers de layout XML que nous avons utilisés pour définir
l'interface utilisateur de notre application. Il contient le fichier Activity_main.xml .

<?xml version="1.0" encoding="utf-8"?>


<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android="http:// schemas.android.com/apk/res/android"
xmlns:app="http:// schemas.android.com/apk/res-auto"
xmlns:tools="http:// schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello World!"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"

By TCHANQUE 37 ICLII
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>

 Dossier res/mipmap
Ce dossier contient des fichiers launcher.xml pour définir les icônes utilisées pour
s'afficher sur l'écran d'accueil. Il contient différents types d'icônes de densité en fonction de
la taille de l'appareil, telles que hdpi, mdpi, xhdpi.

 Dossier res/values
Le dossier Valeurs contient un certain nombre de fichiers XML tels que des chaînes,
des dimensions, des couleurs et des définitions de style. L'un des fichiers les plus importants
est le fichier strings.xml qui contient les ressources.

<resources>
<string name="app_name">NameOfTheApplication</string>
<string name="checked">Checked</string>
<string name="unchecked">Unchecked</string>
</resources>

iv. Dossier Gradle Scripts


Gradle signifie système de construction automatisé et contient un certain nombre de
fichiers utilisés pour définir une configuration de construction pouvant être appliquée à tous
les modules de notre application. Dans build.gradle (Projet), il existe des buildscripts et dans
build.gradle (Module), des plugins et des implémentations sont utilisés pour créer des
configurations qui peuvent être appliquées à tous nos modules d'application.

E. Structure des fichiers d'application Android


Il est très important de connaître les bases de la structure des fichiers d'Android Studio.
Certains fichiers/dossiers importants et leur signification sont expliqués pour une

By TCHANQUE 38 ICLII
compréhension aisée de l'environnement de travail du studio Android. Dans l'image ci-
dessous, plusieurs fichiers importants sont marqués :

Tous les fichiers marqués dans l'image ci-dessus sont expliqués brièvement ci-
dessous :

1. AndroidManifest.xml : chaque projet sous Android comprend un fichier manifeste,


AndroidManifest.xml , stocké dans le répertoire racine de sa hiérarchie de projet. Le
fichier manifeste est une partie importante de notre application car il définit la structure
et les métadonnées de notre application, ses composants et ses exigences. Ce fichier
comprend des nœuds pour chacune des activités, services, fournisseurs de contenu et
récepteur de diffusion qui créent l'application et, à l'aide de filtres d'intention et

By TCHANQUE 39 ICLII
d'autorisations, détermine la manière dont ils se coordonnent les uns avec les autres et
avec d'autres applications
2. Java : Le dossier Java contient les fichiers de code source Java ou kotlin. Ces fichiers
sont utilisés comme contrôleur pour l'interface utilisateur contrôlée (fichier de mise
en page). Il récupère les données du fichier de mise en page et, après traitement, cette
sortie de données sera affichée dans la mise en page de l'interface utilisateur. Cela
fonctionne sur le backend d’une application Android.
3. drawable : Un dossier Drawable contient un fichier de type ressource (quelque chose
qui peut être dessiné). Les Drawables peuvent prendre une variété de fichiers tels que
Bitmap (PNG, JPEG), Nine Patch, Vector (XML), Forme, Calques, États, Niveaux et
Échelle.
4. layout : une layout définit la structure visuelle d'une interface utilisateur, telle que
l'interface utilisateur d'une application Android. Ce dossier stocke les fichiers de mise
en page écrits en langage XML. Vous pouvez ajouter des objets de présentation ou
des widgets supplémentaires en tant qu'éléments enfants pour créer progressivement
une hiérarchie de vues qui définit votre fichier de présentation. Vous trouverez ci-
dessous un exemple de fichier de layout :
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<TextView android:id="@+id/text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello, I am a TextView" />
<Button android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello, I am a Button" />
</LinearLayout>

5. mipmap : le dossier Mipmap contient le fichier Image Asset qui peut être utilisé dans
l’application Android Studio. Vous pouvez générer les types d'icônes suivants, tels
que les icônes du lanceur, les icônes de la barre d'action et des onglets et les icônes de
notification.
6. colours.xml : le fichier colours.xml contient les ressources de couleurs de
l'application Android. Différentes valeurs de couleur sont identifiées par un nom

By TCHANQUE 40 ICLII
unique qui peut être utilisé dans le programme d'application Android. Vous trouverez
ci-dessous un exemple de fichier colours.xml :
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="colorPrimary">#3F51B5</color>
<color name="colorPrimaryDark">#303F9F</color>
<color name="colorAccent">#FF4081</color>
</resources>

7. strings.xml : Le fichier strings.xml contient les ressources de chaînes de l'application


Android. Les différentes valeurs de chaîne sont identifiées par un nom unique qui peut
être utilisé dans le programme d'application Android. Ce fichier stocke également un
tableau de chaînes en utilisant le langage XML. Vous trouverez ci-dessous un exemple
de fichier colours.xml :
<resources>
<string name="app_name">GeeksforGeeks</string>
</resources>

8. styles.xml : Le fichier styles.xml contient les ressources du style de thème dans


l'application Android. Ce fichier est écrit en langage XML. Vous trouverez ci-dessous
un exemple de fichier styles.xml :
<resources>
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
</style>
</resources>

9. build.gradle(Module: app) : Ceci définit les configurations de build spécifiques au


module. Ici, vous pouvez ajouter les dépendances dont vous avez besoin dans votre
application Android.
apply plugin: 'com.android.application'
android {
compileSdkVersion 26
defaultConfig {
applicationId "com.example.geeksforgeeks.geeksforgeeks"
minSdkVersion 16
targetSdkVersion 26

By TCHANQUE 41 ICLII
versionCode 1
versionName "1.0"
testInstrumentationRunner
"android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'),
'proguard-rules.pro'
}
}
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:26.1.0'
implementation 'com.android.support.constraint:constraint-layout:1.0.2'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:0.5'
androidTestImplementation 'com.android.support.test.espresso:espresso-
core:2.2.2'
}

V. COMPOSANTS D'UNE APPLICATION


ANDROID
Une application Android comprend certains éléments de base nécessaires. Ces
composants faiblement couplés sont liés par le fichier manifeste de l'application qui contient
la description de chaque composant et la manière dont ils interagissent. Le fichier manifeste
contient également les métadonnées de l'application, sa configuration matérielle, la
configuration requise de la plate-forme, les bibliothèques externes et les autorisations
requises. Il existe les principaux composants suivants d’une application Android :

1. ACTIVITES
Les activités sont considérées comme la couche de présentation de nos
applications. L'interface utilisateur de notre application est construite autour d'une ou
plusieurs extensions de la classe Activity. En utilisant des fragments et des vues, les activités
définissent la mise en page, affichent la sortie et répondent également aux actions de
l'utilisateur. Une activité est implémentée en tant que sous-classe de la classe Activity.

class MainActivity : AppCompatActivity() {

By TCHANQUE 42 ICLII
}

La classe d'activité est l'une des parties très importantes du composant


Android . Toute application, aussi petite soit-elle (en termes de code et d'évolutivité), possède
au moins une classe d'activité. Contrairement à la plupart des langages de programmation,
dans lesquels la méthode main() est le point d'entrée permettant à ce programme ou à cette
application de démarrer son exécution, le système d'exploitation Android initie le code dans
une instance d'activité en appelant des méthodes de rappel spécifiques qui correspondent à
des étapes spécifiques de son cycle de vie. . On peut donc dire qu'une activité est le point
d'entrée pour interagir avec l'utilisateur. Chaque activité contient la mise en page, qui possède
une interface utilisateur pour interagir avec l'utilisateur. Comme nous savons que chaque
activité contient une mise en page qui lui est associée, on peut donc dire que la classe d'activité
est la passerelle à travers laquelle un utilisateur peut interagir par programme avec l'interface
utilisateur. La mise en page d'une activité particulière est définie à l'aide
de setContentView() . setContentView() est une fonction qui prend View comme
paramètre. Le paramètre view contient essentiellement le fichier de mise en page pour cette
activité. Le code a été donné en langage de programmation Java et Kotlin pour Android.

import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle

class MainActivity : AppCompatActivity() {


override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
}
}

 Ajout d'autorisations à l'application


Pour tout service que le développeur souhaite utiliser dans l'application Android,
comme le service Internet, le service Bluetooth, Google Maps, le service de notification
d'application, etc., le développeur doit obtenir l'autorisation du système Android. Toutes ces
autorisations ou demandes doivent être déclarées dans le fichier manifeste. Ouvrez le
fichier AndroidManifest.xml , avec la procédure indiquée ci-dessus. Disons que l'utilisateur
doit ajouter une autorisation Internet, à laquelle l'application doit accéder. Ajoutez
l' autorisation Internet ci-dessous dans la balise manifeste.
<uses-permission android:name="android.permission.INTERNET" />

By TCHANQUE 43 ICLII
Disons qu'il faut ajouter une autorisation Bluetooth dans l'application, alors elle doit être
déclarée comme ceci :
<uses-permission android:name="android.permission.BLUETOOTH" />

2. LES SERVICES
Les services sont comme des travailleurs invisibles de notre application. Ces
composants s'exécutent au niveau du backend, mettant à jour vos sources de données et vos
activités, déclenchant des notifications et diffusant également des intentions. Ils effectuent
également certaines tâches lorsque les applications ne sont pas actives. Un service peut être
utilisé comme sous-classe de la classe Service :

class ServiceName : Service() {

Les services sous Android sont un composant spécial qui permet à une application de
s'exécuter en arrière-plan afin d'effectuer des tâches opérationnelles de longue
durée. L'objectif principal d'un service est de garantir que l'application reste active en
arrière-plan afin que l'utilisateur puisse utiliser plusieurs applications en même temps. Une
interface utilisateur n'est pas souhaitable pour les services Android car elle est conçue pour
exécuter des processus de longue durée sans aucune intervention de l'utilisateur. Un service
peut s'exécuter en continu en arrière-plan même si l'application est fermée ou si l'utilisateur
passe à une autre application. De plus, les composants d'application peuvent se lier au service
pour effectuer une communication inter-processus (IPC) . Il existe une différence majeure
entre les services Android et les threads, il ne faut pas confondre les deux. Thread est une
fonctionnalité fournie par le système d'exploitation pour permettre à l'utilisateur d'effectuer
des opérations en arrière-plan. Alors que le service est un composant Android qui effectue
une opération de longue durée dont l'utilisateur n'est peut-être pas au courant car il n'a pas
d'interface utilisateur.

By TCHANQUE 44 ICLII
 TYPES DE SERVICES ANDROID

 Services de premier plan :Les services qui informent l'utilisateur de ses opérations en
cours sont appelés services de premier plan. Les utilisateurs peuvent interagir avec le
service grâce aux notifications fournies sur la tâche en cours. Comme lors du
téléchargement d'un fichier, l'utilisateur peut suivre la progression du téléchargement et
peut également suspendre et reprendre le processus.
 Services d'arrière-plan : Les services d'arrière-plan ne nécessitent aucune intervention
de l'utilisateur. Ces services n'informent pas l'utilisateur des tâches en arrière-plan en
cours et les utilisateurs ne peuvent pas non plus y accéder. Les processus tels que la
synchronisation programmée des données ou le stockage des données relèvent de ce
service.
 Services liés : Ce type de service Android permet aux composants de l'application
comme l'activité de s'y lier. Les services liés effectuent leur tâche tant qu'un composant
d'application y est lié. Plusieurs composants sont autorisés à se lier à un service à la
fois. Afin de lier un composant d'application à un service, la méthode bindService() est
utilisée.

By TCHANQUE 45 ICLII
 Fondamentaux des services Android

Un service défini par l'utilisateur peut être créé via une classe normale qui étend
la classe Service. De plus, pour effectuer les opérations de service sur les applications,
certaines méthodes de rappel doivent être remplacées. Voici quelques-unes des méthodes
importantes des services Android :

Méthodes Description

Le service Android appelle cette méthode lorsqu'un composant (ex


: activité)
demande de démarrer un service en utilisant startService(). Une
onStartCommand() fois le service démarré,
il peut être arrêté explicitement à l'aide des méthodes stopService()
ou stopSelf().

Cette méthode est obligatoire à implémenter dans le service


Android et est invoquée
chaque fois qu'un composant d'application appelle la méthode
bindService() afin de

onBind() se lier à un service. Une interface utilisateur est également fournie


pour communiquer
avec le service efficacement en renvoyant un objet IBinder.
Si la liaison du service n'est pas requise, la méthode doit renvoyer
null.

Le système Android appelle cette méthode lorsque tous les clients


onUnbind()
être déconnecté d’une interface de service particulière.

Une fois que tous les clients sont déconnectés de l'interface


particulière du service et
surRebind()
il est nécessaire de connecter le service à de nouveaux clients, le
système appelle cette méthode.

By TCHANQUE 46 ICLII
Méthodes Description

Chaque fois qu'un service est créé à l'aide de onStartCommand()


ou de onBind(),

onCreate() le système Android appelle cette méthode. Cette méthode est


nécessaire pour effectuer
une configuration unique.

Lorsqu'un service n'est plus utilisé, le système invoque cette


méthode
juste avant que le service ne soit détruit lors d'un dernier appel de
nettoyage. Les services doivent
onDestroy()
implémentez cette méthode afin de nettoyer les ressources comme
les auditeurs enregistrés,
fils, récepteurs, etc.

3. FOURNISSEURS DE CONTENU

Il est utilisé pour gérer et conserver les données de l'application et interagit également
généralement avec la base de données SQL. Ils sont également responsables du partage des
données au-delà des limites de l'application. Les fournisseurs de contenu d'une application
particulière peuvent être configurés pour autoriser l'accès à partir d'autres applications, et les
fournisseurs de contenu exposés par d'autres applications peuvent également être configurés.

Un fournisseur de contenu doit être une sous-classe de la classe ContentProvider.

class contentProviderName : ContentProvider() {

override fun onCreate(): Boolean {}

Sous Android , les fournisseurs de contenu sont un composant très important qui sert
de base de données relationnelle pour stocker les données des applications. Le rôle du
fournisseur de contenu dans le système Android est comme un référentiel central dans lequel

By TCHANQUE 47 ICLII
les données des applications sont stockées, et il permet à d'autres applications d'accéder en
toute sécurité et de modifier ces données en fonction des besoins de l'utilisateur. Le système
Android permet au fournisseur de contenu de stocker les données de l'application de plusieurs
manières. Les utilisateurs peuvent réussir à stocker les données de l'application telles que les
images, l'audio, les vidéos et les informations de contact personnelles en les stockant dans la
base de données SQLite , dans des fichiers ou même sur un réseau . Afin de partager les
données, les fournisseurs de contenu disposent de certaines autorisations qui sont utilisées
pour accorder ou restreindre les droits à d'autres applications d'interférer avec les données.

 URI du contenu
L'URI de contenu (Uniform Resource Identifier) est le concept clé des fournisseurs
de contenu. Pour accéder aux données d'un fournisseur de contenu, l'URI est utilisé comme
chaîne de requête.
Structure d'un URI de contenu : content://authority/optionalPath/optionalID

 Détails des différentes parties de l'URI du contenu :


 content:// – Partie obligatoire de l’URI car elle indique que l’URI donné est un URI de
contenu.

By TCHANQUE 48 ICLII
 autorité – Signifie le nom du fournisseur de contenu comme les contacts, le navigateur,
etc. Cette partie doit être unique pour chaque fournisseur de contenu.
 optionnelPath – Spécifie le type de données fournies par le fournisseur de
contenu. C'est essentiel car cette partie aide les fournisseurs de contenu à prendre en
charge différents types de données qui ne sont pas liées les unes aux autres, comme les
fichiers audio et vidéo.
 optionnelID – Il s’agit d’une valeur numérique utilisée lorsqu’il est nécessaire
d’accéder à un enregistrement particulier.

 Opérations dans le fournisseur de contenu


Quatre opérations fondamentales sont possibles dans Content Provider, à
savoir Create , Read , Update et Delete . Ces opérations sont souvent appelées opérations
CRUD .
 Créer : opération permettant de créer des données dans un fournisseur de contenu.
 Lire : utilisé pour récupérer des données auprès d'un fournisseur de contenu.
 Mise à jour : Pour modifier les données existantes.
 Supprimer : pour supprimer les données existantes du stockage.
 Fonctionnement du fournisseur de contenu
Les composants d'interface utilisateur des applications Android telles
que Activity et Fragments utilisent un objet CursorLoader pour envoyer des requêtes de
requête à ContentResolver. L'objet ContentResolver envoie des requêtes (telles que créer,
lire, mettre à jour et supprimer) au ContentProvider en tant que client. Après avoir reçu une
demande, ContentProvider la traite et renvoie le résultat souhaité. Vous trouverez ci-dessous
un diagramme pour représenter ces processus sous forme picturale.

By TCHANQUE 49 ICLII
 Création d'un fournisseur de contenu
Voici les étapes essentielles à suivre pour créer un fournisseur de contenu :

 Créez une classe dans le même répertoire où réside ce fichier MainActivity et cette
classe doit étendre la classe de base ContentProvider.
 Pour accéder au contenu, définissez une adresse URI de fournisseur de contenu.
 Créez une base de données pour stocker les données de l'application.
 Implémentez les six méthodes abstraites de la classe ContentProvider.
 Enregistrez le fournisseur de contenu dans le fichier AndroidManifest.xml à l'aide
de la balise <provider> .
Voici les six méthodes abstraites et leur description qu'il est essentiel de remplacer
dans le cadre de la classe ContenProvider :

Méthode
abstraite Description

Une méthode qui accepte les arguments et récupère les


données du
requête()
tableau souhaité. Les données sont retirées en tant
qu'objet curseur.

By TCHANQUE 50 ICLII
Méthode
abstraite Description

Pour insérer une nouvelle ligne dans la base de données

insérer() du fournisseur de contenu.

Il renvoie l'URI du contenu de la ligne insérée.

Cette méthode permet de mettre à jour les champs d'une

mise à jour() ligne existante.

Il renvoie le nombre de lignes mises à jour.

Cette méthode est utilisée pour supprimer les lignes

supprimer() existantes.

Il renvoie le nombre de lignes supprimées.

Cette méthode renvoie l'extension de messagerie Internet

getType() polyvalente (MIME)

type de données à l’URI de contenu donné.

Lors de la création du fournisseur de contenu, le système


Android appelle
onCréer()
cette méthode immédiatement pour initialiser le
fournisseur.

4. RECEPTEURS DE DIFFUSION (BROADCAST


RECEIVERS)

By TCHANQUE 51 ICLII
Ils sont connus pour être des auditeurs d'intention car ils permettent à votre application
d'écouter les intentions qui satisfont aux critères de correspondance spécifiés par nos
soins. Les récepteurs de diffusion font réagir notre application à toute intention reçue, ce qui
les rend parfaits pour créer des applications basées sur des événements.

La diffusion dans Android correspond aux événements à l'échelle du système qui


peuvent se produire lorsque l'appareil démarre, lorsqu'un message est reçu sur l'appareil ou
lorsqu'un appel entrant est reçu, ou lorsqu'un appareil passe en mode avion, etc. Les récepteurs
de diffusion sont utilisés pour répondre à ces événements à l’échelle du système. Les
récepteurs de diffusion nous permettent de nous inscrire aux événements du système et des
applications, et lorsque cet événement se produit, les récepteurs d'enregistrement sont
avertis. Il existe principalement deux types de récepteurs de diffusion :

 Récepteurs de diffusion statique : ces types de récepteurs sont déclarés dans le fichier
manifeste et fonctionnent même si l'application est fermée.
 Récepteurs de diffusion dynamique : ces types de récepteurs ne fonctionnent que si
l'application est active ou réduite.
Depuis le niveau API 26, la majeure partie de la diffusion ne peut être captée que par
le récepteur dynamique, nous avons donc implémenté des récepteurs dynamiques dans notre
exemple de projet. Certains champs statiques définis dans la classe Intent peuvent être utilisés
pour diffuser différents événements. Nous avons pris le changement de mode avion comme
événement de diffusion, mais il existe de nombreux événements pour lesquels le registre de
diffusion peut être utilisé. Voici quelques-unes des intentions importantes générées à l'échelle
du système :

Description de
l'événement
Intention

Indique un état de batterie


android.intent.action.BATTERY_LOW :
faible sur l'appareil.

By TCHANQUE 52 ICLII
Description de
l'événement
Intention

Ceci est diffusé une fois


android.intent.action.BOOT_COMPLETED que le démarrage du
système est terminé.

Pour effectuer un appel à


android.intent.action.CALL une personne spécifiée par
les données

Indique que la date a


android.intent.action.DATE_CHANGED
changé

Indique que l'appareil a été


android.intent.action.REBOOT
redémarré

Le réseau mobile ou la
android.net.conn.CONNECTIVITY_CHANGE connexion wifi est modifié
(ou réinitialisé)

Cela indique que le mode


android.intent.ACTION_AIRPLANE_MODE_CHANGED avion a été activé ou
désactivé.

Les deux principales choses que nous devons faire pour utiliser le récepteur de diffusion dans
notre application sont :

 Création du récepteur de diffusion :


 Enregistrement d'un BroadcastReceiver :

By TCHANQUE 53 ICLII
5. LES INTENTIONS (INTENTS)
Il s’agit d’un puissant framework de transmission de messages inter-applications. Ils
sont largement utilisés sur Android. Les intentions peuvent être utilisées pour démarrer et
arrêter des activités et des services, pour diffuser des messages à l'échelle du système ou vers
une activité, un service ou un récepteur de diffusion explicite ou pour demander qu'une action
soit effectuée sur un élément de données particulier.

 QU’EST-CE QUE L’INTENTION DANS ANDROID ?


Sous Android, il est assez courant que les utilisateurs soient témoins d'un passage
d'une application à une autre dans le cadre de l'ensemble du processus, par exemple, en
recherchant un emplacement sur le navigateur et en étant témoins d'un saut direct vers Google
Maps ou en recevant des liens de paiement dans Messages. Application (SMS) et en cliquant
sur PayPal ou GPay (Google Pay). Ce processus consistant à amener les utilisateurs d'une
application à une autre est réalisé en transmettant l' intent au système. Les intents , en
général, sont utilisées pour naviguer entre diverses activités au sein de la même application,
mais notez qu'elles ne se limitent pas à une seule application, c'est-à-dire qu'elles peuvent
également être utilisées pour passer d'une application à une autre.
Les intentions peuvent être implicites, par exemple, appelant des actions prévues, et
explicites également, comme l'ouverture d'une autre activité après certaines opérations
comme onClick ou autre. Vous trouverez ci-dessous quelques applications des intentions :
1. Envoi de l'utilisateur vers une autre application
2. Obtenir un résultat d'une activité
3. Autoriser d'autres applications à démarrer votre activité
Quelques méthodes d'intention importantes et leur description

Méthodes Description

Il s’agit de lancer une nouvelle activité ou de


Contexte.startActivity()
transformer une activité existante en action.

By TCHANQUE 54 ICLII
Méthodes Description

Il s'agit de démarrer un nouveau service ou de


Contexte.startService()
fournir des instructions pour un service existant.

Il s’agit de transmettre le message aux


Contexte.sendBroadcast()
récepteurs de diffusion.

 LIENS PROFONDS
Deep Link est une URL qui redirige l'appareil vers l'API de cette application
manquante , puis le service est exécuté sur le système pour vérifier si une version de cette
application existe sur l'appareil. Pour le moment, supposons que l'application n'est pas
disponible sur l'appareil et qu'aucune version précédente n'a jamais existé. Ce service appelle
ensuite le Play Store depuis l'appareil et l'application apparaît, juste une question de
téléchargement.
Sans s'écarter du sujet, il existe déjà quelques exemples qui existent déjà dans Android
Studio pour la redirection vers d'autres applications, par exemple, la composition de numéros,
l'envoi de SMS, les paramètres d'ouverture, etc. Les exemples quotidiens incluent la
redirection vers YouTube, Maps, WhatsApp, Facebook, etc. La communauté Android, en
particulier la communauté Kotlin, est à son apogée chaque jour imminent. Kotlin a connu une
énorme croissance soudaine au cours des dernières années et pourrait être l'un des outils
essentiels à l'avenir pour remplacer Java et peut-être également Julia.

 TYPES D'INTENTIONS ANDROID


Il existe deux types d'intentions dans Android
1. Implicite
2. Explicite
 Intention implicite
L'intention implicite ne spécifie pas le composant. Dans un tel cas, l'intention fournit
des informations sur les composants disponibles fournis par le système qui doit être
invoqué. Par exemple, vous pouvez écrire le code suivant pour afficher la page Web.
Syntaxe:

By TCHANQUE 55 ICLII
Intent intent=new Intent(Intent.ACTION_VIEW);

intent.setData(Uri.parse("https://www.geeksforgeeks.org/"));

startActivity (intention);

Par exemple : dans les images ci-dessous, aucun composant n'est spécifié, à la place,
une action est effectuée, c'est-à-dire qu'une page Web va être ouverte. Pendant que vous tapez
le nom de la page Web souhaitée et cliquez sur le bouton « CLIQUER ». Votre page Web est
ouverte.

 Intention explicite
L'intention explicite spécifie le composant. Dans un tel cas, l’intention fournit la
classe externe à appeler.
Syntaxe:
Intention i = new Intent(getApplicationContext(), ActivityTwo.class);

startActivity(i);

Par exemple : dans l'exemple ci-dessous, il existe deux activités (FirstActivity et


SecondActivity). Lorsque vous cliquez sur le bouton « ALLER À UNE AUTRE ACTIVITÉ
» dans la première activité, vous passez à la seconde activité. Lorsque vous cliquez sur le
bouton « ALLER À L'ACTIVITÉ À DOMICILE » dans la deuxième activité, vous passez à
la première activité. Cela se fait via une intention explicite.

By TCHANQUE 56 ICLII
6. WIDGETS
Ce sont les petits composants visuels de l’application que vous pouvez retrouver sur
l’écran d’accueil des appareils. Il s'agit d'une variante spéciale des récepteurs de diffusion qui
nous permettent de créer des composants d'application dynamiques et interactifs que les
utilisateurs peuvent intégrer sur leur écran d'accueil.

7. NOTIFICATIONS
Les notifications sont des alertes d'application utilisées pour attirer l'attention de
l'utilisateur sur un événement d'application particulier sans détourner le focus ni interrompre
l'activité en cours de l'utilisateur. Ils sont généralement utilisés pour attirer l'attention de
l'utilisateur lorsque l'application n'est pas visible ou active, en particulier depuis un service
ou un récepteur de diffusion. Exemples : popups d'e-mail, popups Messenger, etc.

La notification est une sorte de message, d'alerte ou d'état d'une application


(probablement exécutée en arrière-plan) visible ou disponible dans les éléments de l'interface
utilisateur d'Android. Cette application peut s'exécuter en arrière-plan mais ne pas être utilisée
par l'utilisateur. Le but d'une notification est d'informer l'utilisateur d'un processus lancé dans
l'application soit par l'utilisateur, soit par le système. Cet article pourrait aider quelqu'un qui
s'efforce de créer une notification à des fins de développement.

By TCHANQUE 57 ICLII
Les notifications peuvent être de différents formats et conceptions selon le
développeur. En général, il faut avoir été témoin de ces quatre types de notifications :

1. Notification de la barre d'état (apparaît dans la même présentation que l'heure actuelle, le
pourcentage de batterie)
2. Tiroir de notification Notification (apparaît dans le menu déroulant)
3. Notification Heads-Up (apparaît sur l'écran de superposition, ex : notification Whatsapp,
messages OTP)
4. Notification d'écran de verrouillage (je suppose que vous le savez)

VI. Dispositions dans la conception de


l'interface utilisateur Android
Les gestionnaires de mise en page (ou simplement les mises en page) sont considérés
comme des extensions de la classe ViewGroup. Ils sont utilisés pour définir la position des
vues enfants dans l'interface utilisateur que nous construisons. Nous pouvons imbriquer les
mises en page et donc créer des interfaces utilisateur arbitrairement complexes en utilisant
une combinaison de mises en page.

Il existe un certain nombre de classes de mise en page dans le SDK Android. Ils
peuvent être utilisés, modifiés ou créer les vôtres pour créer l'interface utilisateur de vos vues,
fragments et activités. Vous pouvez afficher votre contenu efficacement en utilisant la bonne
combinaison de mises en page.

Les classes de mise en page les plus couramment utilisées dans le SDK Android sont :

By TCHANQUE 58 ICLII
 FrameLayout - C'est le plus simple des gestionnaires de mise en page qui épingle chaque
vue enfant dans son cadre. Par défaut, la position est le coin supérieur gauche, bien que
l'attribut gravité puisse être utilisé pour modifier ses emplacements. Vous pouvez ajouter
plusieurs piles d'enfants, chaque nouvel enfant au-dessus de celui précédent, chaque
nouvelle vue obscurcissant potentiellement les précédentes

 LinearLayout- Un LinearLayout aligne chacune des vues enfants sur une ligne
verticale ou horizontale. Une disposition verticale comporte une colonne de vues,
tandis qu'une disposition horizontale comporte une rangée de vues. Il prend en charge
un attribut de poids pour chaque vue enfant qui peut contrôler la taille relative de
chaque vue enfant dans l'espace disponible.

 RelativeLayout- Il est flexible que les autres mises en page natives car il nous permet
de définir la position de chaque vue enfant par rapport aux autres vues et les
dimensions de l'écran.

By TCHANQUE 59 ICLII
 GridLayout - Il a été introduit dans Android 4.0 (API niveau 14), le Grid Layout utilisait
une grille rectangulaire de lignes infiniment fines pour disposer les vues dans une série de
lignes et de colonnes. La disposition en grille est incroyablement flexible et peut être
utilisée pour simplifier considérablement les mises en page et réduire ou éliminer
l'imbrication complexe souvent nécessaire pour construire des interfaces utilisateur à
l'aide des mises en page décrites précédemment.

Chacune de ces dispositions est conçue pour s'adapter à la taille de l'écran du dispositif
hôte en évitant l'utilisation de coordonnées absolues des positions ou de valeurs de pixels
prédéterminées. Cela rend l’application adaptée à un ensemble diversifié d’appareils Android.

A. Dispositions de l'interface utilisateur Android

La mise en page Android est utilisée pour définir l'interface utilisateur qui contient
les commandes d'interface utilisateur ou les widgets qui apparaîtront sur l'écran d'une
application Android ou d'un écran d'activité. Généralement, chaque application est une
combinaison de View et ViewGroup. On le sait, une application android contient un grand
nombre d’activités et on peut dire que chaque activité représente une page de
l’application. Ainsi, chaque activité contient plusieurs composants d’interface utilisateur
et ces composants sont les instances de View et ViewGroup. Tous les éléments d'une mise
en page sont construits à l'aide d'une hiérarchie d' objets View et ViewGroup .

 View :Une View est définie comme l'interface utilisateur utilisée pour créer des
composants d'interface utilisateur interactifs tels
que TextView , ImageView , EditText , RadioButton , etc., et est responsable de la
gestion et du dessin des événements. Ils sont généralement appelés widgets.
 ViewGroup :Un ViewGroup agit comme une classe de base pour les mises en page
et les paramètres de mise en page qui contiennent d'autres vues ou ViewGroups et
pour définir les propriétés de mise en page. Ce sont généralement appelés mises en
page.

By TCHANQUE 60 ICLII
B. Types de mise en page Android

 Disposition linéaire Android : LinearLayout est une sous-classe ViewGroup, utilisée


pour fournir des éléments View enfants un par un dans une direction particulière,
horizontalement ou verticalement, en fonction de la propriété d'orientation.
 Android Relative Layout : RelativeLayout est une sous-classe ViewGroup, utilisée
pour spécifier la position des éléments View enfants les uns par rapport aux autres,
comme (A à droite de B) ou par rapport au parent (fixé en haut du parent).
 Disposition des contraintes Android : ConstraintLayout est une sous-classe de
ViewGroup, utilisée pour spécifier la position des contraintes de mise en page pour
chaque vue enfant par rapport aux autres vues présentes. Un ConstraintLayout est
similaire à un RelativeLayout, mais il a plus de puissance.
 Android Frame Layout : FrameLayout est une sous-classe de ViewGroup, utilisée
pour spécifier la position des éléments View qu'elle contient les uns sur les autres afin
d'afficher une seule vue à l'intérieur du FrameLayout.
 Disposition de table Android : TableLayout est une sous-classe de ViewGroup, utilisée
pour afficher les éléments View enfants en lignes et en colonnes.
 Android Web View : WebView est un navigateur utilisé pour afficher les pages Web
dans la présentation de notre activité.
 Android ListView : ListView est un ViewGroup, utilisé pour afficher des listes
déroulantes d'éléments dans une seule colonne.
 Vue de grille Android : GridView est un ViewGroup utilisé pour afficher une liste
déroulante d'éléments dans une vue de grille de lignes et de colonnes.

By TCHANQUE 61 ICLII
C. Attribut différent des mises en page

Attributs XML Description

Utilisé pour spécifier l'identifiant de la


Android : id
vue.

Utilisé pour déclarer la largeur des


Android : layout_width éléments View et ViewGroup dans la mise en
page.

Utilisé pour déclarer la hauteur des


Android : layout_hauteur éléments View et ViewGroup dans la mise en
page.

Utilisé pour déclarer l'espace


Android : layout_marginLeft supplémentaire utilisé sur le côté gauche des
éléments View et ViewGroup.

Utilisé pour déclarer l'espace


Android : layout_marginRight supplémentaire utilisé sur le côté droit des
éléments View et ViewGroup.

Utilisé pour déclarer l'espace


Android : layout_marginHaut supplémentaire utilisé dans la partie supérieure
des éléments View et ViewGroup.

Utilisé pour déclarer l'espace


Android : layout_marginBottom supplémentaire utilisé dans la partie inférieure
des éléments View et ViewGroup.

By TCHANQUE 62 ICLII
Attributs XML Description

Utilisé pour définir la façon dont les


Android : layout_gravité vues enfants sont positionnées dans la mise en
page.

By TCHANQUE 63 ICLII

Vous aimerez peut-être aussi