Philosophy of Saved State

Discussion in 'iOS Apps' started by dougdawson, Sep 13, 2008.

  1. dougdawson macrumors member

    Joined:
    Aug 24, 2008
    Location:
    Austin, TX
    #1
    When you quit an app by pressing the home button, or the app is quit for you by (for example) receiving an incoming phone call, what state would you like the app to be in when you restart it? You could have the app return to some state that roughly resembles where you were when it quit, such as a table view, or, if you were in the middle of editing content, you could return to the state of editing that content as of having touched the most recent “Done” button to dismiss the associated modal view.

    If you look at the apps included on the shipping iPhone, it appears that Apple can’t quite figure this one out either. I've been discussing this issue with my dev partner for weeks. Tor wants to dismiss the modal view when the app quits, as if the user had touched Cancel. I would prefer to have the app return to PRECISELY where it was, including data that was in the process of being edited, and with the modal view (keyboard etc.) intact -- harder to do, but more esthetically pure.

    I'm addressing this question primarily towards people who use apps, rather than other devs whose knowledge of the issue might be corrupted by professional understanding.

    What are your thoughts?

    Doug
     
  2. gillybean macrumors 6502a

    Joined:
    Jul 21, 2008
    Location:
    Seattle, WA
    #2
    As a user, when I enter an app, I expect it to be in a fresh state.

    Like, if I start Microsoft Word, I'm expecting a blank document to greet me, rather than the last document that I left off at.
     
  3. dougdawson thread starter macrumors member

    Joined:
    Aug 24, 2008
    Location:
    Austin, TX
    #3
    Even if it means losing a passage of text that you took some time to type in? The issue with comparing to desktop apps, is that the desktop app will ask you whether you want to save before you quit. The iPhone doesn't do that, in all cases.

    Doug
     
  4. edrex macrumors member

    Joined:
    Sep 6, 2008
    #4
    If I am starting fresh I would like a home screen, start menu, etc.
    If the app got interupted by something beyond my control (like an incoming phone call) then I think it would be good to start exactly as I left it. But, if possible, maybe only within a certain amount of time. Like if I end the call and click on the app to reopen it then it is where I left it. But, if I end the call and don't open the app for a few hours it reverts back to the home screen/menu.
     
  5. admanimal macrumors 68040

    Joined:
    Apr 22, 2005
    #5
    This isn't really a good analogy. When you quit a desktop app, it is pretty much always because you are done using it for a while, so giving you a fresh start when you do run it again makes sense. If you are planning to return to the app soon, you just minimize or hide it so you can easily return to it in exactly the state you left. On the iPhone, apps always quit whether you are completely done using them or just need to go to another app for a second, so always getting a fresh start might not make sense.
     
  6. BikeRanger macrumors newbie

    Joined:
    Jul 10, 2008
    #6
    It depends...

    Good question, and as an oft-annoyed end user, I'm very glad to see developers paying attention to this.

    Sometimes there really is no right answer, a good example being Apple's Calendar app. Maybe when I open it I want to see today, no matter where I was when I last left the app, so it's a pain to have to return to today. Other times it's nice that it goes back to the day where I left it. Same for Apple's Notes, which always goes to where I left it, but there's no way for the app to "know" whether I want to edit my last note or start a new one when I fire it up.

    Bike Gears does a good job -- it takes me to the same screen at every start because the info on the other screens all depends on the first one, so I'm sort of forced to confirm that it's set the way I want before moving on. Some users probably see this behavior as annoying but I've come to appreciate it as a sort of "everything you're about to do is based on X" reminder.

    Is it possible to make it an optional setting? I've often wished an app would let me choose how I want it to act.
     
  7. firewood macrumors 604

    Joined:
    Jul 29, 2003
    Location:
    Silicon Valley
    #7
    But, if in the middle of working with some document, you were to turn around to answer a phone call, look something up in your calendar, or change the tune on the CD player, you would not expect to turn back to your app and find it in a fresh state. When I answer a phone call, I expect the cursor to be exactly where I left it when I'm done with the phone call.

    The question is how is a developer to know when the user is returning after a quick interruption, and when the user is starting the app fresh.
     
  8. robbieduncan Moderator emeritus

    robbieduncan

    Joined:
    Jul 24, 2002
    Location:
    London
    #8
    The iPhone HIG clearly states that all applications should restore to the same state as when the application last closed. Of course many apps don't, but that's neither here nor there. They should.
     
  9. Solver macrumors 6502

    Joined:
    Jan 6, 2004
    Location:
    Cupertino, CA
    #9
    Apps should enter the starting home screen with a "Resume" option.
     
  10. dougdawson thread starter macrumors member

    Joined:
    Aug 24, 2008
    Location:
    Austin, TX
    #10
    (I can neither confirm nor deny that) the HIG says NO such thing. And even Apple's own apps don't do it. That much is public information.

    Doug
     
  11. dougdawson thread starter macrumors member

    Joined:
    Aug 24, 2008
    Location:
    Austin, TX
    #11
    That's one of the best ideas I've heard.

    To quote Richard Feynman: "Just ask them."

    Doug
     
  12. dougdawson thread starter macrumors member

    Joined:
    Aug 24, 2008
    Location:
    Austin, TX
    #12
    Timing is everything. Edrex raised a very good point, and so did you. It's very intriguing. If I quit an app, and restart it two seconds later, I expect it to be where it was. It's really jarring when it's not. This happens all the time in development, so I'm really sensitive to it.

    The question then is, how do you define a quick interruption? I'll go out on a limb here, and speculate that if you come back to the app within 15 minutes, that qualifies as a quick interruption, if you come back to the app within a day, you should be _approximately_ where you were, and if more than a day has passed, where you come back to should be context-sensitive.

    Doug
     

Share This Page