We're sorry but this page doesn't work properly without JavaScript enabled. Please enable it to continue.
Feedback

An alternative to fragments: Say Hello to Mortar & Flow

00:00

Formal Metadata

Title
An alternative to fragments: Say Hello to Mortar & Flow
Title of Series
Number of Parts
46
Author
License
CC Attribution 3.0 Unported:
You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal purpose as long as the work is attributed to the author in the manner specified by the author or licensor.
Identifiers
Publisher
Release Date
Language

Content Metadata

Subject Area
Genre
Abstract
The introduction of fragments made it possible to split activities into smaller, more manageable components and allowed to build responsive UIs. Further taking advantage of the FragmentManager allowed hosting all fragments within a single activity. However fragments also caused headaches; ensuring that a transition is safe, magic fragment re-creation and ensuring the correct fragment is shown after an activity is re-created to name a few. In this talk, we will take a close look at two libraries: Mortar (with Dagger) and Flow. Leveraging these libraries allows creating well structured and cleanly separated components yielding reusable and testable user interfaces. Built as a layer on top of Dagger, Mortar provides scoped injection of components and provides lifecycle callbacks. These scoped subgraphs are only around while a screen that requires them is in scope thus keeping the memory footprint small. The separation of views and presenters fosters code that is easily testable. Flow provides the means to navigate between screens and manages the backstack. Flow can be freely extended to provide custom animations between screens since it is handling plain old views. The takeaways from this talk are that Mortar and Flow provide an excellent alternative to Fragments and utilizing them can help you build well architected applications with responsive UIs as well as being able to easily add unit tests for the business logic in the presenters.
Computer virusDataflowDataflowLibrary (computing)Square numberProjective planeExterior algebraGoodness of fitBitMobile WebSampling (statistics)Demo (music)Connectivity (graph theory)Lecture/Conference
Online helpMobile WebDataflowUniqueness quantificationView (database)Inheritance (object-oriented programming)Uniform resource locatorCartesian coordinate systemDataflowPoint (geometry)View (database)Computer animation
PiStandard deviationArchitectureProjective planeMultiplication signMobile appDataflow
Standard deviationArchitectureInheritance (object-oriented programming)Electronic mailing listRegular graphDataflowMobile appComputer architectureView (database)Endliche ModelltheorieLecture/Conference
Component-based software engineeringDatabase transactionOverhead (computing)Tablet computerData managementProgram flowchart
Touch typingSound effectDatabase transactionState of matterCodeLecture/Conference
State of matterView (database)LogicOverhead (computing)Database transactionSource codeData managementDataflowView (database)DampingLogicData managementDataflowSingle-precision floating-point formatProgram flowchart
ThumbnailGraph (mathematics)CodeBlogLibrary (computing)Drop (liquid)GradientSoftware developerPulse (signal processing)Sample (statistics)DataflowSoftware developerSquare numberRevision controlComputer animationLecture/Conference
TouchscreenFiber bundleDataflowStack (abstract data type)TouchscreenLibrary (computing)Presentation of a groupVariable (mathematics)DataflowOpen sourceCartesian coordinate systemState of matter2 (number)Square numberStack (abstract data type)Open setMessage passingLecture/Conference
Overlay-NetzInjektivitätFiber bundleSquare numberOverlay-NetzPresentation of a groupGraph (mathematics)Physical systemSocial classSign (mathematics)Context awarenessService (economics)Different (Kate Ryan album)RootCartesian coordinate systemHookingMereologyMobile appFiber bundleSystems engineeringDataflowArmTheory of relativityLecture/ConferenceComputer animation
Fiber bundleSocial classService (economics)Presentation of a groupView (database)File viewerFreewareLecture/Conference
Fiber bundleService (economics)View (database)DataflowInjektivitätAverageLogicGraph (mathematics)Module (mathematics)Object (grammar)Instance (computer science)TouchscreenPhysical systemHookingDataflowService (economics)Multiplication signFiber bundleInjektivitätView (database)LogicPresentation of a groupComputer animation
Multiplication signObject (grammar)Graph (mathematics)TouchscreenLecture/Conference
Integrated development environmentDegree (graph theory)View (database)DataflowPresentation of a groupEndliche ModelltheorieLecture/Conference
View (database)CountingOvalContext awarenessStreaming mediaInheritance (object-oriented programming)Set (mathematics)Module (mathematics)View (database)Frame problemTouchscreenCASE <Informatik>Module (mathematics)Structural loadMathematicsPresentation of a groupFiber bundleRotationState of matterLecture/ConferenceComputer animation
View (database)TouchscreenLinearizationLogicPresentation of a groupRight angleSocial classGraph (mathematics)Object (grammar)Lecture/Conference
Inheritance (object-oriented programming)Fluid staticsContext awarenessOvalModule (mathematics)View (database)Set (mathematics)TouchscreenAbstractionAttribute grammarCASE <Informatik>Service (economics)InjektivitätObject (grammar)Graph (mathematics)Presentation of a groupTouchscreenWindowTouch typingCodeEvent horizonVideo gameCycle (graph theory)Boilerplate (text)View (database)Computer animation
RootService (economics)Context awarenessView (database)Object (grammar)Graph (mathematics)Cartesian coordinate systemRoutingLecture/Conference
Modulo (jargon)RootCartesian coordinate systemModule (mathematics)TouchscreenObject (grammar)CASE <Informatik>Service (economics)Graph (mathematics)Physical systemLecture/Conference
RootService (economics)Context awarenessObject (grammar)CASE <Informatik>2 (number)Lecture/Conference
RootModule (mathematics)Service (economics)Context awarenessSound effectState of matterTouchscreenHierarchyGraph (mathematics)InformationLecture/ConferenceProgram flowchart
Object (grammar)RootInheritance (object-oriented programming)Graph (mathematics)Service (economics)Context awarenessInstance (computer science)RoutingPresentation of a groupCASE <Informatik>Cartesian coordinate systemGraph (mathematics)Service (economics)Multiplication signModule (mathematics)Physical systemObject (grammar)RootComputer animation
Library (computing)RootService (economics)Context awarenessModule (mathematics)Cartesian coordinate systemPresentation of a groupGroup actionGame controllerSet (mathematics)
Module (mathematics)RootDigital photographyRotationRepetitionTouchscreenCartesian coordinate systemDataflowMultiplication signState of matterPresentation of a groupProgram flowchart
Presentation of a groupTouchscreenRotationOverhead (computing)View (database)Lecture/Conference
RotationView (database)Service (economics)TouchscreenOvalInheritance (object-oriented programming)Structural loadStructural loadPresentation of a groupMultiplication signCountingTouchscreenLecture/Conference
RotationModule (mathematics)OvalCountingView (database)Service (economics)RepetitionPresentation of a groupDataflowService (economics)Cartesian coordinate systemCASE <Informatik>Fiber bundleProper map
TouchscreenStack (abstract data type)DataflowSingle-precision floating-point formatAdditionLogicDirection (geometry)BitDataflowLine (geometry)TouchscreenInstance (computer science)Single-precision floating-point formatSet (mathematics)CASE <Informatik>Cartesian coordinate systemFunctional (mathematics)Lecture/Conference
DataflowRow (database)Group actionCuboidSquare numberTouchscreenSampling (statistics)Library (computing)Lecture/Conference
DataflowTouchscreenDefault (computer science)ImplementationCuboidTraverse (surveying)Group actionMetropolitan area networkComputer animation
RotationBit error rateGroup actionRegular graph
Direction (geometry)DataflowView (database)Convex hullOvalLetterpress printingBootingMaxima and minimaConic sectionCodeView (database)Group actionTouchscreenScaling (geometry)Social classRoundness (object)CASE <Informatik>FreewareMereologyGreatest elementComputer animation
Social classDataflowAnalog-to-digital converterState of matterDataflowSocial classGraph (mathematics)Object (grammar)Event horizonFiber bundleSerial portComputer animation
OvalInstance (computer science)Wrapper (data mining)Exception handlingState of matterDataflowSoftware development kitKey (cryptography)State of matterDataflowCASE <Informatik>TouchscreenGreatest elementInstance (computer science)Sampling (statistics)Projective planeMobile appParsingLecture/Conference
DisintegrationTouchscreenState of matterPresentation of a groupVideo gameCASE <Informatik>Lecture/Conference
DisintegrationEvent horizonCASE <Informatik>ResultantFacebookScaling (geometry)Digital photographyTwitterLoginVideo gameCycle (graph theory)Data managementCartesian coordinate systemView (database)Event horizonGraph (mathematics)Presentation of a groupLink (knot theory)Lecture/Conference
Instance (computer science)Video gameCycle (graph theory)Presentation of a groupView (database)CASE <Informatik>Digital photographyLecture/Conference
DisintegrationDigital photographyOpen setOvalExecution unitFluid staticsAbstractionoutputStructural loadResultantElectronic visual displayPresentation of a groupVideo gameCycle (graph theory)View (database)RootSocial classCASE <Informatik>Cartesian coordinate systemComputer animation
Presentation of a groupResultantMedical imagingSlide ruleElectronic data processingProcess (computing)Lecture/Conference
InjektivitätUniqueness quantificationFlow separationModule (mathematics)RootData managementCASE <Informatik>Set (mathematics)InjektivitätInstance (computer science)Lecture/Conference
Content (media)Library (computing)Run time (program lifecycle phase)OvalInheritance (object-oriented programming)Module (mathematics)Fluid staticsSet (mathematics)Cartesian coordinate systemPresentation of a groupRootModule (mathematics)Right angleDataflowLecture/ConferenceComputer animation
DataflowArchitectureView (database)LogicExecution unitView (database)DataflowPresentation of a groupEndliche ModelltheorieLogicComputer animationLecture/Conference
Object (grammar)Point (geometry)DataflowGraph (mathematics)Cartesian coordinate systemLogicService (economics)Flow separationLecture/Conference
Sampling (statistics)Prisoner's dilemmaMobile appDataflowCodePoint (geometry)Cartesian coordinate systemLibrary (computing)Set (mathematics)Projective planeSquare numberFrame problemTouchscreenVideo gameCycle (graph theory)Lecture/ConferenceComputer animation
TouchscreenLecture/Conference
Transcript: English(auto-generated)