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

Activities Vs. Fragments

Activities Vs. Fragments

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


Bryan Herbst

December 11, 2014


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

  2. Activity “An activity is a single, focused thing that the

    user can do.” - Android API documentation
  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
  4. IO

  5. Activity- What it is  Entry point to the application

     Set of Fragments with related purpose  Easy to manage navigation
  6. Activity- What it isn’t  Scary or evil  Super

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

     Reusable  Relatively lightweight
  8. Fragment- What it isn’t  The only option for displaying

    content in an application  Easy to manage navigation
  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
  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
  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
  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
  13. Multi-fragment layouts  AKA “tablet layouts”  Doesn’t play nice

    with the single activity navigation drawer!