SlideShare ist ein Scribd-Unternehmen logo
1 von 30
Downloaden Sie, um offline zu lesen
Bonnes pratiques
Développement
Android
Fouomene Pewo Daniel Rene
www.freelancertech.net
www.facebook.com/pages/FreelancerTech/822357474482862
www.twitter.com/FREELANCERTECH (@FREELANCERTECH)
Une équipe d’experts dans leur domaine technologique qui ont
décidé de se mettre ensemble pour offrir leurs services en
fonction de leurs disponibilités,
www.freelancertech.net
www.freelancertech.net
• Architecture
• Nommage
• La mémoire
• Générale
• Librairies
• Références
Plan
www.freelancertech.net
www.freelancertech.net
Architecture (Structure d'un projet)
Projet Ant & Eclipse ADT Gradle & Android Studio
[1]
Architecture (packages java)
Bien packager les
sources par type
de classe
www.freelancertech.net
[1]
Nommage (Java)
• classes, enum, interface sont en CamelCase : MaClasse
• Les noms de variables doivent commencer par une minuscule : boutonBleu
• Les noms de fonctions doivent être explicites. Nous devons savoir ce que fait
une fonction sans même lire le code : afficherListeEtudiantsParNom()
• Les variables de type public static final doivent être en majuscules :
public static final String MON_NOM_DE_VARIABLE_STATIC_FINAL;
• Commenter chaque function, classe, interface avec la notation de la javadoc
www.freelancertech.net
[2]
Nommage (Java)
www.freelancertech.net
[2]
Nommage (Android)
• Préfixer le nom du fichier de ressource par le type de layout :
activity_main ; fragment_list_etudiant ; item_student_name
• Organisation des fichiers XMLs
• Un attribut par ligne, indenté d'espaces
• android:id toujours en tant que premier attribut
• les android:layout_**** toujours en haut après android:id
• l'attribut style tout en bas
www.freelancertech.net
[1]
Nommage (Android)
Toutes les chaînes
de caractères
doivent être
définies dans le
fichier
“res/values/strings.x
ml”
Utiliser l'attribut
textAllCaps dans une
TextView
www.freelancertech.net
[1]
www.freelancertech.net
Nommage (Android)
Evitez d'avoir une
hiérarchie trop profonde
de vues
http://stackoverflow.com/questions/2762924/j
ava-lang-stackoverflow-error-suspected-too-
many-views
[1]
Nommage (Android)
Il ne devrait avoir rien d'autre à part des correspondances
entre un nom de couleur dans colors.xml
Facile de devoir se répéter et il est
difficile de changer une couleur de
base
www.freelancertech.net
[1]
La mémoire (Java)
• Utiliser au maximum les types Primitifs
• Éviter les effets d’AutoBoxing
www.freelancertech.net
[3]
La mémoire (Java)
• Utiliser les SparseArray pour éviter les effets d’AutoBoxing
www.freelancertech.net
[3]
La mémoire (Java)
www.freelancertech.net
[3]
La mémoire (Java)
• Eviter les instanciations aux maximums
Utiliser les
variables
statiques
www.freelancertech.net
[3]
www.freelancertech.net
La mémoire (Java)
• Eviter les instanciations aux maximums
• Mettre en œuvre le Design pattern Object Pool
(réutilisation des objets)
http://matthieu-
brucher.developpez.com/tutor
iels/conception/object-Pool/
La mémoire (Java)
• Eviter les instanciations aux maximums
Mettre en œuvre
le Design
pattern
VIEWHOLDER
(réutilisation des
objets)
La mémoire (Java)
• Eviter les instanciations aux maximums
Mettre en œuvre
le Design
pattern
VIEWHOLDER
(réutilisation des
objets)
[3]
La mémoire (Java)
• Eviter les instanciations aux maximums
Mettre en œuvre
le Design
pattern
VIEWHOLDER
(réutilisation des
objets)
www.freelancertech.net
Générales
• Toujours avoir des
images sous
différents formats
selon le type d'écran
de mobile cible
• hdpi
• ldpi
• mdpi
• xhdpi
• xxhdpi
http://romannurik.github.io/AndroidAssetStudio/
www.freelancertech.net
Générales
Utiliser des fragments pour
représenter une interface
graphique
www.freelancertech.net
Générales
• Ne pas bloquer l’UI THREAD
www.freelancertech.net
[3]
www.freelancertech.net
Générales
• Economie d’image : Draw9Patch
SDK sdk/tools
Librairies
• Gson ( https://github.com/google/gson )
www.freelancertech.net
Librairies
• Retrofit (http://square.github.io/retrofit/ )
Librairies
• ActiveAndroid (http://www.activeandroid.com/ )
user.save();
INSERT INTO Users (Nickname, Name,Address, City, PostalCode, Country)VALUES
('Batman','BruceW','Palisades 21','Gotham','40000','USA');
List<User> users = new Select().from(User.class).execute();
SELECT Nickname, Name,Address, City, PostalCode, Country FROM Users;
www.freelancertech.net
Librairies
• Picasso (http://square.github.io/picasso/ )
• Mint Splunk (https://mint.splunk.com/ )
• Doodles Archive Open Source (http://freelancertech.net/index.php/nos-
solutions/open-source/doodles-archive-un-socle-technique-android-open-source )
Doodles Archive est notre socle technique Android et Open Source développé en suivant les
« Best Practices » du développement mobile de manière général et Android en particulier. Il
constitue un bon départ pour les développeurs qui souhaitent se lancer dans le développement
des applications mobiles sur système Android,
www.freelancertech.net
Références
• [1] https://github.com/futurice/android-best-practices/blob/master/translations/French/README.fr.md
• [2] http://feanorin.developpez.com/tutoriels/android/idiomes/
• [3] https://www.infoq.com/fr/presentations/bonnes-pratiques-developpement-android
www.freelancertech.net
Questions
www.freelancertech.net
Bonnes pratiques développement android

Weitere ähnliche Inhalte

Andere mochten auch

Architecture et Bonnes pratiques Android #DevoxxFr2016 Part2
Architecture et Bonnes pratiques Android #DevoxxFr2016 Part2Architecture et Bonnes pratiques Android #DevoxxFr2016 Part2
Architecture et Bonnes pratiques Android #DevoxxFr2016 Part2Mathias Seguy
 
Jug Lausanne Android Janvier2013
Jug Lausanne Android Janvier2013Jug Lausanne Android Janvier2013
Jug Lausanne Android Janvier2013jeromevdl
 
Tech Talk #2: Android app performance tips
Tech Talk #2: Android app performance tipsTech Talk #2: Android app performance tips
Tech Talk #2: Android app performance tipsNexus FrontierTech
 
Présentation et bonnes pratiques du pattern MVVM - MIC Belgique
Présentation et bonnes pratiques du pattern MVVM - MIC BelgiquePrésentation et bonnes pratiques du pattern MVVM - MIC Belgique
Présentation et bonnes pratiques du pattern MVVM - MIC BelgiqueDenis Voituron
 
Mastering RecyclerView Layouts
Mastering RecyclerView LayoutsMastering RecyclerView Layouts
Mastering RecyclerView LayoutsDave Smith
 
Android 02 - Recycler View Adapter
Android 02 - Recycler View AdapterAndroid 02 - Recycler View Adapter
Android 02 - Recycler View AdapterAline Borges
 
Architecture et Bonnes pratiques Android #DevoxxFr2016 Part1
Architecture et Bonnes pratiques Android #DevoxxFr2016 Part1Architecture et Bonnes pratiques Android #DevoxxFr2016 Part1
Architecture et Bonnes pratiques Android #DevoxxFr2016 Part1Mathias Seguy
 
Android Training (AdapterView & Adapter)
Android Training (AdapterView & Adapter)Android Training (AdapterView & Adapter)
Android Training (AdapterView & Adapter)Khaled Anaqwa
 
Tutorial android - créer des apps
Tutorial android - créer des appsTutorial android - créer des apps
Tutorial android - créer des appsNoé Breiss
 
droidgirls Recyclerview
droidgirls Recyclerviewdroidgirls Recyclerview
droidgirls RecyclerviewYuki Anzai
 
Master of RecyclerView
Master of RecyclerViewMaster of RecyclerView
Master of RecyclerViewYuki Anzai
 
Android-Tp2: liste et adaptateurs
Android-Tp2: liste et adaptateursAndroid-Tp2: liste et adaptateurs
Android-Tp2: liste et adaptateursLilia Sfaxi
 
Beauty Treatment for your Android Application
Beauty Treatment for your Android ApplicationBeauty Treatment for your Android Application
Beauty Treatment for your Android ApplicationCodemotion
 
Introduction To Mobile Application Development
Introduction To Mobile Application DevelopmentIntroduction To Mobile Application Development
Introduction To Mobile Application DevelopmentSyed Absar
 

Andere mochten auch (20)

Architecture et Bonnes pratiques Android #DevoxxFr2016 Part2
Architecture et Bonnes pratiques Android #DevoxxFr2016 Part2Architecture et Bonnes pratiques Android #DevoxxFr2016 Part2
Architecture et Bonnes pratiques Android #DevoxxFr2016 Part2
 
Jug Lausanne Android Janvier2013
Jug Lausanne Android Janvier2013Jug Lausanne Android Janvier2013
Jug Lausanne Android Janvier2013
 
185 - Vitraux
185 - Vitraux185 - Vitraux
185 - Vitraux
 
Les Fragments
Les FragmentsLes Fragments
Les Fragments
 
Fun with RecyclerView
Fun with RecyclerViewFun with RecyclerView
Fun with RecyclerView
 
Tech Talk #2: Android app performance tips
Tech Talk #2: Android app performance tipsTech Talk #2: Android app performance tips
Tech Talk #2: Android app performance tips
 
Recyclerview in action
Recyclerview in action Recyclerview in action
Recyclerview in action
 
Présentation et bonnes pratiques du pattern MVVM - MIC Belgique
Présentation et bonnes pratiques du pattern MVVM - MIC BelgiquePrésentation et bonnes pratiques du pattern MVVM - MIC Belgique
Présentation et bonnes pratiques du pattern MVVM - MIC Belgique
 
Mastering RecyclerView Layouts
Mastering RecyclerView LayoutsMastering RecyclerView Layouts
Mastering RecyclerView Layouts
 
Android 02 - Recycler View Adapter
Android 02 - Recycler View AdapterAndroid 02 - Recycler View Adapter
Android 02 - Recycler View Adapter
 
Architecture et Bonnes pratiques Android #DevoxxFr2016 Part1
Architecture et Bonnes pratiques Android #DevoxxFr2016 Part1Architecture et Bonnes pratiques Android #DevoxxFr2016 Part1
Architecture et Bonnes pratiques Android #DevoxxFr2016 Part1
 
Android Training (AdapterView & Adapter)
Android Training (AdapterView & Adapter)Android Training (AdapterView & Adapter)
Android Training (AdapterView & Adapter)
 
Tutorial android - créer des apps
Tutorial android - créer des appsTutorial android - créer des apps
Tutorial android - créer des apps
 
Android adapters
Android adaptersAndroid adapters
Android adapters
 
droidgirls Recyclerview
droidgirls Recyclerviewdroidgirls Recyclerview
droidgirls Recyclerview
 
Master of RecyclerView
Master of RecyclerViewMaster of RecyclerView
Master of RecyclerView
 
Android-Tp2: liste et adaptateurs
Android-Tp2: liste et adaptateursAndroid-Tp2: liste et adaptateurs
Android-Tp2: liste et adaptateurs
 
Android Material Design
Android Material DesignAndroid Material Design
Android Material Design
 
Beauty Treatment for your Android Application
Beauty Treatment for your Android ApplicationBeauty Treatment for your Android Application
Beauty Treatment for your Android Application
 
Introduction To Mobile Application Development
Introduction To Mobile Application DevelopmentIntroduction To Mobile Application Development
Introduction To Mobile Application Development
 

Ähnlich wie Bonnes pratiques développement android

Drupal7 - Bonnes Pratiques (Partie 1)
Drupal7 - Bonnes Pratiques (Partie 1)Drupal7 - Bonnes Pratiques (Partie 1)
Drupal7 - Bonnes Pratiques (Partie 1)Alexandre Marie
 
OOP & Design Pattern - Algiers Developers Meetup August 2015
OOP & Design Pattern - Algiers Developers Meetup August 2015OOP & Design Pattern - Algiers Developers Meetup August 2015
OOP & Design Pattern - Algiers Developers Meetup August 2015Tarik Zakaria Benmerar
 
DesignPatternsISI.pdf
DesignPatternsISI.pdfDesignPatternsISI.pdf
DesignPatternsISI.pdfandre543581
 
Microservices-DDD-Telosys-Devoxx-FR-2022
Microservices-DDD-Telosys-Devoxx-FR-2022Microservices-DDD-Telosys-Devoxx-FR-2022
Microservices-DDD-Telosys-Devoxx-FR-2022Laurent Guérin
 
Presentation du socle technique Java open source Scub Foundation
Presentation du socle technique Java open source Scub FoundationPresentation du socle technique Java open source Scub Foundation
Presentation du socle technique Java open source Scub FoundationStéphane Traumat
 
AOP.pptx
AOP.pptxAOP.pptx
AOP.pptxManalAg
 
Seance_1_cours_introduction_java_Copie.pptx
Seance_1_cours_introduction_java_Copie.pptxSeance_1_cours_introduction_java_Copie.pptx
Seance_1_cours_introduction_java_Copie.pptxRihabBENLAMINE
 
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
 
Retours sur java 8 devoxx fr 2016
Retours sur java 8 devoxx fr 2016Retours sur java 8 devoxx fr 2016
Retours sur java 8 devoxx fr 2016Jean-Michel Doudoux
 
582 agr-li - interface mobile - classe 1
582   agr-li - interface mobile - classe 1582   agr-li - interface mobile - classe 1
582 agr-li - interface mobile - classe 1Alexandre Paradis
 
Scub Foundation, usine logicielle Java libre
Scub Foundation, usine logicielle Java libreScub Foundation, usine logicielle Java libre
Scub Foundation, usine logicielle Java libreStéphane Traumat
 
POO Java Introduction
POO Java IntroductionPOO Java Introduction
POO Java IntroductionMouna Torjmen
 

Ähnlich wie Bonnes pratiques développement android (20)

Drupal7 - Bonnes Pratiques (Partie 1)
Drupal7 - Bonnes Pratiques (Partie 1)Drupal7 - Bonnes Pratiques (Partie 1)
Drupal7 - Bonnes Pratiques (Partie 1)
 
OOP and Design Patterns
OOP and Design PatternsOOP and Design Patterns
OOP and Design Patterns
 
OOP & Design Pattern - Algiers Developers Meetup August 2015
OOP & Design Pattern - Algiers Developers Meetup August 2015OOP & Design Pattern - Algiers Developers Meetup August 2015
OOP & Design Pattern - Algiers Developers Meetup August 2015
 
XB-Java.ppt
XB-Java.pptXB-Java.ppt
XB-Java.ppt
 
Présentation1
Présentation1Présentation1
Présentation1
 
Octo Maven.pdf
Octo Maven.pdfOcto Maven.pdf
Octo Maven.pdf
 
DesignPatternsISI.pdf
DesignPatternsISI.pdfDesignPatternsISI.pdf
DesignPatternsISI.pdf
 
Cours JavaScript
Cours JavaScriptCours JavaScript
Cours JavaScript
 
Microservices-DDD-Telosys-Devoxx-FR-2022
Microservices-DDD-Telosys-Devoxx-FR-2022Microservices-DDD-Telosys-Devoxx-FR-2022
Microservices-DDD-Telosys-Devoxx-FR-2022
 
Presentation du socle technique Java open source Scub Foundation
Presentation du socle technique Java open source Scub FoundationPresentation du socle technique Java open source Scub Foundation
Presentation du socle technique Java open source Scub Foundation
 
Langage C#
Langage C#Langage C#
Langage C#
 
Angular.pdf
Angular.pdfAngular.pdf
Angular.pdf
 
AOP.pptx
AOP.pptxAOP.pptx
AOP.pptx
 
Seance_1_cours_introduction_java_Copie.pptx
Seance_1_cours_introduction_java_Copie.pptxSeance_1_cours_introduction_java_Copie.pptx
Seance_1_cours_introduction_java_Copie.pptx
 
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
 
Retours sur java 8 devoxx fr 2016
Retours sur java 8 devoxx fr 2016Retours sur java 8 devoxx fr 2016
Retours sur java 8 devoxx fr 2016
 
Programmation Java
Programmation JavaProgrammation Java
Programmation Java
 
582 agr-li - interface mobile - classe 1
582   agr-li - interface mobile - classe 1582   agr-li - interface mobile - classe 1
582 agr-li - interface mobile - classe 1
 
Scub Foundation, usine logicielle Java libre
Scub Foundation, usine logicielle Java libreScub Foundation, usine logicielle Java libre
Scub Foundation, usine logicielle Java libre
 
POO Java Introduction
POO Java IntroductionPOO Java Introduction
POO Java Introduction
 

Bonnes pratiques développement android