SlideShare une entreprise Scribd logo
1  sur  35
Télécharger pour lire hors ligne
Université Constantine 2
Dr. CHAOUCHE A.-C.
Faculté des nouvelles technologies
ahmed.chaouche@univ-constantine2.dz
– Cours 6 –
Chapitre 5 : Structure d’un projet Android (1/2)
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 6 –
Chapitre 5 : Structure d’un projet Android (1/2)
Université Constantine 2 3
Prérequis
Maîtrise de Android Studio
Objectifs du cours
Savoir organiser un projet Android
Comprendre le cycle de vie d’une activité
Résumé
© Dr. Chaouche A.-C.
Université Constantine 2 4
Application Name : LearnApp
Compagny Domain : iam.sci
Package: sci.iam.learnapp
Project location : D:androidprojects
Création d’un nouveau projet
© Dr. Chaouche A.-C.
Université Constantine 2 5
Structure d’un projet
© Dr. Chaouche A.-C.
Fichiers java
Ressources organisées
(texte, …)
Manifest
Gradle
Université Constantine 2 6
Décrit les composants de l’application
Définit le point d’entrée potentiel de l’application (activity main)
Quatre types de composants
Activités (activities)
Services (services)
Fournisseurs de contenu (content providers)
Récepteurs de diffusion (broadcast receivers)
Décrit les permissions requises par l’application
Accès a l’Internet, lecture-écriture dans la liste de contacts,
Géo-localisation, . . .
Décrit les besoins matériels et logiciels de l’application
Appareil photo, bluetooth, ecran multi-touch, . . .
"AndroidManifest.xml" (1/2)
© Dr. Chaouche A.-C.
Université Constantine 2 7
Fichier XML obligatoire, à la racine du projet
<manifest> et <application> sont obligatoires
category.LAUNCHER : point d’entrée de l'application
"AndroidManifest.xml" (2/2)
© Dr. Chaouche A.-C.
/manifests/AndroidManifest.xml
<manifest>
<application>
<activity android:name=".LoginActivity"
android:label="@string/app_name">
<intentfilter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intentfilter>
</activity>
</application>
</manifest>
Université Constantine 2 8
Une activité = un écran graphique
définie dans ./java/
souvent c’est un cas d'utilisation UML
contrôle les éléments définis par du code Java
Hérite de
android.app.Activity ou
android.support.v7.app.AppCompatActivity;
Interface graphique (IHM)
associé à une vue (./res/layout/)
certains éléments (texte, dimension, couleur) sont définis dans ./res/values
Activité
© Dr. Chaouche A.-C.
Université Constantine 2 9
Activité
Cycle de vie (1/2)
© Dr. Chaouche A.-C.
Méthodes callback :
void onCreate(...)
void onStart()
void onRestart()
void onResume()
void onPause()
void onStop()
void onDestroy()
Le changement d’état d’une activité
provoque le déclenchement de la
méthode callback correspondante.
Université Constantine 2 10
Activité
Cycle de vie (2/2) – Explication
© Dr. Chaouche A.-C.
LearnApp
Cycle de vie de
Activity 1
Université Constantine 2 11
Activité
Cycle de vie (2/2) – Explication
© Dr. Chaouche A.-C.
1
2
3
4
This is Activity 1
Cycle de vie de
Activity 15
Université Constantine 2 12
Activité
Cycle de vie (2/2) – Explication
© Dr. Chaouche A.-C.
1
2
3
4
5
This is Activity 1
Cycle de vie de
Activity 1
Université Constantine 2 13
Activité
Cycle de vie (2/2) – Explication
© Dr. Chaouche A.-C.
2
3
1
This is Activity 1
Cycle de vie de
Activity 1
Université Constantine 2 14
Activité
Cycle de vie (2/2) – Explication
© Dr. Chaouche A.-C.
23
4
5
1
This is Activity 2
Cycle de vie de
Activity 1
Université Constantine 2 15
Activité
Cycle de vie (2/2) – Explication
© Dr. Chaouche A.-C.
1
2
3
This is Activity 1
Cycle de vie de
Activity 1
Université Constantine 2 16
Activité
Cycle de vie (2/2) – Explication
© Dr. Chaouche A.-C.
1
34
5
6
2
LearnApp
Cycle de vie de
Activity 1
Université Constantine 2 17
Activité
Cycle de vie (2/2) – Explication
© Dr. Chaouche A.-C.
1
2
3
4
5
7
8
9
10
6
This is Activity 1
Cycle de vie de
Activity 1
Université Constantine 2 18
This is Activity 1
Activité
Cycle de vie (2/2) – Explication
© Dr. Chaouche A.-C.
1
3
5
6
4
LearnApp
2
Cycle de vie de
Activity 1
Partage d’écran (supporté depuis Android 7.0)
Université Constantine 2 19
Pour chaque méthode callback, appeler la méthode sur super
Exemple : dans onCreate(), appel à super.onCreate()
Le Bundle mémorise l'état de l’activité lorsqu'elle passe en arrière-plan
Activité
Exemple
© Dr. Chaouche A.-C.
/java/LoginActivity.java
import android.app.Activity;
public class LoginActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
...
}
@Override
protected void onDestroy() {
super.onDestroy();
}
}
Université Constantine 2 20
setContentView(int layout) associe à l'activité un Layout référencé
par layout
Activité
Association d’un layout
© Dr. Chaouche A.-C.
/java/LoginActivity.java
public class LoginActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
...
}
...
}
Université Constantine 2 21
Types de ressources :
Layouts et menus
Icones et images
Valeurs (values) :
strings, attrs,
styles, colors,
dimens,
…
Ressources "./res/"
© Dr. Chaouche A.-C.
Interfaces
graphiques
Images
Valeurs
constantes
Icones
Université Constantine 2 22
Description
Déclarative (Fichiers XML dans le répertoire ./res/layout/)
Ou directement dans le code java
Widget
Composant élémentaire
Instance de la classe View
Sensible aux événements
Exemples : Button, EditText, TextView, CheckBox
Layout
Conteneur de vues
Instance de la classe ViewGroup
Exemples : LinearLayout, TableLayout,
RelativeLayout, FrameLayout,
ScrollView
Ressources : Layouts
© Dr. Chaouche A.-C.
Université Constantine 2 23
Ressources : Layouts
Types de ViewGroup (1/2)
© Dr. Chaouche A.-C.
LinearLayout RelativeLayout WebView
GridLayout FrameLayout AbsoluteLayout
Université Constantine 2 24
Ressources : Layouts
Types de ViewGroup (2/2)
© Dr. Chaouche A.-C.
DrawerLayout CoordinatorLayout SwipeRefreshLayout
SlidingPaneLayout TableLayout TabLayout-ViewPager
Université Constantine 2 25
Ressources : Layouts
Exemple d'un layout
© Dr. Chaouche A.-C.
/res/layout/activity_login.xml (Text)
<?xml version="1.0" encoding="utf8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/...
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Hello World!" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Constantine 2" />
</LinearLayout>
Université Constantine 2 26
Ressources : Layouts
Attributs de LinearLayout
© Dr. Chaouche A.-C.
orientation : vertical | horizontal
layout_width et layout_height :
Valeur constante : en dp ou px
wrap_content : place minimum
match_parent : taille du parent
gravity : top, bottom, left, right, center, …
padding et margin : en dp ou px
Université Constantine 2 27
Exploitation dans res (fichiers XML : layout, styles, …) : @string/app_name
Exploitation dans java (code source) : R.string.app_name
Accès à la ressource : getResources().getString(R.string.app_name);
Ressources : Strings (1/2)
© Dr. Chaouche A.-C.
/res/values/strings.xml
<?xml version="1.0" encoding="utf8"?>
<resources>
<string name="app_name"> LearnApp </string>
...
</resources>
Université Constantine 2 28
/java//res/
Ressources : Strings (2/2)
© Dr. Chaouche A.-C.
R.string.name
layout/
Values/
strings.xml
activity_login.xml
...
LoginActivity.java
...
@string/name
sci.iam.learnapp/
Université Constantine 2 29
Chaque élément défini dans le répertoire ./res/ impacte le fichier
R.java
référence les ressources par des constantes de type entier sur 32bits,
Exemple : 0x1A34F678
chemin : "appbuildgeneratedsourcerdebug[package]R.java"
généré automatiquement
caché par Android studio
à ne pas modifier
2 types de ressources via R.java
user-defined : (java) R.color.vert
(res) @color/vert
system-defined : (java) android.R.color.holo_green_dark
(res) @android:color/holo_green_dark
Le fichier "R.java"
© Dr. Chaouche A.-C.
Université Constantine 2 30
@+id permet d’ajouter un nouveau nom de ressource à la classe R
Identification d’une vue (1/2) – Layout
© Dr. Chaouche A.-C.
/res/layout/activity_login.xml (Text)
<?xml version="1.0" encoding="utf8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/app_name"
android:id="@+id/msgTV"/>
</LinearLayout>
Université Constantine 2 31
findViewById(int id) renvoie un objet View référencé par id
Identification d’une vue (2/2) – Activity
© Dr. Chaouche A.-C.
/java/LoginActivity.java
public class LoginActivity extends Activity {
TextView msgTextView;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
...
msgTextView = (TextView) findViewById(R.id.msgTV);
msgTextView.setText("Hello World!");
}
}
Université Constantine 2 32
Ressources : Drawables
Attributs de ImageView
© Dr. Chaouche A.-C.
android:src : @drawable/my_image
android:scaleType :
Il faut copier l'image my_image.png dans "res/drawable"
Université Constantine 2 33
Créer une activité LoginActivity
Une ImageView pour afficher une icone
Un EditText pour introduire l’identifiant
Avec son TextView
Un EditText pour introduire le mot de passe
Avec son TextView
Un Button pour vérifier l’authentification
Vérifier si les champs sont valides
TP1a : Création d’une vue d’authentification
© Dr. Chaouche A.-C.
Université Constantine 2 34
Cycle de vie d’une activité :
https://openclassrooms.com/courses/creez-des-applications-pour-android/preambule-
quelques-concepts-avances#r-2032203
https://www.youtube.com/watch?v=UJN3AL4tiqw
Types de strings :
http://mathias-seguy.developpez.com/tutoriels/android/utiliser-ressources#LII-A
Echelles d’une image :
https://robots.thoughtbot.com/android-imageview-scaletype-a-visual-guide
Quelques liens utiles
© Dr. Chaouche A.-C.
Université Constantine 2 35
Android Developer, «The Activity Lifecycle,». Lien : https://developer.
android.com/guide/components/activities/activity-lifecycle.html.
Android Developer, «References - Android Plateform API 26 : Class View,». Lien :
https://developer.android.com/reference/android/view/View.html.
Android Developer, «References - Android Plateform API 26 : Class ViewGroup,».
Lien : https://developer.android.com/reference/android/ view/ViewGroup.html.
V. Tallapudi, «Android Layouts and Types of Android Layouts,» 2014.. Lien :
https://www.coderefer.com/android-layouts-types-android-layouts/.
Android Developer, «References - Android Plateform API 26 : R,». Lien :
https://developer.android.com/reference/android/R.html.
Android Developer, «References - Android Plateform API 26 : ImageView,». Lien :
developer.android.com/reference/android/widget/ImageView.html.
A. Hill, «Android ImageView ScaleType: A Visual Guide,» 25 Août 2016. Lien :
robots.thoughtbot.com/android-imageview-scaletype-a-visual-guide.
Références
© Dr. Chaouche A.-C.

Contenu connexe

Tendances

Applications Android - cours 13 : Connectivité et services Web
Applications Android - cours 13 : Connectivité et services WebApplications Android - cours 13 : Connectivité et services Web
Applications Android - cours 13 : Connectivité et services WebAhmed-Chawki Chaouche
 
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 12 : Persistance de données SQLite
Applications Android - cours 12 : Persistance de données SQLiteApplications Android - cours 12 : Persistance de données SQLite
Applications Android - cours 12 : Persistance de données SQLiteAhmed-Chawki Chaouche
 
Cours design pattern m youssfi partie 1 introduction et pattern strategy
Cours design pattern m youssfi partie 1 introduction et pattern strategyCours design pattern m youssfi partie 1 introduction et pattern strategy
Cours design pattern m youssfi partie 1 introduction et pattern strategyENSET, Université Hassan II Casablanca
 
Correction Examen 2016-2017 POO .pdf
Correction Examen 2016-2017 POO .pdfCorrection Examen 2016-2017 POO .pdf
Correction Examen 2016-2017 POO .pdfslimyaich3
 
Correction examen-java-avancé-1
Correction examen-java-avancé-1Correction examen-java-avancé-1
Correction examen-java-avancé-1vangogue
 
Chap 6 : classes et interfaces
Chap 6 : classes et interfacesChap 6 : classes et interfaces
Chap 6 : classes et interfacesAziz Darouichi
 
Workshop spring session 2 - La persistance au sein des applications Java
Workshop spring   session 2 - La persistance au sein des applications JavaWorkshop spring   session 2 - La persistance au sein des applications Java
Workshop spring session 2 - La persistance au sein des applications JavaAntoine Rey
 
Stockage de données dans Android : Fichiers
Stockage de données dans Android : FichiersStockage de données dans Android : Fichiers
Stockage de données dans Android : FichiersLilia Sfaxi
 

Tendances (20)

Applications Android - cours 13 : Connectivité et services Web
Applications Android - cours 13 : Connectivité et services WebApplications Android - cours 13 : Connectivité et services Web
Applications Android - cours 13 : Connectivité et services Web
 
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...
 
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 POO Java Deuxième Partie
Support POO Java Deuxième PartieSupport POO Java Deuxième Partie
Support POO Java Deuxième Partie
 
Applications Android - cours 12 : Persistance de données SQLite
Applications Android - cours 12 : Persistance de données SQLiteApplications Android - cours 12 : Persistance de données SQLite
Applications Android - cours 12 : Persistance de données SQLite
 
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
 
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
 
Support Java Avancé Troisième Partie
Support Java Avancé Troisième PartieSupport Java Avancé Troisième Partie
Support Java Avancé Troisième Partie
 
Cours design pattern m youssfi partie 1 introduction et pattern strategy
Cours design pattern m youssfi partie 1 introduction et pattern strategyCours design pattern m youssfi partie 1 introduction et pattern strategy
Cours design pattern m youssfi partie 1 introduction et pattern strategy
 
Nouveautés Java 9-10-11
Nouveautés Java 9-10-11Nouveautés Java 9-10-11
Nouveautés Java 9-10-11
 
Correction Examen 2016-2017 POO .pdf
Correction Examen 2016-2017 POO .pdfCorrection Examen 2016-2017 POO .pdf
Correction Examen 2016-2017 POO .pdf
 
Cours design pattern m youssfi partie 3 decorateur
Cours design pattern m youssfi partie 3 decorateurCours design pattern m youssfi partie 3 decorateur
Cours design pattern m youssfi partie 3 decorateur
 
Correction examen-java-avancé-1
Correction examen-java-avancé-1Correction examen-java-avancé-1
Correction examen-java-avancé-1
 
Cours design pattern m youssfi partie 6 proxy
Cours design pattern m youssfi partie 6 proxyCours design pattern m youssfi partie 6 proxy
Cours design pattern m youssfi partie 6 proxy
 
Cours design pattern m youssfi partie 5 adapter
Cours design pattern m youssfi partie 5 adapterCours design pattern m youssfi partie 5 adapter
Cours design pattern m youssfi partie 5 adapter
 
Chap 6 : classes et interfaces
Chap 6 : classes et interfacesChap 6 : classes et interfaces
Chap 6 : classes et interfaces
 
Cours design pattern m youssfi partie 2 observer
Cours design pattern m youssfi partie 2 observerCours design pattern m youssfi partie 2 observer
Cours design pattern m youssfi partie 2 observer
 
Maven et industrialisation du logiciel
Maven et industrialisation du logicielMaven et industrialisation du logiciel
Maven et industrialisation du logiciel
 
Workshop spring session 2 - La persistance au sein des applications Java
Workshop spring   session 2 - La persistance au sein des applications JavaWorkshop spring   session 2 - La persistance au sein des applications Java
Workshop spring session 2 - La persistance au sein des applications Java
 
Stockage de données dans Android : Fichiers
Stockage de données dans Android : FichiersStockage de données dans Android : Fichiers
Stockage de données dans Android : Fichiers
 

Similaire à Applications Android - cours 6 : Structure d’un projet Android

Applications Android - cours 4 : Langage Java
Applications Android - cours 4 : Langage JavaApplications Android - cours 4 : Langage Java
Applications Android - cours 4 : Langage JavaAhmed-Chawki Chaouche
 
Applications Android - Cours 2 : OS mobiles
Applications Android - Cours 2 : OS mobilesApplications Android - Cours 2 : OS mobiles
Applications Android - Cours 2 : OS mobilesAhmed-Chawki Chaouche
 
Applications Android - cours 5 : Classe Object et Collections en Java
Applications Android - cours 5 : Classe Object et Collections en JavaApplications Android - cours 5 : Classe Object et Collections en Java
Applications Android - cours 5 : Classe Object et Collections en JavaAhmed-Chawki Chaouche
 
Introduction à Android
Introduction à AndroidIntroduction à Android
Introduction à AndroidYoann Gotthilf
 
Programmation Android - 09 - Web services
Programmation Android - 09 - Web servicesProgrammation Android - 09 - Web services
Programmation Android - 09 - Web servicesYann Caron
 
Alphorm.com Formation React : Les fondamentaux
Alphorm.com Formation React : Les fondamentauxAlphorm.com Formation React : Les fondamentaux
Alphorm.com Formation React : Les fondamentauxAlphorm
 
chapitre-2-les-activites.pdf
chapitre-2-les-activites.pdfchapitre-2-les-activites.pdf
chapitre-2-les-activites.pdfolfaharrabi2
 
chapitre-2-les-activites.pdf
chapitre-2-les-activites.pdfchapitre-2-les-activites.pdf
chapitre-2-les-activites.pdfferiel53
 
In01 - Programmation Android - 03 - HMI
In01 - Programmation Android - 03 - HMIIn01 - Programmation Android - 03 - HMI
In01 - Programmation Android - 03 - HMIYann Caron
 
Quelle place pour le framework Rails dans le développement d'application web
Quelle place pour le framework Rails dans le développement d'application webQuelle place pour le framework Rails dans le développement d'application web
Quelle place pour le framework Rails dans le développement d'application web5pidou
 
Play framework - Human Talks Grenoble - 12.02.2013
Play framework - Human Talks Grenoble - 12.02.2013Play framework - Human Talks Grenoble - 12.02.2013
Play framework - Human Talks Grenoble - 12.02.2013Xavier NOPRE
 
react (1)contexte appbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
react (1)contexte appbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbreact (1)contexte appbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
react (1)contexte appbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbzineblahib2
 
Activity
ActivityActivity
Activitydido
 
Programmation Android - 03 - IHM bases
Programmation Android - 03 - IHM basesProgrammation Android - 03 - IHM bases
Programmation Android - 03 - IHM basesYann Caron
 
Fork / Join, Parallel Arrays, Lambdas : la programmation parallèle (trop ?) f...
Fork / Join, Parallel Arrays, Lambdas : la programmation parallèle (trop ?) f...Fork / Join, Parallel Arrays, Lambdas : la programmation parallèle (trop ?) f...
Fork / Join, Parallel Arrays, Lambdas : la programmation parallèle (trop ?) f...Normandy JUG
 
Mise en place de l'ActionBarCompat dans vos projets Android.
Mise en place de l'ActionBarCompat dans vos projets Android.Mise en place de l'ActionBarCompat dans vos projets Android.
Mise en place de l'ActionBarCompat dans vos projets Android.Mathias Seguy
 

Similaire à Applications Android - cours 6 : Structure d’un projet Android (20)

Applications Android - cours 4 : Langage Java
Applications Android - cours 4 : Langage JavaApplications Android - cours 4 : Langage Java
Applications Android - cours 4 : Langage Java
 
Applications Android - Cours 2 : OS mobiles
Applications Android - Cours 2 : OS mobilesApplications Android - Cours 2 : OS mobiles
Applications Android - Cours 2 : OS mobiles
 
Applications Android (Planning)
Applications Android (Planning)Applications Android (Planning)
Applications Android (Planning)
 
Applications Android - cours 5 : Classe Object et Collections en Java
Applications Android - cours 5 : Classe Object et Collections en JavaApplications Android - cours 5 : Classe Object et Collections en Java
Applications Android - cours 5 : Classe Object et Collections en Java
 
Introduction à Android
Introduction à AndroidIntroduction à Android
Introduction à Android
 
Programmation Android - 09 - Web services
Programmation Android - 09 - Web servicesProgrammation Android - 09 - Web services
Programmation Android - 09 - Web services
 
Alphorm.com Formation React : Les fondamentaux
Alphorm.com Formation React : Les fondamentauxAlphorm.com Formation React : Les fondamentaux
Alphorm.com Formation React : Les fondamentaux
 
chapitre-2-les-activites.pdf
chapitre-2-les-activites.pdfchapitre-2-les-activites.pdf
chapitre-2-les-activites.pdf
 
chapitre-2-les-activites.pdf
chapitre-2-les-activites.pdfchapitre-2-les-activites.pdf
chapitre-2-les-activites.pdf
 
Android introvf
Android introvfAndroid introvf
Android introvf
 
Android2017 cours2
Android2017 cours2Android2017 cours2
Android2017 cours2
 
In01 - Programmation Android - 03 - HMI
In01 - Programmation Android - 03 - HMIIn01 - Programmation Android - 03 - HMI
In01 - Programmation Android - 03 - HMI
 
Quelle place pour le framework Rails dans le développement d'application web
Quelle place pour le framework Rails dans le développement d'application webQuelle place pour le framework Rails dans le développement d'application web
Quelle place pour le framework Rails dans le développement d'application web
 
Play framework - Human Talks Grenoble - 12.02.2013
Play framework - Human Talks Grenoble - 12.02.2013Play framework - Human Talks Grenoble - 12.02.2013
Play framework - Human Talks Grenoble - 12.02.2013
 
react (1)contexte appbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
react (1)contexte appbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbreact (1)contexte appbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
react (1)contexte appbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
 
Activity
ActivityActivity
Activity
 
Programmation Android - 03 - IHM bases
Programmation Android - 03 - IHM basesProgrammation Android - 03 - IHM bases
Programmation Android - 03 - IHM bases
 
Fork / Join, Parallel Arrays, Lambdas : la programmation parallèle (trop ?) f...
Fork / Join, Parallel Arrays, Lambdas : la programmation parallèle (trop ?) f...Fork / Join, Parallel Arrays, Lambdas : la programmation parallèle (trop ?) f...
Fork / Join, Parallel Arrays, Lambdas : la programmation parallèle (trop ?) f...
 
Les Activités.pdf
Les Activités.pdfLes Activités.pdf
Les Activités.pdf
 
Mise en place de l'ActionBarCompat dans vos projets Android.
Mise en place de l'ActionBarCompat dans vos projets Android.Mise en place de l'ActionBarCompat dans vos projets Android.
Mise en place de l'ActionBarCompat dans vos projets Android.
 

Dernier

SciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdfSKennel
 
Bibdoc 2024 - Ecologie du livre et creation de badge.pdf
Bibdoc 2024 - Ecologie du livre et creation de badge.pdfBibdoc 2024 - Ecologie du livre et creation de badge.pdf
Bibdoc 2024 - Ecologie du livre et creation de badge.pdfBibdoc 37
 
Presentation de la plateforme Moodle - avril 2024
Presentation de la plateforme Moodle - avril 2024Presentation de la plateforme Moodle - avril 2024
Presentation de la plateforme Moodle - avril 2024Gilles Le Page
 
Bibdoc 2024 - Les maillons de la chaine du livre face aux enjeux écologiques.pdf
Bibdoc 2024 - Les maillons de la chaine du livre face aux enjeux écologiques.pdfBibdoc 2024 - Les maillons de la chaine du livre face aux enjeux écologiques.pdf
Bibdoc 2024 - Les maillons de la chaine du livre face aux enjeux écologiques.pdfBibdoc 37
 
PIE-A2-P 5- Supports stagiaires.pptx.pdf
PIE-A2-P 5- Supports stagiaires.pptx.pdfPIE-A2-P 5- Supports stagiaires.pptx.pdf
PIE-A2-P 5- Supports stagiaires.pptx.pdfRiDaHAziz
 
Pas de vagues. pptx Film français
Pas de vagues.  pptx      Film   françaisPas de vagues.  pptx      Film   français
Pas de vagues. pptx Film françaisTxaruka
 
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...Faga1939
 
PIE-A2-P4-support stagiaires sept 22-validé.pdf
PIE-A2-P4-support stagiaires sept 22-validé.pdfPIE-A2-P4-support stagiaires sept 22-validé.pdf
PIE-A2-P4-support stagiaires sept 22-validé.pdfRiDaHAziz
 
SciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdf
SciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdfSciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdf
SciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdfSKennel
 
SciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdfSKennel
 
SciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdfSKennel
 
SciencesPo_Aix_InnovationPédagogique_Bilan.pdf
SciencesPo_Aix_InnovationPédagogique_Bilan.pdfSciencesPo_Aix_InnovationPédagogique_Bilan.pdf
SciencesPo_Aix_InnovationPédagogique_Bilan.pdfSKennel
 
Bernard Réquichot.pptx Peintre français
Bernard Réquichot.pptx   Peintre françaisBernard Réquichot.pptx   Peintre français
Bernard Réquichot.pptx Peintre françaisTxaruka
 
Le Lean sur une ligne de production : Formation et mise en application directe
Le Lean sur une ligne de production : Formation et mise en application directeLe Lean sur une ligne de production : Formation et mise en application directe
Le Lean sur une ligne de production : Formation et mise en application directeXL Groupe
 
Zotero avancé - support de formation doctorants SHS 2024
Zotero avancé - support de formation doctorants SHS 2024Zotero avancé - support de formation doctorants SHS 2024
Zotero avancé - support de formation doctorants SHS 2024Alain Marois
 
Pharmacologie des cardiotoniques pour Pharmacie
Pharmacologie des cardiotoniques pour PharmaciePharmacologie des cardiotoniques pour Pharmacie
Pharmacologie des cardiotoniques pour PharmacieLoloshka
 
Cours de Management des Systèmes d'information
Cours de Management des Systèmes d'informationCours de Management des Systèmes d'information
Cours de Management des Systèmes d'informationpapediallo3
 

Dernier (18)

SciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_EtudiantActeur.pdf
 
Bibdoc 2024 - Ecologie du livre et creation de badge.pdf
Bibdoc 2024 - Ecologie du livre et creation de badge.pdfBibdoc 2024 - Ecologie du livre et creation de badge.pdf
Bibdoc 2024 - Ecologie du livre et creation de badge.pdf
 
DO PALÁCIO À ASSEMBLEIA .
DO PALÁCIO À ASSEMBLEIA                 .DO PALÁCIO À ASSEMBLEIA                 .
DO PALÁCIO À ASSEMBLEIA .
 
Presentation de la plateforme Moodle - avril 2024
Presentation de la plateforme Moodle - avril 2024Presentation de la plateforme Moodle - avril 2024
Presentation de la plateforme Moodle - avril 2024
 
Bibdoc 2024 - Les maillons de la chaine du livre face aux enjeux écologiques.pdf
Bibdoc 2024 - Les maillons de la chaine du livre face aux enjeux écologiques.pdfBibdoc 2024 - Les maillons de la chaine du livre face aux enjeux écologiques.pdf
Bibdoc 2024 - Les maillons de la chaine du livre face aux enjeux écologiques.pdf
 
PIE-A2-P 5- Supports stagiaires.pptx.pdf
PIE-A2-P 5- Supports stagiaires.pptx.pdfPIE-A2-P 5- Supports stagiaires.pptx.pdf
PIE-A2-P 5- Supports stagiaires.pptx.pdf
 
Pas de vagues. pptx Film français
Pas de vagues.  pptx      Film   françaisPas de vagues.  pptx      Film   français
Pas de vagues. pptx Film français
 
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
 
PIE-A2-P4-support stagiaires sept 22-validé.pdf
PIE-A2-P4-support stagiaires sept 22-validé.pdfPIE-A2-P4-support stagiaires sept 22-validé.pdf
PIE-A2-P4-support stagiaires sept 22-validé.pdf
 
SciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdf
SciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdfSciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdf
SciencesPo_Aix_InnovationPédagogique_Conférence_SK.pdf
 
SciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_FormationRecherche.pdf
 
SciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdfSciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdf
SciencesPo_Aix_InnovationPédagogique_Atelier_IA.pdf
 
SciencesPo_Aix_InnovationPédagogique_Bilan.pdf
SciencesPo_Aix_InnovationPédagogique_Bilan.pdfSciencesPo_Aix_InnovationPédagogique_Bilan.pdf
SciencesPo_Aix_InnovationPédagogique_Bilan.pdf
 
Bernard Réquichot.pptx Peintre français
Bernard Réquichot.pptx   Peintre françaisBernard Réquichot.pptx   Peintre français
Bernard Réquichot.pptx Peintre français
 
Le Lean sur une ligne de production : Formation et mise en application directe
Le Lean sur une ligne de production : Formation et mise en application directeLe Lean sur une ligne de production : Formation et mise en application directe
Le Lean sur une ligne de production : Formation et mise en application directe
 
Zotero avancé - support de formation doctorants SHS 2024
Zotero avancé - support de formation doctorants SHS 2024Zotero avancé - support de formation doctorants SHS 2024
Zotero avancé - support de formation doctorants SHS 2024
 
Pharmacologie des cardiotoniques pour Pharmacie
Pharmacologie des cardiotoniques pour PharmaciePharmacologie des cardiotoniques pour Pharmacie
Pharmacologie des cardiotoniques pour Pharmacie
 
Cours de Management des Systèmes d'information
Cours de Management des Systèmes d'informationCours de Management des Systèmes d'information
Cours de Management des Systèmes d'information
 

Applications Android - cours 6 : Structure d’un projet Android

  • 1. Université Constantine 2 Dr. CHAOUCHE A.-C. Faculté des nouvelles technologies ahmed.chaouche@univ-constantine2.dz – Cours 6 – Chapitre 5 : Structure d’un projet Android (1/2) 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 6 – Chapitre 5 : Structure d’un projet Android (1/2)
  • 3. Université Constantine 2 3 Prérequis Maîtrise de Android Studio Objectifs du cours Savoir organiser un projet Android Comprendre le cycle de vie d’une activité Résumé © Dr. Chaouche A.-C.
  • 4. Université Constantine 2 4 Application Name : LearnApp Compagny Domain : iam.sci Package: sci.iam.learnapp Project location : D:androidprojects Création d’un nouveau projet © Dr. Chaouche A.-C.
  • 5. Université Constantine 2 5 Structure d’un projet © Dr. Chaouche A.-C. Fichiers java Ressources organisées (texte, …) Manifest Gradle
  • 6. Université Constantine 2 6 Décrit les composants de l’application Définit le point d’entrée potentiel de l’application (activity main) Quatre types de composants Activités (activities) Services (services) Fournisseurs de contenu (content providers) Récepteurs de diffusion (broadcast receivers) Décrit les permissions requises par l’application Accès a l’Internet, lecture-écriture dans la liste de contacts, Géo-localisation, . . . Décrit les besoins matériels et logiciels de l’application Appareil photo, bluetooth, ecran multi-touch, . . . "AndroidManifest.xml" (1/2) © Dr. Chaouche A.-C.
  • 7. Université Constantine 2 7 Fichier XML obligatoire, à la racine du projet <manifest> et <application> sont obligatoires category.LAUNCHER : point d’entrée de l'application "AndroidManifest.xml" (2/2) © Dr. Chaouche A.-C. /manifests/AndroidManifest.xml <manifest> <application> <activity android:name=".LoginActivity" android:label="@string/app_name"> <intentfilter> <action android:name="android.intent.action.MAIN"/> <category android:name="android.intent.category.LAUNCHER"/> </intentfilter> </activity> </application> </manifest>
  • 8. Université Constantine 2 8 Une activité = un écran graphique définie dans ./java/ souvent c’est un cas d'utilisation UML contrôle les éléments définis par du code Java Hérite de android.app.Activity ou android.support.v7.app.AppCompatActivity; Interface graphique (IHM) associé à une vue (./res/layout/) certains éléments (texte, dimension, couleur) sont définis dans ./res/values Activité © Dr. Chaouche A.-C.
  • 9. Université Constantine 2 9 Activité Cycle de vie (1/2) © Dr. Chaouche A.-C. Méthodes callback : void onCreate(...) void onStart() void onRestart() void onResume() void onPause() void onStop() void onDestroy() Le changement d’état d’une activité provoque le déclenchement de la méthode callback correspondante.
  • 10. Université Constantine 2 10 Activité Cycle de vie (2/2) – Explication © Dr. Chaouche A.-C. LearnApp Cycle de vie de Activity 1
  • 11. Université Constantine 2 11 Activité Cycle de vie (2/2) – Explication © Dr. Chaouche A.-C. 1 2 3 4 This is Activity 1 Cycle de vie de Activity 15
  • 12. Université Constantine 2 12 Activité Cycle de vie (2/2) – Explication © Dr. Chaouche A.-C. 1 2 3 4 5 This is Activity 1 Cycle de vie de Activity 1
  • 13. Université Constantine 2 13 Activité Cycle de vie (2/2) – Explication © Dr. Chaouche A.-C. 2 3 1 This is Activity 1 Cycle de vie de Activity 1
  • 14. Université Constantine 2 14 Activité Cycle de vie (2/2) – Explication © Dr. Chaouche A.-C. 23 4 5 1 This is Activity 2 Cycle de vie de Activity 1
  • 15. Université Constantine 2 15 Activité Cycle de vie (2/2) – Explication © Dr. Chaouche A.-C. 1 2 3 This is Activity 1 Cycle de vie de Activity 1
  • 16. Université Constantine 2 16 Activité Cycle de vie (2/2) – Explication © Dr. Chaouche A.-C. 1 34 5 6 2 LearnApp Cycle de vie de Activity 1
  • 17. Université Constantine 2 17 Activité Cycle de vie (2/2) – Explication © Dr. Chaouche A.-C. 1 2 3 4 5 7 8 9 10 6 This is Activity 1 Cycle de vie de Activity 1
  • 18. Université Constantine 2 18 This is Activity 1 Activité Cycle de vie (2/2) – Explication © Dr. Chaouche A.-C. 1 3 5 6 4 LearnApp 2 Cycle de vie de Activity 1 Partage d’écran (supporté depuis Android 7.0)
  • 19. Université Constantine 2 19 Pour chaque méthode callback, appeler la méthode sur super Exemple : dans onCreate(), appel à super.onCreate() Le Bundle mémorise l'état de l’activité lorsqu'elle passe en arrière-plan Activité Exemple © Dr. Chaouche A.-C. /java/LoginActivity.java import android.app.Activity; public class LoginActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); ... } @Override protected void onDestroy() { super.onDestroy(); } }
  • 20. Université Constantine 2 20 setContentView(int layout) associe à l'activité un Layout référencé par layout Activité Association d’un layout © Dr. Chaouche A.-C. /java/LoginActivity.java public class LoginActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_login); ... } ... }
  • 21. Université Constantine 2 21 Types de ressources : Layouts et menus Icones et images Valeurs (values) : strings, attrs, styles, colors, dimens, … Ressources "./res/" © Dr. Chaouche A.-C. Interfaces graphiques Images Valeurs constantes Icones
  • 22. Université Constantine 2 22 Description Déclarative (Fichiers XML dans le répertoire ./res/layout/) Ou directement dans le code java Widget Composant élémentaire Instance de la classe View Sensible aux événements Exemples : Button, EditText, TextView, CheckBox Layout Conteneur de vues Instance de la classe ViewGroup Exemples : LinearLayout, TableLayout, RelativeLayout, FrameLayout, ScrollView Ressources : Layouts © Dr. Chaouche A.-C.
  • 23. Université Constantine 2 23 Ressources : Layouts Types de ViewGroup (1/2) © Dr. Chaouche A.-C. LinearLayout RelativeLayout WebView GridLayout FrameLayout AbsoluteLayout
  • 24. Université Constantine 2 24 Ressources : Layouts Types de ViewGroup (2/2) © Dr. Chaouche A.-C. DrawerLayout CoordinatorLayout SwipeRefreshLayout SlidingPaneLayout TableLayout TabLayout-ViewPager
  • 25. Université Constantine 2 25 Ressources : Layouts Exemple d'un layout © Dr. Chaouche A.-C. /res/layout/activity_login.xml (Text) <?xml version="1.0" encoding="utf8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/... android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Hello World!" /> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Constantine 2" /> </LinearLayout>
  • 26. Université Constantine 2 26 Ressources : Layouts Attributs de LinearLayout © Dr. Chaouche A.-C. orientation : vertical | horizontal layout_width et layout_height : Valeur constante : en dp ou px wrap_content : place minimum match_parent : taille du parent gravity : top, bottom, left, right, center, … padding et margin : en dp ou px
  • 27. Université Constantine 2 27 Exploitation dans res (fichiers XML : layout, styles, …) : @string/app_name Exploitation dans java (code source) : R.string.app_name Accès à la ressource : getResources().getString(R.string.app_name); Ressources : Strings (1/2) © Dr. Chaouche A.-C. /res/values/strings.xml <?xml version="1.0" encoding="utf8"?> <resources> <string name="app_name"> LearnApp </string> ... </resources>
  • 28. Université Constantine 2 28 /java//res/ Ressources : Strings (2/2) © Dr. Chaouche A.-C. R.string.name layout/ Values/ strings.xml activity_login.xml ... LoginActivity.java ... @string/name sci.iam.learnapp/
  • 29. Université Constantine 2 29 Chaque élément défini dans le répertoire ./res/ impacte le fichier R.java référence les ressources par des constantes de type entier sur 32bits, Exemple : 0x1A34F678 chemin : "appbuildgeneratedsourcerdebug[package]R.java" généré automatiquement caché par Android studio à ne pas modifier 2 types de ressources via R.java user-defined : (java) R.color.vert (res) @color/vert system-defined : (java) android.R.color.holo_green_dark (res) @android:color/holo_green_dark Le fichier "R.java" © Dr. Chaouche A.-C.
  • 30. Université Constantine 2 30 @+id permet d’ajouter un nouveau nom de ressource à la classe R Identification d’une vue (1/2) – Layout © Dr. Chaouche A.-C. /res/layout/activity_login.xml (Text) <?xml version="1.0" encoding="utf8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@string/app_name" android:id="@+id/msgTV"/> </LinearLayout>
  • 31. Université Constantine 2 31 findViewById(int id) renvoie un objet View référencé par id Identification d’une vue (2/2) – Activity © Dr. Chaouche A.-C. /java/LoginActivity.java public class LoginActivity extends Activity { TextView msgTextView; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_login); ... msgTextView = (TextView) findViewById(R.id.msgTV); msgTextView.setText("Hello World!"); } }
  • 32. Université Constantine 2 32 Ressources : Drawables Attributs de ImageView © Dr. Chaouche A.-C. android:src : @drawable/my_image android:scaleType : Il faut copier l'image my_image.png dans "res/drawable"
  • 33. Université Constantine 2 33 Créer une activité LoginActivity Une ImageView pour afficher une icone Un EditText pour introduire l’identifiant Avec son TextView Un EditText pour introduire le mot de passe Avec son TextView Un Button pour vérifier l’authentification Vérifier si les champs sont valides TP1a : Création d’une vue d’authentification © Dr. Chaouche A.-C.
  • 34. Université Constantine 2 34 Cycle de vie d’une activité : https://openclassrooms.com/courses/creez-des-applications-pour-android/preambule- quelques-concepts-avances#r-2032203 https://www.youtube.com/watch?v=UJN3AL4tiqw Types de strings : http://mathias-seguy.developpez.com/tutoriels/android/utiliser-ressources#LII-A Echelles d’une image : https://robots.thoughtbot.com/android-imageview-scaletype-a-visual-guide Quelques liens utiles © Dr. Chaouche A.-C.
  • 35. Université Constantine 2 35 Android Developer, «The Activity Lifecycle,». Lien : https://developer. android.com/guide/components/activities/activity-lifecycle.html. Android Developer, «References - Android Plateform API 26 : Class View,». Lien : https://developer.android.com/reference/android/view/View.html. Android Developer, «References - Android Plateform API 26 : Class ViewGroup,». Lien : https://developer.android.com/reference/android/ view/ViewGroup.html. V. Tallapudi, «Android Layouts and Types of Android Layouts,» 2014.. Lien : https://www.coderefer.com/android-layouts-types-android-layouts/. Android Developer, «References - Android Plateform API 26 : R,». Lien : https://developer.android.com/reference/android/R.html. Android Developer, «References - Android Plateform API 26 : ImageView,». Lien : developer.android.com/reference/android/widget/ImageView.html. A. Hill, «Android ImageView ScaleType: A Visual Guide,» 25 Août 2016. Lien : robots.thoughtbot.com/android-imageview-scaletype-a-visual-guide. Références © Dr. Chaouche A.-C.