Upload
pierre-yves-ricau
View
1.154
Download
6
Tags:
Embed Size (px)
DESCRIPTION
Slides pour un talk à Droidcon Paris 2014: http://fr.droidcon.com/2014/agenda/detail?title=D%C3%A9fragmentez+vos+apps+avec+Mortar+! Vous en avez marre de passer votre temps à jongler entre les 42 lifecycle callbacks des Fragments pour prévenir crashs et autre bugs, à halluciner devant le code de FragmentManagerImpl.moveToState(), sans jamais être sûrs de tout maîtriser ? Défragmentez vos apps ! Mortar est une lib qui permet de se découpler de l’Activity et de modulariser votre code sous forme de Views et de Presenters, que vous pourrez très simplement réutiliser. Ce talk est un retour d’expérience alternant principes généraux et exemples concrets basés sur Square Register. La suppression totale des fragments nous a permis d’implémenter une UI alternative pour tablette très rapidement, en réutilisant un maximum de composants existants.
Citation preview
Défragmentez vos apps avec Mortar !
Pierre-Yves Ricau / @Piwai
Dev Heureux=
Créativité
Fragments
Goals
“Because a tablet's screen is much larger than that of a handset, there's more room to combine and interchange UI components. !
Fragments allow such designs without the need for you to manage complex changes to the view hierarchy.”
github.com/xxv/android-lifecycle
https://www.flickr.com/photos/albaraa/7087660805/
Fragments =
Salade périgourdine
• View binding & conf • Business logic
=> Hard to test
Hard to debug
FragmentManagerImpl
FragmentTransaction
WTFs/min = 2fragment count
Lessons
• “Programming is hard” => Making programming easy is hard.
• activities + layout inflater + views • Single Activity interface
Scopes• ObjectGraph => holds singletons => Divide app in a tree of scopes • Create when needed, GC when done.
Dagger plus graphs
Mortar
• Create, access and manage scopes => Hides scopes into a ContextWrapper
• Lifecycle when you need it
Creating
Destroying
Flow
Questions?
• github.com/square/dagger • github.com/square/mortar • github.com/square/flow
@Piwai