MAM206
MAM206
40 heures
1. Manipuler les services Web sous
SOMMAIRE Android
• Découvrir le protocole HTTP sous Android
• Identifier les fondamentaux de sécurité d’une
application mobile
• Consommer des API sous Android
1 2 3 4 5
LE GUIDE DE LA VERSION PDF DES CONTENUS DU CONTENU DES RESSOURCES
SOUTIEN Une version PDF TÉLÉCHARGEABLE INTERACTIF EN LIGNES
Il contient le est mise en ligne S Vous disposez de Les ressources
résumé théorique sur l’espace Les fiches de contenus sont consultables
et le manuel des apprenant et résumés ou des interactifs sous en synchrone et
travaux pratiques formateur de la exercices sont forme d’exercices en asynchrone
plateforme téléchargeables et de cours à pour s’adapter au
WebForce Life sur WebForce Life utiliser sur rythme de
WebForce Life l’apprentissage
16 heures
CHAPITRE 1
Découvrir le protocole HTTP sous Android
04 heures
CHAPITRE 1
Découvrir le protocole HTTP sous Android
Web service
Un web service est un programme s'exécutant sur un serveur accessible depuis Internet et fournissant un service.
Par exemple :
● Google est un service web qui vous permet de rechercher des sites web.
● Une application météo communique avec un service web qui fournit la météo.
● Un réseau social est un service web qui permet de retrouver ses amis et de communiquer avec.
Cordova est un outil qui permet de créer des applications mobiles cross-platform.
PARTIE 1
source : [Link]
protocole REST
REST est un type d'architecture d'API qui signifie REpresentational State Transfer. Il a été inventé par l'Américain Roy Fielding dans les
années 2000, afin de mettre en place des méthodes simples pour accéder à des services web.
Ce type d'API permet à des logiciels qui sont incompatibles, qui ne parlent pas le même langage, de communiquer facilement. REST peut
être considéré comme un langage commun à ces différents logiciels.
Cordova est un outil qui permet de créer des applications mobiles cross-platform.
source : [Link]
PARTIE 1
● Un client est un programme qui échange les ● Un serveur est un ordinateur puissant
données avec un serveur à travers l’API. C'est permettant d’exécuter une API. C'est le
l'utilisateur de l'API. On parle plus couramment fournisseur du service, celui qui propose au
d'architecture client-serveur. client d'accéder à ses données ou services ;
Protocole SOAP
SOAP est un protocole de communication basé exclusivement sur XML pour permettre aux applications de s'échanger des
informations via HTTP. C'est l'acronyme de "Simple Object Access Protocol".
Par rapport à REST, SOAP est plus lent et requiert plus de débit Internet,
Remarques
• XML : Extensible Markup Language vous permet de définir et de stocker des données de
manière à pouvoir les partager. il prend en charge l'échange d'informations entre des
systèmes informatiques tels que les sites web, les bases de données et les applications
tierces. source : [Link]
• Utilisation de OAUTH
• Intégration de SSL
• Sécurisation avec TLS
• Protection avec Proguard
06 heures
CHAPITRE 2
Identifier les fondamentaux de sécurité
d’une application mobile
1. Utilisation de OAUTH
2. Intégration de SSL
3. Sécurisation avec TLS
4. Protection avec Proguard
02 - Identifier les fondamentaux de sécurité d’une
application mobile
Utilisation de OAUTH
Utilisation de OAUTH
Pour les développeurs, ils doivent utiliser un serveur fournissant un accès via
OAuth ou implémenter un serveur d’autorisation pour sécuriser une API
en utilisant ce protocole.
Cordova est un outil qui permet de créer des applications mobiles cross-platform.
PARTIE 1
Remarques
• OAuth 2.0 est une norme pour accéder aux ressources hébergées par d'autres
applications Web au nom d'un utilisateur. Elle a remplacé OAuth 1.0 en 2012 et
constitue désormais la norme industrielle de facto pour l'autorisation en ligne
source : [Link]
1. Utilisation de OAUTH
2. Intégration de SSL
3. Sécurisation avec TLS
4. Protection avec Proguard
02 - Identifier les fondamentaux de sécurité d’une
application mobile
Intégration de SSL
Certificat SSL
Un certificat SSL est un fichier de données qui lie une clé cryptographique aux informations d'une organisation.
Installé sur un serveur, le certificat active le cadenas et le protocole « https », afin d'assurer une connexion sécurisée entre le serveur web et
le navigateur.
● Authentification : garantit que le serveur auquel vous êtes connecté est le bon serveur.
● Intégrité des données : garantit que les données qui sont demandées ou soumises sont bien
celles qui sont fournies.
Intégration de SSL
Afin d'ajouter les certificats SSL sur Android, il faut créer une méthode qui génère un OkHttpClient.
1. Utilisation de OAUTH
2. Intégration de SSL
3. Sécurisation avec TLS
4. Protection avec Proguard
02 - Identifier les fondamentaux de sécurité d’une
application mobile
Sécurisation avec TLS
utilisé pour sécuriser les connexions réseaux. C'est le successeur du protocole SSL.
source : [Link]
1. Utilisation de OAUTH
2. Intégration de SSL
3. Sécurisation avec TLS
4. Protection avec Proguard
02 - Identifier les fondamentaux de sécurité d’une
application mobile
Protection avec Proguard
Proguard
ProGuard est un outil de ligne de commande open source qui réduit, optimise et obscurcit le code Java. Il
est capable d'optimiser le bytecode ainsi que de détecter et de supprimer les instructions inutilisées.
• Manipulation de SOAP
• Manipulation de REST API
• Retrofit
• Présentation de Volley
06 heures
CHAPITRE 3
Consommer des API sous Android
1. Manipulation de SOAP
2. Manipulation de REST API
3. Retrofit
4. Présentation de Volley
03 - Consommer des API sous Android
Manipulation de SOAP
Manipulation de SOAP
● Code à utiliser pour manipuler un flux XML
Android fournit trois types d'analyseurs XML qui sont DOM,
SAX et XMLPullParser .
int event = [Link]();
Il est recommandé d’utiliser XMLPullParser car il est efficace
while (event != XmlPullParser.END_DOCUMENT) {
et facile. String name=[Link]();
switch (event){
La première étape consiste à identifier les champs des case XmlPullParser.START_TAG:
données XML qui vous intéressent. break;
Par exemple. Dans le XML ci-dessous, nous nous intéressons case XmlPullParser.END_TAG:
Cordova est un outil qui permet de créer des applications
uniquement à la température.
mobiles cross-platform.
if([Link]("temperature")){
temperature = [Link](null,"value");
<city id="2643743" name="London"> }
<temperature value="289.54" min="289.15" break;
max="290.15" unit="kelvin"/> }
event = [Link]();
PARTIE 1
</city>
1. Manipulation de SOAP
2. Manipulation de REST API
3. Retrofit
4. Présentation de Volley
03 - Consommer des API sous Android
Manipulation de REST API
REST API
● La méthode. Il s’agit de l’action que l’on souhaite faire : récupérer une ressource, la supprimer, etc…
○ GET : permet de récupérer des ressources, comme par exemple le temps actuel sur un service de météo ;
○ POST : permet de créer ou modifier une ressource, comme la création d'un nouvel utilisateur sur votre application ;
○ PUT : permet de modifier une ressource, comme le nom de l'utilisateur que vous venez de créer avec POST ;
Cordova est un outil qui permet de créer des applications mobiles cross-platform.
○ DELETE : Permet de supprimer une ressource, comme un commentaire dans un fil de discussion.
● L’URL. C’est l’adresse sur le service web que vous souhaitez atteindre. Un peu comme un identifiant unique afin que le web service
comprenne ce que vous voulez
PARTIE 1
● Les données. Lorsqu’on fait une requête pour enregistrer des données (par exemple un formulaire) il faut pouvoir envoyer ces
données au service web.
● Le code HTTP. Il s’agit d’un code numérique qui vous indique comment s’est déroulée la requête. Voici les plus courants :
PARTIE 1
1. Manipulation de SOAP
2. Manipulation de REST API
3. Retrofit
4. Présentation de Volley
03 - Consommer des API sous Android
Retrofit
Retrofit
Retrofit est un client REST de type sécurisé pour Android et Java qui vise à faciliter l'utilisation des services Web RESTful.
[Link]
Il existe huit annotations intégrées : HTTP, GET, POST, PUT, PATCH, DELETE, OPTIONS et HEAD.
Cordova est un outil qui permet de créer des applications mobiles cross-platform.
PARTIE 1
1. Manipulation de SOAP
2. Manipulation de REST API
3. Retrofit
4. Présentation de Volley
03 - Consommer des API sous Android
Présentation de Volley
Volley est une bibliothèque HTTP qui facilite la mise en réseau des applications Android.
[Link]
●
Planification automatique des requêtes réseau.
●
Plusieurs connexions réseau simultanées.
●
Mise en cache transparente des réponses disque et mémoire avec cohérence de cache HTTP standard .
●
Prise en charge de la priorisation des demandes.
●
API de demande d'annulation. Vous pouvez annuler une seule demande ou définir des blocs ou des étendues de
Cordova est unàoutil
demandes qui permet de créer des applications mobiles cross-platform.
annuler.
● Facilité de personnalisation, par exemple, pour les nouvelles tentatives et les interruptions.
● Un ordre solide qui facilite le remplissage correct de votre interface utilisateur avec des données extraites de manière
asynchrone du réseau.
● Outils de débogage et de traçage.
PARTIE 1
16 heures
Chapitre 1
Partager des données entre applications
• Utilisation du ContentProvider
• Protection contre les entrées malveillantes
08 heures
Chapitre 1
Partager des données entre applications
1. Utilisation du ContentProvider
2. Protection contre les entrées malveillantes
01 - Partager des données entre applications
Utilisation du ContentProvider
ContentProvider
La base de
PARTIE 2
données
source : [Link]
1. Utilisation du ContentProvider
2. Protection contre les entrées malveillantes
01 - Partager des données entre applications
Protection contre les entrées malveillantes
L'injection SQL exploite des applications vulnérables en insérant du code dans les instructions SQL pour accéder aux bases de données.
L'attaque peut exposer des données privées, corrompre le contenu d'une base de données et même compromettre l'infrastructure du
backend.
Si votre appli communique avec un serveur Web disposant d'un certificat émis par une autorité de certification (CA) bien connue, utilisez une
requête HTTPS.
PARTIE 2
Les objets WebView de votre application ne doivent pas autoriser les utilisateurs à accéder à des sites que vous ne contrôlez pas. Dans la
mesure du possible, utilisez une liste d'autorisation pour limiter le contenu chargé par les objets WebView de votre application.
Si votre application utilise de nouvelles CA ou des CA personnalisées, vous pouvez déclarer les paramètres de sécurité de votre réseau dans
un fichier de configuration.
• Utilisation de SqlLite
• Découverte de ROOM
• Utilisation des SharePreferences
• Manipulation des fichiers
08 heures
Chapitre 2
Manipuler les données sous Android
1. Utilisation de SqlLite
2. Découverte de ROOM
3. Utilisation des SharePreferences
4. Manipulation des fichiers
02 - Manipuler les données sous Android
Utilisation de SqlLite
SQLite
SQLite est un moteur de base de données relationnelle entièrement manipulable grâce au langage SQL. Contrairement
aux serveurs de base de données traditionnels comme MySQL, PostgreSQL ou encore Microsoft SQL Server, l'intégralité
de la base de données est stockée dans un fichier (et non sur un serveur distant).
PARTIE 2
source : [Link]
Utilisation de SQLite
● Insérer des données : openHelper : Cette classe permet de
différer facilement l'ouverture et la
final SQLiteDatabase database = [Link](); mise à niveau de la base de données.
final int id = [Link](TABLE_NAME, null, values);
final int count = [Link](TABLE_NAME, values, COLUMN_ID + " = ?", new String[]
{[Link]([Link]())}};
PARTIE 2
1. Utilisation de SqlLite
2. Découverte de ROOM
3. Utilisation des SharePreferences
4. Manipulation des fichiers
02 - Manipuler les données sous Android
Découverte de ROOM
ROOM
source : [Link]
1. Utilisation de SqlLite
2. Découverte de ROOM
3. Utilisation des SharedPreferences
4. Manipulation des fichiers
02 - Manipuler les données sous Android
Utilisation des SharedPreferences
SharedPreferences
L'API mise à disposition par Android pour sauvegarder des informations locales à l'application s'appelle SharedPreferences.
C'est une couche d'abstraction qui vous facilite la vie : elle récupère les données que vous lui passez, et les stocke dans un fichier XML.
L'API offre la possibilité d'utiliser différents fichiers pour stocker les informations. C’est très pratique dans une application importante avec
des données très variées.
● Ecriture :
[Link]("key", "value").commit();
● Lecture :
● Suppression :
PARTIE 2
[Link]("key").commit();
1. Utilisation de SqlLite
2. Découverte de ROOM
3. Utilisation des SharedPreferences
4. Manipulation des fichiers
02 - Manipuler les données sous Android
Manipulation des fichiers
Pour écrire du texte dans un fichier qui sera mémorisé dans l'espace de stockage externe ou interne du téléphone, selon le deux cas :
○ Externe
■ Le niveau de confidentialité :
● Public : Le fichier sera stocké sur l'espace de stockage externe en mode public. Il ne sera donc pas supprimé
quand l'utilisateur désinstallera son application.
● Privé : Le fichier sera stocké sur l'espace de stockage externe en mode privé. Il sera donc supprimé quand
l'utilisateur désinstallera son application.
○ Interne
■ Le fichier est stocké en cache ?
● Oui : Le fichier sera stocké sur l'espace de stockage interne dans le répertoire dédié au cache. Il pourra donc être
PARTIE 2
08 heures
Chapitre 1
Gérer les signatures et versions
04 heures
Chapitre 1
Gérer les signatures et versions
[Link]
storeFile file('[Link]')
storePassword 'password'
}
}
Vous pouvez donner accès à l'application via le web par exemple. Vous n'avez qu'à fournir le lien « URL » vers la page
web en question.
● Vous devez activer dans votre appareil l'option « installation à partir d'une source inconnue ».
● L’outil de CI/CD détecte le changement des codes poussés, ensuite il démarre l’exécution de la méthode
du déploiement :
◆ Signer l’application
◆ Générer l’APK release signé
◆ Upload au Store.
PARTIE 3
Dans le développement d'applications mobiles, les outils CI/CD les plus utilisés sont :
04 heures
Chapitre 2
Utiliser des plateformes d’intégration et
déploiements continus
Intégration continue
Le principe d'intégration continue consiste à dérouler le plan de tests après chaque modification du code source.
Les tests sont déroulés lorsque le développeur pousse les modifications vers le serveur de gestion de versions (par exemple Git). Ou
alors lorsqu’il tente de fusionner les modifications dans la branche principale du projet. Si un seul test échoue, la fusion n'est pas possible.
Cela permet d'éviter toute régression, et force le développeur à corriger son application.
PARTIE 3
source : [Link]
Utilisation de Gitlab CI
Pour utiliser GitLab, il faut créer un compte sur [Link]. A partir de là, on peut proposer des commits, commenter des projets et créer ses
propres repository. Ensuite, il y a les classiques commits, merge request, les branches, etc.
● Créer un projet vide pour stocker des fichiers, des roadmaps, du code, etc.
● Créer un projet via un template. En quelques clics, on crée un repository selon
le type de langage ou de plateformes et GitLab vous mâche le travail de configuration source : [Link]
● Importer un projet : par exemple migrer son code de GitHub à GitLab
● Exécuter une chaîne de CI/CD pour un repository extérieur.
Le développeur peut utiliser GitLab directement dans l’IDE, via une interface graphique (typiquement un client desktop) ou en CLI, ou
encore un mélange des trois.
PARTIE 3
Remarque
GIT : Système de contrôle de version pour:
• Mémoriser et retrouver différentes version d’un projet.
• Faciliter le travail collaboratif.
Le pipeline de CI/CD
Un pipeline de CI/CD est une série d'étapes où le code passe pour aller du système de développement aux utilisateurs, en passant par des
tests et des étapes intermédiaires.
source : [Link]
Fastlane
Fastlane est un outil open-source qui permet de faire du Continuous Delivery sous IOS et Android. Il permet d’automatiser un
certain nombre de tâches fastidieuses comme gérer les screenshots, les certificats, déployer votre app…
[Link]
- Deliver
- Pem
- Produce
- Snapshot
- Sigh
- Gym
- Frameit
- Cert source : [Link]
PARTIE 3
- Scan
Fastfile
Fastfile est un fichier ruby qui définit toutes vos lanes, on ajoute ce fichier dans le projet ensuite on le pousse, une fois l’outil CI/CD détecte sa
présence, il l'exécute.
default_platform(:android)
Une lane est un ensemble
platform :android do d’instructions que vous
desc "Runs all the tests" souhaitez faire exécuter par
lane :test do Fastlane.
gradle(task: "test")
end
Ruby est un langage de
desc "Submit a new Beta Build to Crashlytics Beta" programmation libre. Il est
lane :beta do interprété, orienté objet et
gradle(task: "clean assembleRelease")
crashlytics multi-paradigme.
Le langage a été
# sh "your_script.sh" standardisé au Japon en
# You can also use other beta testing services here
2011
end
PARTIE 3