SlideShare une entreprise Scribd logo
1  sur  38
Android: Bonnes Pratiques
Patrick Bashizi
VMK | GDG Kinshasa
Contexte
Considérations propres aux
Environnements mobiles en
général.
Pas seulement Android !
Sommaire
• Pourquoi s’intéresser aux bonnes
pratiques?
• Patterns et anti-patterns
• UI & UX
• Performances?
• Qualité?
Intérêt?
• Les applications qui respectent les
patterns sont :
1. Bien notées
2.Sortent du lot
Ex. TED
Comment y arriver ?
• Il suffit de respecter quelques
principes et patterns bien
connus !
La plupart de développeurs ne s’y
intéressent pas ; c’est drôle !
Les voici
Du moins les plus
importants 
Design et Ergonomie
1er
Commandement
Android EST Android !
Ne jamais copier/imiter une
autre plateforme mobile
1er
Commandement
• Cela exige de bien différencier
Android des autres plateformes
• Lisez ceci :
http://developer.android.com/docs/desig
l
Android, iOS et
WinPhone7
2ième
Commandement
Evitez les ANR ( Application Not Responding)
2ième
Commandement (suite)
• Pour éviter les ANR :
Exécuter tous les longs calculs dans
un Thread dédié et non dans le UI
(main) Thread!
- Access réseau
- Access aux BD
- Tous long calcul
Bref …
• Ne jamais bloquer le UI Tread
• S’assurer que le UI Toolkit est
uniquement accédé dans le UI
Thread
• Problème : la manipulation des
Thread est une tâche ardue.
• Solutions: - AsyncTask
- IntentService (set it
and forget it)
3ième
Commandement
• Pensez à utiliser les design
patterns.
• Un pattern est une solution
générale à un problème
commun
3ième
Commandement (suite)
• Google a crée des pattern afin
d’établir un langage commun pour le
design des UI.
• Les suivre assure que votre
application s’adapte à l’ écosystem
Android
• Votre app semblera « naturelle » à
l’utilisateur (mon vieux père) .
Quelques UI Patterns
Dashboard Layout
Action Bar
Compagnion Widget
Quick Action
4ième
Commandement
• Développez pour différentes tailles
d’écrans !
4ième
Commandement(suite)
• Utilisez le multipane layout
• Tablette et smartphone
• Utilisez les fragments !
5ième
Commandement
TU NE TUERAS PAS LE JAVA !
5ième
Commandement (Suite)
• Apprendre le java !
• Apprendre le bon java; adapté à
l’environnement Android.
• Native first !
Quelques pièges
• Ne jamais utiliser les types non
primitifs quand il ne le faut pas,
jamais!
Integer nb; au lieu de int nb;
car 666 devient new Integer(666) !!!
Anti-pattern
Créer des objets ABUSIVEMENT !!
• Comprendre la machine virtuelle
• L’allocation mémoire
• Nous sommes dans un
environnement à faibles ressources !
Un pattern
La réutilisation !
Réutilisez, réutilisez, Réutilisez,
réutilisez, Réutilisez, réutilisez,
Réutilisez, réutilisez.
La réutilisation !
• Ne faites pas ce copy-
paste de code svp !
• Garder une variable en
mémoire et réutilisez-la au
lieu d’en créer une à
chaque fois.
La réutilisation !
• Design Pattern Singleton
• Design Pattern Factory
• Encapsulation
• Etc
Plus que jamais d’actualité!
Les membres statics sont les
bienvenus
Préferez les variables statiques aux
variables temporaires
• Evitez les set/ getters internes !
• Utiliser static final pour les
constantes
Il y a « Layout » et
« Layout »
• Utilisez GridLayout
• Utilisez RelativeLayout
• Utilisez Layout Merge
Hierarchy Viewer !!
6ième
Commandement
Tu respectera l’Afrique
(les connexions très lentes)
6ième
Commandement (suite)
• Concevoir pour les connexions
lentes !
• Cache
• Chargement convivial des
données
7ième
Commandement
Ne pas bouffer la battérie ( le
courant peu partir )
7ième
Commendement
• Les meilleurs consommateurs de
la batterie :
Processeur
Radio (Pas FM )
8ième
Commandement
• Utiliser Crash report pour votre
application Android
ACCRA
Q/A

Contenu connexe

En vedette

Design patterns - Exemples en Java
Design patterns - Exemples en JavaDesign patterns - Exemples en Java
Design patterns - Exemples en JavaOussama BEN KHIROUN
 
Visitor Pattern
Visitor PatternVisitor Pattern
Visitor PatternIder Zheng
 
01 programmation mobile - android - (introduction)
01 programmation mobile - android - (introduction)01 programmation mobile - android - (introduction)
01 programmation mobile - android - (introduction)TECOS
 
Design Pattern introduction
Design Pattern introductionDesign Pattern introduction
Design Pattern introductionneuros
 
Chp6 - Développement iOS
Chp6 - Développement iOSChp6 - Développement iOS
Chp6 - Développement iOSLilia Sfaxi
 
Chp2 - Conception UX-UI des Applications Mobiles
Chp2 - Conception UX-UI des Applications MobilesChp2 - Conception UX-UI des Applications Mobiles
Chp2 - Conception UX-UI des Applications MobilesLilia Sfaxi
 
Chp5 - Applications Android
Chp5 - Applications AndroidChp5 - Applications Android
Chp5 - Applications AndroidLilia Sfaxi
 
Chp3 - Architecture Logicielle des Applications Mobiles
Chp3 - Architecture Logicielle des Applications MobilesChp3 - Architecture Logicielle des Applications Mobiles
Chp3 - Architecture Logicielle des Applications MobilesLilia Sfaxi
 
Chp1 - Introduction au Développement Mobile
Chp1 - Introduction au Développement MobileChp1 - Introduction au Développement Mobile
Chp1 - Introduction au Développement MobileLilia Sfaxi
 
Design Patterns (2003)
Design Patterns (2003)Design Patterns (2003)
Design Patterns (2003)Pascal Roques
 
Introduction aux design patterns
Introduction aux design patternsIntroduction aux design patterns
Introduction aux design patternsclem_simon
 
Cours design pattern m youssfi partie 8 stat, template method, command , medi...
Cours design pattern m youssfi partie 8 stat, template method, command , medi...Cours design pattern m youssfi partie 8 stat, template method, command , medi...
Cours design pattern m youssfi partie 8 stat, template method, command , medi...ENSET, Université Hassan II Casablanca
 
patron de conception
patron de conception patron de conception
patron de conception Shili Mohamed
 
Developper une application mobile
Developper une application mobileDevelopper une application mobile
Developper une application mobileEutech SSII
 

En vedette (16)

Design patterns - Exemples en Java
Design patterns - Exemples en JavaDesign patterns - Exemples en Java
Design patterns - Exemples en Java
 
Visitor Pattern
Visitor PatternVisitor Pattern
Visitor Pattern
 
01 programmation mobile - android - (introduction)
01 programmation mobile - android - (introduction)01 programmation mobile - android - (introduction)
01 programmation mobile - android - (introduction)
 
Design Pattern introduction
Design Pattern introductionDesign Pattern introduction
Design Pattern introduction
 
Chp6 - Développement iOS
Chp6 - Développement iOSChp6 - Développement iOS
Chp6 - Développement iOS
 
Chp2 - Conception UX-UI des Applications Mobiles
Chp2 - Conception UX-UI des Applications MobilesChp2 - Conception UX-UI des Applications Mobiles
Chp2 - Conception UX-UI des Applications Mobiles
 
Chp5 - Applications Android
Chp5 - Applications AndroidChp5 - Applications Android
Chp5 - Applications Android
 
Chp3 - Architecture Logicielle des Applications Mobiles
Chp3 - Architecture Logicielle des Applications MobilesChp3 - Architecture Logicielle des Applications Mobiles
Chp3 - Architecture Logicielle des Applications Mobiles
 
Chp1 - Introduction au Développement Mobile
Chp1 - Introduction au Développement MobileChp1 - Introduction au Développement Mobile
Chp1 - Introduction au Développement Mobile
 
Design Patterns (2003)
Design Patterns (2003)Design Patterns (2003)
Design Patterns (2003)
 
Jcom02.ppt
Jcom02.pptJcom02.ppt
Jcom02.ppt
 
Mobile design
Mobile designMobile design
Mobile design
 
Introduction aux design patterns
Introduction aux design patternsIntroduction aux design patterns
Introduction aux design patterns
 
Cours design pattern m youssfi partie 8 stat, template method, command , medi...
Cours design pattern m youssfi partie 8 stat, template method, command , medi...Cours design pattern m youssfi partie 8 stat, template method, command , medi...
Cours design pattern m youssfi partie 8 stat, template method, command , medi...
 
patron de conception
patron de conception patron de conception
patron de conception
 
Developper une application mobile
Developper une application mobileDevelopper une application mobile
Developper une application mobile
 

Similaire à Android Bonnees pratiques

"Introduction aux Developements iOS" in Three hours
"Introduction aux Developements iOS" in Three hours"Introduction aux Developements iOS" in Three hours
"Introduction aux Developements iOS" in Three hoursLaurent MEURISSE
 
Le design mobile c’est pas facile
Le design mobile c’est pas facileLe design mobile c’est pas facile
Le design mobile c’est pas facileQuentin Sallat
 
Breizhcamp 2015 Ionic Framework
Breizhcamp 2015 Ionic FrameworkBreizhcamp 2015 Ionic Framework
Breizhcamp 2015 Ionic FrameworkStéphanie Moallic
 
Eviter les désastres de sous-traitance Offshore Indien !
Eviter les désastres de sous-traitance Offshore Indien !Eviter les désastres de sous-traitance Offshore Indien !
Eviter les désastres de sous-traitance Offshore Indien !John Passy
 
10 tips pour améliorer les performances de vos applications Windows 8
10 tips pour améliorer les performances de vos applications Windows 810 tips pour améliorer les performances de vos applications Windows 8
10 tips pour améliorer les performances de vos applications Windows 8Microsoft
 
Bien Démarrer avec le Responsive Web Design
Bien Démarrer avec le Responsive Web DesignBien Démarrer avec le Responsive Web Design
Bien Démarrer avec le Responsive Web DesignGreg Hoin
 
Sophiacom au salon Le Mobile 2.0 2011
Sophiacom au salon Le Mobile 2.0 2011Sophiacom au salon Le Mobile 2.0 2011
Sophiacom au salon Le Mobile 2.0 2011Sophiacom
 
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
 
20131024 qualité de code et sonar - mug lyon
20131024   qualité de code et sonar - mug lyon20131024   qualité de code et sonar - mug lyon
20131024 qualité de code et sonar - mug lyonClement Bouillier
 
Soirée Qualité Logicielle avec Sonar
Soirée Qualité Logicielle avec SonarSoirée Qualité Logicielle avec Sonar
Soirée Qualité Logicielle avec SonarElsassJUG
 
CocoaHeads Rennes #5 : iOS & Android
CocoaHeads Rennes #5 : iOS & AndroidCocoaHeads Rennes #5 : iOS & Android
CocoaHeads Rennes #5 : iOS & AndroidCocoaHeadsRNS
 
Faire du design par composant avec l'Atomic Design
Faire du design par composant avec l'Atomic DesignFaire du design par composant avec l'Atomic Design
Faire du design par composant avec l'Atomic DesignLoïc Vanderschooten
 
10 ans de Code (Agile Bordeaux 2019).pptx
10 ans de Code (Agile Bordeaux 2019).pptx10 ans de Code (Agile Bordeaux 2019).pptx
10 ans de Code (Agile Bordeaux 2019).pptxGuillaume Saint Etienne
 
Réussir son lancement mobile
Réussir son lancement mobileRéussir son lancement mobile
Réussir son lancement mobileJérémie Clévy
 
Cocoaheads Rennes #3 : Bien coder sur iOS
Cocoaheads Rennes #3 : Bien coder sur iOSCocoaheads Rennes #3 : Bien coder sur iOS
Cocoaheads Rennes #3 : Bien coder sur iOSCocoaHeadsRNS
 
FinistJUG - J’ai besoin d’une appli web rapidement
FinistJUG -   J’ai besoin d’une appli web rapidementFinistJUG -   J’ai besoin d’une appli web rapidement
FinistJUG - J’ai besoin d’une appli web rapidementHoracio Gonzalez
 
[FR] Présentation de PhoneGap
[FR] Présentation de PhoneGap[FR] Présentation de PhoneGap
[FR] Présentation de PhoneGapThomas Bassetto
 
Trucs et astuces sur le dévelopment Android
Trucs et astuces sur le dévelopment AndroidTrucs et astuces sur le dévelopment Android
Trucs et astuces sur le dévelopment AndroidThierry-Dimitri Roy
 

Similaire à Android Bonnees pratiques (20)

"Introduction aux Developements iOS" in Three hours
"Introduction aux Developements iOS" in Three hours"Introduction aux Developements iOS" in Three hours
"Introduction aux Developements iOS" in Three hours
 
Le design mobile c’est pas facile
Le design mobile c’est pas facileLe design mobile c’est pas facile
Le design mobile c’est pas facile
 
Breizhcamp 2015 Ionic Framework
Breizhcamp 2015 Ionic FrameworkBreizhcamp 2015 Ionic Framework
Breizhcamp 2015 Ionic Framework
 
Eviter les désastres de sous-traitance Offshore Indien !
Eviter les désastres de sous-traitance Offshore Indien !Eviter les désastres de sous-traitance Offshore Indien !
Eviter les désastres de sous-traitance Offshore Indien !
 
10 tips pour améliorer les performances de vos applications Windows 8
10 tips pour améliorer les performances de vos applications Windows 810 tips pour améliorer les performances de vos applications Windows 8
10 tips pour améliorer les performances de vos applications Windows 8
 
Bien Démarrer avec le Responsive Web Design
Bien Démarrer avec le Responsive Web DesignBien Démarrer avec le Responsive Web Design
Bien Démarrer avec le Responsive Web Design
 
Breizh campux
Breizh campuxBreizh campux
Breizh campux
 
Sophiacom au salon Le Mobile 2.0 2011
Sophiacom au salon Le Mobile 2.0 2011Sophiacom au salon Le Mobile 2.0 2011
Sophiacom au salon Le Mobile 2.0 2011
 
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
 
20131024 qualité de code et sonar - mug lyon
20131024   qualité de code et sonar - mug lyon20131024   qualité de code et sonar - mug lyon
20131024 qualité de code et sonar - mug lyon
 
Soirée Qualité Logicielle avec Sonar
Soirée Qualité Logicielle avec SonarSoirée Qualité Logicielle avec Sonar
Soirée Qualité Logicielle avec Sonar
 
CocoaHeads Rennes #5 : iOS & Android
CocoaHeads Rennes #5 : iOS & AndroidCocoaHeads Rennes #5 : iOS & Android
CocoaHeads Rennes #5 : iOS & Android
 
Faire du design par composant avec l'Atomic Design
Faire du design par composant avec l'Atomic DesignFaire du design par composant avec l'Atomic Design
Faire du design par composant avec l'Atomic Design
 
10 ans de Code (Agile Bordeaux 2019).pptx
10 ans de Code (Agile Bordeaux 2019).pptx10 ans de Code (Agile Bordeaux 2019).pptx
10 ans de Code (Agile Bordeaux 2019).pptx
 
Réussir son lancement mobile
Réussir son lancement mobileRéussir son lancement mobile
Réussir son lancement mobile
 
Cocoaheads Rennes #3 : Bien coder sur iOS
Cocoaheads Rennes #3 : Bien coder sur iOSCocoaheads Rennes #3 : Bien coder sur iOS
Cocoaheads Rennes #3 : Bien coder sur iOS
 
FOF Spécial Webinaire.pdf
FOF Spécial Webinaire.pdfFOF Spécial Webinaire.pdf
FOF Spécial Webinaire.pdf
 
FinistJUG - J’ai besoin d’une appli web rapidement
FinistJUG -   J’ai besoin d’une appli web rapidementFinistJUG -   J’ai besoin d’une appli web rapidement
FinistJUG - J’ai besoin d’une appli web rapidement
 
[FR] Présentation de PhoneGap
[FR] Présentation de PhoneGap[FR] Présentation de PhoneGap
[FR] Présentation de PhoneGap
 
Trucs et astuces sur le dévelopment Android
Trucs et astuces sur le dévelopment AndroidTrucs et astuces sur le dévelopment Android
Trucs et astuces sur le dévelopment Android
 

Android Bonnees pratiques