04-18-2010 05:48 AM
I've seen projects which use many screens each one for different layout and functionality.
I've seen projects with only one screen (like wizard workflow) where content is changed on user interaction (and this seems to be logical to use single screen in wizards).
But also I've seen projects (apps like game or messenger or phone settings utility) which use single screen for different functionalities.
I can see such advantages of having single screen in app:
Can you tell other advantages/disadvantages of single screen app?
When its better to use this approach?
04-19-2010 08:20 AM
I don't think there is a right answer to this question.
I would suggest you design your screen flow around how the User will use the application. For example, if a pop concept is useful, then push and later pop.
However I would not recommend that you continually refresh screens with new content/layout if you do not have to. I find it much faster to create a new screen.
Regarding your points:
1) I would use inheritance for this if you can.
2) As you say, push/pop does this, and personally I have never had any problems with stack overflow except when I have some something silly.
3) I think it is good design to separate your presentation from your data, so rather than sharing your screen your screens could share data objects.
04-19-2010 08:25 AM
i usually combine both approaches.
i use a single screen, with a fixed title bar, a background image etc etc, and change the content using managers.
for some tasks i push a new screen, usually when the layout requires something else.
i would say it depends on the use-cases the app provides. if you have a main area the single-screen-approach is probably better.
i agree on the data sharing, of course. my screens or managers get a serviceregistry where they can find everything useful.