Bonnes pratiques développement android

Preview:

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

Recommended