Upload
fouomene
View
256
Download
2
Embed Size (px)
Citation preview
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 maximumsMettre 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