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

Activities Vs. Fragments

Bryan Herbst
December 11, 2014

Activities Vs. Fragments

An exploration of when to use Activities and when to use Fragments

Bryan Herbst

December 11, 2014
Tweet

More Decks by Bryan Herbst

Other Decks in Programming

Transcript

  1. Activities vs. Fragments
    Bryan Herbst – Senior Software Engineer, The Nerdery

    View Slide

  2. Activity
    “An activity is a single, focused thing that the user can do.”
    - Android API documentation

    View Slide

  3. Fragment
    “A Fragment represents a behavior or a portion of user interface in an Activity.”
    “[…] You can think of a fragment as a modular section of an activity.”
    -Android API documentation

    View Slide

  4. IO

    View Slide

  5. Activity- What it is
     Entry point to the application
     Set of Fragments with related purpose
     Easy to manage navigation

    View Slide

  6. Activity- What it isn’t
     Scary or evil
     Super lightweight
     Reusable

    View Slide

  7. Fragment- What it is
     A specific piece of functionality
     Reusable
     Relatively lightweight

    View Slide

  8. Fragment- What it isn’t
     The only option for displaying content in an application
     Easy to manage navigation

    View Slide

  9. Where to start?
     Create a navigation map of app
     Focus on hierarchy
     Clearly identify sibling screens (e.g. top level
    nav items) and descendant screens
     Determine entry points to the application

    View Slide

  10. Choose your weapon
     Is this screen a potential entry point?
     Yes: Activity
     No: Maybe Fragment
     Is this screen a hierarchical child of another screen (or: should it provide up navigation)?
     Yes: Probably Activity
     No: Maybe Fragment
     Will this UI component be used elsewhere?
     Yes: Fragment

    View Slide

  11. Case study: Cartwheel
     Deep linking
     All links route through MainActivity
     Should have let the framework do the work
     Scoreboard
     Re-used throughout the app
     Event bus for updating

    View Slide

  12. The Navigation Drawer
    Navigation hub vs. replacement for tabs => Activity vs Fragment
    “Use navigation drawers if:
     You don't want to give up the vertical screen real estate for a dedicated tab bar. “
    -- Android documentation- App Structure

    View Slide

  13. Multi-fragment layouts
     AKA “tablet layouts”
     Doesn’t play nice with the single activity navigation drawer!

    View Slide