SlideShare une entreprise Scribd logo
1  sur  86
Télécharger pour lire hors ligne
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

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-commandeCyrille Coeurjoly
 
Devops for mobile iOS/Android
Devops for mobile iOS/AndroidDevops for mobile iOS/Android
Devops for mobile iOS/AndroidCedric 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 AndroidFlorian 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 à SBTJean Detoeuf
 
Apache flink - prise en main rapide
Apache flink - prise en main rapideApache flink - prise en main rapide
Apache flink - prise en main rapideBilal 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 AndroidAbdelkader Rhouati
 
Formation C# - Cours 3 - Programmation objet
Formation C# - Cours 3 - Programmation objetFormation C# - Cours 3 - Programmation objet
Formation C# - Cours 3 - Programmation objetkemenaran
 
Industrialisation des développements logiciels
Industrialisation des développements logicielsIndustrialisation des développements logiciels
Industrialisation des développements logicielsSylvain 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 javascriptMichael Akbaraly
 
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 legacyFranç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 RappelsJacques GIRAUDEL
 
Trivial Java Second
Trivial Java SecondTrivial Java Second
Trivial Java SecondKatia 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 CytomineGeeks Anonymes
 
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

Cours-irrigation_et_drainage_cours1.pptx
Cours-irrigation_et_drainage_cours1.pptxCours-irrigation_et_drainage_cours1.pptx
Cours-irrigation_et_drainage_cours1.pptxlamourfrantz
 
MICROBIOLOGIE ENDODONTIQUE english and frensh 25 nov 2020.pdf
MICROBIOLOGIE ENDODONTIQUE english and frensh 25 nov 2020.pdfMICROBIOLOGIE ENDODONTIQUE english and frensh 25 nov 2020.pdf
MICROBIOLOGIE ENDODONTIQUE english and frensh 25 nov 2020.pdfssuser40e112
 
SUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptx
SUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptxSUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptx
SUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptxssuserbd075f
 
MaintenanceLa Maintenance Corrective.ppt
MaintenanceLa Maintenance Corrective.pptMaintenanceLa Maintenance Corrective.ppt
MaintenanceLa Maintenance Corrective.pptssusercbaa22
 
Sidonie au Japon . pptx Un film français
Sidonie    au   Japon  .  pptx  Un film françaisSidonie    au   Japon  .  pptx  Un film français
Sidonie au Japon . pptx Un film françaisTxaruka
 
Fondation Louis Vuitton. pptx
Fondation      Louis      Vuitton.   pptxFondation      Louis      Vuitton.   pptx
Fondation Louis Vuitton. pptxTxaruka
 
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...Faga1939
 
présentation sur l'échafaudage dans des travaux en hauteur
présentation sur l'échafaudage dans des travaux en hauteurprésentation sur l'échafaudage dans des travaux en hauteur
présentation sur l'échafaudage dans des travaux en hauteurdinaelchaine
 
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptxSAID MASHATE
 
Présentation de cartes d'extension zhr..pptx
Présentation de cartes d'extension zhr..pptxPrésentation de cartes d'extension zhr..pptx
Présentation de cartes d'extension zhr..pptxpopzair
 
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
 
gestion des conflits dans les entreprises
gestion des  conflits dans les entreprisesgestion des  conflits dans les entreprises
gestion des conflits dans les entreprisesMajdaKtiri2
 
Formation M2i - Intelligence Artificielle Comment booster votre productivité ...
Formation M2i - Intelligence Artificielle Comment booster votre productivité ...Formation M2i - Intelligence Artificielle Comment booster votre productivité ...
Formation M2i - Intelligence Artificielle Comment booster votre productivité ...M2i Formation
 
Approche-des-risques-par-l’analyse-des-accidents-1.pptx
Approche-des-risques-par-l’analyse-des-accidents-1.pptxApproche-des-risques-par-l’analyse-des-accidents-1.pptx
Approche-des-risques-par-l’analyse-des-accidents-1.pptxssusercbaa22
 
Mécanique Automobile LE TURBOCOMPRESSEUR.ppt
Mécanique Automobile LE TURBOCOMPRESSEUR.pptMécanique Automobile LE TURBOCOMPRESSEUR.ppt
Mécanique Automobile LE TURBOCOMPRESSEUR.pptssusercbaa22
 
presentation l'interactionnisme symbolique finale.pptx
presentation l'interactionnisme symbolique  finale.pptxpresentation l'interactionnisme symbolique  finale.pptx
presentation l'interactionnisme symbolique finale.pptxMalikaIdseaid1
 
Boléro. pptx Film français réalisé par une femme.
Boléro.  pptx   Film   français   réalisé  par une  femme.Boléro.  pptx   Film   français   réalisé  par une  femme.
Boléro. pptx Film français réalisé par une femme.Txaruka
 
Grammaire pour les élèves de la 6ème.doc
Grammaire pour les élèves de la  6ème.docGrammaire pour les élèves de la  6ème.doc
Grammaire pour les élèves de la 6ème.docKarimKhrifech
 
systeme expert_systeme expert_systeme expert
systeme expert_systeme expert_systeme expertsysteme expert_systeme expert_systeme expert
systeme expert_systeme expert_systeme expertChristianMbip
 

Dernier (20)

Cours-irrigation_et_drainage_cours1.pptx
Cours-irrigation_et_drainage_cours1.pptxCours-irrigation_et_drainage_cours1.pptx
Cours-irrigation_et_drainage_cours1.pptx
 
MICROBIOLOGIE ENDODONTIQUE english and frensh 25 nov 2020.pdf
MICROBIOLOGIE ENDODONTIQUE english and frensh 25 nov 2020.pdfMICROBIOLOGIE ENDODONTIQUE english and frensh 25 nov 2020.pdf
MICROBIOLOGIE ENDODONTIQUE english and frensh 25 nov 2020.pdf
 
SUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptx
SUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptxSUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptx
SUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptx
 
MaintenanceLa Maintenance Corrective.ppt
MaintenanceLa Maintenance Corrective.pptMaintenanceLa Maintenance Corrective.ppt
MaintenanceLa Maintenance Corrective.ppt
 
Sidonie au Japon . pptx Un film français
Sidonie    au   Japon  .  pptx  Un film françaisSidonie    au   Japon  .  pptx  Un film français
Sidonie au Japon . pptx Un film français
 
Fondation Louis Vuitton. pptx
Fondation      Louis      Vuitton.   pptxFondation      Louis      Vuitton.   pptx
Fondation Louis Vuitton. pptx
 
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
 
présentation sur l'échafaudage dans des travaux en hauteur
présentation sur l'échafaudage dans des travaux en hauteurprésentation sur l'échafaudage dans des travaux en hauteur
présentation sur l'échafaudage dans des travaux en hauteur
 
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
 
Présentation de cartes d'extension zhr..pptx
Présentation de cartes d'extension zhr..pptxPrésentation de cartes d'extension zhr..pptx
Présentation de cartes d'extension zhr..pptx
 
Evaluación Alumnos de Ecole Victor Hugo
Evaluación Alumnos de Ecole  Victor HugoEvaluación Alumnos de Ecole  Victor Hugo
Evaluación Alumnos de Ecole Victor Hugo
 
A3iFormations, organisme de formations certifié qualiopi.
A3iFormations, organisme de formations certifié qualiopi.A3iFormations, organisme de formations certifié qualiopi.
A3iFormations, organisme de formations certifié qualiopi.
 
gestion des conflits dans les entreprises
gestion des  conflits dans les entreprisesgestion des  conflits dans les entreprises
gestion des conflits dans les entreprises
 
Formation M2i - Intelligence Artificielle Comment booster votre productivité ...
Formation M2i - Intelligence Artificielle Comment booster votre productivité ...Formation M2i - Intelligence Artificielle Comment booster votre productivité ...
Formation M2i - Intelligence Artificielle Comment booster votre productivité ...
 
Approche-des-risques-par-l’analyse-des-accidents-1.pptx
Approche-des-risques-par-l’analyse-des-accidents-1.pptxApproche-des-risques-par-l’analyse-des-accidents-1.pptx
Approche-des-risques-par-l’analyse-des-accidents-1.pptx
 
Mécanique Automobile LE TURBOCOMPRESSEUR.ppt
Mécanique Automobile LE TURBOCOMPRESSEUR.pptMécanique Automobile LE TURBOCOMPRESSEUR.ppt
Mécanique Automobile LE TURBOCOMPRESSEUR.ppt
 
presentation l'interactionnisme symbolique finale.pptx
presentation l'interactionnisme symbolique  finale.pptxpresentation l'interactionnisme symbolique  finale.pptx
presentation l'interactionnisme symbolique finale.pptx
 
Boléro. pptx Film français réalisé par une femme.
Boléro.  pptx   Film   français   réalisé  par une  femme.Boléro.  pptx   Film   français   réalisé  par une  femme.
Boléro. pptx Film français réalisé par une femme.
 
Grammaire pour les élèves de la 6ème.doc
Grammaire pour les élèves de la  6ème.docGrammaire pour les élèves de la  6ème.doc
Grammaire pour les élèves de la 6ème.doc
 
systeme expert_systeme expert_systeme expert
systeme expert_systeme expert_systeme expertsysteme expert_systeme expert_systeme expert
systeme expert_systeme expert_systeme expert
 

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