Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Life Without Fragments (with Eugenio Marletti)

Life Without Fragments (with Eugenio Marletti)

Video: https://www.youtube.com/watch?v=jl1HRiCaAP4

What is wrong with Fragments as they are implemented right now? You hear a lot of rage around bugs, issues, and plain bad/obscure APIs. But what alternatives are out there?
Most of the time, Fragments are used as custom Views. But that’s overkill for Fragments, and it’s not what they’re meant for, either: they can do way more than that (and probably shouldn’t). The talk will run through the architectural choices that we found out helped us create great apps without getting lost in Fragment hell. Because #fragmentsmatter, but not more than… [dramatic music mounts to climax, screen fades to black. "TO BE CONTINUED" appears on screen]

--------

Source keynote and PDF export available here: http://bit.ly/life-without-sources

Sebastiano Poggi

April 21, 2016
Tweet

More Decks by Sebastiano Poggi

Other Decks in Programming

Transcript

  1. Sebastiano Poggi
    @seebrock3r
    Novoda, Android GDE
    &
    Eugenio Marletti
    @workingkills
    Clue
    without
    life
    fragments

    View Slide

  2. *
    WARNING
    may contain traces of
    personal opinions and
    surprisingly little hate

    View Slide

  3. wrong
    What’s
    with
    Fragments

    View Slide

  4. Attila
    some poor guy

    View Slide

  5. Attila
    some poor guy

    View Slide

  6. FragmentManager
    YOU

    View Slide

  7. Fragment
    Manager
    * schizophrenia
    * unpredictable behaviour

    View Slide

  8. XML
    vs
    CODE

    View Slide

  9. XML
    vs
    CODE

    View Slide

  10. retained
    fragments

    View Slide

  11. transactions
    are async
    executePendingTransactions *

    View Slide

  12. state
    of chaos
    tech debt or crash: pick one *
    commitAllowingStateLoss *

    View Slide

  13. BUGS

    View Slide

  14. View Slide

  15. View Slide

  16. “Advocating Against Android Fragments”

    View Slide

  17. Nobody
    Fragments
    understands
    not a view, not a controller *

    View Slide

  18. not a view, not a controller *
    Balto
    Nobody
    Fragments
    understands

    View Slide

  19. Nobody
    understands
    Fragments
    Balto
    not a view, not a controller *
    also not a context *
    modular UI *
    lifecycle *

    View Slide

  20. CC BY-SA 4.0 by Steve Pomeroy

    View Slide

  21. CC BY-SA 4.0 by Steve Pomeroy

    View Slide

  22. CC BY-SA 4.0 by Steve Pomeroy

    View Slide

  23. they can *
    Google says so *
    all the “free” stuff *
    don’t fully understand *
    (mis)use
    Why do
    people still
    Fragments

    View Slide

  24. Fragments
    are not for:
    business logic *
    replacing views *
    persisting data *

    View Slide

  25. Fragments
    are evolving
    * ¯\_(ϑ)_/¯
    * attach to any Context

    View Slide

  26. Fragments
    are evolving
    * lots of fixes and less WTFs
    * commitNow

    View Slide

  27. Fragments
    are evolving
    * lots of fixes and less WTFs
    * commitNow
    Thanks Adam!
    (sorry Adam)

    View Slide

  28. Partial alternatives
    pyricau/fragnums *
    weefbellington/screenplay *
    lyft/scoop *
    bluelinelabs/conductor *
    doridori/pilot *
    soundcloud/lightcycle *
    square/flow + /mortar *
    * FRAGNUMS
    * Screenplay
    * Scoop
    * Conductor
    * Pilot
    * LightCycle
    * Flow + Mortar
    to Fragments

    View Slide

  29. ?
    custom views *
    clean architecture *
    SOLID *
    core vs mobile *
    write tests *
    unidirectional flow? *
    How are we
    dealing
    without
    Fragments

    View Slide

  30. Relax,
    not using Fragments is OK *
    using Fragments is… also OK *
    be a professional *
    use the Support Library *
    pray *
    pray a lot *
    we are
    not your
    supervisor

    View Slide

  31. Bunch
    o’
    Advocating Against Android Fragments *
    Android Forestry *
    Offline Application Architecture *
    Android Fragment & Activity Lifecycle *
    Let it flow *
    * goo.gl/VDMhs0
    * goo.gl/GN0rmP
    * goo.gl/P2ROcA
    * goo.gl/K4nThH
    * goo.gl/LNije5
    links

    View Slide

  32. A
    &
    Q
    (no pressure)

    View Slide

  33. Thank
    you

    View Slide

  34. Android Pro >> Novoda
    Google Developer Expert
    @seebrock3r
    Clue << Android Lead
    loves Tequila
    @workingkills
    we’re hiring
    Poggi
    Sebastiano
    MARLETTI
    EUGENIO
    bit.ly/life-without-fragments

    View Slide