SlideShare une entreprise Scribd logo
1  sur  196
Formation Programmer des applications mobiles avec Kotlin
Introduction à l’univers d’Android
Préparée par:
Jérôme Clament-Sanz
Formateur Expert Android
Formation Programmer des applications mobiles avec Kotlin
Histoire d’Android
2003 : Naissance du projet Android
2005 : Racheté par Google
Janvier 2007 : Annonce de l’iPhone
Novembre 2007 : Création de l’Open Handset Alliance
Fin 2010 : Android devient l’OS mobile le plus utilisé au monde
Formation Programmer des applications mobiles avec Kotlin
Philosophie et avantages d’Android
Open Source
Gratuit (ou presque)
Facile à développer
Facile à vendre
Flexible
3/4 du marché des smartphones
Formation Programmer des applications mobiles avec Kotlin
Parts de marché des OS mobiles
1eme trimestre 2012 :
Android : 59,1 %
iOS : 22,9 %
BlackBerry OS : 6,3 %
Windows Phone : 2,1 %
Autres : 9,6 %
3eme trimestre 2016 :
Android : 87,8 %
iOS : 11,5 %
BlackBerry OS : 0,1 %
Windows Phone : 0,4 %
Autres : 0,2 %
Formation Programmer des applications mobiles avec Kotlin
Android dans le temps
Android 1.O et 1.1
Android 1.5 (CupCake)
Android 1.6 (Donut)
Android 2.0 et 2.1 (Eclair)
Android 2.2 et 2.3 (Froyo et Gingerbread)
Android 3.0 (Honeycomb)
Android 4.0 (Ice Cream Sandwich)
Android 4.1, 4.2, 4.3 et 4.4 (Jelly Bean / KitKat)
Android 5.0, 5.0.1, 5.0.2 et 5.1 (Lollipop)
Android 6.0 (Marshmallow)
Android 7.0 (Nougat)
Android 8.0 (O)
Formation Programmer des applications mobiles avec Kotlin
Conditions initiales
Pour tout le monde :
4 Go de mémoire RAM (idéalement plus de 8 Go)
Plus de 3 Go d'espace disque
Niveau processeur, l'émulation ne peut se faire que sur 1 cœur de votre
processeur, donc augmenter le nombre de cœurs ne vous servira pas à
grand-chose. C'est vraiment la puissance pure qui compte. Il n'y a donc pas
de minima mais le plus rapide sera le mieux
Spécificités par OS
Windows : Vista ou plus récent
Mac OS : Mac OS 10.8.5 ou plus récent
Linux : bibliothèque GNU C (glibc) version 2.15 ou plus récent
Formation Programmer des applications mobiles avec Kotlin
Installation des outils
Seulement 2 choses :
Java Development Kit (JDK)
Environnement de développement Android Studio 3
Formation Programmer des applications mobiles avec Kotlin
Configuration du terminal
Sous Windows
Soit télécharger les drivers du terminal sur le site du constructeur :
Liste des sites : https://developer.android.com/studio/run/oem-usb.html#Drivers
Soit utiliser un pilote générique :
android-sdkextrasgoogleusb_driver
Sous Mac OS
Rien à faire :-)
Sous Linux
Ajouter au gestionnaire de périphériques une règle spécifique par appareil relié
Formation Programmer des applications mobiles avec Kotlin
Configuration du téléphone
Par étapes :
1.Accéder aux paramètres du téléphone
2.Aller dans « sécurité »
3.Activer « sources inconnues »
4.Retourner au menu principal des paramètres du téléphone
5.Aller dans « à propos du téléphone »
6.Tout en bas, appuyer 7 fois sur « numéro de build »
7.Retourner à nouveau dans le menu principal des paramètres du téléphone
8.Aller dans la nouvelle catégorie « options pour les développeurs »
9.Activer le « débogage USB »
Formation Programmer des applications mobiles avec Kotlin
Kotlin VS Java
Préparée par:
Jérôme Clament-Sanz
Formateur Expert Android
Formation Programmer des applications mobiles avec Kotlin
Qu’est-ce que Kotlin ?
• Kotlin est un langage de programmation orienté objet et fonctionnel, avec un
typage statique qui permet de compiler pour la Machine virtuelle Java et JavaScript
• Kotlin ne nécessite en aucun cas de réécrire l’ensemble des applications
• Kotlin est également un langage robuste et éprouvé
Formation Programmer des applications mobiles avec Kotlin
Qu’offre Kotlin ?
• langage plus riche
• Flexible
• Concis
Formation Programmer des applications mobiles avec Kotlin
Quel avenir pour Java et C/C++ sur Android ?
• Le support de Java, C et C++ sera le même qu’aujourd’hui
• Kotlin est simplement un nouveau langage supporté.
Formation Programmer des applications mobiles avec Kotlin
Classes
Formation Programmer des applications mobiles avec Kotlin
Variables
Formation Programmer des applications mobiles avec Kotlin
Constructeurs
Formation Programmer des applications mobiles avec Kotlin
Ajouter des méthodes
Formation Programmer des applications mobiles avec Kotlin
Extensions
Formation Programmer des applications mobiles avec Kotlin
Créer une méthode simple
Formation Programmer des applications mobiles avec Kotlin
Conditions
Formation Programmer des applications mobiles avec Kotlin
Boucles
Formation Programmer des applications mobiles avec Kotlin
String Templates
Formation Programmer des applications mobiles avec Kotlin
Environnement de développement
Préparée par:
Jérôme Clament-Sanz
Formateur Expert Android
Formation Programmer des applications mobiles avec Kotlin
Création d’un projet
Premier écran
Application Name :
Nom qui apparaîtra sur l'appareil et sur Google Play
Company Domain :
Identifiant de l’application (ne peut être changé une fois l’app publiée)
Project Location :
Emplacement où les fichiers du projet seront créés
Deuxième écran
Sélection de l’API
Troisième écran
Création de la première Activity
Dernier écran
Informations sur la première activité de notre application
Formation Programmer des applications mobiles avec Kotlin
Composition d’un projet Android
Dossier « java »
Dossier « res » (ressources)
layout
drawable
values
Config :
AndroidManifest.xml
build.gradle
Formation Programmer des applications mobiles avec Kotlin
Android Manifest
Formation Programmer des applications mobiles avec Kotlin
build.gradle
Formation Programmer des applications mobiles avec Kotlin
Dossier « values »
strings.xml :
colors.xml :
dimens.xml :
Formation Programmer des applications mobiles avec Kotlin
Compiler et lancer son app
Formation Programmer des applications mobiles avec Kotlin
Logs
Formation Programmer des applications mobiles avec Kotlin
Debug
Formation Programmer des applications mobiles avec Kotlin
Inspecter son code
Formation Programmer des applications mobiles avec Kotlin
Android Virtual Device Manager
AVD Manager permet d’émuler des devices Android
Il est possible de choisir des modèles existants ou de créer son propre modèle
Formation Programmer des applications mobiles avec Kotlin
SDK Manager
Formation Programmer des applications mobiles avec Kotlin
Les Layouts
Préparée par:
Jérôme Clament-Sanz
Formateur Expert Android
Formation Programmer des applications mobiles avec Kotlin
Différents types de Layout
LinearLayout
Layout avec orientation unique (horizontal et vertical)
RelativeLayout
Layout avec positionnement des éléments
GridLayout
Position des éléments dans un tableau
FrameLayout
Elément unique
CoordinatorLayout
Layout avec dépendance entre les éléments
ConstraintLayout
Équivalent au RelativeLayout mais plus flexible et plus simple
Formation Programmer des applications mobiles avec Kotlin
LinearLayout
Formation Programmer des applications mobiles avec Kotlin
RelativeLayout
Formation Programmer des applications mobiles avec Kotlin
GridLayout
Formation Programmer des applications mobiles avec Kotlin
Coordinator Layout
Formation Programmer des applications mobiles avec Kotlin
Constraint Layout
Formation Programmer des applications mobiles avec Kotlin
Les éléments dans un layout
TextView
EditText
Button
RadioButton
CheckBox
AutoCompleteTextView
et beaucoup d’autres…
Formation Programmer des applications mobiles avec Kotlin
TextView
Formation Programmer des applications mobiles avec Kotlin
EditText
Formation Programmer des applications mobiles avec Kotlin
Button
Formation Programmer des applications mobiles avec Kotlin
Les attributs des éléments de layout
Id
Width / Height
WeightSum et Weight
Margin / Padding
Gravity
Visibility
Src
Text
Color
etc…
Formation Programmer des applications mobiles avec Kotlin
Id
Définir un id permet d’utiliser un élément depuis un Layout ou
depuis une classe Java
Un id se défini de cette manière : @+id/nom_id
Exemple avec la création d’une TextView qui a pour id textview_hello :
En Java, on devait récupérer notre TextView grâce à son id pour
ensuite l’utiliser pour changer son texte par exemple :
En Kotlin, on a qu’à faire :
Formation Programmer des applications mobiles avec Kotlin
Widht / Height
Les attributs widht et
height définissent la
longueur et largeur d’un
élément
Il y a plusieurs possibilités :
match_parent : prend toute
la taille du layout parent
wrap_content : prend toute
la taille du contenu de
l’élément
taille fixe (en dp / px / in /
mm / pt)
Formation Programmer des applications mobiles avec Kotlin
WeightSum et Weight
Formation Programmer des applications mobiles avec Kotlin
Margin et Padding
Formation Programmer des applications mobiles avec Kotlin
Include
Les include permettent d’insérer le contenu d’un Layout dans un
autre Layout.
Il est possible de donner un id à son include
Il est aussi possible de définir la longueur et la largeur d’un include
Formation Programmer des applications mobiles avec Kotlin
Exercice : les Layouts
Préparée par:
Jérôme Clament-Sanz
Formateur Expert Android
Formation Programmer des applications mobiles avec Kotlin
Le but de l’exercice
Comprendre comment fonctionnent les Layouts : Relative et Linear
Réussir à positionner des éléments dans des Layouts
Compiler une app sur Android
Réussir à lancer son app depuis un émulateur ou un smartphone
Formation Programmer des applications mobiles avec Kotlin
Énoncé
Réaliser le même Layout qu’à gauche :
- Il doit être divisé en 2 parties de
tailles égales
- La partie du haut doit contenir le
texte « BONJOUR » centré au milieu de
cette partie.
- La partie du haut doit avoir une
couleur de fond au choix.
- La partie du bas doit contenir 3
boutons (« BOUTON 1 », « BOUTON 2 »
et « BOUTON 3 »). Ces boutons doivent
être centrés au milieu de cette
partie.
Formation Programmer des applications mobiles avec Kotlin
Les Chaînes de caractère
Préparée par:
Jérôme Clament-Sanz
Formateur Expert Android
Formation Programmer des applications mobiles avec Kotlin
Exemple avec une TextView
Formation Programmer des applications mobiles avec Kotlin
Extraction de la chaîne de caractères
Formation Programmer des applications mobiles avec Kotlin
Résultat
Formation Programmer des applications mobiles avec Kotlin
Translation Editor
Formation Programmer des applications mobiles avec Kotlin
Les Activitys
Préparée par:
Jérôme Clament-Sanz
Formateur Expert Android
Formation Programmer des applications mobiles avec Kotlin
Qu’est ce qu’une Activity ?
Formation Programmer des applications mobiles avec Kotlin
Activity, Context et Interface Graphique
Formation Programmer des applications mobiles avec Kotlin
Pile d’activités
Formation Programmer des applications mobiles avec Kotlin
Cycle de vie d’une activité
onCreate
méthode d'initialisation des vues, des paramètres et autres données.
onStart
appelée quand l'activité est rendue visible à l'utilisateur.
onRestart
appelée à un nouveau démarrage de la même activité (quand l'activité était arrêtée)
onResume
appelée quand l'activité commence à interagir avec l'utilisateur.
onPause
méthode qui sert à arrêter une activité temporairement.
onStop
appelée quand l'activité n'est plus visible à l'utilisateur, soit à cause d'une nouvelle
activité lancée, soit parce que l'activité en cours s'apprête à être détruite.
onDestroy
est invoquée quand l'activité est détruite par la méthode finish() ou quand le système
décide de tuer l'activité pour économiser de l'espace.
Formation Programmer des applications mobiles avec Kotlin
Cycle de vie d’une activité
Formation Programmer des applications mobiles avec Kotlin
Cycle de vie d’une activité
Formation Programmer des applications mobiles avec Kotlin
Context
Référence à des ressources gérées par l'application, des informations
sur le système et accès à des services d'Android.
Est employé pour lancer une nouvelle activité, réceptionner les
intentions ou écouter les événements. Exemples :
création de nouveaux objets (TextView, Adapter...)
accès à des ressources (String, Array...)
accès implicite à des components, par
exemple getContext().getContentResolver()
Comment récupérer le contexte ?
getApplicationContext()
getContext()
getBaseContext()
this (disponible uniquement depuis une activité)
Formation Programmer des applications mobiles avec Kotlin
Intent
Permet de naviguer entre les écrans (d’une Activity à une autre)
On distingue deux types d'intention :
explicite : on spécifie le nom de l’activité à invoquer.
implicite : on ne sait pas quelle activité doit être invoquée : Android se
charge de trouver l'activité adéquate à lancer (exemple : pour un site web, il
va lancer un des navigateurs disponibles).
Passage de MainActivity() à NextActivity() :
Formation Programmer des applications mobiles avec Kotlin
Bundle
Envoyer un extra de type int à une autre Activity :
Recevoir un int dans l’autre Activity :
Le Bundle est une instance de classe passée en paramètre dans
la méthode onCreate().
Cette classe est une sorte de conteneur pour les données
transmissibles d'une activité à l'autre. Elle permet de récupérer
tout type de données :
String, long, char, ArrayList, etc…
Formation Programmer des applications mobiles avec Kotlin
Un exemple c’est toujours mieux :)
MainActivity.java :
NextActivity.java :
Structure du projet :
Formation Programmer des applications mobiles avec Kotlin
Les Activity : exercice
Préparée par:
Jérôme Clament-Sanz
Formateur Expert Android
Formation Programmer des applications mobiles avec Kotlin
Le but de l’exercice
Comprendre comment fonctionnent les Activity
Savoir passer d’une Activity à une autre
Passer des paramètres à une Activity à une autre
Formation Programmer des applications mobiles avec Kotlin
Énoncé
Réaliser une application qui contient 2 Activity.
Il doit y avoir un log sur chaque cycles de l’Activity principale :
• onCreate
• onStop
• onStart
• etc…
La première Activity doit proposer à l’utilisateur de rentrer son login et mot
de passe.
Il pourra ensuite cliquer sur un bouton de validation qui lance la seconde
Activity.
Dans cette seconde Activity, une TextView doit afficher son login.
Formation Programmer des applications mobiles avec Kotlin
Les Intents Implicites
Préparée par:
Jérôme Clament-Sanz
Formateur Expert Android
Formation Programmer des applications mobiles avec Kotlin
Intent implicite
Un Intent implicite permet de laisser le soin à Android de chercher
l’app la plus adaptée pour notre action.
Par exemple :
Ouvrir un URL
Envoyer un SMS
Partager quelque chose
Écouter une musique
Scanner un code-bar
Etc.
Formation Programmer des applications mobiles avec Kotlin
Uniform Resource Identifier (URI)
Une URI est une chaîne de caractère respectant une norme et permettant d’identifier une
ressource sur un réseau de manière permanente, même si cette ressource est déplacée ou
supprimée. L’URL est une URI pour les ressources disponibles sur Internet, au même titre
que l’ISBN est une URI pour les livres puisqu’il s’agit de l’identifiant unique d’un livre.
Formation Programmer des applications mobiles avec Kotlin
Exemples URI
ftp://ftp.is.co.za/rfc/rfc1808.txt [archive] : protocole FTP pour le service File Transfer Protocol
http://www.math.uio.no/faq/compression-faq/part1.html [archive] : protocole HTTP pour le
service Hypertext Transfer Protocol
mailto:mduerst@ifi.unizh.ch [archive] : protocole mailto pour les adresses électroniques
news:comp.infosystems.www.servers.unix [archive] : protocole news pour les newsgroups Usenet
telnet://melvyl.ucop.edu/ [archive] : protocole telnet pour les services interactifs via telnet
irc://irc.freenode.net/ubuntu-fr [archive] : protocole IRC pour le service Internet Relay Chat
ssh://utilisateur@example.com [archive] : protocole SSH pour le service Secure shell
sftp://utilisateur@example.com [archive] : protocole SFTP pour le service SSH file transfer protocol
http://example.org/URI/absolu/avec/chemin/absolu/vers/une/ressource [archive]
/URI/relatif/avec/chemin/absolu/vers/une/ressource
chemin/relatif/vers/une/ressource
../../../ressource
./ressource#fragment
ressource
#fragment
Formation Programmer des applications mobiles avec Kotlin
Ouvrir le navigateur
Formation Programmer des applications mobiles avec Kotlin
Envoyer un SMS
Formation Programmer des applications mobiles avec Kotlin
Envoyer un Email
Formation Programmer des applications mobiles avec Kotlin
Les Fragments
Préparée par:
Jérôme Clament-Sanz
Formateur Expert Android
Formation Programmer des applications mobiles avec Kotlin
Exemple de fragment
Formation Programmer des applications mobiles avec Kotlin
Avantages de l'utilisation des fragments
Formation Programmer des applications mobiles avec Kotlin
Cycle de vie d’un fragment
Formation Programmer des applications mobiles avec Kotlin
FrameLayout
Formation Programmer des applications mobiles avec Kotlin
Dans l’activité
Formation Programmer des applications mobiles avec Kotlin
Dans le fragment
Formation Programmer des applications mobiles avec Kotlin
Les Fragments
Préparée par:
Jérôme Clament-Sanz
Formateur Expert Android
Formation Programmer des applications mobiles avec Kotlin
Le but de l’exercice
Comprendre comment fonctionnent les Fragments
Passer d’un fragment à un autre
Formation Programmer des applications mobiles avec Kotlin
Énoncé
Réaliser la même app qu’à gauche :
- Il faut une Activity qui contient
quatre boutons :
1. HOME
2. NEWS
3. ABOUT
4. SETTINGS
- Mais aussi 4 Fragments correspondants
chacun aux 4 boutons du haut
- Chaque bouton doit rediriger vers le
fragment qui porte son nom
- Il faut qu’au lancement de l’app, le
fragment « HOME » se charge.
- Il est préférable de mettre des
couleurs et du texte dans les
fragments
Formation Programmer des applications mobiles avec Kotlin
Les ListView
Préparée par:
Jérôme Clament-Sanz
Formateur Expert Android
Formation Programmer des applications mobiles avec Kotlin
ListView
Formation Programmer des applications mobiles avec Kotlin
L’élément ListView
Formation Programmer des applications mobiles avec Kotlin
Remplir sa ListView
Formation Programmer des applications mobiles avec Kotlin
Résultat
Formation Programmer des applications mobiles avec Kotlin
Custom ListView
Layouts
activity_main.xml
item_expert.xml
Classes
ExpertModel.java
CustomAdapter.java
MainActivity.java
Formation Programmer des applications mobiles avec Kotlin
activity_main.xml
Formation Programmer des applications mobiles avec Kotlin
item_expert.xml
Formation Programmer des applications mobiles avec Kotlin
ExpertModel.kt
Formation Programmer des applications mobiles avec Kotlin
CustomAdapter.kt
Formation Programmer des applications mobiles avec Kotlin
MainActivity.kt
Formation Programmer des applications mobiles avec Kotlin
Les ListView : exercice
Préparée par:
Jérôme Clament-Sanz
Formateur Expert Android
Formation Programmer des applications mobiles avec Kotlin
Le but de l’exercice
Utiliser les ListView
Créer son propre Adapter pour sa ListView
Formation Programmer des applications mobiles avec Kotlin
Énoncé
Parce qu’on aime les loutres, créez une app qui affiche la
liste des types de loutres.
• lors d’un click sur un item, il faut afficher dans un
Toast le nom de la Loutre
• lors d’un click sur l’icône d’information, il faut
afficher la date de découverte de cette loutre
Si vous souhaitez aller plus loin :
• vous pouvez ajouter l’image de la loutre dans cette liste
• Vous pouvez ajouter un bouton play qui jouera le son si
particulier de la loutre sélectionnée.
Bon courage et honneur aux loutres !
Formation Programmer des applications mobiles avec Kotlin
Les RecyclerView
Préparée par:
Jérôme Clament-Sanz
Formateur Expert Android
Formation Programmer des applications mobiles avec Kotlin
RecyclerView
Formation Programmer des applications mobiles avec Kotlin
RecyclerView > ListView ?
Dans une ListView, il y aura autant de vues créées que d’items…
C’est lourd !
Dans une RecyclerView, il y aura autant de vues créées que d’items
visibles à l’écran. Lorsque que l’on fait défiler les vues et que l’une
d’entre elles disparaît, elle est “recyclée” pour être réutilisée.
Il est possible de choisir son LayoutManager avec les RecyclerView :
LinearLayoutManager
GridLayoutManager
Formation Programmer des applications mobiles avec Kotlin
Librairie de compatibilité
Ajouter la lib support pour le RecyclerView dans le Gradle :
Formation Programmer des applications mobiles avec Kotlin
OnItemClickListener et RecyclerView
Par défaut, il n’existe pas de OnItemClickListener avec les
RecyclerView. Cependant, il y a deux possibilités pour mettre en
place la gestion du click sur les items de notre liste :
Ajouter un setOnClickListener sur chaque élément de notre adapter
Implémenter un RecyclerView.OnItemTouchListener et le lier à notre
RecyclerView
Formation Programmer des applications mobiles avec Kotlin
Exemple avec setOnClickListener
RecyclerView : 1er exemple :
Réagira au click sur les TextView et ImageView
La réaction au click se fait depuis l’Adapter
Formation Programmer des applications mobiles avec Kotlin
activity_main.xml
Formation Programmer des applications mobiles avec Kotlin
item_recycler.xml
Formation Programmer des applications mobiles avec Kotlin
DataModel.kt
Formation Programmer des applications mobiles avec Kotlin
RecyclerAdapter.kt
Formation Programmer des applications mobiles avec Kotlin
MainActivity.kt
Formation Programmer des applications mobiles avec Kotlin
Exemple avec son propre ItemTouchListener
RecyclerView : 2ème exemple :
L’item réagira au click :
onItemClick
onLongItemClick
Formation Programmer des applications mobiles avec Kotlin
activity_main.xml
Formation Programmer des applications mobiles avec Kotlin
item_recycler.xml
Formation Programmer des applications mobiles avec Kotlin
DataModel.kt
Formation Programmer des applications mobiles avec Kotlin
RecyclerAdapter.kt
Formation Programmer des applications mobiles avec Kotlin
RecyclerItemTouchListener.kt
Formation Programmer des applications mobiles avec Kotlin
MainActivity.kt
Formation Programmer des applications mobiles avec Kotlin
Les RecyclerView : exercice
Préparée par:
Jérôme Clament-Sanz
Formateur Expert Android
Formation Programmer des applications mobiles avec Kotlin
Le but de l’exercice
Utiliser les RecyclerView
Connaître les différentes méthodes pour réagir au click sur un
élément de la RecyclerView
Formation Programmer des applications mobiles avec Kotlin
Énoncé
Peut importe la liste (compétences, hotels, plats, etc.).
Se baser sur la même Recycler et le même objet pour faire 2 Activity:
1) La première doit réagir au click avec un Custom Listener
2) La deuxième doit réagir au click avec un setOnClickListener sur les
éléments (textView, Image, etc)
Formation Programmer des applications mobiles avec Kotlin
Les SharedPreferences
Préparée par:
Jérôme Clament-Sanz
Formateur Expert Android
Formation Programmer des applications mobiles avec Kotlin
SharedPreferences : stockage en local
Formation Programmer des applications mobiles avec Kotlin
Différents modes d’accessibilité
Context.MODE_PRIVATE
pour que le fichier créé ne soit accessible que par l'application qui l'a créée.
Context.MODE_WORLD_READABLE
pour que le fichier créé puisse être lu par n'importe quelle application.
Context.MODE_WORLD_WRITEABLE
pour que le fichier créé puisse être lu et modifié par n'importe quelle
application.
Formation Programmer des applications mobiles avec Kotlin
Attention
Les préférences partagées ne fonctionnent qu'avec les objets de type :
boolean
float
int
long
String.
Formation Programmer des applications mobiles avec Kotlin
SQLite
Préparée par:
Jérôme Clament-Sanz
Formateur Expert Android
Formation Programmer des applications mobiles avec Kotlin
SQLite ?
Bibliothèque écrite en C qui propose un moteur de base de
données accessible par le langage SQL (standard SQL-92).
SQLite est directement intégrée aux programmes
Première version de SQLite en août 2000
SQLite a un modèle de type embarqué contrairement à MySQL ou PostgreSQL
qui ont des modèles de type client serveur.
Formation Programmer des applications mobiles avec Kotlin
Types de données dans SQLite
INTEGER : pour les entiers (sans virgule)
INT, INTEGER, TINYINT, SMALLINT, MEDIUMINT, BIGINT, UNSIGNED BIG INT, INT2,
INT8
REAL : pour les nombres réels (avec virgule)
REAL, DOUBLE, DOUBLE PRECISION, FLOAT
TEXT : pour les chaînes de caractères
CHARACTER(20), VARCHAR(255), VARYING CHARACTER(255), NCHAR(55),
NATIVE CHARACTER(70), NVARCHAR(100), TEXT, CLOB
NUMERIC : pour les données numériques
NUMERIC, DECIMAL(10,5), BOOLEAN, DATE, DATETIME
BLOB : pour les données brutes (par exemple : images, etc)
BLOB (pas de datatype)
NULL : pour les données NULL
Formation Programmer des applications mobiles avec Kotlin
Syntaxe SQLite
CREATE TABLE nom_de_la_table (
nom_du_champ_1 type {contraintes},
nom_du_champ_2 type {contraintes},
…);
Pour chaque attribut, on doit déclarer au moins
2 informations :
- son nom
- son type de donnée
Il est possible de déclarer des contraintes pour chaque attribut à l'emplacement
de {contraintes}. On trouve comme contraintes :
- PRIMARY KEY pour désigner la clé primaire sur un attribut
- NOT NULL pour indiquer que cet attribut ne peut valoir NULL
- CHECK afin de vérifier que la valeur de cet attribut est cohérente
- DEFAULT sert à préciser une valeur par défaut
Formation Programmer des applications mobiles avec Kotlin
Créer ou ouvrir une base de données
Créer une base de données SQLite sur Android c’est simple :
Formation Programmer des applications mobiles avec Kotlin
Créer une table avec execSQL
Créer une table aussi :
Formation Programmer des applications mobiles avec Kotlin
rawQuery() VS query()
VS
VS
Formation Programmer des applications mobiles avec Kotlin
Paramètres de la méthode query()
Paramètre Commentaire
String dbName Nom de la table
String[] columnNames
Liste des colonnes à retourner.
Toutes les colonnes seront retournées avec en passant null.
String whereClause
Clause where : filtre pour la sélection des données.
Toutes les données seront sélectionnées en passant null.
String[] selectionArgs
Si vous incluez des ? dans la whereClause, ils seront remplacés par
les valeurs du tableau selectionArgs.
String[] groupBy
Filtre qui déclare comment regrouper les lignes.
Les lignes ne seront pas groupées en passant null.
String[] having
Filtre pour les groupes.
Pas de filtrage en passant null.
String[] orderBy
Colonnes de la table utilisées pour ordonner les données.
Les données ne seront pas ordonnées en passant null.
Formation Programmer des applications mobiles avec Kotlin
Utilisation de SQLite
1. Création d’une base de données de type SQLiteDatabase
2. Création d’une table
3. INSERT afin d’ajouter un champ dans une table
4. SELECT sur un champ particulier d’une table afin de la stocker dans un Cursor
5. SELECT sur tous les champs d’une table afin de les stocker dans une StringBuilder
Formation Programmer des applications mobiles avec Kotlin
SQLite : exercice
Préparée par:
Jérôme Clament-Sanz
Formateur Expert Android
Formation Programmer des applications mobiles avec Kotlin
Le but de l’exercice
Savoir utiliser SQLite
Créer et manipuler une base de données
Formation Programmer des applications mobiles avec Kotlin
Énoncé
Créer une application capable de sauvegarder ses impressions sur des films.
Ces commentaires doivent être stockés sur une base de données SQLite.
La BDD doit se nommer « movie_db »
Voici donc les champs de la table « my_movies » :
- id
- name
- comment
L’utilisateur de l’app doit pouvoir :
- ajouter un film
- supprimer un film
- modifier un film
- voir le commentaire d’un film en particulier
- voir tous les commentaires de chaque films dans une liste
Formation Programmer des applications mobiles avec Kotlin
BroadcastReceiver
Préparée par:
Jérôme Clament-Sanz
Formateur Expert Android
Formation Programmer des applications mobiles avec Kotlin
Un BroadcastReceiver, c’est quoi ?
Un BoadcastReceiver est une sorte de notification permettant de prévenir
d’un événement à une ou plusieurs applications.
Il est possible d’utiliser des BroadscastReceiver système mais aussi de
diffuser les nôtres à tout le système et de manière anonyme.
Formation Programmer des applications mobiles avec Kotlin
Quelques exemples de BroadcastReceiver
android.intent.action.BATTERY_LOW
La batterie est faible
android.intent.action.BOOT_COMPLETED
La system a terminé de booter
android.intent.action.CALL
Pour faire un call à quelque chose spécifié par les datas
android.intent.action.DATE_CHANGED
La date a changé
android.intent.action.REBOOT :
La device a rebooté
android.net.conn.CONNECTIVITY_CHANGE
La réseau mobile ou la connection WiFi a changé
Formation Programmer des applications mobiles avec Kotlin
Créer son BroadcastReceiver
Formation Programmer des applications mobiles avec Kotlin
Ajouter son Broadcast dans le Manifest
Formation Programmer des applications mobiles avec Kotlin
Appeler son BroadcastReceiver
Formation Programmer des applications mobiles avec Kotlin
Recevoir un Broadcast ?
Il est possible très simplement de recevoir un Broadcast système
Dans l’exemple qui va suivre, nous allons recevoir le passage en
mode avion
Formation Programmer des applications mobiles avec Kotlin
Dans le Manifest
Formation Programmer des applications mobiles avec Kotlin
Dans notre Receiver
Formation Programmer des applications mobiles avec Kotlin
Voilà
☺
Formation Programmer des applications mobiles avec Kotlin
Broadcast privé
Android:exported
Formation Programmer des applications mobiles avec Kotlin
Créer et utiliser une permission
Formation Programmer des applications mobiles avec Kotlin
Les services
Préparée par:
Jérôme Clament-Sanz
Formateur Expert Android
Formation Programmer des applications mobiles avec Kotlin
Les services, c’est quoi ?
Un service est nécessaire lorsque votre application souhaite effectuer
des opérations ou des calculs en dehors de l'interaction utilisateur.
Exemple : écouter de la musique en lisant ses mails est possible grâce
aux services.
Un service ne dispose pas d'interface graphique
Un service n'a pas de durée définie, il est là pour exécuter sa tâche et
il fonctionnera tant que c'est nécessaire.
Formation Programmer des applications mobiles avec Kotlin
Types de services
Il existe deux types de services :
LocalService
services qui s'exécutent dans le même processus que votre application
RemoteService
ils s'exécutent dans des processus indépendants de votre application
Formation Programmer des applications mobiles avec Kotlin
Cycle de vie d’un service
Unbounded service = Service local
Bounded service = Service distant
Formation Programmer des applications mobiles avec Kotlin
Dans le AndroidManifest.xml
Formation Programmer des applications mobiles avec Kotlin
ExempleService.kt
Formation Programmer des applications mobiles avec Kotlin
MainActivity.kt
Formation Programmer des applications mobiles avec Kotlin
activity_main.xml
Formation Programmer des applications mobiles avec Kotlin
Les Widgets
Préparée par:
Jérôme Clament-Sanz
Formateur Expert Android
Formation Programmer des applications mobiles avec Kotlin
Les Widgets
Formation Programmer des applications mobiles avec Kotlin
Exemple
Formation Programmer des applications mobiles avec Kotlin
widget.xml
Formation Programmer des applications mobiles avec Kotlin
WidgetProvider.kt
Formation Programmer des applications mobiles avec Kotlin
res/xml/widget_info.xml
Formation Programmer des applications mobiles avec Kotlin
AndroidManifest.xml
Formation Programmer des applications mobiles avec Kotlin
AsyncHttpClient
Préparée par:
Jérôme Clament-Sanz
Formateur Expert Android
Formation Programmer des applications mobiles avec Kotlin
loopj : Android Async HTTP Client
Formation Programmer des applications mobiles avec Kotlin
WebService population.io
Formation Programmer des applications mobiles avec Kotlin
Requête « countries »
Formation Programmer des applications mobiles avec Kotlin
Dans le code…
Formation Programmer des applications mobiles avec Kotlin
Les librairies
Préparée par:
Jérôme Clament-Sanz
Formateur Expert Android
Formation Programmer des applications mobiles avec Kotlin
Installation d’une librairie Android
Formation Programmer des applications mobiles avec Kotlin
Utilisation d’une librairie Android
Formation Programmer des applications mobiles avec Kotlin
Les librairies : exercice
Préparée par:
Jérôme Clament-Sanz
Formateur Expert Android
Formation Programmer des applications mobiles avec Kotlin
Le but de l’exercice
Savoir chercher la librairie qui nous convient
Réussir à ajouter une librairie à notre projet
Savoir lire la documentation d’une librairie
Utiliser une librairie
Formation Programmer des applications mobiles avec Kotlin
Énoncé
Réaliser la même app qu’à gauche :
- Il faut une lib capable de charger une image
depuis une URL. Pour cela :
- Trouver une lib capable de cela
- Lire la doc et l’utiliser
- Si vous souhaitez aller plus loin, vous pouvez
utiliser une lib qui arrondi l’image (ou autre).
- Si vous souhaitez aller encore plus loin, vous
pouvez imaginer une EditText qui demande l’URL de
l’image et l’affiche après un click sur un
bouton.
N’oubliez pas de donner la permission à votre app d’accéder à internet :
À mettre dans le AndroidManifest.xml, dans la balise <manifest>
et juste avant la balise <application>.
Formation Programmer des applications mobiles avec Kotlin
Les notifications utilisateur
Préparée par:
Jérôme Clament-Sanz
Formateur Expert Android
Formation Programmer des applications mobiles avec Kotlin
Toast
Formation Programmer des applications mobiles avec Kotlin
Snackbar
Formation Programmer des applications mobiles avec Kotlin
AlertDialog
Formation Programmer des applications mobiles avec Kotlin
Les permissions
Préparée par:
Jérôme Clament-Sanz
Formateur Expert Android
Formation Programmer des applications mobiles avec Kotlin
Déclarer une permissions
 Si la permission touche à la vie privée de l’utilisateur, une popup demandera à
l’utilisateur de vous donner la permission.
 Si la permission ne concerne pas la vie privée de l’utilisateur, elle sera
automatiquement donnée.
Formation Programmer des applications mobiles avec Kotlin
Android 6 et les permissions
À partir d’Android 6 (API 23) l’utilisateur donne les permissions au
moment ou l’application utilise la fonctionnalité cible.
Par exemple, un utilisateur peux donner accès au GPS à une application mais
refuser de donner l’accès à la liste des contacts.
L’utilisateur peux aussi autoriser / supprimer des permissions dans l’écran dédié à
cet effet dans les paramètres.
Formation Programmer des applications mobiles avec Kotlin
Quelques conseils
Ne demander une permission que si elle est nécessaire
Expliquer à l’utilisateur pourquoi votre application nécessite cette
permission
Ne pas harceler l’utilisateur pour qu’il vous donne la permission
Accepter la décision de l’utilisateur
Formation Programmer des applications mobiles avec Kotlin
Vérifier une permission
À chaque utilisation d’une fonctionnalité nécessitant une
permission, il faut vérifier si la permission est donnée ou non
Pour cela, on utilise la méthode checkSelfPermission qui nous
renvoit :
PackageManager.PERMISSION_GRANTED lorsqu’on a la permission
PackageManager.PERMISSION_DENIED lorsqu’on n’a pas la permission
Formation Programmer des applications mobiles avec Kotlin
Vérifier si la permission a déjà été demandée
La méthode shouldShowRequestPermissionRationale permet de savoir si la permission à
déjà été demandée à l’utilisateur.
Si oui, mieux vaux ne pas redemander la permission à l’utilisateur.
Sinon, vous pouvez demander la permission à l’aide de la méthode requestPermissions.
Formation Programmer des applications mobiles avec Kotlin
onRequestPermissionResult
Une fois la permission demandée, le résultat de la demande sera retourné dans
la méthode onRequestPermissionsResult (à surcharger).
Formation Programmer des applications mobiles avec Kotlin
Publier son application sur le Play Store
Préparée par:
Jérôme Clament-Sanz
Formateur Expert Android
Formation Programmer des applications mobiles avec Kotlin
Créer une application
Accédez à la console Play.
Sélectionnez Toutes les applications All applications > Créer une
application.
Dans le menu déroulant, sélectionnez une langue par défaut.
Ensuite, ajoutez un titre à votre application. Saisissez le nom de
votre application tel que vous souhaitez qu'il s'affiche sur Google
Play.
Créez la fiche Play Store de votre application, complétez le
questionnaire sur la classification du contenu, puis définissez les
tarifs et la disponibilité.
Formation Programmer des applications mobiles avec Kotlin
Préparer la version de production, alpha ou bêta de votre application
Pour préparer la version de production, alpha ou bêta de votre
application, vous pouvez préparer et déployer des versions selon un
niveau de sortie particulier.
Une version est une combinaison d'un ou de plusieurs artefacts de
build que vous préparez avant de déployer une application ou la
mise à jour d'une application auprès des utilisateurs.
Formation Programmer des applications mobiles avec Kotlin
Gérer les fichiers APK
Rechercher des fichiers APK
Taille des fichiers APK
Signer votre application
Spécifications relatives aux versions des fichiers APK pour la
console Play
Formation Programmer des applications mobiles avec Kotlin
Configurer une fiche Play Store
Informations sur le produit
Éléments graphiques
Langues et traductions
Catégorisation
Coordonnées
Règles de confidentialité
Formation Programmer des applications mobiles avec Kotlin
Étapes suivantes
Remplir le questionnaire relatif à la classification du contenu
correspondant à l'application
Découvrir comment distribuer votre application dans d'autres pays
et dans le cadre d'autres programmes
Android Publier l'application à l'aide de la publication standard ou
planifiée
Effectuer des tests pour optimiser votre fiche Play Store

Contenu connexe

Tendances

The Point of Vue - Intro to Vue.js
The Point of Vue - Intro to Vue.jsThe Point of Vue - Intro to Vue.js
The Point of Vue - Intro to Vue.jsHolly Schinsky
 
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
 
Odoo Experience 2018 - Visualizing Data in Odoo: How to Create a New View
Odoo Experience 2018 - Visualizing Data in Odoo: How to Create a New ViewOdoo Experience 2018 - Visualizing Data in Odoo: How to Create a New View
Odoo Experience 2018 - Visualizing Data in Odoo: How to Create a New ViewElínAnna Jónasdóttir
 
Rapport application web (Spring BOOT,angular4) et mobile(ionc3) gestion des a...
Rapport application web (Spring BOOT,angular4) et mobile(ionc3) gestion des a...Rapport application web (Spring BOOT,angular4) et mobile(ionc3) gestion des a...
Rapport application web (Spring BOOT,angular4) et mobile(ionc3) gestion des a...MOHAMMED MOURADI
 
Application Spring MVC/IOC & Hibernate
Application Spring MVC/IOC & HibernateApplication Spring MVC/IOC & Hibernate
Application Spring MVC/IOC & HibernateInes Ouaz
 
Technologies sur angular.pptx
Technologies sur angular.pptxTechnologies sur angular.pptx
Technologies sur angular.pptxIdrissaDembl
 
Document Object Model ( DOM)
Document Object Model ( DOM)Document Object Model ( DOM)
Document Object Model ( DOM)Abdelouahed Abdou
 
Concevoir, développer et sécuriser des micro-services avec Spring Boot
Concevoir, développer et sécuriser des micro-services avec Spring BootConcevoir, développer et sécuriser des micro-services avec Spring Boot
Concevoir, développer et sécuriser des micro-services avec Spring BootDNG Consulting
 
Alphorm.com Formation Vue JS 3 : Exploiter la Composition API
Alphorm.com Formation Vue JS 3 : Exploiter la Composition APIAlphorm.com Formation Vue JS 3 : Exploiter la Composition API
Alphorm.com Formation Vue JS 3 : Exploiter la Composition APIAlphorm
 
Cours javascript
Cours javascriptCours javascript
Cours javascriptkrymo
 
Présentation Flutter
Présentation FlutterPrésentation Flutter
Présentation FlutterAppstud
 
20080311 - Paris Vi Master STL TA - Initiation Maven
20080311 - Paris Vi Master STL TA - Initiation Maven20080311 - Paris Vi Master STL TA - Initiation Maven
20080311 - Paris Vi Master STL TA - Initiation MavenArnaud Héritier
 

Tendances (20)

Support cours angular
Support cours angularSupport cours angular
Support cours angular
 
Angular
AngularAngular
Angular
 
Cours 3 les directives
Cours 3 les directivesCours 3 les directives
Cours 3 les directives
 
The Point of Vue - Intro to Vue.js
The Point of Vue - Intro to Vue.jsThe Point of Vue - Intro to Vue.js
The Point of Vue - Intro to Vue.js
 
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)
 
Odoo Experience 2018 - Visualizing Data in Odoo: How to Create a New View
Odoo Experience 2018 - Visualizing Data in Odoo: How to Create a New ViewOdoo Experience 2018 - Visualizing Data in Odoo: How to Create a New View
Odoo Experience 2018 - Visualizing Data in Odoo: How to Create a New View
 
Maven
MavenMaven
Maven
 
Rapport application web (Spring BOOT,angular4) et mobile(ionc3) gestion des a...
Rapport application web (Spring BOOT,angular4) et mobile(ionc3) gestion des a...Rapport application web (Spring BOOT,angular4) et mobile(ionc3) gestion des a...
Rapport application web (Spring BOOT,angular4) et mobile(ionc3) gestion des a...
 
Un introduction à Pig
Un introduction à PigUn introduction à Pig
Un introduction à Pig
 
Application Spring MVC/IOC & Hibernate
Application Spring MVC/IOC & HibernateApplication Spring MVC/IOC & Hibernate
Application Spring MVC/IOC & Hibernate
 
Technologies sur angular.pptx
Technologies sur angular.pptxTechnologies sur angular.pptx
Technologies sur angular.pptx
 
Document Object Model ( DOM)
Document Object Model ( DOM)Document Object Model ( DOM)
Document Object Model ( DOM)
 
Concevoir, développer et sécuriser des micro-services avec Spring Boot
Concevoir, développer et sécuriser des micro-services avec Spring BootConcevoir, développer et sécuriser des micro-services avec Spring Boot
Concevoir, développer et sécuriser des micro-services avec Spring Boot
 
DART.pptx
DART.pptxDART.pptx
DART.pptx
 
Alphorm.com Formation Vue JS 3 : Exploiter la Composition API
Alphorm.com Formation Vue JS 3 : Exploiter la Composition APIAlphorm.com Formation Vue JS 3 : Exploiter la Composition API
Alphorm.com Formation Vue JS 3 : Exploiter la Composition API
 
Cours javascript
Cours javascriptCours javascript
Cours javascript
 
Présentation Flutter
Présentation FlutterPrésentation Flutter
Présentation Flutter
 
20080311 - Paris Vi Master STL TA - Initiation Maven
20080311 - Paris Vi Master STL TA - Initiation Maven20080311 - Paris Vi Master STL TA - Initiation Maven
20080311 - Paris Vi Master STL TA - Initiation Maven
 
Support NodeJS avec TypeScript Express MongoDB
Support NodeJS avec TypeScript Express MongoDBSupport NodeJS avec TypeScript Express MongoDB
Support NodeJS avec TypeScript Express MongoDB
 
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
 

Similaire à Support formation vidéo: Android Kotlin : développez des applications mobiles

Open XKE - De l'intégration continue au déploiement continu sur iOS et Androi...
Open XKE - De l'intégration continue au déploiement continu sur iOS et Androi...Open XKE - De l'intégration continue au déploiement continu sur iOS et Androi...
Open XKE - De l'intégration continue au déploiement continu sur iOS et Androi...Publicis Sapient Engineering
 
Qualité & Industrialisation des développements mobiles sur iOS & Android
Qualité & Industrialisation des développements mobiles sur iOS & AndroidQualité & Industrialisation des développements mobiles sur iOS & Android
Qualité & Industrialisation des développements mobiles sur iOS & AndroidThibaud CAVIN
 
Gtug2 Mobile app with web technlogy
Gtug2 Mobile app with web technlogyGtug2 Mobile app with web technlogy
Gtug2 Mobile app with web technlogySacha Leprêtre
 
Introduction à App Inventor
Introduction à App InventorIntroduction à App Inventor
Introduction à App InventorTeen-Code
 
Windows Phone 8 for Business - Developer Talks
Windows Phone 8 for Business - Developer TalksWindows Phone 8 for Business - Developer Talks
Windows Phone 8 for Business - Developer TalksJean-Sébastien Dupuy
 
Les Systèmes d'exploitation mobile
Les Systèmes d'exploitation mobileLes Systèmes d'exploitation mobile
Les Systèmes d'exploitation mobileMohamed BOURAOUI
 
Compte rendu oscon 2013
Compte rendu oscon 2013Compte rendu oscon 2013
Compte rendu oscon 2013Jean Desbiens
 
Ateliers : Developpement mobile vs open source
Ateliers : Developpement mobile vs open sourceAteliers : Developpement mobile vs open source
Ateliers : Developpement mobile vs open sourceKorteby Farouk
 
Proposition pim esprit mobile
Proposition pim esprit mobileProposition pim esprit mobile
Proposition pim esprit mobileSalma Sayah
 
Support formation vidéo : Maîtriser les fondamentaux d'Android 4.1
Support formation vidéo : Maîtriser les fondamentaux d'Android 4.1Support formation vidéo : Maîtriser les fondamentaux d'Android 4.1
Support formation vidéo : Maîtriser les fondamentaux d'Android 4.1SmartnSkilled
 
Initiation au développement mobile sous Android
Initiation au développement mobile sous AndroidInitiation au développement mobile sous Android
Initiation au développement mobile sous AndroidAbdelkader Rhouati
 
Android Studio, premier contact
Android Studio, premier contactAndroid Studio, premier contact
Android Studio, premier contactJasmine Conseil
 
Android Studio, premier contact
Android Studio, premier contactAndroid Studio, premier contact
Android Studio, premier contactJasmine Conseil
 
Ch1. Développement mobile
Ch1. Développement mobileCh1. Développement mobile
Ch1. Développement mobileHaifa Chorfi
 
Offre migrer vers_flutter
Offre migrer vers_flutterOffre migrer vers_flutter
Offre migrer vers_flutterJulien Saumande
 
Gui android eclipse
Gui android eclipseGui android eclipse
Gui android eclipseESPRIT
 
Conférence Titanium + Alloy au JUG Montpellier
Conférence Titanium + Alloy au JUG MontpellierConférence Titanium + Alloy au JUG Montpellier
Conférence Titanium + Alloy au JUG MontpellierDamien Laureaux
 

Similaire à Support formation vidéo: Android Kotlin : développez des applications mobiles (20)

Open XKE - De l'intégration continue au déploiement continu sur iOS et Androi...
Open XKE - De l'intégration continue au déploiement continu sur iOS et Androi...Open XKE - De l'intégration continue au déploiement continu sur iOS et Androi...
Open XKE - De l'intégration continue au déploiement continu sur iOS et Androi...
 
Qualité & Industrialisation des développements mobiles sur iOS & Android
Qualité & Industrialisation des développements mobiles sur iOS & AndroidQualité & Industrialisation des développements mobiles sur iOS & Android
Qualité & Industrialisation des développements mobiles sur iOS & Android
 
Gtug2 Mobile app with web technlogy
Gtug2 Mobile app with web technlogyGtug2 Mobile app with web technlogy
Gtug2 Mobile app with web technlogy
 
Introduction à App Inventor
Introduction à App InventorIntroduction à App Inventor
Introduction à App Inventor
 
Windows Phone 8 for Business - Developer Talks
Windows Phone 8 for Business - Developer TalksWindows Phone 8 for Business - Developer Talks
Windows Phone 8 for Business - Developer Talks
 
Les Systèmes d'exploitation mobile
Les Systèmes d'exploitation mobileLes Systèmes d'exploitation mobile
Les Systèmes d'exploitation mobile
 
Compte rendu oscon 2013
Compte rendu oscon 2013Compte rendu oscon 2013
Compte rendu oscon 2013
 
Ateliers : Developpement mobile vs open source
Ateliers : Developpement mobile vs open sourceAteliers : Developpement mobile vs open source
Ateliers : Developpement mobile vs open source
 
Intro Android
Intro AndroidIntro Android
Intro Android
 
Proposition pim esprit mobile
Proposition pim esprit mobileProposition pim esprit mobile
Proposition pim esprit mobile
 
Support formation vidéo : Maîtriser les fondamentaux d'Android 4.1
Support formation vidéo : Maîtriser les fondamentaux d'Android 4.1Support formation vidéo : Maîtriser les fondamentaux d'Android 4.1
Support formation vidéo : Maîtriser les fondamentaux d'Android 4.1
 
Cv fr Gharsallah Yassine
Cv fr Gharsallah YassineCv fr Gharsallah Yassine
Cv fr Gharsallah Yassine
 
Initiation au développement mobile sous Android
Initiation au développement mobile sous AndroidInitiation au développement mobile sous Android
Initiation au développement mobile sous Android
 
Android Studio, premier contact
Android Studio, premier contactAndroid Studio, premier contact
Android Studio, premier contact
 
Android Studio, premier contact
Android Studio, premier contactAndroid Studio, premier contact
Android Studio, premier contact
 
Ch1. Développement mobile
Ch1. Développement mobileCh1. Développement mobile
Ch1. Développement mobile
 
Offre migrer vers_flutter
Offre migrer vers_flutterOffre migrer vers_flutter
Offre migrer vers_flutter
 
Cv fr-gharsallah yassine
Cv fr-gharsallah yassineCv fr-gharsallah yassine
Cv fr-gharsallah yassine
 
Gui android eclipse
Gui android eclipseGui android eclipse
Gui android eclipse
 
Conférence Titanium + Alloy au JUG Montpellier
Conférence Titanium + Alloy au JUG MontpellierConférence Titanium + Alloy au JUG Montpellier
Conférence Titanium + Alloy au JUG Montpellier
 

Plus de SmartnSkilled

Formation : Comment rendre une réunion efficace ?
Formation : Comment rendre une réunion efficace ?Formation : Comment rendre une réunion efficace ?
Formation : Comment rendre une réunion efficace ?SmartnSkilled
 
Support cours : Les Data Sciences avec Python Langage - Partie II
Support cours : Les Data Sciences avec Python Langage - Partie IISupport cours : Les Data Sciences avec Python Langage - Partie II
Support cours : Les Data Sciences avec Python Langage - Partie IISmartnSkilled
 
Support tutoriel : Initiation à SAP ERP
Support tutoriel : Initiation à SAP ERPSupport tutoriel : Initiation à SAP ERP
Support tutoriel : Initiation à SAP ERPSmartnSkilled
 
Support formation : Construire et administrer vos conteneurs avec Docker
Support formation : Construire et administrer vos conteneurs avec DockerSupport formation : Construire et administrer vos conteneurs avec Docker
Support formation : Construire et administrer vos conteneurs avec DockerSmartnSkilled
 
Support formation : Maîtriser la comptabilité des opérations de fin d'exercice
Support formation : Maîtriser la comptabilité des opérations de fin d'exerciceSupport formation : Maîtriser la comptabilité des opérations de fin d'exercice
Support formation : Maîtriser la comptabilité des opérations de fin d'exerciceSmartnSkilled
 
Support cours : Comment rédiger un rapport ?
Support cours : Comment rédiger un rapport ?Support cours : Comment rédiger un rapport ?
Support cours : Comment rédiger un rapport ?SmartnSkilled
 
Support formation : Maîtriser les Data Sciences avec Python Language - Partie I
Support formation : Maîtriser les Data Sciences avec Python Language - Partie ISupport formation : Maîtriser les Data Sciences avec Python Language - Partie I
Support formation : Maîtriser les Data Sciences avec Python Language - Partie ISmartnSkilled
 
Support cours : Rédigez vos emails professionnels
Support cours : Rédigez vos emails professionnelsSupport cours : Rédigez vos emails professionnels
Support cours : Rédigez vos emails professionnelsSmartnSkilled
 
Support cours : Les phares du marketing
Support cours : Les phares du marketingSupport cours : Les phares du marketing
Support cours : Les phares du marketingSmartnSkilled
 
Support formation : La négociation commerciale coté vendeur
Support formation : La négociation commerciale coté vendeurSupport formation : La négociation commerciale coté vendeur
Support formation : La négociation commerciale coté vendeurSmartnSkilled
 
Support cours : Initiation à SAP ERP
Support cours : Initiation à SAP ERPSupport cours : Initiation à SAP ERP
Support cours : Initiation à SAP ERPSmartnSkilled
 
Tutoriel : Online English Expertise
Tutoriel : Online English ExpertiseTutoriel : Online English Expertise
Tutoriel : Online English ExpertiseSmartnSkilled
 
Formation : Mettre en place une stratégie commerciale
Formation : Mettre en place une stratégie commercialeFormation : Mettre en place une stratégie commerciale
Formation : Mettre en place une stratégie commercialeSmartnSkilled
 
Support cours : Cours d'Espagnol Débutant (A1-A2)
Support cours : Cours d'Espagnol Débutant (A1-A2)Support cours : Cours d'Espagnol Débutant (A1-A2)
Support cours : Cours d'Espagnol Débutant (A1-A2)SmartnSkilled
 
Support cours : Vos premiers pas avec le pare feu CISCO ASA
Support cours : Vos premiers pas avec le pare feu CISCO ASASupport cours : Vos premiers pas avec le pare feu CISCO ASA
Support cours : Vos premiers pas avec le pare feu CISCO ASASmartnSkilled
 
Support Tutoriel : Online English Expertise
Support Tutoriel : Online English ExpertiseSupport Tutoriel : Online English Expertise
Support Tutoriel : Online English ExpertiseSmartnSkilled
 
Support formation en ligne : Manager et auditer les risques informatiques
Support formation en ligne : Manager et auditer les risques informatiquesSupport formation en ligne : Manager et auditer les risques informatiques
Support formation en ligne : Manager et auditer les risques informatiquesSmartnSkilled
 
Support Tutoriel : Art oratoire et prise de parole en public
Support Tutoriel : Art oratoire et prise de parole en publicSupport Tutoriel : Art oratoire et prise de parole en public
Support Tutoriel : Art oratoire et prise de parole en publicSmartnSkilled
 
Support formation en ligne: L'estime de soi
Support formation en ligne: L'estime de soiSupport formation en ligne: L'estime de soi
Support formation en ligne: L'estime de soiSmartnSkilled
 
Support formation vidéo : Les phares du marketing
Support formation vidéo : Les phares du marketingSupport formation vidéo : Les phares du marketing
Support formation vidéo : Les phares du marketingSmartnSkilled
 

Plus de SmartnSkilled (20)

Formation : Comment rendre une réunion efficace ?
Formation : Comment rendre une réunion efficace ?Formation : Comment rendre une réunion efficace ?
Formation : Comment rendre une réunion efficace ?
 
Support cours : Les Data Sciences avec Python Langage - Partie II
Support cours : Les Data Sciences avec Python Langage - Partie IISupport cours : Les Data Sciences avec Python Langage - Partie II
Support cours : Les Data Sciences avec Python Langage - Partie II
 
Support tutoriel : Initiation à SAP ERP
Support tutoriel : Initiation à SAP ERPSupport tutoriel : Initiation à SAP ERP
Support tutoriel : Initiation à SAP ERP
 
Support formation : Construire et administrer vos conteneurs avec Docker
Support formation : Construire et administrer vos conteneurs avec DockerSupport formation : Construire et administrer vos conteneurs avec Docker
Support formation : Construire et administrer vos conteneurs avec Docker
 
Support formation : Maîtriser la comptabilité des opérations de fin d'exercice
Support formation : Maîtriser la comptabilité des opérations de fin d'exerciceSupport formation : Maîtriser la comptabilité des opérations de fin d'exercice
Support formation : Maîtriser la comptabilité des opérations de fin d'exercice
 
Support cours : Comment rédiger un rapport ?
Support cours : Comment rédiger un rapport ?Support cours : Comment rédiger un rapport ?
Support cours : Comment rédiger un rapport ?
 
Support formation : Maîtriser les Data Sciences avec Python Language - Partie I
Support formation : Maîtriser les Data Sciences avec Python Language - Partie ISupport formation : Maîtriser les Data Sciences avec Python Language - Partie I
Support formation : Maîtriser les Data Sciences avec Python Language - Partie I
 
Support cours : Rédigez vos emails professionnels
Support cours : Rédigez vos emails professionnelsSupport cours : Rédigez vos emails professionnels
Support cours : Rédigez vos emails professionnels
 
Support cours : Les phares du marketing
Support cours : Les phares du marketingSupport cours : Les phares du marketing
Support cours : Les phares du marketing
 
Support formation : La négociation commerciale coté vendeur
Support formation : La négociation commerciale coté vendeurSupport formation : La négociation commerciale coté vendeur
Support formation : La négociation commerciale coté vendeur
 
Support cours : Initiation à SAP ERP
Support cours : Initiation à SAP ERPSupport cours : Initiation à SAP ERP
Support cours : Initiation à SAP ERP
 
Tutoriel : Online English Expertise
Tutoriel : Online English ExpertiseTutoriel : Online English Expertise
Tutoriel : Online English Expertise
 
Formation : Mettre en place une stratégie commerciale
Formation : Mettre en place une stratégie commercialeFormation : Mettre en place une stratégie commerciale
Formation : Mettre en place une stratégie commerciale
 
Support cours : Cours d'Espagnol Débutant (A1-A2)
Support cours : Cours d'Espagnol Débutant (A1-A2)Support cours : Cours d'Espagnol Débutant (A1-A2)
Support cours : Cours d'Espagnol Débutant (A1-A2)
 
Support cours : Vos premiers pas avec le pare feu CISCO ASA
Support cours : Vos premiers pas avec le pare feu CISCO ASASupport cours : Vos premiers pas avec le pare feu CISCO ASA
Support cours : Vos premiers pas avec le pare feu CISCO ASA
 
Support Tutoriel : Online English Expertise
Support Tutoriel : Online English ExpertiseSupport Tutoriel : Online English Expertise
Support Tutoriel : Online English Expertise
 
Support formation en ligne : Manager et auditer les risques informatiques
Support formation en ligne : Manager et auditer les risques informatiquesSupport formation en ligne : Manager et auditer les risques informatiques
Support formation en ligne : Manager et auditer les risques informatiques
 
Support Tutoriel : Art oratoire et prise de parole en public
Support Tutoriel : Art oratoire et prise de parole en publicSupport Tutoriel : Art oratoire et prise de parole en public
Support Tutoriel : Art oratoire et prise de parole en public
 
Support formation en ligne: L'estime de soi
Support formation en ligne: L'estime de soiSupport formation en ligne: L'estime de soi
Support formation en ligne: L'estime de soi
 
Support formation vidéo : Les phares du marketing
Support formation vidéo : Les phares du marketingSupport formation vidéo : Les phares du marketing
Support formation vidéo : Les phares du marketing
 

Dernier

Evaluation du systeme d'Education. Marocpptx
Evaluation du systeme d'Education. MarocpptxEvaluation du systeme d'Education. Marocpptx
Evaluation du systeme d'Education. MarocpptxAsmaa105193
 
Formation M2i - Comprendre les neurosciences pour développer son leadership
Formation M2i - Comprendre les neurosciences pour développer son leadershipFormation M2i - Comprendre les neurosciences pour développer son leadership
Formation M2i - Comprendre les neurosciences pour développer son leadershipM2i Formation
 
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
 
Présentation_ Didactique 1_SVT (S4) complet.pptx
Présentation_ Didactique 1_SVT (S4) complet.pptxPrésentation_ Didactique 1_SVT (S4) complet.pptx
Présentation_ Didactique 1_SVT (S4) complet.pptxrababouerdighi
 
systeme expert_systeme expert_systeme expert
systeme expert_systeme expert_systeme expertsysteme expert_systeme expert_systeme expert
systeme expert_systeme expert_systeme expertChristianMbip
 
Cours SE Gestion des périphériques - IG IPSET
Cours SE Gestion des périphériques - IG IPSETCours SE Gestion des périphériques - IG IPSET
Cours SE Gestion des périphériques - IG IPSETMedBechir
 
SciencesPo_Aix_InnovationPédagogique_Bilan.pdf
SciencesPo_Aix_InnovationPédagogique_Bilan.pdfSciencesPo_Aix_InnovationPédagogique_Bilan.pdf
SciencesPo_Aix_InnovationPédagogique_Bilan.pdfSKennel
 
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
 
Annie Ernaux Extérieurs. pptx. Exposition basée sur un livre .
Annie   Ernaux  Extérieurs. pptx. Exposition basée sur un livre .Annie   Ernaux  Extérieurs. pptx. Exposition basée sur un livre .
Annie Ernaux Extérieurs. pptx. Exposition basée sur un livre .Txaruka
 
A3iFormations, organisme de formations certifié qualiopi.
A3iFormations, organisme de formations certifié qualiopi.A3iFormations, organisme de formations certifié qualiopi.
A3iFormations, organisme de formations certifié qualiopi.Franck Apolis
 
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
 
Cours SE Le système Linux : La ligne de commande bash - IG IPSET
Cours SE Le système Linux : La ligne de commande bash - IG IPSETCours SE Le système Linux : La ligne de commande bash - IG IPSET
Cours SE Le système Linux : La ligne de commande bash - IG IPSETMedBechir
 
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
 
Fondation Louis Vuitton. pptx
Fondation      Louis      Vuitton.   pptxFondation      Louis      Vuitton.   pptx
Fondation Louis Vuitton. pptxTxaruka
 
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
 
le present des verbes reguliers -er.pptx
le present des verbes reguliers -er.pptxle present des verbes reguliers -er.pptx
le present des verbes reguliers -er.pptxmmatar2
 
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
 
Principe de fonctionnement d'un moteur 4 temps
Principe de fonctionnement d'un moteur 4 tempsPrincipe de fonctionnement d'un moteur 4 temps
Principe de fonctionnement d'un moteur 4 tempsRajiAbdelghani
 
Saint Georges, martyr, et la lègend du dragon.pptx
Saint Georges, martyr, et la lègend du dragon.pptxSaint Georges, martyr, et la lègend du dragon.pptx
Saint Georges, martyr, et la lègend du dragon.pptxMartin M Flynn
 

Dernier (20)

Evaluation du systeme d'Education. Marocpptx
Evaluation du systeme d'Education. MarocpptxEvaluation du systeme d'Education. Marocpptx
Evaluation du systeme d'Education. Marocpptx
 
Formation M2i - Comprendre les neurosciences pour développer son leadership
Formation M2i - Comprendre les neurosciences pour développer son leadershipFormation M2i - Comprendre les neurosciences pour développer son leadership
Formation M2i - Comprendre les neurosciences pour développer son leadership
 
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
 
Présentation_ Didactique 1_SVT (S4) complet.pptx
Présentation_ Didactique 1_SVT (S4) complet.pptxPrésentation_ Didactique 1_SVT (S4) complet.pptx
Présentation_ Didactique 1_SVT (S4) complet.pptx
 
systeme expert_systeme expert_systeme expert
systeme expert_systeme expert_systeme expertsysteme expert_systeme expert_systeme expert
systeme expert_systeme expert_systeme expert
 
Cours SE Gestion des périphériques - IG IPSET
Cours SE Gestion des périphériques - IG IPSETCours SE Gestion des périphériques - IG IPSET
Cours SE Gestion des périphériques - IG IPSET
 
SciencesPo_Aix_InnovationPédagogique_Bilan.pdf
SciencesPo_Aix_InnovationPédagogique_Bilan.pdfSciencesPo_Aix_InnovationPédagogique_Bilan.pdf
SciencesPo_Aix_InnovationPédagogique_Bilan.pdf
 
Pâques de Sainte Marie-Euphrasie Pelletier
Pâques de Sainte Marie-Euphrasie PelletierPâques de Sainte Marie-Euphrasie Pelletier
Pâques de Sainte Marie-Euphrasie Pelletier
 
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
 
Annie Ernaux Extérieurs. pptx. Exposition basée sur un livre .
Annie   Ernaux  Extérieurs. pptx. Exposition basée sur un livre .Annie   Ernaux  Extérieurs. pptx. Exposition basée sur un livre .
Annie Ernaux Extérieurs. pptx. Exposition basée sur un livre .
 
A3iFormations, organisme de formations certifié qualiopi.
A3iFormations, organisme de formations certifié qualiopi.A3iFormations, organisme de formations certifié qualiopi.
A3iFormations, organisme de formations certifié qualiopi.
 
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
 
Cours SE Le système Linux : La ligne de commande bash - IG IPSET
Cours SE Le système Linux : La ligne de commande bash - IG IPSETCours SE Le système Linux : La ligne de commande bash - IG IPSET
Cours SE Le système Linux : La ligne de commande bash - IG IPSET
 
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
 
Fondation Louis Vuitton. pptx
Fondation      Louis      Vuitton.   pptxFondation      Louis      Vuitton.   pptx
Fondation Louis Vuitton. pptx
 
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
 
le present des verbes reguliers -er.pptx
le present des verbes reguliers -er.pptxle present des verbes reguliers -er.pptx
le present des verbes reguliers -er.pptx
 
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
 
Principe de fonctionnement d'un moteur 4 temps
Principe de fonctionnement d'un moteur 4 tempsPrincipe de fonctionnement d'un moteur 4 temps
Principe de fonctionnement d'un moteur 4 temps
 
Saint Georges, martyr, et la lègend du dragon.pptx
Saint Georges, martyr, et la lègend du dragon.pptxSaint Georges, martyr, et la lègend du dragon.pptx
Saint Georges, martyr, et la lègend du dragon.pptx
 

Support formation vidéo: Android Kotlin : développez des applications mobiles

  • 1. Formation Programmer des applications mobiles avec Kotlin Introduction à l’univers d’Android Préparée par: Jérôme Clament-Sanz Formateur Expert Android
  • 2. Formation Programmer des applications mobiles avec Kotlin Histoire d’Android 2003 : Naissance du projet Android 2005 : Racheté par Google Janvier 2007 : Annonce de l’iPhone Novembre 2007 : Création de l’Open Handset Alliance Fin 2010 : Android devient l’OS mobile le plus utilisé au monde
  • 3. Formation Programmer des applications mobiles avec Kotlin Philosophie et avantages d’Android Open Source Gratuit (ou presque) Facile à développer Facile à vendre Flexible 3/4 du marché des smartphones
  • 4. Formation Programmer des applications mobiles avec Kotlin Parts de marché des OS mobiles 1eme trimestre 2012 : Android : 59,1 % iOS : 22,9 % BlackBerry OS : 6,3 % Windows Phone : 2,1 % Autres : 9,6 % 3eme trimestre 2016 : Android : 87,8 % iOS : 11,5 % BlackBerry OS : 0,1 % Windows Phone : 0,4 % Autres : 0,2 %
  • 5. Formation Programmer des applications mobiles avec Kotlin Android dans le temps Android 1.O et 1.1 Android 1.5 (CupCake) Android 1.6 (Donut) Android 2.0 et 2.1 (Eclair) Android 2.2 et 2.3 (Froyo et Gingerbread) Android 3.0 (Honeycomb) Android 4.0 (Ice Cream Sandwich) Android 4.1, 4.2, 4.3 et 4.4 (Jelly Bean / KitKat) Android 5.0, 5.0.1, 5.0.2 et 5.1 (Lollipop) Android 6.0 (Marshmallow) Android 7.0 (Nougat) Android 8.0 (O)
  • 6. Formation Programmer des applications mobiles avec Kotlin Conditions initiales Pour tout le monde : 4 Go de mémoire RAM (idéalement plus de 8 Go) Plus de 3 Go d'espace disque Niveau processeur, l'émulation ne peut se faire que sur 1 cœur de votre processeur, donc augmenter le nombre de cœurs ne vous servira pas à grand-chose. C'est vraiment la puissance pure qui compte. Il n'y a donc pas de minima mais le plus rapide sera le mieux Spécificités par OS Windows : Vista ou plus récent Mac OS : Mac OS 10.8.5 ou plus récent Linux : bibliothèque GNU C (glibc) version 2.15 ou plus récent
  • 7. Formation Programmer des applications mobiles avec Kotlin Installation des outils Seulement 2 choses : Java Development Kit (JDK) Environnement de développement Android Studio 3
  • 8. Formation Programmer des applications mobiles avec Kotlin Configuration du terminal Sous Windows Soit télécharger les drivers du terminal sur le site du constructeur : Liste des sites : https://developer.android.com/studio/run/oem-usb.html#Drivers Soit utiliser un pilote générique : android-sdkextrasgoogleusb_driver Sous Mac OS Rien à faire :-) Sous Linux Ajouter au gestionnaire de périphériques une règle spécifique par appareil relié
  • 9. Formation Programmer des applications mobiles avec Kotlin Configuration du téléphone Par étapes : 1.Accéder aux paramètres du téléphone 2.Aller dans « sécurité » 3.Activer « sources inconnues » 4.Retourner au menu principal des paramètres du téléphone 5.Aller dans « à propos du téléphone » 6.Tout en bas, appuyer 7 fois sur « numéro de build » 7.Retourner à nouveau dans le menu principal des paramètres du téléphone 8.Aller dans la nouvelle catégorie « options pour les développeurs » 9.Activer le « débogage USB »
  • 10. Formation Programmer des applications mobiles avec Kotlin Kotlin VS Java Préparée par: Jérôme Clament-Sanz Formateur Expert Android
  • 11. Formation Programmer des applications mobiles avec Kotlin Qu’est-ce que Kotlin ? • Kotlin est un langage de programmation orienté objet et fonctionnel, avec un typage statique qui permet de compiler pour la Machine virtuelle Java et JavaScript • Kotlin ne nécessite en aucun cas de réécrire l’ensemble des applications • Kotlin est également un langage robuste et éprouvé
  • 12. Formation Programmer des applications mobiles avec Kotlin Qu’offre Kotlin ? • langage plus riche • Flexible • Concis
  • 13. Formation Programmer des applications mobiles avec Kotlin Quel avenir pour Java et C/C++ sur Android ? • Le support de Java, C et C++ sera le même qu’aujourd’hui • Kotlin est simplement un nouveau langage supporté.
  • 14. Formation Programmer des applications mobiles avec Kotlin Classes
  • 15. Formation Programmer des applications mobiles avec Kotlin Variables
  • 16. Formation Programmer des applications mobiles avec Kotlin Constructeurs
  • 17. Formation Programmer des applications mobiles avec Kotlin Ajouter des méthodes
  • 18. Formation Programmer des applications mobiles avec Kotlin Extensions
  • 19. Formation Programmer des applications mobiles avec Kotlin Créer une méthode simple
  • 20. Formation Programmer des applications mobiles avec Kotlin Conditions
  • 21. Formation Programmer des applications mobiles avec Kotlin Boucles
  • 22. Formation Programmer des applications mobiles avec Kotlin String Templates
  • 23. Formation Programmer des applications mobiles avec Kotlin Environnement de développement Préparée par: Jérôme Clament-Sanz Formateur Expert Android
  • 24. Formation Programmer des applications mobiles avec Kotlin Création d’un projet Premier écran Application Name : Nom qui apparaîtra sur l'appareil et sur Google Play Company Domain : Identifiant de l’application (ne peut être changé une fois l’app publiée) Project Location : Emplacement où les fichiers du projet seront créés Deuxième écran Sélection de l’API Troisième écran Création de la première Activity Dernier écran Informations sur la première activité de notre application
  • 25. Formation Programmer des applications mobiles avec Kotlin Composition d’un projet Android Dossier « java » Dossier « res » (ressources) layout drawable values Config : AndroidManifest.xml build.gradle
  • 26. Formation Programmer des applications mobiles avec Kotlin Android Manifest
  • 27. Formation Programmer des applications mobiles avec Kotlin build.gradle
  • 28. Formation Programmer des applications mobiles avec Kotlin Dossier « values » strings.xml : colors.xml : dimens.xml :
  • 29. Formation Programmer des applications mobiles avec Kotlin Compiler et lancer son app
  • 30. Formation Programmer des applications mobiles avec Kotlin Logs
  • 31. Formation Programmer des applications mobiles avec Kotlin Debug
  • 32. Formation Programmer des applications mobiles avec Kotlin Inspecter son code
  • 33. Formation Programmer des applications mobiles avec Kotlin Android Virtual Device Manager AVD Manager permet d’émuler des devices Android Il est possible de choisir des modèles existants ou de créer son propre modèle
  • 34. Formation Programmer des applications mobiles avec Kotlin SDK Manager
  • 35. Formation Programmer des applications mobiles avec Kotlin Les Layouts Préparée par: Jérôme Clament-Sanz Formateur Expert Android
  • 36. Formation Programmer des applications mobiles avec Kotlin Différents types de Layout LinearLayout Layout avec orientation unique (horizontal et vertical) RelativeLayout Layout avec positionnement des éléments GridLayout Position des éléments dans un tableau FrameLayout Elément unique CoordinatorLayout Layout avec dépendance entre les éléments ConstraintLayout Équivalent au RelativeLayout mais plus flexible et plus simple
  • 37. Formation Programmer des applications mobiles avec Kotlin LinearLayout
  • 38. Formation Programmer des applications mobiles avec Kotlin RelativeLayout
  • 39. Formation Programmer des applications mobiles avec Kotlin GridLayout
  • 40. Formation Programmer des applications mobiles avec Kotlin Coordinator Layout
  • 41. Formation Programmer des applications mobiles avec Kotlin Constraint Layout
  • 42. Formation Programmer des applications mobiles avec Kotlin Les éléments dans un layout TextView EditText Button RadioButton CheckBox AutoCompleteTextView et beaucoup d’autres…
  • 43. Formation Programmer des applications mobiles avec Kotlin TextView
  • 44. Formation Programmer des applications mobiles avec Kotlin EditText
  • 45. Formation Programmer des applications mobiles avec Kotlin Button
  • 46. Formation Programmer des applications mobiles avec Kotlin Les attributs des éléments de layout Id Width / Height WeightSum et Weight Margin / Padding Gravity Visibility Src Text Color etc…
  • 47. Formation Programmer des applications mobiles avec Kotlin Id Définir un id permet d’utiliser un élément depuis un Layout ou depuis une classe Java Un id se défini de cette manière : @+id/nom_id Exemple avec la création d’une TextView qui a pour id textview_hello : En Java, on devait récupérer notre TextView grâce à son id pour ensuite l’utiliser pour changer son texte par exemple : En Kotlin, on a qu’à faire :
  • 48. Formation Programmer des applications mobiles avec Kotlin Widht / Height Les attributs widht et height définissent la longueur et largeur d’un élément Il y a plusieurs possibilités : match_parent : prend toute la taille du layout parent wrap_content : prend toute la taille du contenu de l’élément taille fixe (en dp / px / in / mm / pt)
  • 49. Formation Programmer des applications mobiles avec Kotlin WeightSum et Weight
  • 50. Formation Programmer des applications mobiles avec Kotlin Margin et Padding
  • 51. Formation Programmer des applications mobiles avec Kotlin Include Les include permettent d’insérer le contenu d’un Layout dans un autre Layout. Il est possible de donner un id à son include Il est aussi possible de définir la longueur et la largeur d’un include
  • 52. Formation Programmer des applications mobiles avec Kotlin Exercice : les Layouts Préparée par: Jérôme Clament-Sanz Formateur Expert Android
  • 53. Formation Programmer des applications mobiles avec Kotlin Le but de l’exercice Comprendre comment fonctionnent les Layouts : Relative et Linear Réussir à positionner des éléments dans des Layouts Compiler une app sur Android Réussir à lancer son app depuis un émulateur ou un smartphone
  • 54. Formation Programmer des applications mobiles avec Kotlin Énoncé Réaliser le même Layout qu’à gauche : - Il doit être divisé en 2 parties de tailles égales - La partie du haut doit contenir le texte « BONJOUR » centré au milieu de cette partie. - La partie du haut doit avoir une couleur de fond au choix. - La partie du bas doit contenir 3 boutons (« BOUTON 1 », « BOUTON 2 » et « BOUTON 3 »). Ces boutons doivent être centrés au milieu de cette partie.
  • 55. Formation Programmer des applications mobiles avec Kotlin Les Chaînes de caractère Préparée par: Jérôme Clament-Sanz Formateur Expert Android
  • 56. Formation Programmer des applications mobiles avec Kotlin Exemple avec une TextView
  • 57. Formation Programmer des applications mobiles avec Kotlin Extraction de la chaîne de caractères
  • 58. Formation Programmer des applications mobiles avec Kotlin Résultat
  • 59. Formation Programmer des applications mobiles avec Kotlin Translation Editor
  • 60. Formation Programmer des applications mobiles avec Kotlin Les Activitys Préparée par: Jérôme Clament-Sanz Formateur Expert Android
  • 61. Formation Programmer des applications mobiles avec Kotlin Qu’est ce qu’une Activity ?
  • 62. Formation Programmer des applications mobiles avec Kotlin Activity, Context et Interface Graphique
  • 63. Formation Programmer des applications mobiles avec Kotlin Pile d’activités
  • 64. Formation Programmer des applications mobiles avec Kotlin Cycle de vie d’une activité onCreate méthode d'initialisation des vues, des paramètres et autres données. onStart appelée quand l'activité est rendue visible à l'utilisateur. onRestart appelée à un nouveau démarrage de la même activité (quand l'activité était arrêtée) onResume appelée quand l'activité commence à interagir avec l'utilisateur. onPause méthode qui sert à arrêter une activité temporairement. onStop appelée quand l'activité n'est plus visible à l'utilisateur, soit à cause d'une nouvelle activité lancée, soit parce que l'activité en cours s'apprête à être détruite. onDestroy est invoquée quand l'activité est détruite par la méthode finish() ou quand le système décide de tuer l'activité pour économiser de l'espace.
  • 65. Formation Programmer des applications mobiles avec Kotlin Cycle de vie d’une activité
  • 66. Formation Programmer des applications mobiles avec Kotlin Cycle de vie d’une activité
  • 67. Formation Programmer des applications mobiles avec Kotlin Context Référence à des ressources gérées par l'application, des informations sur le système et accès à des services d'Android. Est employé pour lancer une nouvelle activité, réceptionner les intentions ou écouter les événements. Exemples : création de nouveaux objets (TextView, Adapter...) accès à des ressources (String, Array...) accès implicite à des components, par exemple getContext().getContentResolver() Comment récupérer le contexte ? getApplicationContext() getContext() getBaseContext() this (disponible uniquement depuis une activité)
  • 68. Formation Programmer des applications mobiles avec Kotlin Intent Permet de naviguer entre les écrans (d’une Activity à une autre) On distingue deux types d'intention : explicite : on spécifie le nom de l’activité à invoquer. implicite : on ne sait pas quelle activité doit être invoquée : Android se charge de trouver l'activité adéquate à lancer (exemple : pour un site web, il va lancer un des navigateurs disponibles). Passage de MainActivity() à NextActivity() :
  • 69. Formation Programmer des applications mobiles avec Kotlin Bundle Envoyer un extra de type int à une autre Activity : Recevoir un int dans l’autre Activity : Le Bundle est une instance de classe passée en paramètre dans la méthode onCreate(). Cette classe est une sorte de conteneur pour les données transmissibles d'une activité à l'autre. Elle permet de récupérer tout type de données : String, long, char, ArrayList, etc…
  • 70. Formation Programmer des applications mobiles avec Kotlin Un exemple c’est toujours mieux :) MainActivity.java : NextActivity.java : Structure du projet :
  • 71. Formation Programmer des applications mobiles avec Kotlin Les Activity : exercice Préparée par: Jérôme Clament-Sanz Formateur Expert Android
  • 72. Formation Programmer des applications mobiles avec Kotlin Le but de l’exercice Comprendre comment fonctionnent les Activity Savoir passer d’une Activity à une autre Passer des paramètres à une Activity à une autre
  • 73. Formation Programmer des applications mobiles avec Kotlin Énoncé Réaliser une application qui contient 2 Activity. Il doit y avoir un log sur chaque cycles de l’Activity principale : • onCreate • onStop • onStart • etc… La première Activity doit proposer à l’utilisateur de rentrer son login et mot de passe. Il pourra ensuite cliquer sur un bouton de validation qui lance la seconde Activity. Dans cette seconde Activity, une TextView doit afficher son login.
  • 74. Formation Programmer des applications mobiles avec Kotlin Les Intents Implicites Préparée par: Jérôme Clament-Sanz Formateur Expert Android
  • 75. Formation Programmer des applications mobiles avec Kotlin Intent implicite Un Intent implicite permet de laisser le soin à Android de chercher l’app la plus adaptée pour notre action. Par exemple : Ouvrir un URL Envoyer un SMS Partager quelque chose Écouter une musique Scanner un code-bar Etc.
  • 76. Formation Programmer des applications mobiles avec Kotlin Uniform Resource Identifier (URI) Une URI est une chaîne de caractère respectant une norme et permettant d’identifier une ressource sur un réseau de manière permanente, même si cette ressource est déplacée ou supprimée. L’URL est une URI pour les ressources disponibles sur Internet, au même titre que l’ISBN est une URI pour les livres puisqu’il s’agit de l’identifiant unique d’un livre.
  • 77. Formation Programmer des applications mobiles avec Kotlin Exemples URI ftp://ftp.is.co.za/rfc/rfc1808.txt [archive] : protocole FTP pour le service File Transfer Protocol http://www.math.uio.no/faq/compression-faq/part1.html [archive] : protocole HTTP pour le service Hypertext Transfer Protocol mailto:mduerst@ifi.unizh.ch [archive] : protocole mailto pour les adresses électroniques news:comp.infosystems.www.servers.unix [archive] : protocole news pour les newsgroups Usenet telnet://melvyl.ucop.edu/ [archive] : protocole telnet pour les services interactifs via telnet irc://irc.freenode.net/ubuntu-fr [archive] : protocole IRC pour le service Internet Relay Chat ssh://utilisateur@example.com [archive] : protocole SSH pour le service Secure shell sftp://utilisateur@example.com [archive] : protocole SFTP pour le service SSH file transfer protocol http://example.org/URI/absolu/avec/chemin/absolu/vers/une/ressource [archive] /URI/relatif/avec/chemin/absolu/vers/une/ressource chemin/relatif/vers/une/ressource ../../../ressource ./ressource#fragment ressource #fragment
  • 78. Formation Programmer des applications mobiles avec Kotlin Ouvrir le navigateur
  • 79. Formation Programmer des applications mobiles avec Kotlin Envoyer un SMS
  • 80. Formation Programmer des applications mobiles avec Kotlin Envoyer un Email
  • 81. Formation Programmer des applications mobiles avec Kotlin Les Fragments Préparée par: Jérôme Clament-Sanz Formateur Expert Android
  • 82. Formation Programmer des applications mobiles avec Kotlin Exemple de fragment
  • 83. Formation Programmer des applications mobiles avec Kotlin Avantages de l'utilisation des fragments
  • 84. Formation Programmer des applications mobiles avec Kotlin Cycle de vie d’un fragment
  • 85. Formation Programmer des applications mobiles avec Kotlin FrameLayout
  • 86. Formation Programmer des applications mobiles avec Kotlin Dans l’activité
  • 87. Formation Programmer des applications mobiles avec Kotlin Dans le fragment
  • 88. Formation Programmer des applications mobiles avec Kotlin Les Fragments Préparée par: Jérôme Clament-Sanz Formateur Expert Android
  • 89. Formation Programmer des applications mobiles avec Kotlin Le but de l’exercice Comprendre comment fonctionnent les Fragments Passer d’un fragment à un autre
  • 90. Formation Programmer des applications mobiles avec Kotlin Énoncé Réaliser la même app qu’à gauche : - Il faut une Activity qui contient quatre boutons : 1. HOME 2. NEWS 3. ABOUT 4. SETTINGS - Mais aussi 4 Fragments correspondants chacun aux 4 boutons du haut - Chaque bouton doit rediriger vers le fragment qui porte son nom - Il faut qu’au lancement de l’app, le fragment « HOME » se charge. - Il est préférable de mettre des couleurs et du texte dans les fragments
  • 91. Formation Programmer des applications mobiles avec Kotlin Les ListView Préparée par: Jérôme Clament-Sanz Formateur Expert Android
  • 92. Formation Programmer des applications mobiles avec Kotlin ListView
  • 93. Formation Programmer des applications mobiles avec Kotlin L’élément ListView
  • 94. Formation Programmer des applications mobiles avec Kotlin Remplir sa ListView
  • 95. Formation Programmer des applications mobiles avec Kotlin Résultat
  • 96. Formation Programmer des applications mobiles avec Kotlin Custom ListView Layouts activity_main.xml item_expert.xml Classes ExpertModel.java CustomAdapter.java MainActivity.java
  • 97. Formation Programmer des applications mobiles avec Kotlin activity_main.xml
  • 98. Formation Programmer des applications mobiles avec Kotlin item_expert.xml
  • 99. Formation Programmer des applications mobiles avec Kotlin ExpertModel.kt
  • 100. Formation Programmer des applications mobiles avec Kotlin CustomAdapter.kt
  • 101. Formation Programmer des applications mobiles avec Kotlin MainActivity.kt
  • 102. Formation Programmer des applications mobiles avec Kotlin Les ListView : exercice Préparée par: Jérôme Clament-Sanz Formateur Expert Android
  • 103. Formation Programmer des applications mobiles avec Kotlin Le but de l’exercice Utiliser les ListView Créer son propre Adapter pour sa ListView
  • 104. Formation Programmer des applications mobiles avec Kotlin Énoncé Parce qu’on aime les loutres, créez une app qui affiche la liste des types de loutres. • lors d’un click sur un item, il faut afficher dans un Toast le nom de la Loutre • lors d’un click sur l’icône d’information, il faut afficher la date de découverte de cette loutre Si vous souhaitez aller plus loin : • vous pouvez ajouter l’image de la loutre dans cette liste • Vous pouvez ajouter un bouton play qui jouera le son si particulier de la loutre sélectionnée. Bon courage et honneur aux loutres !
  • 105. Formation Programmer des applications mobiles avec Kotlin Les RecyclerView Préparée par: Jérôme Clament-Sanz Formateur Expert Android
  • 106. Formation Programmer des applications mobiles avec Kotlin RecyclerView
  • 107. Formation Programmer des applications mobiles avec Kotlin RecyclerView > ListView ? Dans une ListView, il y aura autant de vues créées que d’items… C’est lourd ! Dans une RecyclerView, il y aura autant de vues créées que d’items visibles à l’écran. Lorsque que l’on fait défiler les vues et que l’une d’entre elles disparaît, elle est “recyclée” pour être réutilisée. Il est possible de choisir son LayoutManager avec les RecyclerView : LinearLayoutManager GridLayoutManager
  • 108. Formation Programmer des applications mobiles avec Kotlin Librairie de compatibilité Ajouter la lib support pour le RecyclerView dans le Gradle :
  • 109. Formation Programmer des applications mobiles avec Kotlin OnItemClickListener et RecyclerView Par défaut, il n’existe pas de OnItemClickListener avec les RecyclerView. Cependant, il y a deux possibilités pour mettre en place la gestion du click sur les items de notre liste : Ajouter un setOnClickListener sur chaque élément de notre adapter Implémenter un RecyclerView.OnItemTouchListener et le lier à notre RecyclerView
  • 110. Formation Programmer des applications mobiles avec Kotlin Exemple avec setOnClickListener RecyclerView : 1er exemple : Réagira au click sur les TextView et ImageView La réaction au click se fait depuis l’Adapter
  • 111. Formation Programmer des applications mobiles avec Kotlin activity_main.xml
  • 112. Formation Programmer des applications mobiles avec Kotlin item_recycler.xml
  • 113. Formation Programmer des applications mobiles avec Kotlin DataModel.kt
  • 114. Formation Programmer des applications mobiles avec Kotlin RecyclerAdapter.kt
  • 115. Formation Programmer des applications mobiles avec Kotlin MainActivity.kt
  • 116. Formation Programmer des applications mobiles avec Kotlin Exemple avec son propre ItemTouchListener RecyclerView : 2ème exemple : L’item réagira au click : onItemClick onLongItemClick
  • 117. Formation Programmer des applications mobiles avec Kotlin activity_main.xml
  • 118. Formation Programmer des applications mobiles avec Kotlin item_recycler.xml
  • 119. Formation Programmer des applications mobiles avec Kotlin DataModel.kt
  • 120. Formation Programmer des applications mobiles avec Kotlin RecyclerAdapter.kt
  • 121. Formation Programmer des applications mobiles avec Kotlin RecyclerItemTouchListener.kt
  • 122. Formation Programmer des applications mobiles avec Kotlin MainActivity.kt
  • 123. Formation Programmer des applications mobiles avec Kotlin Les RecyclerView : exercice Préparée par: Jérôme Clament-Sanz Formateur Expert Android
  • 124. Formation Programmer des applications mobiles avec Kotlin Le but de l’exercice Utiliser les RecyclerView Connaître les différentes méthodes pour réagir au click sur un élément de la RecyclerView
  • 125. Formation Programmer des applications mobiles avec Kotlin Énoncé Peut importe la liste (compétences, hotels, plats, etc.). Se baser sur la même Recycler et le même objet pour faire 2 Activity: 1) La première doit réagir au click avec un Custom Listener 2) La deuxième doit réagir au click avec un setOnClickListener sur les éléments (textView, Image, etc)
  • 126. Formation Programmer des applications mobiles avec Kotlin Les SharedPreferences Préparée par: Jérôme Clament-Sanz Formateur Expert Android
  • 127. Formation Programmer des applications mobiles avec Kotlin SharedPreferences : stockage en local
  • 128. Formation Programmer des applications mobiles avec Kotlin Différents modes d’accessibilité Context.MODE_PRIVATE pour que le fichier créé ne soit accessible que par l'application qui l'a créée. Context.MODE_WORLD_READABLE pour que le fichier créé puisse être lu par n'importe quelle application. Context.MODE_WORLD_WRITEABLE pour que le fichier créé puisse être lu et modifié par n'importe quelle application.
  • 129. Formation Programmer des applications mobiles avec Kotlin Attention Les préférences partagées ne fonctionnent qu'avec les objets de type : boolean float int long String.
  • 130. Formation Programmer des applications mobiles avec Kotlin SQLite Préparée par: Jérôme Clament-Sanz Formateur Expert Android
  • 131. Formation Programmer des applications mobiles avec Kotlin SQLite ? Bibliothèque écrite en C qui propose un moteur de base de données accessible par le langage SQL (standard SQL-92). SQLite est directement intégrée aux programmes Première version de SQLite en août 2000 SQLite a un modèle de type embarqué contrairement à MySQL ou PostgreSQL qui ont des modèles de type client serveur.
  • 132. Formation Programmer des applications mobiles avec Kotlin Types de données dans SQLite INTEGER : pour les entiers (sans virgule) INT, INTEGER, TINYINT, SMALLINT, MEDIUMINT, BIGINT, UNSIGNED BIG INT, INT2, INT8 REAL : pour les nombres réels (avec virgule) REAL, DOUBLE, DOUBLE PRECISION, FLOAT TEXT : pour les chaînes de caractères CHARACTER(20), VARCHAR(255), VARYING CHARACTER(255), NCHAR(55), NATIVE CHARACTER(70), NVARCHAR(100), TEXT, CLOB NUMERIC : pour les données numériques NUMERIC, DECIMAL(10,5), BOOLEAN, DATE, DATETIME BLOB : pour les données brutes (par exemple : images, etc) BLOB (pas de datatype) NULL : pour les données NULL
  • 133. Formation Programmer des applications mobiles avec Kotlin Syntaxe SQLite CREATE TABLE nom_de_la_table ( nom_du_champ_1 type {contraintes}, nom_du_champ_2 type {contraintes}, …); Pour chaque attribut, on doit déclarer au moins 2 informations : - son nom - son type de donnée Il est possible de déclarer des contraintes pour chaque attribut à l'emplacement de {contraintes}. On trouve comme contraintes : - PRIMARY KEY pour désigner la clé primaire sur un attribut - NOT NULL pour indiquer que cet attribut ne peut valoir NULL - CHECK afin de vérifier que la valeur de cet attribut est cohérente - DEFAULT sert à préciser une valeur par défaut
  • 134. Formation Programmer des applications mobiles avec Kotlin Créer ou ouvrir une base de données Créer une base de données SQLite sur Android c’est simple :
  • 135. Formation Programmer des applications mobiles avec Kotlin Créer une table avec execSQL Créer une table aussi :
  • 136. Formation Programmer des applications mobiles avec Kotlin rawQuery() VS query() VS VS
  • 137. Formation Programmer des applications mobiles avec Kotlin Paramètres de la méthode query() Paramètre Commentaire String dbName Nom de la table String[] columnNames Liste des colonnes à retourner. Toutes les colonnes seront retournées avec en passant null. String whereClause Clause where : filtre pour la sélection des données. Toutes les données seront sélectionnées en passant null. String[] selectionArgs Si vous incluez des ? dans la whereClause, ils seront remplacés par les valeurs du tableau selectionArgs. String[] groupBy Filtre qui déclare comment regrouper les lignes. Les lignes ne seront pas groupées en passant null. String[] having Filtre pour les groupes. Pas de filtrage en passant null. String[] orderBy Colonnes de la table utilisées pour ordonner les données. Les données ne seront pas ordonnées en passant null.
  • 138. Formation Programmer des applications mobiles avec Kotlin Utilisation de SQLite 1. Création d’une base de données de type SQLiteDatabase 2. Création d’une table 3. INSERT afin d’ajouter un champ dans une table 4. SELECT sur un champ particulier d’une table afin de la stocker dans un Cursor 5. SELECT sur tous les champs d’une table afin de les stocker dans une StringBuilder
  • 139. Formation Programmer des applications mobiles avec Kotlin SQLite : exercice Préparée par: Jérôme Clament-Sanz Formateur Expert Android
  • 140. Formation Programmer des applications mobiles avec Kotlin Le but de l’exercice Savoir utiliser SQLite Créer et manipuler une base de données
  • 141. Formation Programmer des applications mobiles avec Kotlin Énoncé Créer une application capable de sauvegarder ses impressions sur des films. Ces commentaires doivent être stockés sur une base de données SQLite. La BDD doit se nommer « movie_db » Voici donc les champs de la table « my_movies » : - id - name - comment L’utilisateur de l’app doit pouvoir : - ajouter un film - supprimer un film - modifier un film - voir le commentaire d’un film en particulier - voir tous les commentaires de chaque films dans une liste
  • 142. Formation Programmer des applications mobiles avec Kotlin BroadcastReceiver Préparée par: Jérôme Clament-Sanz Formateur Expert Android
  • 143. Formation Programmer des applications mobiles avec Kotlin Un BroadcastReceiver, c’est quoi ? Un BoadcastReceiver est une sorte de notification permettant de prévenir d’un événement à une ou plusieurs applications. Il est possible d’utiliser des BroadscastReceiver système mais aussi de diffuser les nôtres à tout le système et de manière anonyme.
  • 144. Formation Programmer des applications mobiles avec Kotlin Quelques exemples de BroadcastReceiver android.intent.action.BATTERY_LOW La batterie est faible android.intent.action.BOOT_COMPLETED La system a terminé de booter android.intent.action.CALL Pour faire un call à quelque chose spécifié par les datas android.intent.action.DATE_CHANGED La date a changé android.intent.action.REBOOT : La device a rebooté android.net.conn.CONNECTIVITY_CHANGE La réseau mobile ou la connection WiFi a changé
  • 145. Formation Programmer des applications mobiles avec Kotlin Créer son BroadcastReceiver
  • 146. Formation Programmer des applications mobiles avec Kotlin Ajouter son Broadcast dans le Manifest
  • 147. Formation Programmer des applications mobiles avec Kotlin Appeler son BroadcastReceiver
  • 148. Formation Programmer des applications mobiles avec Kotlin Recevoir un Broadcast ? Il est possible très simplement de recevoir un Broadcast système Dans l’exemple qui va suivre, nous allons recevoir le passage en mode avion
  • 149. Formation Programmer des applications mobiles avec Kotlin Dans le Manifest
  • 150. Formation Programmer des applications mobiles avec Kotlin Dans notre Receiver
  • 151. Formation Programmer des applications mobiles avec Kotlin Voilà ☺
  • 152. Formation Programmer des applications mobiles avec Kotlin Broadcast privé Android:exported
  • 153. Formation Programmer des applications mobiles avec Kotlin Créer et utiliser une permission
  • 154. Formation Programmer des applications mobiles avec Kotlin Les services Préparée par: Jérôme Clament-Sanz Formateur Expert Android
  • 155. Formation Programmer des applications mobiles avec Kotlin Les services, c’est quoi ? Un service est nécessaire lorsque votre application souhaite effectuer des opérations ou des calculs en dehors de l'interaction utilisateur. Exemple : écouter de la musique en lisant ses mails est possible grâce aux services. Un service ne dispose pas d'interface graphique Un service n'a pas de durée définie, il est là pour exécuter sa tâche et il fonctionnera tant que c'est nécessaire.
  • 156. Formation Programmer des applications mobiles avec Kotlin Types de services Il existe deux types de services : LocalService services qui s'exécutent dans le même processus que votre application RemoteService ils s'exécutent dans des processus indépendants de votre application
  • 157. Formation Programmer des applications mobiles avec Kotlin Cycle de vie d’un service Unbounded service = Service local Bounded service = Service distant
  • 158. Formation Programmer des applications mobiles avec Kotlin Dans le AndroidManifest.xml
  • 159. Formation Programmer des applications mobiles avec Kotlin ExempleService.kt
  • 160. Formation Programmer des applications mobiles avec Kotlin MainActivity.kt
  • 161. Formation Programmer des applications mobiles avec Kotlin activity_main.xml
  • 162. Formation Programmer des applications mobiles avec Kotlin Les Widgets Préparée par: Jérôme Clament-Sanz Formateur Expert Android
  • 163. Formation Programmer des applications mobiles avec Kotlin Les Widgets
  • 164. Formation Programmer des applications mobiles avec Kotlin Exemple
  • 165. Formation Programmer des applications mobiles avec Kotlin widget.xml
  • 166. Formation Programmer des applications mobiles avec Kotlin WidgetProvider.kt
  • 167. Formation Programmer des applications mobiles avec Kotlin res/xml/widget_info.xml
  • 168. Formation Programmer des applications mobiles avec Kotlin AndroidManifest.xml
  • 169. Formation Programmer des applications mobiles avec Kotlin AsyncHttpClient Préparée par: Jérôme Clament-Sanz Formateur Expert Android
  • 170. Formation Programmer des applications mobiles avec Kotlin loopj : Android Async HTTP Client
  • 171. Formation Programmer des applications mobiles avec Kotlin WebService population.io
  • 172. Formation Programmer des applications mobiles avec Kotlin Requête « countries »
  • 173. Formation Programmer des applications mobiles avec Kotlin Dans le code…
  • 174. Formation Programmer des applications mobiles avec Kotlin Les librairies Préparée par: Jérôme Clament-Sanz Formateur Expert Android
  • 175. Formation Programmer des applications mobiles avec Kotlin Installation d’une librairie Android
  • 176. Formation Programmer des applications mobiles avec Kotlin Utilisation d’une librairie Android
  • 177. Formation Programmer des applications mobiles avec Kotlin Les librairies : exercice Préparée par: Jérôme Clament-Sanz Formateur Expert Android
  • 178. Formation Programmer des applications mobiles avec Kotlin Le but de l’exercice Savoir chercher la librairie qui nous convient Réussir à ajouter une librairie à notre projet Savoir lire la documentation d’une librairie Utiliser une librairie
  • 179. Formation Programmer des applications mobiles avec Kotlin Énoncé Réaliser la même app qu’à gauche : - Il faut une lib capable de charger une image depuis une URL. Pour cela : - Trouver une lib capable de cela - Lire la doc et l’utiliser - Si vous souhaitez aller plus loin, vous pouvez utiliser une lib qui arrondi l’image (ou autre). - Si vous souhaitez aller encore plus loin, vous pouvez imaginer une EditText qui demande l’URL de l’image et l’affiche après un click sur un bouton. N’oubliez pas de donner la permission à votre app d’accéder à internet : À mettre dans le AndroidManifest.xml, dans la balise <manifest> et juste avant la balise <application>.
  • 180. Formation Programmer des applications mobiles avec Kotlin Les notifications utilisateur Préparée par: Jérôme Clament-Sanz Formateur Expert Android
  • 181. Formation Programmer des applications mobiles avec Kotlin Toast
  • 182. Formation Programmer des applications mobiles avec Kotlin Snackbar
  • 183. Formation Programmer des applications mobiles avec Kotlin AlertDialog
  • 184. Formation Programmer des applications mobiles avec Kotlin Les permissions Préparée par: Jérôme Clament-Sanz Formateur Expert Android
  • 185. Formation Programmer des applications mobiles avec Kotlin Déclarer une permissions  Si la permission touche à la vie privée de l’utilisateur, une popup demandera à l’utilisateur de vous donner la permission.  Si la permission ne concerne pas la vie privée de l’utilisateur, elle sera automatiquement donnée.
  • 186. Formation Programmer des applications mobiles avec Kotlin Android 6 et les permissions À partir d’Android 6 (API 23) l’utilisateur donne les permissions au moment ou l’application utilise la fonctionnalité cible. Par exemple, un utilisateur peux donner accès au GPS à une application mais refuser de donner l’accès à la liste des contacts. L’utilisateur peux aussi autoriser / supprimer des permissions dans l’écran dédié à cet effet dans les paramètres.
  • 187. Formation Programmer des applications mobiles avec Kotlin Quelques conseils Ne demander une permission que si elle est nécessaire Expliquer à l’utilisateur pourquoi votre application nécessite cette permission Ne pas harceler l’utilisateur pour qu’il vous donne la permission Accepter la décision de l’utilisateur
  • 188. Formation Programmer des applications mobiles avec Kotlin Vérifier une permission À chaque utilisation d’une fonctionnalité nécessitant une permission, il faut vérifier si la permission est donnée ou non Pour cela, on utilise la méthode checkSelfPermission qui nous renvoit : PackageManager.PERMISSION_GRANTED lorsqu’on a la permission PackageManager.PERMISSION_DENIED lorsqu’on n’a pas la permission
  • 189. Formation Programmer des applications mobiles avec Kotlin Vérifier si la permission a déjà été demandée La méthode shouldShowRequestPermissionRationale permet de savoir si la permission à déjà été demandée à l’utilisateur. Si oui, mieux vaux ne pas redemander la permission à l’utilisateur. Sinon, vous pouvez demander la permission à l’aide de la méthode requestPermissions.
  • 190. Formation Programmer des applications mobiles avec Kotlin onRequestPermissionResult Une fois la permission demandée, le résultat de la demande sera retourné dans la méthode onRequestPermissionsResult (à surcharger).
  • 191. Formation Programmer des applications mobiles avec Kotlin Publier son application sur le Play Store Préparée par: Jérôme Clament-Sanz Formateur Expert Android
  • 192. Formation Programmer des applications mobiles avec Kotlin Créer une application Accédez à la console Play. Sélectionnez Toutes les applications All applications > Créer une application. Dans le menu déroulant, sélectionnez une langue par défaut. Ensuite, ajoutez un titre à votre application. Saisissez le nom de votre application tel que vous souhaitez qu'il s'affiche sur Google Play. Créez la fiche Play Store de votre application, complétez le questionnaire sur la classification du contenu, puis définissez les tarifs et la disponibilité.
  • 193. Formation Programmer des applications mobiles avec Kotlin Préparer la version de production, alpha ou bêta de votre application Pour préparer la version de production, alpha ou bêta de votre application, vous pouvez préparer et déployer des versions selon un niveau de sortie particulier. Une version est une combinaison d'un ou de plusieurs artefacts de build que vous préparez avant de déployer une application ou la mise à jour d'une application auprès des utilisateurs.
  • 194. Formation Programmer des applications mobiles avec Kotlin Gérer les fichiers APK Rechercher des fichiers APK Taille des fichiers APK Signer votre application Spécifications relatives aux versions des fichiers APK pour la console Play
  • 195. Formation Programmer des applications mobiles avec Kotlin Configurer une fiche Play Store Informations sur le produit Éléments graphiques Langues et traductions Catégorisation Coordonnées Règles de confidentialité
  • 196. Formation Programmer des applications mobiles avec Kotlin Étapes suivantes Remplir le questionnaire relatif à la classification du contenu correspondant à l'application Découvrir comment distribuer votre application dans d'autres pays et dans le cadre d'autres programmes Android Publier l'application à l'aide de la publication standard ou planifiée Effectuer des tests pour optimiser votre fiche Play Store