SlideShare une entreprise Scribd logo
Outils pour Développeur·se
macha@CHILLCODING.com
Macha
DA COSTA Site Web
Email
Android ANR
" by CHILLCODING with FontAwesome
 $  &

(
> 10 sec.
$
Outils pour Développeur·se
A. Déploiement
B. Débogage
C. Best Practices
A. Déploiement
Devenir développeur·se Android
Android Debug Bridge
Interaction avec l’émulateur
) * +
+ , )
)
+
A. Déploiement
+ , ) Devenir développeur·se Android
- Menu Options Développeurs
Numéro de Build
. - Débogage USB
$ $
A. Déploiement
+ , ) Options du téléphone
/ Sélectionner l’app. de position fictive
0 Afficher les contours
1 Déboguer les conflits GPU
 Afficher mém. CPU utilisée
3 Mode Strict activé
4 Ne pas conserver les activités
5 Limite processus arr.-plan
A. Déploiement
+ , ) Options du téléphone
Positions fictives
/
6 Simule d’autres positions
A. Déploiement
+ , ) Options du téléphone
Afficher les contours
0
6 Affiche les éléments d’une vue
(padding, margin, …)
A. Déploiement
+ , ) Options du téléphone
A. Déploiement
+ , ) Options du téléphone
Déboguer les conflits GPU
1
6 Indique info pour optimiser les vues
A. Déploiement
+ , ) Options du téléphone
Afficher mém. CPU utilisée

6 Affiche message indiquant CPU
A. Déploiement
+ , ) Options du téléphone
A. Déploiement
+ , ) Options du téléphone
Mode Strict activé
3
6 Affiche cadre rouge si Thread principal
reste occupé
A. Déploiement
+ , ) Options du téléphone
Ne pas conserver les activités
4
6 Conserve une Activity à la fois
A. Déploiement
+ , ) Options du téléphone
Limite processus arr.-plan
5
6 Définie nb processus (app) à conserver
7 + Lister les appareils
8 + Se connecter à un appareil
9 : + Installer une app
+ 4 9 Désinstaller une app
; : + Copier des fichiers
A. Déploiement
) * + Android Debug Bridge
Lister les appareils
7 +
< ./adb devices
A. Déploiement
) * + Android Debug Bridge
Se connecter à un appareil
8 +
< ./adb shell
< ./adb -s nexus_06 shell
A. Déploiement
) * + Android Debug Bridge
Installer une app
9: +
< ./adb install
< ./adb -s nexus_06 install
A. Déploiement
) * + Android Debug Bridge
Désinstaller une app
+ 4 9
< ./adb uninstall
< ./adb -s nexus_06 uninstall
A. Déploiement
) * + Android Debug Bridge
Copier des fichiers
) : ; : +
< ./adb pull /sdcard/myFile myFile
A. Déploiement
) * + Android Debug Bridge
Copier des fichiers
+ : ;: )
< ./adb push myFile /sdcard/myFile
A. Déploiement
) * + Android Debug Bridge
A. Déploiement
) Interaction avec l’émulateur
+
= Android Device Monitor
A. Déploiement
) Interaction avec l’émulateur
+
> Appel
? Message
/ Position GPS
A. Déploiement
) Interaction avec l’émulateur
+
Appel
>
= Telephony Actions
A. Déploiement
) Interaction avec l’émulateur
+
Message
?
= Telephony Actions
A. Déploiement
) Interaction avec l’émulateur
+
Position GPS
/
= Location Controls
B. Débogage
@ Message système
A Débogage des ressources
A Débogage pas à pas
= Android Lint
B. Débogage
@ Message système
B Console Logcat
A Types de message
C Utilisation des messages
B. Débogage
@ Console Logcat
+ D + D + D + D + D
B. Débogage
@ Console Logcat
D

D

D
G
D
H
D
I
B. Débogage
@ Console Logcat
D

D

D
G
D
H
D
I
B. Débogage
@ Console Logcat
D

D

D

D

B. Débogage
@ Console Logcat
J Tag
B. Débogage
@ Console Logcat
J Id
B. Débogage
@ Console Logcat
D

D

D
G
D
H
D
I
B
B. Débogage
@ Console Logcat
D

D

D
G
D
H
D
I
K
L
B. Débogage
A Types de message
< Je suis Information :)
B. Débogage
A Types de message
< Moi c’est Verbalisation :/
B. Débogage
A Types de message
< Au moins, je sers à Debugger ;)
B. Débogage
A Types de message
< Avertissement : Mais pourquoi est-il aussi méchant ?
B. Débogage
A Types de message
< Parce queeeeeeeeeeee, il y a Erreur !
B. Débogage
C Utilisation des messages
Log.e(String tag, String message, Throwable tr)
B. Débogage
C Utilisation des messages
Log.e(TAG,"Parce queeeeeeeeeeee, il y a Erreur !")
TAG = "HomeActivity"
B. Débogage
C Utilisation des messages
Log.i( MainActivity::class.simpleName,"I am I :)")
B. Débogage
A Débugage des ressources
M Build > Clean
M File > Invalidate Caches / Restart …
N Run : Erreur à la compilation
O Erreur dans le dossier Java
O Erreur dans fenêtre de message
B Cherchez la ressource anormal
B Cherchez l’attribut XML erroné
B. Débogage
A Débugage pas à pas
PPoint d’arrêt
BÉtat variable
x
B. Débogage
A Débugage pas à pas
N Run : Erreur à l’exécution
O Erreur dans la fenêtre Logcat
O Débugage dans la fenêtre Debug
B. Débogage
A Débugage pas à pas
N + A | N : A
B. Débogage
A Débugage pas à pas
Q Placer point d’arrêt
A Lancer le débugger
O Zoom sur la fenêtre Debug
_ Aller au point d’arrêt suivant
_ Aller à la ligne dans dessous
_ Aller à la ligne à l’intérieur du code
_ Observer une variable
_ Exécuter du code à la volée
B
R
R
N
S
B. Débogage
= Android Lint
T + C
B
U
V
B. Débogage
= Android Lint
T
C
V
B
B. Débogage
= Android Lint
T
+Ressources non utilisées
+Ressources non internationalisées
+Utilisation d’API non supportées
+etc
C. Best Practices
W Libraries
V Test
V Naming Convention
C. Best Practices
W Libraries
K Import an Android code sample
W Most popular Android libraries
X Influencers
K Import an Android code sample
C. Best Practices
W Most popular Android libraries
C. Best Practices
Retrofit
W Most popular Android libraries
C. Best Practices
https://github.com/Dimezis/RxBus
W Most popular Android libraries
C. Best Practices
Room

W Most popular Android libraries
C. Best Practices
Picasso

W Most popular Android libraries
C. Best Practices
W Most popular Android libraries
C. Best Practices
C How to import
dependencies {


implementation 'de.greenrobot:eventbus:2.4.0'
V Gradle
X Influencers
C. Best Practices
Y
G Z X
X Influencers
C. Best Practices
G
Android developers
Android dialogs
X References
C. Best Practices
Z
https://developer.android.com
http://android-arsenal.com/
X Conferences
C. Best Practices
X
Google I/O
Android Makers
DroidCon
X Influencers
C. Best Practices
Y
@Google Developer Expert
Compatibilité des versions
Android v ?
Compatibilité des versions
Séance 4
3 Gestion des différentes Versions
+
=
4.4
+
=
5.1
+
=
7.0
C. Best Practices
V Test
V Tests Unitaires
) Monkey Stress Test
C. Best Practices
V Tests Unitaires
package (androidTest)
+
C ActivityInstrumentationTestCase2
C. Best Practices
V Tests Unitaires
com.chillcoding.home (androidTest)
M (droit) Run > All tests
C. Best Practices
V Tests Unitaires
dependencies {

compile fileTree(dir: 'libs', include: ['*.jar'])

androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {

exclude group: 'com.android.support', module: 'support-annotations'

})
...

testCompile 'junit:junit:4.12'



}
C gradle
Référence [Android] : Expresso
Référence [22] :
C. Best Practices
V Tests Unitaires
public class HomeActivityTest extends ActivityInstrumentationTestCase2<HomeActivity> {
public HomeActivityTest()
@Override
protected void setUp() throws Exception
public void testPreconditions()
public void testText()
C. Best Practices
V Tests Unitaires
public class HomeActivityTest extends ActivityInstrumentationTestCase2<HomeActivity> {
public HomeActivityTest() {
super(HomeActivityTest.class);
6 Initialise la classe
C. Best Practices
V Tests Unitaires
public class HomeActivityTest extends ActivityInstrumentationTestCase2<HomeActivity> {
@Override
protected void setUp() throws Exception {
super.setup();
6 Initialise environnement de test
C. Best Practices
V Tests Unitaires
public class HomeActivityTest extends ActivityInstrumentationTestCase2<HomeActivity> {
public void testPreconditions()
6 Vérifie des pré-conditions
C. Best Practices
V Tests Unitaires
public class HomeActivityTest extends ActivityInstrumentationTestCase2<HomeActivity> {
public void testText()
6 Effectue le test
Tests aléatoires
[
< ./adb shell monkey -p com.chillcoding.mycuteheart -v 500
C. Best Practices
) Monkey Stress Test
6 500 évts aléatoires
C. Best Practices
V Naming Convention
V Naming Convention
V Convention de nommage
) Raccourcis clavier
NomDeClasse : UpperCamelCase
nomDeVariable : camelCase
CONSTANTE : UPPER_CASE
fichier_ressource : snake_case
idElementGraphique
id_string
C. Best Practices
V Convention de nommage
Légende :
M Clique
M Touche Entrée
M Touche Contrôle
M Touche Commande
M Touche Shift
M Touche d’option ou Alt
C. Best Practices
) Raccourcis clavier
Alt
Ctrl
⌘
M
C. Best Practices
) Raccourcis clavier
Alt Résoudre tous les pb
⌘ Alt L Indenter le code
Valider proposition de AS
Ctrl M Aller sur l'élément
Voir la documentation
Renommer une variable,
un fichier
Générer des fonctions
de la classe mère
F6
⌘ N
Ctrl Q / F1
Chercher dans tout le projet
Ctrl /
Mettre en commentaires ligne ou
sélection
Ctrl
Ctrl
Y
D
Effacer la ligne
Dupliquer la ligne ou la sélection
Ctrl O Overrider une méthode
IF YOU THINK
YOU ARE TOO
SMALL
TO MAKE A
DIFFERENCE
TRY SLEEPING
WITH A MOSQUITO.
_ African Proverb
Références
• Quizz Outils du Développeur Android
• ChillCoding: Android references
• Udacity: Android Development for Beginners (Video)
• Developer Android: Application Fundamentals (API Guide)
• Edition Eni : Android 5 Les fondamentaux du développement d'applications Java (Livre)
• Improve Your Code with Lint
• TDD in Android Kotlin
• Must Have Libraries
• wasabeef: Awesome android ui
• https://www.raywenderlich.com/category/android
• Jakewharton: Just say no to hungarian notation
• https://medium.com/ekohe/how-to-write-good-code-an-introduction-to-sandi-metz-s-rules-89bb3d749d53
• https://choosealicense.com/
• https://github.com/ribot/android-guidelines/blob/master/project_and_code_guidelines.md
• https://developer.android.com/kotlin/style-guide
• https://kotlinlang.org/docs/reference/coding-conventions.html
! macha@chillcoding.com
Y @MachaDaCosta
 ChillCoding
] @chillcoding
Questions?
Kotlin for Android
By Da Costa On

Contenu connexe

Similaire à Outils pour développeur·se Android

introduction au CPP
introduction au CPPintroduction au CPP
introduction au CPP
sarah Benmerzouk
 
Mop export-dataloader-salesforce-en-ligne-commande
Mop export-dataloader-salesforce-en-ligne-commandeMop export-dataloader-salesforce-en-ligne-commande
Mop export-dataloader-salesforce-en-ligne-commande
Cyrille Coeurjoly
 
Devops for mobile iOS/Android
Devops for mobile iOS/AndroidDevops for mobile iOS/Android
Devops for mobile iOS/Android
Cedric Gatay
 
Déploiement automatique d'app iOS et/ou Android
Déploiement automatique d'app iOS et/ou AndroidDéploiement automatique d'app iOS et/ou Android
Déploiement automatique d'app iOS et/ou Android
Florian Chauveau
 
Intégration continue des projets PHP avec Jenkins
Intégration continue des projets PHP avec JenkinsIntégration continue des projets PHP avec Jenkins
Intégration continue des projets PHP avec JenkinsHugo Hamon
 
Introduction à SBT
Introduction à SBTIntroduction à SBT
Introduction à SBT
Jean Detoeuf
 
Apache flink - prise en main rapide
Apache flink - prise en main rapideApache flink - prise en main rapide
Apache flink - prise en main rapide
Bilal Baltagi
 
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
Abdelkader Rhouati
 
Formation C# - Cours 3 - Programmation objet
Formation C# - Cours 3 - Programmation objetFormation C# - Cours 3 - Programmation objet
Formation C# - Cours 3 - Programmation objet
kemenaran
 
Industrialisation des développements logiciels
Industrialisation des développements logicielsIndustrialisation des développements logiciels
Industrialisation des développements logiciels
Sylvain Leroy
 
La qualité logicielle et l'intégration continue - Cas concret du projet Cytomine
La qualité logicielle et l'intégration continue - Cas concret du projet CytomineLa qualité logicielle et l'intégration continue - Cas concret du projet Cytomine
La qualité logicielle et l'intégration continue - Cas concret du projet CytomineInterface ULg, LIEGE science park
 
Paris Web 2015 - Atelier desendettement javascript
Paris Web 2015 - Atelier desendettement javascriptParis Web 2015 - Atelier desendettement javascript
Paris Web 2015 - Atelier desendettement javascript
Michael Akbaraly
 
Go
GoGo
Paris Web 2015 - Atelier désendettement Javascript legacy
Paris Web 2015 - Atelier désendettement Javascript legacyParis Web 2015 - Atelier désendettement Javascript legacy
Paris Web 2015 - Atelier désendettement Javascript legacy
François Petitit
 
PAUG 03/05/2016 : Android Studio Rappels
PAUG 03/05/2016 : Android Studio RappelsPAUG 03/05/2016 : Android Studio Rappels
PAUG 03/05/2016 : Android Studio Rappels
Jacques GIRAUDEL
 
Trivial Java Second
Trivial Java SecondTrivial Java Second
Trivial Java Second
Katia Aresti
 
La qualité logicielle et l'intégration continue - Cas concret du projet Cytomine
La qualité logicielle et l'intégration continue - Cas concret du projet CytomineLa qualité logicielle et l'intégration continue - Cas concret du projet Cytomine
La qualité logicielle et l'intégration continue - Cas concret du projet Cytomine
Geeks Anonymes
 
Apache ANT
Apache ANTApache ANT
Apache ANT
le.genie.logiciel
 
Asp Au Service Des Mv Ps
Asp Au Service Des Mv PsAsp Au Service Des Mv Ps
Asp Au Service Des Mv PsGregory Renard
 

Similaire à Outils pour développeur·se Android (20)

introduction au CPP
introduction au CPPintroduction au CPP
introduction au CPP
 
Mop export-dataloader-salesforce-en-ligne-commande
Mop export-dataloader-salesforce-en-ligne-commandeMop export-dataloader-salesforce-en-ligne-commande
Mop export-dataloader-salesforce-en-ligne-commande
 
Devops for mobile iOS/Android
Devops for mobile iOS/AndroidDevops for mobile iOS/Android
Devops for mobile iOS/Android
 
Déploiement automatique d'app iOS et/ou Android
Déploiement automatique d'app iOS et/ou AndroidDéploiement automatique d'app iOS et/ou Android
Déploiement automatique d'app iOS et/ou Android
 
Intégration continue des projets PHP avec Jenkins
Intégration continue des projets PHP avec JenkinsIntégration continue des projets PHP avec Jenkins
Intégration continue des projets PHP avec Jenkins
 
Introduction à SBT
Introduction à SBTIntroduction à SBT
Introduction à SBT
 
Apache flink - prise en main rapide
Apache flink - prise en main rapideApache flink - prise en main rapide
Apache flink - prise en main rapide
 
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
 
Formation C# - Cours 3 - Programmation objet
Formation C# - Cours 3 - Programmation objetFormation C# - Cours 3 - Programmation objet
Formation C# - Cours 3 - Programmation objet
 
Industrialisation des développements logiciels
Industrialisation des développements logicielsIndustrialisation des développements logiciels
Industrialisation des développements logiciels
 
La qualité logicielle et l'intégration continue - Cas concret du projet Cytomine
La qualité logicielle et l'intégration continue - Cas concret du projet CytomineLa qualité logicielle et l'intégration continue - Cas concret du projet Cytomine
La qualité logicielle et l'intégration continue - Cas concret du projet Cytomine
 
Paris Web 2015 - Atelier desendettement javascript
Paris Web 2015 - Atelier desendettement javascriptParis Web 2015 - Atelier desendettement javascript
Paris Web 2015 - Atelier desendettement javascript
 
Go
GoGo
Go
 
Paris Web 2015 - Atelier désendettement Javascript legacy
Paris Web 2015 - Atelier désendettement Javascript legacyParis Web 2015 - Atelier désendettement Javascript legacy
Paris Web 2015 - Atelier désendettement Javascript legacy
 
Vs2008 Linq
Vs2008 LinqVs2008 Linq
Vs2008 Linq
 
PAUG 03/05/2016 : Android Studio Rappels
PAUG 03/05/2016 : Android Studio RappelsPAUG 03/05/2016 : Android Studio Rappels
PAUG 03/05/2016 : Android Studio Rappels
 
Trivial Java Second
Trivial Java SecondTrivial Java Second
Trivial Java Second
 
La qualité logicielle et l'intégration continue - Cas concret du projet Cytomine
La qualité logicielle et l'intégration continue - Cas concret du projet CytomineLa qualité logicielle et l'intégration continue - Cas concret du projet Cytomine
La qualité logicielle et l'intégration continue - Cas concret du projet Cytomine
 
Apache ANT
Apache ANTApache ANT
Apache ANT
 
Asp Au Service Des Mv Ps
Asp Au Service Des Mv PsAsp Au Service Des Mv Ps
Asp Au Service Des Mv Ps
 

Dernier

SYLLABUS DU COURS MARKETING DTS 1-2.pdf
SYLLABUS DU COURS  MARKETING DTS 1-2.pdfSYLLABUS DU COURS  MARKETING DTS 1-2.pdf
SYLLABUS DU COURS MARKETING DTS 1-2.pdf
Moukagni Evrard
 
Evaluación docentes "Un cielo, dos países: El camino de los descubrimientos"
Evaluación docentes "Un cielo, dos países: El camino de los descubrimientos"Evaluación docentes "Un cielo, dos países: El camino de los descubrimientos"
Evaluación docentes "Un cielo, dos países: El camino de los descubrimientos"
IES Turina/Rodrigo/Itaca/Palomeras
 
Festival de Cannes 2024.pptx
Festival      de      Cannes     2024.pptxFestival      de      Cannes     2024.pptx
Festival de Cannes 2024.pptx
Txaruka
 
Méthodologie de recherche et de rédaction de mémoire.pptx
Méthodologie de recherche et de rédaction de mémoire.pptxMéthodologie de recherche et de rédaction de mémoire.pptx
Méthodologie de recherche et de rédaction de mémoire.pptx
LamoussaPaulOuattara1
 
1-IMP-Tuto-Recherche simple avancée-V4-20240425-BS.pptx
1-IMP-Tuto-Recherche simple avancée-V4-20240425-BS.pptx1-IMP-Tuto-Recherche simple avancée-V4-20240425-BS.pptx
1-IMP-Tuto-Recherche simple avancée-V4-20240425-BS.pptx
schneiderbeatrice78
 
4 expositions à voir à Paris.pptx
4   expositions    à   voir   à Paris.pptx4   expositions    à   voir   à Paris.pptx
4 expositions à voir à Paris.pptx
Txaruka
 
Iris et les hommes.pptx
Iris      et         les      hommes.pptxIris      et         les      hommes.pptx
Iris et les hommes.pptx
Txaruka
 
Bilan schéma pour réun concertation SDLP V4.pptx
Bilan schéma pour réun concertation SDLP V4.pptxBilan schéma pour réun concertation SDLP V4.pptx
Bilan schéma pour réun concertation SDLP V4.pptx
bibliogard
 
Contrôle fiscale en république de guinée
Contrôle fiscale en république de guinéeContrôle fiscale en république de guinée
Contrôle fiscale en république de guinée
bangalykaba146
 
Mémoire de licence en finance comptabilité et audit
Mémoire de licence en finance comptabilité et auditMémoire de licence en finance comptabilité et audit
Mémoire de licence en finance comptabilité et audit
MelDjobo
 
Cours SE - Gestion de la mémoire- Cours IG IPSET.pdf
Cours SE - Gestion de la mémoire- Cours IG IPSET.pdfCours SE - Gestion de la mémoire- Cours IG IPSET.pdf
Cours SE - Gestion de la mémoire- Cours IG IPSET.pdf
MedBechir
 
M2i Webinar - « Participation Financière Obligatoire » et CPF : une opportuni...
M2i Webinar - « Participation Financière Obligatoire » et CPF : une opportuni...M2i Webinar - « Participation Financière Obligatoire » et CPF : une opportuni...
M2i Webinar - « Participation Financière Obligatoire » et CPF : une opportuni...
M2i Formation
 
Newsletter SPW Agriculture en province du Luxembourg du 03-06-24
Newsletter SPW Agriculture en province du Luxembourg du 03-06-24Newsletter SPW Agriculture en province du Luxembourg du 03-06-24
Newsletter SPW Agriculture en province du Luxembourg du 03-06-24
BenotGeorges3
 
Projet de fin d'étude licence en sciece.pptx
Projet de fin d'étude licence en sciece.pptxProjet de fin d'étude licence en sciece.pptx
Projet de fin d'étude licence en sciece.pptx
elfangourabdelouahab
 
Exame DELF - A2 Francês pout tout public
Exame DELF - A2  Francês pout tout publicExame DELF - A2  Francês pout tout public
Exame DELF - A2 Francês pout tout public
GiselaAlves15
 
Calendrier du 3 juin 2024 et compte rendu.pdf
Calendrier du 3 juin 2024 et compte rendu.pdfCalendrier du 3 juin 2024 et compte rendu.pdf
Calendrier du 3 juin 2024 et compte rendu.pdf
frizzole
 

Dernier (16)

SYLLABUS DU COURS MARKETING DTS 1-2.pdf
SYLLABUS DU COURS  MARKETING DTS 1-2.pdfSYLLABUS DU COURS  MARKETING DTS 1-2.pdf
SYLLABUS DU COURS MARKETING DTS 1-2.pdf
 
Evaluación docentes "Un cielo, dos países: El camino de los descubrimientos"
Evaluación docentes "Un cielo, dos países: El camino de los descubrimientos"Evaluación docentes "Un cielo, dos países: El camino de los descubrimientos"
Evaluación docentes "Un cielo, dos países: El camino de los descubrimientos"
 
Festival de Cannes 2024.pptx
Festival      de      Cannes     2024.pptxFestival      de      Cannes     2024.pptx
Festival de Cannes 2024.pptx
 
Méthodologie de recherche et de rédaction de mémoire.pptx
Méthodologie de recherche et de rédaction de mémoire.pptxMéthodologie de recherche et de rédaction de mémoire.pptx
Méthodologie de recherche et de rédaction de mémoire.pptx
 
1-IMP-Tuto-Recherche simple avancée-V4-20240425-BS.pptx
1-IMP-Tuto-Recherche simple avancée-V4-20240425-BS.pptx1-IMP-Tuto-Recherche simple avancée-V4-20240425-BS.pptx
1-IMP-Tuto-Recherche simple avancée-V4-20240425-BS.pptx
 
4 expositions à voir à Paris.pptx
4   expositions    à   voir   à Paris.pptx4   expositions    à   voir   à Paris.pptx
4 expositions à voir à Paris.pptx
 
Iris et les hommes.pptx
Iris      et         les      hommes.pptxIris      et         les      hommes.pptx
Iris et les hommes.pptx
 
Bilan schéma pour réun concertation SDLP V4.pptx
Bilan schéma pour réun concertation SDLP V4.pptxBilan schéma pour réun concertation SDLP V4.pptx
Bilan schéma pour réun concertation SDLP V4.pptx
 
Contrôle fiscale en république de guinée
Contrôle fiscale en république de guinéeContrôle fiscale en république de guinée
Contrôle fiscale en république de guinée
 
Mémoire de licence en finance comptabilité et audit
Mémoire de licence en finance comptabilité et auditMémoire de licence en finance comptabilité et audit
Mémoire de licence en finance comptabilité et audit
 
Cours SE - Gestion de la mémoire- Cours IG IPSET.pdf
Cours SE - Gestion de la mémoire- Cours IG IPSET.pdfCours SE - Gestion de la mémoire- Cours IG IPSET.pdf
Cours SE - Gestion de la mémoire- Cours IG IPSET.pdf
 
M2i Webinar - « Participation Financière Obligatoire » et CPF : une opportuni...
M2i Webinar - « Participation Financière Obligatoire » et CPF : une opportuni...M2i Webinar - « Participation Financière Obligatoire » et CPF : une opportuni...
M2i Webinar - « Participation Financière Obligatoire » et CPF : une opportuni...
 
Newsletter SPW Agriculture en province du Luxembourg du 03-06-24
Newsletter SPW Agriculture en province du Luxembourg du 03-06-24Newsletter SPW Agriculture en province du Luxembourg du 03-06-24
Newsletter SPW Agriculture en province du Luxembourg du 03-06-24
 
Projet de fin d'étude licence en sciece.pptx
Projet de fin d'étude licence en sciece.pptxProjet de fin d'étude licence en sciece.pptx
Projet de fin d'étude licence en sciece.pptx
 
Exame DELF - A2 Francês pout tout public
Exame DELF - A2  Francês pout tout publicExame DELF - A2  Francês pout tout public
Exame DELF - A2 Francês pout tout public
 
Calendrier du 3 juin 2024 et compte rendu.pdf
Calendrier du 3 juin 2024 et compte rendu.pdfCalendrier du 3 juin 2024 et compte rendu.pdf
Calendrier du 3 juin 2024 et compte rendu.pdf
 

Outils pour développeur·se Android

  • 2. Android ANR " by CHILLCODING with FontAwesome  $  &  ( > 10 sec. $
  • 3. Outils pour Développeur·se A. Déploiement B. Débogage C. Best Practices
  • 4. A. Déploiement Devenir développeur·se Android Android Debug Bridge Interaction avec l’émulateur ) * + + , ) ) +
  • 5. A. Déploiement + , ) Devenir développeur·se Android - Menu Options Développeurs Numéro de Build . - Débogage USB $ $
  • 6. A. Déploiement + , ) Options du téléphone / Sélectionner l’app. de position fictive 0 Afficher les contours 1 Déboguer les conflits GPU  Afficher mém. CPU utilisée 3 Mode Strict activé 4 Ne pas conserver les activités 5 Limite processus arr.-plan
  • 7. A. Déploiement + , ) Options du téléphone Positions fictives / 6 Simule d’autres positions
  • 8. A. Déploiement + , ) Options du téléphone Afficher les contours 0 6 Affiche les éléments d’une vue (padding, margin, …)
  • 9. A. Déploiement + , ) Options du téléphone
  • 10. A. Déploiement + , ) Options du téléphone Déboguer les conflits GPU 1 6 Indique info pour optimiser les vues
  • 11. A. Déploiement + , ) Options du téléphone Afficher mém. CPU utilisée  6 Affiche message indiquant CPU
  • 12. A. Déploiement + , ) Options du téléphone
  • 13. A. Déploiement + , ) Options du téléphone Mode Strict activé 3 6 Affiche cadre rouge si Thread principal reste occupé
  • 14. A. Déploiement + , ) Options du téléphone Ne pas conserver les activités 4 6 Conserve une Activity à la fois
  • 15. A. Déploiement + , ) Options du téléphone Limite processus arr.-plan 5 6 Définie nb processus (app) à conserver
  • 16. 7 + Lister les appareils 8 + Se connecter à un appareil 9 : + Installer une app + 4 9 Désinstaller une app ; : + Copier des fichiers A. Déploiement ) * + Android Debug Bridge
  • 17. Lister les appareils 7 + < ./adb devices A. Déploiement ) * + Android Debug Bridge
  • 18. Se connecter à un appareil 8 + < ./adb shell < ./adb -s nexus_06 shell A. Déploiement ) * + Android Debug Bridge
  • 19. Installer une app 9: + < ./adb install < ./adb -s nexus_06 install A. Déploiement ) * + Android Debug Bridge
  • 20. Désinstaller une app + 4 9 < ./adb uninstall < ./adb -s nexus_06 uninstall A. Déploiement ) * + Android Debug Bridge
  • 21. Copier des fichiers ) : ; : + < ./adb pull /sdcard/myFile myFile A. Déploiement ) * + Android Debug Bridge
  • 22. Copier des fichiers + : ;: ) < ./adb push myFile /sdcard/myFile A. Déploiement ) * + Android Debug Bridge
  • 23. A. Déploiement ) Interaction avec l’émulateur + = Android Device Monitor
  • 24. A. Déploiement ) Interaction avec l’émulateur + > Appel ? Message / Position GPS
  • 25. A. Déploiement ) Interaction avec l’émulateur + Appel > = Telephony Actions
  • 26. A. Déploiement ) Interaction avec l’émulateur + Message ? = Telephony Actions
  • 27. A. Déploiement ) Interaction avec l’émulateur + Position GPS / = Location Controls
  • 28. B. Débogage @ Message système A Débogage des ressources A Débogage pas à pas = Android Lint
  • 29. B. Débogage @ Message système B Console Logcat A Types de message C Utilisation des messages
  • 30. B. Débogage @ Console Logcat + D + D + D + D + D
  • 31. B. Débogage @ Console Logcat D  D  D G D H D I
  • 32. B. Débogage @ Console Logcat D  D  D G D H D I
  • 33. B. Débogage @ Console Logcat D  D  D  D 
  • 34. B. Débogage @ Console Logcat J Tag
  • 35. B. Débogage @ Console Logcat J Id
  • 36. B. Débogage @ Console Logcat D  D  D G D H D I B
  • 37. B. Débogage @ Console Logcat D  D  D G D H D I K L
  • 38. B. Débogage A Types de message < Je suis Information :)
  • 39. B. Débogage A Types de message < Moi c’est Verbalisation :/
  • 40. B. Débogage A Types de message < Au moins, je sers à Debugger ;)
  • 41. B. Débogage A Types de message < Avertissement : Mais pourquoi est-il aussi méchant ?
  • 42. B. Débogage A Types de message < Parce queeeeeeeeeeee, il y a Erreur !
  • 43. B. Débogage C Utilisation des messages Log.e(String tag, String message, Throwable tr)
  • 44. B. Débogage C Utilisation des messages Log.e(TAG,"Parce queeeeeeeeeeee, il y a Erreur !") TAG = "HomeActivity"
  • 45. B. Débogage C Utilisation des messages Log.i( MainActivity::class.simpleName,"I am I :)")
  • 46. B. Débogage A Débugage des ressources M Build > Clean M File > Invalidate Caches / Restart … N Run : Erreur à la compilation O Erreur dans le dossier Java O Erreur dans fenêtre de message B Cherchez la ressource anormal B Cherchez l’attribut XML erroné
  • 47. B. Débogage A Débugage pas à pas PPoint d’arrêt BÉtat variable x
  • 48. B. Débogage A Débugage pas à pas N Run : Erreur à l’exécution O Erreur dans la fenêtre Logcat O Débugage dans la fenêtre Debug
  • 49. B. Débogage A Débugage pas à pas N + A | N : A
  • 50. B. Débogage A Débugage pas à pas Q Placer point d’arrêt A Lancer le débugger O Zoom sur la fenêtre Debug _ Aller au point d’arrêt suivant _ Aller à la ligne dans dessous _ Aller à la ligne à l’intérieur du code _ Observer une variable _ Exécuter du code à la volée B R R N S
  • 51. B. Débogage = Android Lint T + C B U V
  • 52. B. Débogage = Android Lint T C V B
  • 53. B. Débogage = Android Lint T +Ressources non utilisées +Ressources non internationalisées +Utilisation d’API non supportées +etc
  • 54. C. Best Practices W Libraries V Test V Naming Convention
  • 55. C. Best Practices W Libraries K Import an Android code sample W Most popular Android libraries X Influencers
  • 56. K Import an Android code sample C. Best Practices
  • 57. W Most popular Android libraries C. Best Practices Retrofit
  • 58. W Most popular Android libraries C. Best Practices https://github.com/Dimezis/RxBus
  • 59. W Most popular Android libraries C. Best Practices Room 
  • 60. W Most popular Android libraries C. Best Practices Picasso 
  • 61. W Most popular Android libraries C. Best Practices
  • 62. W Most popular Android libraries C. Best Practices C How to import dependencies { 
 implementation 'de.greenrobot:eventbus:2.4.0' V Gradle
  • 63. X Influencers C. Best Practices Y G Z X
  • 64. X Influencers C. Best Practices G Android developers Android dialogs
  • 65. X References C. Best Practices Z https://developer.android.com http://android-arsenal.com/
  • 66. X Conferences C. Best Practices X Google I/O Android Makers DroidCon
  • 67. X Influencers C. Best Practices Y @Google Developer Expert
  • 69. Compatibilité des versions Séance 4 3 Gestion des différentes Versions + = 4.4 + = 5.1 + = 7.0
  • 70. C. Best Practices V Test V Tests Unitaires ) Monkey Stress Test
  • 71. C. Best Practices V Tests Unitaires package (androidTest) + C ActivityInstrumentationTestCase2
  • 72. C. Best Practices V Tests Unitaires com.chillcoding.home (androidTest) M (droit) Run > All tests
  • 73. C. Best Practices V Tests Unitaires dependencies {
 compile fileTree(dir: 'libs', include: ['*.jar'])
 androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
 exclude group: 'com.android.support', module: 'support-annotations'
 }) ...
 testCompile 'junit:junit:4.12'
 
 } C gradle Référence [Android] : Expresso Référence [22] :
  • 74. C. Best Practices V Tests Unitaires public class HomeActivityTest extends ActivityInstrumentationTestCase2<HomeActivity> { public HomeActivityTest() @Override protected void setUp() throws Exception public void testPreconditions() public void testText()
  • 75. C. Best Practices V Tests Unitaires public class HomeActivityTest extends ActivityInstrumentationTestCase2<HomeActivity> { public HomeActivityTest() { super(HomeActivityTest.class); 6 Initialise la classe
  • 76. C. Best Practices V Tests Unitaires public class HomeActivityTest extends ActivityInstrumentationTestCase2<HomeActivity> { @Override protected void setUp() throws Exception { super.setup(); 6 Initialise environnement de test
  • 77. C. Best Practices V Tests Unitaires public class HomeActivityTest extends ActivityInstrumentationTestCase2<HomeActivity> { public void testPreconditions() 6 Vérifie des pré-conditions
  • 78. C. Best Practices V Tests Unitaires public class HomeActivityTest extends ActivityInstrumentationTestCase2<HomeActivity> { public void testText() 6 Effectue le test
  • 79. Tests aléatoires [ < ./adb shell monkey -p com.chillcoding.mycuteheart -v 500 C. Best Practices ) Monkey Stress Test 6 500 évts aléatoires
  • 80. C. Best Practices V Naming Convention V Naming Convention V Convention de nommage ) Raccourcis clavier
  • 81. NomDeClasse : UpperCamelCase nomDeVariable : camelCase CONSTANTE : UPPER_CASE fichier_ressource : snake_case idElementGraphique id_string C. Best Practices V Convention de nommage
  • 82. Légende : M Clique M Touche Entrée M Touche Contrôle M Touche Commande M Touche Shift M Touche d’option ou Alt C. Best Practices ) Raccourcis clavier Alt Ctrl ⌘ M
  • 83. C. Best Practices ) Raccourcis clavier Alt Résoudre tous les pb ⌘ Alt L Indenter le code Valider proposition de AS Ctrl M Aller sur l'élément Voir la documentation Renommer une variable, un fichier Générer des fonctions de la classe mère F6 ⌘ N Ctrl Q / F1 Chercher dans tout le projet Ctrl / Mettre en commentaires ligne ou sélection Ctrl Ctrl Y D Effacer la ligne Dupliquer la ligne ou la sélection Ctrl O Overrider une méthode
  • 84. IF YOU THINK YOU ARE TOO SMALL TO MAKE A DIFFERENCE TRY SLEEPING WITH A MOSQUITO. _ African Proverb
  • 85. Références • Quizz Outils du Développeur Android • ChillCoding: Android references • Udacity: Android Development for Beginners (Video) • Developer Android: Application Fundamentals (API Guide) • Edition Eni : Android 5 Les fondamentaux du développement d'applications Java (Livre) • Improve Your Code with Lint • TDD in Android Kotlin • Must Have Libraries • wasabeef: Awesome android ui • https://www.raywenderlich.com/category/android • Jakewharton: Just say no to hungarian notation • https://medium.com/ekohe/how-to-write-good-code-an-introduction-to-sandi-metz-s-rules-89bb3d749d53 • https://choosealicense.com/ • https://github.com/ribot/android-guidelines/blob/master/project_and_code_guidelines.md • https://developer.android.com/kotlin/style-guide • https://kotlinlang.org/docs/reference/coding-conventions.html
  • 86. ! macha@chillcoding.com Y @MachaDaCosta ChillCoding ] @chillcoding Questions? Kotlin for Android By Da Costa On