SlideShare une entreprise Scribd logo
Université Constantine 2
Dr. CHAOUCHE A.-C.
Faculté des nouvelles technologies
ahmed.chaouche@univ-constantine2.dz
– Cours 13 –
Chapitre 9 : Connectivité et services Web
(Bonus)
Développement d’applications mobiles
2018/2019. Semestre 1
Université Constantine 2
Etudiants concernés
Faculté/Institut Département Niveau Spécialité
2018/2019. Semestre 1
Dr. CHAOUCHE A.-C.
Faculté des nouvelles technologies
ahmed.chaouche@univ-constantine2.dz
Développement d’applications mobiles
Licence 3 Technologies de l’information (TI)Nouvelles technologies IFA
Licence 3 Science de l’informatique (SCI)Nouvelles technologies IFA
– Cours 13 –
Chapitre 9 : Connectivité et services Web
(Bonus)
Université Constantine 2 3
Prérequis
Maîtrise de la programmation Android
Maîtrise des langages PHP et SQL
Objectifs du cours
Comprendre la programmation réseau et Web
Création d'un service Web connecté à une BD MySQL
Elaborer une communication avec un serveur Web sous Android
Résumé
© Dr. Chaouche A.-C.
Université Constantine 2 4
Architecture Clients-Serveur
© Dr. Chaouche A.-C.
@IP: 192.168.0.X
@Port: Y
Ali SaraMohammed
Université Constantine 2 5
Adressages IP
© Dr. Chaouche A.-C.
AliMohammed
Université Constantine 2 6
Ports
© Dr. Chaouche A.-C.
192.168.0.X
Ali
Université Constantine 2 7
La communication entre un appareil Android et un serveur, à travers :
Sockets
Bibliothèques Remote Procedural Call (RPC)
Services Web
Communication sous Android
© Dr. Chaouche A.-C.
Université Constantine 2 8
Comment ?
PHP récupère les données à partir d'une BD MySQL, qui seront par la suite
encodées au format JSON et envoyées au client Android
L'App Android récupère les données, les parse et les exploite dans l'App
Utilisation des services Web sous Android
© Dr. Chaouche A.-C.
App Android Serveur Web
(Apache)
Serveur MySQL
Université Constantine 2 9
Côté serveur
1. Préparer les projets
2. Lancer les serveurs Apache et MySQL (XAMPP)
3. Créer une BD via un client MySQL
4. Se connecter à la BD via un script PHP
5. Retourner des données au format JSON
Côté client
1. Préparer le projet Android
2. Vérifier l’accès à internet
3. Récupérer les données distantes sous Android
4. Parser les données JSON pour constituer les objets Java
5. Envoyer des données au serveur distant
Étapes de l'utilisation des services Web sous Android
© Dr. Chaouche A.-C.
Université Constantine 2 10
Projet Web en php
Dossier : "C:xampphtdocselearning_server"
Fichier php : getModules.php
Base de données MySQL
DB : elearning_db
Tables : module, week, et course
Étapes de l'utilisation des services Web sous Android
Serveur-1. Préparer les projets
© Dr. Chaouche A.-C.
Université Constantine 2 11
1. Installer Xampp v3.2.2
Choisir le chemin dans la racine : "C:xampp"
2. Lancer XAMPP Control Panel
Lancer le serveur Apache (web)
Lancer le serveur MySQL
Étapes de l'utilisation des services Web sous Android
Serveur-2. Lancer les serveurs Apache et MySQL sous Xampp
© Dr. Chaouche A.-C.
Université Constantine 2 12
1. Utiliser un client MySQL
Exemples : PhpMyAdmin, HeidiSQL
2. Créer une nouvelle session :
Host : "localhost"
Port : 3306
Utilisateur : "root"
Mot de passe : ""
3. Créer la BD : elearning_db
4. Créer les tables : module, week, et course
module : id(INT), accronym(VARCHAR), name(VARCHAR),
description(VARCHAR), credit(INT)
week : ...
Course : ...
Étapes de l'utilisation des services Web sous Android
Serveur-3. Créer une BD via un client MySQL
© Dr. Chaouche A.-C.
Université Constantine 2 13
Étapes de l'utilisation des services Web sous Android
Serveur-4. Se connecter à la BD via un script PHP
© Dr. Chaouche A.-C.
/elearning_server/getModules.php
<?php
$db_host="localhost"; $db_uid="root"; $db_pass=""; $db_name="elearning_db";
$db_con = mysqli_connect($db_host, $db_uid, $db_pass, $db_name);
$sql = "SELECT * FROM module";
$result = mysqli_query($db_con, $sql);
while($row = mysqli_fetch_assoc($result)) $output[] = $row;
mysqli_close($db_con);
header('Content-Type: application/json');
print(json_encode($output));
http_response_code(200);
?>
Dans le dossier : C:xampphtdocselearning_server
Université Constantine 2 14
JSON : JavaScript Object Notation
Objets : commencent et se terminent par {}
Attributs d'objet : sous forme d’un dictionnaire (clé/valeur séparés by ‘:‘). Les
attributs sont séparés par des virgules ‘, ‘
Tableaux : contiennent un ensemble d’objets et commencent et se terminent
par []. Les objets sont séparés par des virgules ‘, ‘
Valeurs : peuvent être des strings, des numériques, des objets, des tableaux,
true, false ou null.
Strings : sont englobes par "" et contiennent des caractères Unicode, incluant
les caractère d'échappement (par exemple, le saut de ligne n)
Étapes de l'utilisation des services Web sous Android
Serveur-5. Retourner des données au format JSON
© Dr. Chaouche A.-C.
[
{
id: "1",
accronym: "DAM",
name: "Développement d’applications mobiles",
...
weeks : [ ... ]
}, ...
]
Université Constantine 2 15
Lancer dans le navigateur :
http://[server]/elearning_server/getModules.php
Sous Chrome, l'extension JSONView permet
de mieux afficher le format JSON
TP5a : Accéder au serveur via le navigateur
© Dr. Chaouche A.-C.
Université Constantine 2 16
Côté serveur
1. Préparer les projets
2. Lancer les serveurs Apache et MySQL (XAMPP)
3. Créer une BD via un client MySQL
4. Se connecter à la BD via un script PHP
5. Retourner des données au format JSON
Côté client
1. Préparer le projet Android
2. Vérifier l’accès à internet
3. Récupérer les données distantes sous Android
4. Parser les données JSON pour constituer les objets Java
5. Envoyer des données au serveur distant
Étapes de l'utilisation des services Web sous Android
© Dr. Chaouche A.-C.
Université Constantine 2 17
Ajouter la permission :
Préparer l'URL : http://server/elearning_server/getModules.php
Étapes de l'utilisation des services Web sous Android
Client-1. Préparer le projet Android
© Dr. Chaouche A.-C.
/manifests/AndroidManifest.xml
<uses-permission android:name="android.permission.INTERNET"/>
...
/java/MainActivity.java
String urlString = "http://server/elearning_server/getModules.php";
...
Université Constantine 2 18
Étapes de l'utilisation des services Web sous Android
Client-2. Vérifier l’accès à internet (Facultatif)
© Dr. Chaouche A.-C.
/java/MainActivity.java
public static boolean checkConnection(Context ctx) {
ConnectivityManager connectivityManager = (ConnectivityManager)
ctx.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo networkInfo = connectivityManager.getActiveNetworkInfo();
if (networkInfo == null || !networkInfo.isConnected() ||
(networkInfo.getType() != ConnectivityManager.TYPE_WIFI &&
networkInfo.getType() != ConnectivityManager.TYPE_MOBILE)) {
// No internet connection
return false;
} else
return true;
}
Université Constantine 2 19
2 modes :
1. En mode synchrone
(l'IHM est bloquée en attendant la réponse)
2. En mode asynchrone
(la requête est exécutée en arrière plan)
En mode asynchrone :
Android SDK : android.os.AsyncTask
Doc : https://developer.android.com/reference/android/os/AsyncTask.html
Bibliothèque externe : com.koushikdutta.ion.Ion
Doc : https://github.com/koush/ion
Étapes de l'utilisation des services Web sous Android
Client-3. Récupérer les données distantes sous Android
© Dr. Chaouche A.-C.
App Android Serveur Web
(Apache)
Université Constantine 2 20
Bibliothèque : com.koushikdutta.ion:ion:2.1.9
Méthode 1 :
Project Structure > Modules > app
> Onglet Depenendencies
Méthode 2 :
Dans un script Gradle
Étapes de l'utilisation des services Web sous Android
Client-3.a. Importer la bibliothèque Ion
© Dr. Chaouche A.-C.
/Gradle Scripts/build.gradle (Module: app)
...
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.koushikdutta.ion:ion:2.1.9'
}
Université Constantine 2 21
Étapes de l'utilisation des services Web sous Android
Client-3.b. Afficher un ProgressDialog
© Dr. Chaouche A.-C.
/java/MainActivity.java
ProgressDialog pDialog;
public void getRemoteModules() {
pDialog = new ProgressDialog(this);
pDialog.setMessage("Getting list of modules...");
pDialog.setIndeterminate(true);
pDialog.setCancelable(false);
pDialog.show();
...
}
Université Constantine 2 22
Étapes de l'utilisation des services Web sous Android
Client-3.c. Récupérer un String
© Dr. Chaouche A.-C.
/java/MainActivity.java
public void getRemoteModules() {
...
Ion.with(this)
.load(urlString)
.asString()
.setCallback(new FutureCallback<String>() {
@Override
public void onCompleted(Exception e, String result) {
pDialog.dismiss();
if(result == null)
Log.d(TAG, "No response from the server!!!");
else {
// Traitement de result
}
}
});
}
Université Constantine 2 23
Étapes de l'utilisation des services Web sous Android
Client-3.d. Récupérer la réponse HTTP complète
© Dr. Chaouche A.-C.
/java/MainActivity.java
public void getRemoteModules() {
...
Ion.with(this)
.load(urlString)
.asString()
.withResponse()
.setCallback(new FutureCallback<Response<String>>() {
@Override
public void onCompleted(Exception e, Response<String> response){
...
if(response != null){
Log.d(TAG, "Http code: " + response.getHeaders().code());
Log.d(TAG, "Result: " + response.getResult());
}
...
}
});
}
Université Constantine 2 24
Étapes de l'utilisation des services Web sous Android
Client-4.a. Préparer le modèle de données
© Dr. Chaouche A.-C.
/java/Module.java
public class Module {
int id; ...
List<Week> weeks;
}
/java/Week.java
public class Week {
int id; ...
List<Course> courses;
}
/java/Course.java
public class Course {
int id; ...
}
Université Constantine 2 25
Bibliothèque : com.google.code.gson:gson:2.8.0
Méthode 1 :
Project Structure > Modules > app
> Onglet Depenendencies
Méthode 2 :
Dans un script Gradle
Étapes de l'utilisation des services Web sous Android
Client-4.b. Importer la bibliothèque Gson
© Dr. Chaouche A.-C.
/Gradle Scripts/build.gradle (Module: app)
...
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.google.code.gson:gson:2.8.0'
}
Université Constantine 2 26
Étapes de l'utilisation des services Web sous Android
Client-4.3. Parser la réponse Json
© Dr. Chaouche A.-C.
/java/Module.java
public static Module getModuleFromJson(String json){
Gson gson = new Gson();
Module module = gson.fromJson(json, Module.class);
return module;
}
public static List<Module> getListOfModulesFromJson(String json){
Gson gson = new Gson();
Type type = new TypeToken<List<Module>>(){}.getType();
List<Module> modules = gson.fromJson(json, type);
return modules;
}
Université Constantine 2 27
1. Préparer l'URL
2. Récupérer la liste des modules depuis le serveur (en utilisant Ion)
3. Parser la liste des modules (en utilisant Gson)
TP5b : Récupérer les données distantes
© Dr. Chaouche A.-C.
String urlString = "http://server/eleanring_server/getModules.php";
Ion.with(this).load(urlString) ... .setCallback(...);
List<Module> modules = Module.getListOfModulesFromJson(json);
Université Constantine 2 28
Étapes de l'utilisation des services Web sous Android
Client-5. Envoyer des données au serveur (en GET)
© Dr. Chaouche A.-C.
/java/MainActivity.java
...
Ion.with(this)
.load(urlString)
.asString()
.withResponse()
.setCallback(new FutureCallback<Response<String>>() {
@Override
public void onCompleted(Exception e, Response<String> response){
...
}
});
...
urlString = "http://[server]/elearning_server/addModule.php?...";
Université Constantine 2 29
1. Préparer l'URL
2. Envoyer la requête au serveur (en utilisant Ion)
3. Vérifier le bon traitement de la requête
TP5c : Envoyer des données au serveur
© Dr. Chaouche A.-C.
String urlString = "http://[server]/elearning_server/" +
"addModule.php?key=X&id=Y&...";
Ion.with(this).load(urlString) ... .setCallback(...);
...
if(response.getHeaders().code() == 200) { ... }
...
Université Constantine 2 30
Raccourcis utiles sous Android Studio
File > Settings > Onglet Keymap > Keymaps : Netbeans
© Dr. Chaouche A.-C.
+ + C : Commenter/Décommenter les lignes sélectionnées
+ + ↓/↑ : Dupliquer la ligne courante
+ + ↓/↑ : Déplacer la ligne courante vers le bas ou vers le haut
+ : Rechercher des fichiers dans le projet
+ R : (Refactoring) Modifier le code (Classe, variable, méthode, …)
+ : Générer du code (Constructeurs, Getters, Setters, …)
+ (ou ): Naviguer vers la déclaration/l'utilisation de la classe, méthode, ...
+ ←/→ : Revenir/Avancer à une ligne du code éditée
+ + F : Formater/Réorganiser le code source
+ + : Expande/Collapse
+ + + : Expande/Collapse all { }
(maintenu) + : Sélection de colonne
Université Constantine 2 31
Snippets (macros) sous Android Studio
File > Settings > Editor > Live Template
© Dr. Chaouche A.-C.
fbc: findViewById(R.id.$resId$);
Toast: Toast.makeText($context$, "$text$", Toast.LENGTH_SHORT).show();
const: private static final int $name$ = $value$;
logi: Log.i(TAG, "$METHOD_NAME$: $content$");
fori: for(int $INDEX$ = 0; $INDEX$ < $LIMIT$; $INDEX$++) {}
psvm: public static void main(String[] args){ $END$ }
TR: try ($ELEMENT_TYPE$ $VAR$ = $SELECTION$) { $END$ }
...
Université Constantine 2 32
Documents sont accessibles :
Plateforme e-learning de l’université Constantine 2
Lien : http://elearning.univ-constantine2.dz/
Documents et Rendus
© Dr. Chaouche A.-C.

Contenu connexe

Tendances

Support de cours angular
Support de cours angularSupport de cours angular
Support de cours angular
ENSET, Université Hassan II Casablanca
 
Applications Android - cours 6 : Structure d’un projet Android
Applications Android - cours 6 :  Structure d’un projet AndroidApplications Android - cours 6 :  Structure d’un projet Android
Applications Android - cours 6 : Structure d’un projet Android
Ahmed-Chawki Chaouche
 
Mise en oeuvre des framework de machines et deep learning v1
Mise en oeuvre des framework de machines et deep learning v1 Mise en oeuvre des framework de machines et deep learning v1
Mise en oeuvre des framework de machines et deep learning v1
ENSET, Université Hassan II Casablanca
 
Support de cours technologie et application m.youssfi
Support de cours technologie et application m.youssfiSupport de cours technologie et application m.youssfi
Support de cours technologie et application m.youssfi
ENSET, Université Hassan II Casablanca
 
Traitement distribue en BIg Data - KAFKA Broker and Kafka Streams
Traitement distribue en BIg Data - KAFKA Broker and Kafka StreamsTraitement distribue en BIg Data - KAFKA Broker and Kafka Streams
Traitement distribue en BIg Data - KAFKA Broker and Kafka Streams
ENSET, Université Hassan II Casablanca
 
Applications Android - cours 7 : Ressources et adaptation au matériel
Applications Android - cours 7 : Ressources et adaptation au matérielApplications Android - cours 7 : Ressources et adaptation au matériel
Applications Android - cours 7 : Ressources et adaptation au matériel
Ahmed-Chawki Chaouche
 
Conférence: Catalyseurs de l'Intelligence Artificielle et Écosystème des Fram...
Conférence: Catalyseurs de l'Intelligence Artificielle et Écosystème des Fram...Conférence: Catalyseurs de l'Intelligence Artificielle et Écosystème des Fram...
Conférence: Catalyseurs de l'Intelligence Artificielle et Écosystème des Fram...
ENSET, Université Hassan II Casablanca
 
Java entreprise edition et industrialisation du génie logiciel par m.youssfi
Java entreprise edition et industrialisation du génie logiciel par m.youssfiJava entreprise edition et industrialisation du génie logiciel par m.youssfi
Java entreprise edition et industrialisation du génie logiciel par m.youssfi
ENSET, Université Hassan II Casablanca
 
Sécurité des Applications Web avec Json Web Token (JWT)
Sécurité des Applications Web avec Json Web Token (JWT)Sécurité des Applications Web avec Json Web Token (JWT)
Sécurité des Applications Web avec Json Web Token (JWT)
ENSET, Université Hassan II Casablanca
 
Support de cours Spring M.youssfi
Support de cours Spring  M.youssfiSupport de cours Spring  M.youssfi
Support de cours Spring M.youssfi
ENSET, Université Hassan II Casablanca
 
Cours design pattern m youssfi partie 8 stat, template method, command , medi...
Cours design pattern m youssfi partie 8 stat, template method, command , medi...Cours design pattern m youssfi partie 8 stat, template method, command , medi...
Cours design pattern m youssfi partie 8 stat, template method, command , medi...
ENSET, Université Hassan II Casablanca
 
Applications Android - cours 3 : Android Studio (Outil de développement)
Applications Android - cours 3 : Android Studio (Outil de développement)Applications Android - cours 3 : Android Studio (Outil de développement)
Applications Android - cours 3 : Android Studio (Outil de développement)
Ahmed-Chawki Chaouche
 
Applications Android - cours 10 : Vues à adaptateur
Applications Android - cours 10 : Vues à adaptateurApplications Android - cours 10 : Vues à adaptateur
Applications Android - cours 10 : Vues à adaptateur
Ahmed-Chawki Chaouche
 
Support Java Avancé Troisième Partie
Support Java Avancé Troisième PartieSupport Java Avancé Troisième Partie
Support Java Avancé Troisième Partie
ENSET, Université Hassan II Casablanca
 
Support programmation orientée aspect mohamed youssfi (aop)
Support programmation orientée aspect mohamed youssfi (aop)Support programmation orientée aspect mohamed youssfi (aop)
Support programmation orientée aspect mohamed youssfi (aop)
ENSET, Université Hassan II Casablanca
 
Cours design pattern m youssfi partie 4 composite
Cours design pattern m youssfi partie 4 compositeCours design pattern m youssfi partie 4 composite
Cours design pattern m youssfi partie 4 composite
ENSET, Université Hassan II Casablanca
 
softCours design pattern m youssfi partie 9 creation des objets abstract fact...
softCours design pattern m youssfi partie 9 creation des objets abstract fact...softCours design pattern m youssfi partie 9 creation des objets abstract fact...
softCours design pattern m youssfi partie 9 creation des objets abstract fact...
ENSET, Université Hassan II Casablanca
 
Android-Tp5 : web services
Android-Tp5 : web servicesAndroid-Tp5 : web services
Android-Tp5 : web services
Lilia Sfaxi
 
Support POO Java première partie
Support POO Java première partieSupport POO Java première partie
Support POO Java première partie
ENSET, Université Hassan II Casablanca
 
Introduction à React JS
Introduction à React JSIntroduction à React JS
Introduction à React JS
Abdoulaye Dieng
 

Tendances (20)

Support de cours angular
Support de cours angularSupport de cours angular
Support de cours angular
 
Applications Android - cours 6 : Structure d’un projet Android
Applications Android - cours 6 :  Structure d’un projet AndroidApplications Android - cours 6 :  Structure d’un projet Android
Applications Android - cours 6 : Structure d’un projet Android
 
Mise en oeuvre des framework de machines et deep learning v1
Mise en oeuvre des framework de machines et deep learning v1 Mise en oeuvre des framework de machines et deep learning v1
Mise en oeuvre des framework de machines et deep learning v1
 
Support de cours technologie et application m.youssfi
Support de cours technologie et application m.youssfiSupport de cours technologie et application m.youssfi
Support de cours technologie et application m.youssfi
 
Traitement distribue en BIg Data - KAFKA Broker and Kafka Streams
Traitement distribue en BIg Data - KAFKA Broker and Kafka StreamsTraitement distribue en BIg Data - KAFKA Broker and Kafka Streams
Traitement distribue en BIg Data - KAFKA Broker and Kafka Streams
 
Applications Android - cours 7 : Ressources et adaptation au matériel
Applications Android - cours 7 : Ressources et adaptation au matérielApplications Android - cours 7 : Ressources et adaptation au matériel
Applications Android - cours 7 : Ressources et adaptation au matériel
 
Conférence: Catalyseurs de l'Intelligence Artificielle et Écosystème des Fram...
Conférence: Catalyseurs de l'Intelligence Artificielle et Écosystème des Fram...Conférence: Catalyseurs de l'Intelligence Artificielle et Écosystème des Fram...
Conférence: Catalyseurs de l'Intelligence Artificielle et Écosystème des Fram...
 
Java entreprise edition et industrialisation du génie logiciel par m.youssfi
Java entreprise edition et industrialisation du génie logiciel par m.youssfiJava entreprise edition et industrialisation du génie logiciel par m.youssfi
Java entreprise edition et industrialisation du génie logiciel par m.youssfi
 
Sécurité des Applications Web avec Json Web Token (JWT)
Sécurité des Applications Web avec Json Web Token (JWT)Sécurité des Applications Web avec Json Web Token (JWT)
Sécurité des Applications Web avec Json Web Token (JWT)
 
Support de cours Spring M.youssfi
Support de cours Spring  M.youssfiSupport de cours Spring  M.youssfi
Support de cours Spring M.youssfi
 
Cours design pattern m youssfi partie 8 stat, template method, command , medi...
Cours design pattern m youssfi partie 8 stat, template method, command , medi...Cours design pattern m youssfi partie 8 stat, template method, command , medi...
Cours design pattern m youssfi partie 8 stat, template method, command , medi...
 
Applications Android - cours 3 : Android Studio (Outil de développement)
Applications Android - cours 3 : Android Studio (Outil de développement)Applications Android - cours 3 : Android Studio (Outil de développement)
Applications Android - cours 3 : Android Studio (Outil de développement)
 
Applications Android - cours 10 : Vues à adaptateur
Applications Android - cours 10 : Vues à adaptateurApplications Android - cours 10 : Vues à adaptateur
Applications Android - cours 10 : Vues à adaptateur
 
Support Java Avancé Troisième Partie
Support Java Avancé Troisième PartieSupport Java Avancé Troisième Partie
Support Java Avancé Troisième Partie
 
Support programmation orientée aspect mohamed youssfi (aop)
Support programmation orientée aspect mohamed youssfi (aop)Support programmation orientée aspect mohamed youssfi (aop)
Support programmation orientée aspect mohamed youssfi (aop)
 
Cours design pattern m youssfi partie 4 composite
Cours design pattern m youssfi partie 4 compositeCours design pattern m youssfi partie 4 composite
Cours design pattern m youssfi partie 4 composite
 
softCours design pattern m youssfi partie 9 creation des objets abstract fact...
softCours design pattern m youssfi partie 9 creation des objets abstract fact...softCours design pattern m youssfi partie 9 creation des objets abstract fact...
softCours design pattern m youssfi partie 9 creation des objets abstract fact...
 
Android-Tp5 : web services
Android-Tp5 : web servicesAndroid-Tp5 : web services
Android-Tp5 : web services
 
Support POO Java première partie
Support POO Java première partieSupport POO Java première partie
Support POO Java première partie
 
Introduction à React JS
Introduction à React JSIntroduction à React JS
Introduction à React JS
 

Similaire à Applications Android - cours 13 : Connectivité et services Web

Applications Android - Cours 2 : OS mobiles
Applications Android - Cours 2 : OS mobilesApplications Android - Cours 2 : OS mobiles
Applications Android - Cours 2 : OS mobiles
Ahmed-Chawki Chaouche
 
Construire une PWA connectée à WordPress
Construire une PWA connectée à WordPressConstruire une PWA connectée à WordPress
Construire une PWA connectée à WordPress
Benjamin LUPU
 
Formation gwt
Formation gwtFormation gwt
Formation gwt
Francois ANDRE
 
Partie 2: Angular
Partie 2: AngularPartie 2: Angular
Partie 2: Angular
Habib Ayad
 
Catalogue pfe cynapsys_2016_2017
Catalogue pfe cynapsys_2016_2017Catalogue pfe cynapsys_2016_2017
Catalogue pfe cynapsys_2016_2017
Cynapsys It Hotspot
 
Windows phone 7 sync application sur Azure, création d'application offline re...
Windows phone 7 sync application sur Azure, création d'application offline re...Windows phone 7 sync application sur Azure, création d'application offline re...
Windows phone 7 sync application sur Azure, création d'application offline re...Microsoft Décideurs IT
 
Certification mcsd web application développeur .net mcsd
Certification mcsd web application   développeur .net mcsdCertification mcsd web application   développeur .net mcsd
Certification mcsd web application développeur .net mcsd
EGILIA Learning
 
CV AIT ZEOUAY Amrane
CV AIT ZEOUAY AmraneCV AIT ZEOUAY Amrane
CV AIT ZEOUAY Amrane
Nokia Bell Labs
 
Rapport application chat
Rapport application chatRapport application chat
Rapport application chat
Tbatou sanae
 
Presentation cynapsys
Presentation cynapsysPresentation cynapsys
Presentation cynapsysbaltagi
 
Ateliers : Developpement mobile vs open source
Ateliers : Developpement mobile vs open sourceAteliers : Developpement mobile vs open source
Ateliers : Developpement mobile vs open sourceKorteby Farouk
 
Cv khouloud dhouib
Cv khouloud dhouibCv khouloud dhouib
Cv khouloud dhouib
khoulouddhouib
 
TP GWT JDEV 2015
TP GWT JDEV 2015TP GWT JDEV 2015
TP GWT JDEV 2015
Francois ANDRE
 
12-Factor
12-Factor12-Factor
12-Factor
Luc Juggery
 
Presentation certification 70-536 atelier 1
Presentation certification 70-536 atelier 1Presentation certification 70-536 atelier 1
Presentation certification 70-536 atelier 1
Mohamed Ouederni
 
Presentation certification 70-536 atelier 1
Presentation certification 70-536 atelier 1Presentation certification 70-536 atelier 1
Presentation certification 70-536 atelier 1
realtn
 

Similaire à Applications Android - cours 13 : Connectivité et services Web (20)

Applications Android - Cours 2 : OS mobiles
Applications Android - Cours 2 : OS mobilesApplications Android - Cours 2 : OS mobiles
Applications Android - Cours 2 : OS mobiles
 
Construire une PWA connectée à WordPress
Construire une PWA connectée à WordPressConstruire une PWA connectée à WordPress
Construire une PWA connectée à WordPress
 
Formation gwt
Formation gwtFormation gwt
Formation gwt
 
Partie 2: Angular
Partie 2: AngularPartie 2: Angular
Partie 2: Angular
 
CV REBAI Hamida
CV REBAI HamidaCV REBAI Hamida
CV REBAI Hamida
 
Catalogue pfe cynapsys_2016_2017
Catalogue pfe cynapsys_2016_2017Catalogue pfe cynapsys_2016_2017
Catalogue pfe cynapsys_2016_2017
 
Windows phone 7 sync application sur Azure, création d'application offline re...
Windows phone 7 sync application sur Azure, création d'application offline re...Windows phone 7 sync application sur Azure, création d'application offline re...
Windows phone 7 sync application sur Azure, création d'application offline re...
 
Certification mcsd web application développeur .net mcsd
Certification mcsd web application   développeur .net mcsdCertification mcsd web application   développeur .net mcsd
Certification mcsd web application développeur .net mcsd
 
Offre technique
Offre techniqueOffre technique
Offre technique
 
CV_Bilel CHAOUADI
CV_Bilel CHAOUADICV_Bilel CHAOUADI
CV_Bilel CHAOUADI
 
CV-DEQQAQ_AYOUB
CV-DEQQAQ_AYOUBCV-DEQQAQ_AYOUB
CV-DEQQAQ_AYOUB
 
CV AIT ZEOUAY Amrane
CV AIT ZEOUAY AmraneCV AIT ZEOUAY Amrane
CV AIT ZEOUAY Amrane
 
Rapport application chat
Rapport application chatRapport application chat
Rapport application chat
 
Presentation cynapsys
Presentation cynapsysPresentation cynapsys
Presentation cynapsys
 
Ateliers : Developpement mobile vs open source
Ateliers : Developpement mobile vs open sourceAteliers : Developpement mobile vs open source
Ateliers : Developpement mobile vs open source
 
Cv khouloud dhouib
Cv khouloud dhouibCv khouloud dhouib
Cv khouloud dhouib
 
TP GWT JDEV 2015
TP GWT JDEV 2015TP GWT JDEV 2015
TP GWT JDEV 2015
 
12-Factor
12-Factor12-Factor
12-Factor
 
Presentation certification 70-536 atelier 1
Presentation certification 70-536 atelier 1Presentation certification 70-536 atelier 1
Presentation certification 70-536 atelier 1
 
Presentation certification 70-536 atelier 1
Presentation certification 70-536 atelier 1Presentation certification 70-536 atelier 1
Presentation certification 70-536 atelier 1
 

Dernier

Iris van Herpen. pptx
Iris         van        Herpen.      pptxIris         van        Herpen.      pptx
Iris van Herpen. pptx
Txaruka
 
Procédure consignation Lock Out Tag Out.pptx
Procédure consignation  Lock Out Tag Out.pptxProcédure consignation  Lock Out Tag Out.pptx
Procédure consignation Lock Out Tag Out.pptx
caggoune66
 
Newsletter SPW Agriculture en province du Luxembourg du 12-06-24
Newsletter SPW Agriculture en province du Luxembourg du 12-06-24Newsletter SPW Agriculture en province du Luxembourg du 12-06-24
Newsletter SPW Agriculture en province du Luxembourg du 12-06-24
BenotGeorges3
 
Cycle de Formation Théâtrale 2024 / 2025
Cycle de Formation Théâtrale 2024 / 2025Cycle de Formation Théâtrale 2024 / 2025
Cycle de Formation Théâtrale 2024 / 2025
Billy DEYLORD
 
Formation Intelligence Artificielle pour dirigeants- IT6-DIGITALIX 24_opt OK_...
Formation Intelligence Artificielle pour dirigeants- IT6-DIGITALIX 24_opt OK_...Formation Intelligence Artificielle pour dirigeants- IT6-DIGITALIX 24_opt OK_...
Formation Intelligence Artificielle pour dirigeants- IT6-DIGITALIX 24_opt OK_...
cristionobedi
 
Iris van Herpen. pptx
Iris            van        Herpen.     pptxIris            van        Herpen.     pptx
Iris van Herpen. pptx
Txaruka
 
Formation M2i - Onboarding réussi - les clés pour intégrer efficacement vos n...
Formation M2i - Onboarding réussi - les clés pour intégrer efficacement vos n...Formation M2i - Onboarding réussi - les clés pour intégrer efficacement vos n...
Formation M2i - Onboarding réussi - les clés pour intégrer efficacement vos n...
M2i Formation
 
Impact des Critères Environnementaux, Sociaux et de Gouvernance (ESG) sur les...
Impact des Critères Environnementaux, Sociaux et de Gouvernance (ESG) sur les...Impact des Critères Environnementaux, Sociaux et de Gouvernance (ESG) sur les...
Impact des Critères Environnementaux, Sociaux et de Gouvernance (ESG) sur les...
mrelmejri
 
Burkina Faso library newsletter May 2024
Burkina Faso library newsletter May 2024Burkina Faso library newsletter May 2024
Burkina Faso library newsletter May 2024
Friends of African Village Libraries
 
Iris van Herpen. pptx
Iris         van         Herpen.      pptxIris         van         Herpen.      pptx
Iris van Herpen. pptx
Txaruka
 
Edito-B1-francais Manuel to learning.pdf
Edito-B1-francais Manuel to learning.pdfEdito-B1-francais Manuel to learning.pdf
Edito-B1-francais Manuel to learning.pdf
WarlockeTamagafk
 
Conseils pour Les Jeunes | Conseils de La Vie| Conseil de La Jeunesse
Conseils pour Les Jeunes | Conseils de La Vie| Conseil de La JeunesseConseils pour Les Jeunes | Conseils de La Vie| Conseil de La Jeunesse
Conseils pour Les Jeunes | Conseils de La Vie| Conseil de La Jeunesse
Oscar Smith
 

Dernier (12)

Iris van Herpen. pptx
Iris         van        Herpen.      pptxIris         van        Herpen.      pptx
Iris van Herpen. pptx
 
Procédure consignation Lock Out Tag Out.pptx
Procédure consignation  Lock Out Tag Out.pptxProcédure consignation  Lock Out Tag Out.pptx
Procédure consignation Lock Out Tag Out.pptx
 
Newsletter SPW Agriculture en province du Luxembourg du 12-06-24
Newsletter SPW Agriculture en province du Luxembourg du 12-06-24Newsletter SPW Agriculture en province du Luxembourg du 12-06-24
Newsletter SPW Agriculture en province du Luxembourg du 12-06-24
 
Cycle de Formation Théâtrale 2024 / 2025
Cycle de Formation Théâtrale 2024 / 2025Cycle de Formation Théâtrale 2024 / 2025
Cycle de Formation Théâtrale 2024 / 2025
 
Formation Intelligence Artificielle pour dirigeants- IT6-DIGITALIX 24_opt OK_...
Formation Intelligence Artificielle pour dirigeants- IT6-DIGITALIX 24_opt OK_...Formation Intelligence Artificielle pour dirigeants- IT6-DIGITALIX 24_opt OK_...
Formation Intelligence Artificielle pour dirigeants- IT6-DIGITALIX 24_opt OK_...
 
Iris van Herpen. pptx
Iris            van        Herpen.     pptxIris            van        Herpen.     pptx
Iris van Herpen. pptx
 
Formation M2i - Onboarding réussi - les clés pour intégrer efficacement vos n...
Formation M2i - Onboarding réussi - les clés pour intégrer efficacement vos n...Formation M2i - Onboarding réussi - les clés pour intégrer efficacement vos n...
Formation M2i - Onboarding réussi - les clés pour intégrer efficacement vos n...
 
Impact des Critères Environnementaux, Sociaux et de Gouvernance (ESG) sur les...
Impact des Critères Environnementaux, Sociaux et de Gouvernance (ESG) sur les...Impact des Critères Environnementaux, Sociaux et de Gouvernance (ESG) sur les...
Impact des Critères Environnementaux, Sociaux et de Gouvernance (ESG) sur les...
 
Burkina Faso library newsletter May 2024
Burkina Faso library newsletter May 2024Burkina Faso library newsletter May 2024
Burkina Faso library newsletter May 2024
 
Iris van Herpen. pptx
Iris         van         Herpen.      pptxIris         van         Herpen.      pptx
Iris van Herpen. pptx
 
Edito-B1-francais Manuel to learning.pdf
Edito-B1-francais Manuel to learning.pdfEdito-B1-francais Manuel to learning.pdf
Edito-B1-francais Manuel to learning.pdf
 
Conseils pour Les Jeunes | Conseils de La Vie| Conseil de La Jeunesse
Conseils pour Les Jeunes | Conseils de La Vie| Conseil de La JeunesseConseils pour Les Jeunes | Conseils de La Vie| Conseil de La Jeunesse
Conseils pour Les Jeunes | Conseils de La Vie| Conseil de La Jeunesse
 

Applications Android - cours 13 : Connectivité et services Web

  • 1. Université Constantine 2 Dr. CHAOUCHE A.-C. Faculté des nouvelles technologies ahmed.chaouche@univ-constantine2.dz – Cours 13 – Chapitre 9 : Connectivité et services Web (Bonus) Développement d’applications mobiles 2018/2019. Semestre 1
  • 2. Université Constantine 2 Etudiants concernés Faculté/Institut Département Niveau Spécialité 2018/2019. Semestre 1 Dr. CHAOUCHE A.-C. Faculté des nouvelles technologies ahmed.chaouche@univ-constantine2.dz Développement d’applications mobiles Licence 3 Technologies de l’information (TI)Nouvelles technologies IFA Licence 3 Science de l’informatique (SCI)Nouvelles technologies IFA – Cours 13 – Chapitre 9 : Connectivité et services Web (Bonus)
  • 3. Université Constantine 2 3 Prérequis Maîtrise de la programmation Android Maîtrise des langages PHP et SQL Objectifs du cours Comprendre la programmation réseau et Web Création d'un service Web connecté à une BD MySQL Elaborer une communication avec un serveur Web sous Android Résumé © Dr. Chaouche A.-C.
  • 4. Université Constantine 2 4 Architecture Clients-Serveur © Dr. Chaouche A.-C. @IP: 192.168.0.X @Port: Y Ali SaraMohammed
  • 5. Université Constantine 2 5 Adressages IP © Dr. Chaouche A.-C. AliMohammed
  • 6. Université Constantine 2 6 Ports © Dr. Chaouche A.-C. 192.168.0.X Ali
  • 7. Université Constantine 2 7 La communication entre un appareil Android et un serveur, à travers : Sockets Bibliothèques Remote Procedural Call (RPC) Services Web Communication sous Android © Dr. Chaouche A.-C.
  • 8. Université Constantine 2 8 Comment ? PHP récupère les données à partir d'une BD MySQL, qui seront par la suite encodées au format JSON et envoyées au client Android L'App Android récupère les données, les parse et les exploite dans l'App Utilisation des services Web sous Android © Dr. Chaouche A.-C. App Android Serveur Web (Apache) Serveur MySQL
  • 9. Université Constantine 2 9 Côté serveur 1. Préparer les projets 2. Lancer les serveurs Apache et MySQL (XAMPP) 3. Créer une BD via un client MySQL 4. Se connecter à la BD via un script PHP 5. Retourner des données au format JSON Côté client 1. Préparer le projet Android 2. Vérifier l’accès à internet 3. Récupérer les données distantes sous Android 4. Parser les données JSON pour constituer les objets Java 5. Envoyer des données au serveur distant Étapes de l'utilisation des services Web sous Android © Dr. Chaouche A.-C.
  • 10. Université Constantine 2 10 Projet Web en php Dossier : "C:xampphtdocselearning_server" Fichier php : getModules.php Base de données MySQL DB : elearning_db Tables : module, week, et course Étapes de l'utilisation des services Web sous Android Serveur-1. Préparer les projets © Dr. Chaouche A.-C.
  • 11. Université Constantine 2 11 1. Installer Xampp v3.2.2 Choisir le chemin dans la racine : "C:xampp" 2. Lancer XAMPP Control Panel Lancer le serveur Apache (web) Lancer le serveur MySQL Étapes de l'utilisation des services Web sous Android Serveur-2. Lancer les serveurs Apache et MySQL sous Xampp © Dr. Chaouche A.-C.
  • 12. Université Constantine 2 12 1. Utiliser un client MySQL Exemples : PhpMyAdmin, HeidiSQL 2. Créer une nouvelle session : Host : "localhost" Port : 3306 Utilisateur : "root" Mot de passe : "" 3. Créer la BD : elearning_db 4. Créer les tables : module, week, et course module : id(INT), accronym(VARCHAR), name(VARCHAR), description(VARCHAR), credit(INT) week : ... Course : ... Étapes de l'utilisation des services Web sous Android Serveur-3. Créer une BD via un client MySQL © Dr. Chaouche A.-C.
  • 13. Université Constantine 2 13 Étapes de l'utilisation des services Web sous Android Serveur-4. Se connecter à la BD via un script PHP © Dr. Chaouche A.-C. /elearning_server/getModules.php <?php $db_host="localhost"; $db_uid="root"; $db_pass=""; $db_name="elearning_db"; $db_con = mysqli_connect($db_host, $db_uid, $db_pass, $db_name); $sql = "SELECT * FROM module"; $result = mysqli_query($db_con, $sql); while($row = mysqli_fetch_assoc($result)) $output[] = $row; mysqli_close($db_con); header('Content-Type: application/json'); print(json_encode($output)); http_response_code(200); ?> Dans le dossier : C:xampphtdocselearning_server
  • 14. Université Constantine 2 14 JSON : JavaScript Object Notation Objets : commencent et se terminent par {} Attributs d'objet : sous forme d’un dictionnaire (clé/valeur séparés by ‘:‘). Les attributs sont séparés par des virgules ‘, ‘ Tableaux : contiennent un ensemble d’objets et commencent et se terminent par []. Les objets sont séparés par des virgules ‘, ‘ Valeurs : peuvent être des strings, des numériques, des objets, des tableaux, true, false ou null. Strings : sont englobes par "" et contiennent des caractères Unicode, incluant les caractère d'échappement (par exemple, le saut de ligne n) Étapes de l'utilisation des services Web sous Android Serveur-5. Retourner des données au format JSON © Dr. Chaouche A.-C. [ { id: "1", accronym: "DAM", name: "Développement d’applications mobiles", ... weeks : [ ... ] }, ... ]
  • 15. Université Constantine 2 15 Lancer dans le navigateur : http://[server]/elearning_server/getModules.php Sous Chrome, l'extension JSONView permet de mieux afficher le format JSON TP5a : Accéder au serveur via le navigateur © Dr. Chaouche A.-C.
  • 16. Université Constantine 2 16 Côté serveur 1. Préparer les projets 2. Lancer les serveurs Apache et MySQL (XAMPP) 3. Créer une BD via un client MySQL 4. Se connecter à la BD via un script PHP 5. Retourner des données au format JSON Côté client 1. Préparer le projet Android 2. Vérifier l’accès à internet 3. Récupérer les données distantes sous Android 4. Parser les données JSON pour constituer les objets Java 5. Envoyer des données au serveur distant Étapes de l'utilisation des services Web sous Android © Dr. Chaouche A.-C.
  • 17. Université Constantine 2 17 Ajouter la permission : Préparer l'URL : http://server/elearning_server/getModules.php Étapes de l'utilisation des services Web sous Android Client-1. Préparer le projet Android © Dr. Chaouche A.-C. /manifests/AndroidManifest.xml <uses-permission android:name="android.permission.INTERNET"/> ... /java/MainActivity.java String urlString = "http://server/elearning_server/getModules.php"; ...
  • 18. Université Constantine 2 18 Étapes de l'utilisation des services Web sous Android Client-2. Vérifier l’accès à internet (Facultatif) © Dr. Chaouche A.-C. /java/MainActivity.java public static boolean checkConnection(Context ctx) { ConnectivityManager connectivityManager = (ConnectivityManager) ctx.getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo networkInfo = connectivityManager.getActiveNetworkInfo(); if (networkInfo == null || !networkInfo.isConnected() || (networkInfo.getType() != ConnectivityManager.TYPE_WIFI && networkInfo.getType() != ConnectivityManager.TYPE_MOBILE)) { // No internet connection return false; } else return true; }
  • 19. Université Constantine 2 19 2 modes : 1. En mode synchrone (l'IHM est bloquée en attendant la réponse) 2. En mode asynchrone (la requête est exécutée en arrière plan) En mode asynchrone : Android SDK : android.os.AsyncTask Doc : https://developer.android.com/reference/android/os/AsyncTask.html Bibliothèque externe : com.koushikdutta.ion.Ion Doc : https://github.com/koush/ion Étapes de l'utilisation des services Web sous Android Client-3. Récupérer les données distantes sous Android © Dr. Chaouche A.-C. App Android Serveur Web (Apache)
  • 20. Université Constantine 2 20 Bibliothèque : com.koushikdutta.ion:ion:2.1.9 Méthode 1 : Project Structure > Modules > app > Onglet Depenendencies Méthode 2 : Dans un script Gradle Étapes de l'utilisation des services Web sous Android Client-3.a. Importer la bibliothèque Ion © Dr. Chaouche A.-C. /Gradle Scripts/build.gradle (Module: app) ... dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) implementation 'com.koushikdutta.ion:ion:2.1.9' }
  • 21. Université Constantine 2 21 Étapes de l'utilisation des services Web sous Android Client-3.b. Afficher un ProgressDialog © Dr. Chaouche A.-C. /java/MainActivity.java ProgressDialog pDialog; public void getRemoteModules() { pDialog = new ProgressDialog(this); pDialog.setMessage("Getting list of modules..."); pDialog.setIndeterminate(true); pDialog.setCancelable(false); pDialog.show(); ... }
  • 22. Université Constantine 2 22 Étapes de l'utilisation des services Web sous Android Client-3.c. Récupérer un String © Dr. Chaouche A.-C. /java/MainActivity.java public void getRemoteModules() { ... Ion.with(this) .load(urlString) .asString() .setCallback(new FutureCallback<String>() { @Override public void onCompleted(Exception e, String result) { pDialog.dismiss(); if(result == null) Log.d(TAG, "No response from the server!!!"); else { // Traitement de result } } }); }
  • 23. Université Constantine 2 23 Étapes de l'utilisation des services Web sous Android Client-3.d. Récupérer la réponse HTTP complète © Dr. Chaouche A.-C. /java/MainActivity.java public void getRemoteModules() { ... Ion.with(this) .load(urlString) .asString() .withResponse() .setCallback(new FutureCallback<Response<String>>() { @Override public void onCompleted(Exception e, Response<String> response){ ... if(response != null){ Log.d(TAG, "Http code: " + response.getHeaders().code()); Log.d(TAG, "Result: " + response.getResult()); } ... } }); }
  • 24. Université Constantine 2 24 Étapes de l'utilisation des services Web sous Android Client-4.a. Préparer le modèle de données © Dr. Chaouche A.-C. /java/Module.java public class Module { int id; ... List<Week> weeks; } /java/Week.java public class Week { int id; ... List<Course> courses; } /java/Course.java public class Course { int id; ... }
  • 25. Université Constantine 2 25 Bibliothèque : com.google.code.gson:gson:2.8.0 Méthode 1 : Project Structure > Modules > app > Onglet Depenendencies Méthode 2 : Dans un script Gradle Étapes de l'utilisation des services Web sous Android Client-4.b. Importer la bibliothèque Gson © Dr. Chaouche A.-C. /Gradle Scripts/build.gradle (Module: app) ... dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) implementation 'com.google.code.gson:gson:2.8.0' }
  • 26. Université Constantine 2 26 Étapes de l'utilisation des services Web sous Android Client-4.3. Parser la réponse Json © Dr. Chaouche A.-C. /java/Module.java public static Module getModuleFromJson(String json){ Gson gson = new Gson(); Module module = gson.fromJson(json, Module.class); return module; } public static List<Module> getListOfModulesFromJson(String json){ Gson gson = new Gson(); Type type = new TypeToken<List<Module>>(){}.getType(); List<Module> modules = gson.fromJson(json, type); return modules; }
  • 27. Université Constantine 2 27 1. Préparer l'URL 2. Récupérer la liste des modules depuis le serveur (en utilisant Ion) 3. Parser la liste des modules (en utilisant Gson) TP5b : Récupérer les données distantes © Dr. Chaouche A.-C. String urlString = "http://server/eleanring_server/getModules.php"; Ion.with(this).load(urlString) ... .setCallback(...); List<Module> modules = Module.getListOfModulesFromJson(json);
  • 28. Université Constantine 2 28 Étapes de l'utilisation des services Web sous Android Client-5. Envoyer des données au serveur (en GET) © Dr. Chaouche A.-C. /java/MainActivity.java ... Ion.with(this) .load(urlString) .asString() .withResponse() .setCallback(new FutureCallback<Response<String>>() { @Override public void onCompleted(Exception e, Response<String> response){ ... } }); ... urlString = "http://[server]/elearning_server/addModule.php?...";
  • 29. Université Constantine 2 29 1. Préparer l'URL 2. Envoyer la requête au serveur (en utilisant Ion) 3. Vérifier le bon traitement de la requête TP5c : Envoyer des données au serveur © Dr. Chaouche A.-C. String urlString = "http://[server]/elearning_server/" + "addModule.php?key=X&id=Y&..."; Ion.with(this).load(urlString) ... .setCallback(...); ... if(response.getHeaders().code() == 200) { ... } ...
  • 30. Université Constantine 2 30 Raccourcis utiles sous Android Studio File > Settings > Onglet Keymap > Keymaps : Netbeans © Dr. Chaouche A.-C. + + C : Commenter/Décommenter les lignes sélectionnées + + ↓/↑ : Dupliquer la ligne courante + + ↓/↑ : Déplacer la ligne courante vers le bas ou vers le haut + : Rechercher des fichiers dans le projet + R : (Refactoring) Modifier le code (Classe, variable, méthode, …) + : Générer du code (Constructeurs, Getters, Setters, …) + (ou ): Naviguer vers la déclaration/l'utilisation de la classe, méthode, ... + ←/→ : Revenir/Avancer à une ligne du code éditée + + F : Formater/Réorganiser le code source + + : Expande/Collapse + + + : Expande/Collapse all { } (maintenu) + : Sélection de colonne
  • 31. Université Constantine 2 31 Snippets (macros) sous Android Studio File > Settings > Editor > Live Template © Dr. Chaouche A.-C. fbc: findViewById(R.id.$resId$); Toast: Toast.makeText($context$, "$text$", Toast.LENGTH_SHORT).show(); const: private static final int $name$ = $value$; logi: Log.i(TAG, "$METHOD_NAME$: $content$"); fori: for(int $INDEX$ = 0; $INDEX$ < $LIMIT$; $INDEX$++) {} psvm: public static void main(String[] args){ $END$ } TR: try ($ELEMENT_TYPE$ $VAR$ = $SELECTION$) { $END$ } ...
  • 32. Université Constantine 2 32 Documents sont accessibles : Plateforme e-learning de l’université Constantine 2 Lien : http://elearning.univ-constantine2.dz/ Documents et Rendus © Dr. Chaouche A.-C.