Creating An Information Flag

Hi,

I want to add an information / message to certain screens when users first open the app, so they understand how to use the app, such as:

==========

"This screen allows you to view all of your... etc"

[OK, I GET IT]

==========

I was thinking of adding a column, such as 'home_screen_msg' to the 'user' table and setting a value of 0 in it, and then querying this field each time the user opens the home screen.

If the value is still 0, show the information / message pop up, then when they click [OK, I GET IT], update the field to 1 so that it doesn't show again.

I think my approach is a bit resource heavy or OTT, as this means that this query is run everytime, every user opens the home screen.

Is there an easier way to accomplish such a task?

Thanks in advance for your help.


PS - can anyone recommend what Expert Exchange categories you should select for App Development? Thanks again for your help.
oo7mlAsked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

Kyle HamiltonData ScientistCommented:
typically done by setting a cookie. though keep in mind that this will work per browser, and as long as user doesn't delete cookies. I don't know what browsers you're supporting, but you could also try local storage. with both of these methods you avoid a request to the server.
0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
oo7mlAuthor Commented:
Hi, thanks for your reply. It's for an iphone / android app so i don't think this approach will work.
0
lenamtlCommented:
Like Kyle said
You can use  HTML5 LocalStorage
this will work on Android and IOS
http://diveintohtml5.info/storage.html
0
Cloud Class® Course: Microsoft Office 2010

This course will introduce you to the interfaces and features of Microsoft Office 2010 Word, Excel, PowerPoint, Outlook, and Access. You will learn about the features that are shared between all products in the Office suite, as well as the new features that are product specific.

Slick812Commented:
greetings oo7ml, , , you seem to be getting web page answers for this iphone-android question, , , ,
You say you are concerned about "my approach is a bit resource heavy", since you are querying the database to check the home_screen_msg column, on each of your many screen displays. It is my view that doing a DB query is a standard thing for any "customizable" screen each time it shows, to get the "options" for the user. So doing a small return query is not much of a processor load, and you can probally do that. However, you may make a variable to starting out as zero that is stored in the DB table,, and set to 1, whenever ALL of the of the Message screens have been viewed, and if it is 1 then do not do the DB query, just skip it and show the regular screen. But there are many more factors that may come into play in the over all app design that I do not know about, that may have some concern, but a small (single data return) DB query is not resource heavy, in my view.
0
COBOLdinosaurCommented:
Actually I don't see why the information cannot be ept in the session variables.  However this sound more like a usability issue.  If the user has to be instrcted how to use pages, then perhaps you should be looking at how to make the presentation more intuitive.

Cd&
0
oo7mlAuthor Commented:
Hi, it's not a matter of designing the interface to be more intuitive. App interfaces need to be clean and minimal as the real estate is much smaller than a usual desktop interface (web browser) there for you can't start putting static messages and information points on screens.
0
Slick812Commented:
You say - "there for you can't start putting static messages and information points on screens. "
I can see that you are concerned about "as the real estate is much smaller than a usual desktop interface",
but I am sorry that I do not understand what kind of expert info you would want, to help you solve your design-implementation question - problem. Are you asking about a way to show info on "real estate that is much smaller" or having a way to decrease the info, and still have effective app, , , or something else?
I guess it has something to do with what you say as - "want to add an information / message to certain screens "
? ?
0
COBOLdinosaurCommented:
If the layout has appropriate presentation for a message some of  the time, then it is also there all of the time.  As for the [got it]... most users are never going to click it unless you somehow force is and reduce the usability even more.

If the message needs to contain a lot of information, then just use an iconic link to a page with instructions.  If you need to have this level of hand holding for users, a centralized information source makes more sense.

Cd&
0
oo7mlAuthor Commented:
It's not a design (ui) question, it is a programming question.

I know how i want the message to display (design done), but i am asking what is the best way to query / monitor if the user has already seen an onboarding message (programming (APP) question).

Ignore the actual design / look of the message below, as it is not my screenshot... however what is the best way of querying whether the user has already seen this message or not.

Both app development and web development use a lot of different storage techniques compared to each other, so i am basically asking what are my options? (for app development).

screenshot
I personally think querying the DB each and everytime a user loads the home screen is OTT, hence i am asking if there is a simpler way to achieve this using local storage.
0
Kyle HamiltonData ScientistCommented:
as already answered: yes, you can use local storage.
0
oo7mlAuthor Commented:
Thanks Kyle, this site really needs an app development section (can't believe there is not one on EE).

Thanks all.
0
COBOLdinosaurCommented:
It really comes down to three options:
cookie (not reliable as users can remove them)
localStorage (still has some technical issues and is only support by the most modern of mobile browsers)
Databases (overkill and a resource hog for something this trivial).

There is no perfect solution, so you just have to choose the lesser of evils.

Cd&
0
oo7mlAuthor Commented:
Thanks COBOLdinosaur ;-)
0
Slick812Commented:
you might read the DB at startup, and store a global variables (array) with the current data reads, and change the variables as the user touches the [OK, I GET IT], and at some point that is NOT every screen change, record the user variable to the DB.
0
oo7mlAuthor Commented:
Thanks Slick812, that seems like a much better option. Make one query and store all of the results locally, thanks.
0
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Web Development

From novice to tech pro — start learning today.

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.