Closed bbinto closed 6 years ago
@pocmo @csadilek do you think building this as an android component makes sense? We would want to use them in Fenix, at least.
@pocmo @csadilek do you think building this as an android component makes sense? We would want to use them in Fenix, at least.
Yes, absolutely! That's what I wrote on Slack today too :D
We will need to define what exactly the component can/should do. But apart from that I 100% agree: We wanted to have contextual hints in all our apps (even way back in Fennec) but we never got to it because it requires a good amount of work. It would be great if our components could provide enough tools so that this will be easy to add to all our apps going forward.
I'll wait what @brampitoyo comes up with so that we can start to make a plan. @aminalhazwani may be interested in this too. Let's see if we can come up with a shared vision for contextual hints in our apps.
Thanks @pocmo ! I think the UX side of things is still up for creation by Bram and Amin, but one thing we definitely need is a local event and trigger system to fire the UX side of things. Can we get started on that?
Some ideas / questions:
Thanks @Sdaswani! I filed https://github.com/mozilla-mobile/android-components/issues/351 and copied some things over.
From the UX side of things, I know that our team has come up with a Firefox In Product Communications strategy. As far as I know, it’s only been applied to desktop, but a mobile strategy is most certainly in the works. We want to make sure that we stay consistent to that strategy.
Here are my thoughts for the moment:
Thanks for your analysis @brampitoyo ! Any way we can highlight the search engine customization? How about adding autocomplete URLs? Most importantly, how about asking the user to set their default browser?
@Sdaswani Those three features (search engine customisation, autocomplete URL, default browser) will help me think of more trigger for active hints. Thanks very much for the ideas!
Search engine customisation. Trigger:
x
not x
, tap GoAutocomplete URL. Trigger:
Default browser. Trigger:
Some more thinking-out-loud around this topic:
Our in-product communication strategies are already clear (there’s a slide deck I can share – but not sure if a video of it exist), but here are a few low-level, tactical principles that we can use to implement hints. I’m summarising everything that was written up above:
Thanks for all the input on this big topic.
I'd love to brainstorm a bit more on the features we want to highlight in the future.
As of now, to keep things rolling, I'm in favour of starting with some of the ones @Sdaswani mentioned, maybe except the search engine customization as I don't think that's as intuitive right now.
To get started, I'd suggest to only focus on the following:
We can show in-app communications that are more private, more direct, and more respectful of our mission by utilising two principles:
We have just-in-time information for:
We have one-tap actions for:
Should we file individual issue for each information/action? An issue has already been filed for Set as Default Browser and Add to Homescreen, so I will post my mockups there.
@brampitoyo said:
Just-in-time information. Instead of showing hints after users do certain actions (our prediction may be inaccurate), show information next to features and menu items themselves, and show them permanently (no tracking required).
@brampitoyo and @bbinto - do we know that users are accessing these features or menus often enough for these tips to be seen very often? For example, if a menu is accessed by 1% of users on a daily basis, an associated tip is not going to influence them very often (if at all).
@Sdaswani wrote:
For example, if a menu is accessed by 1% of users on a daily basis, an associated tip is not going to influence them very often (if at all).
Looking at the data, out of 400 million foregrounds, settings has only be accessed some 2 millions times. Not very many people will ever see this tip.
Out of 400 million app foregrounds, the menu has only been clicked some 9 million times - that's about a 2% chance users will ever see this tip.
This problem occupied me all night, and it turned out that we have an obvious solution that’s been overlooked: start screen tips.
Start screen is an incredibly precious piece of real estate, because every Focus user is guaranteed to see it at some point. That’s 100% of users.
There’s an opportunity in this screen: users who have used Focus for a while already know our value proposition well. So can we replace our default “Browse. Erase. Repeat.” messaging with useful tips?
These tips refresh after each time you press Erase.
They may start at a random place (so every user gets to see a different one), but they shouldn’t be annoying (ie. you shouldn’t see the same tip twice in a row, every other time, etc.). And they should circle back to “Browse. Erase. Repeat.” eventually.
Lastly, these tips don’t interrupt your activity (you can still type on the URL bar straight away).
I think that these tips should work in conjunction with the other just-in-time information and one-tap actions. In other words, we should do all of them together. What do you think?
I ❤️ the start screen tips, and I would want to prioritize them for 7.0. I would also want to use fretboard to be able to send new tips down without app updates, but we can leave that for another revision.
As you say @brampitoyo they will be seen by 100% of users.
Can we 'deep link' to some actions (like setting default browser) instead of giving links?
cc @oliviabrown9 this may be something nice to do for iOS too.
@Sdaswani The action that makes sense to deep link – in a sense that the action can be useful without needing any website to be loaded first – is indeed “Set as default browser”!
We can easily turn the hint text into a link – and in fact make the entire hint area tappable (even though only the hint text is underlined).
And when tapped, we will show an instructional modal dialogue that says “On the next screen, select Firefox Focus and then tap ‘Always’”. This is the most direct way to make Firefox Focus your default browser without needing to go into Settings and correctly select a specific menu item.
And yes, these start screen hints are readily adaptable to iOS! Some interesting things to highlight there will be our security features (like Touch/FaceID) and shortcut features (like Siri shortcuts).
I think this screen flow is technically not possible unfortunately :(
Our default browser setting does two different things:
There's no way for us to trigger the selection screen above.
I haven’t got a phone running older versions of Android to test this, but on my test phone running 8.1, somehow Opera Mini was able to invoke the system’s browser selection dialogue.
Example: https://www.youtube.com/watch?v=MTUd9JKGw78
I wonder what they’re doing here, and how they’re able to do it?
We should 100% do this - @pocmo @colintheshots any ideas how we can do this?
And when tapped, we will show an instructional modal dialogue that says “On the next screen, select Firefox Focus and then tap ‘Always’”. This is the most direct way to make Firefox Focus your default browser without needing to go into Settings and correctly select a specific menu item.
@brampitoyo possible technical constrains aside what if we merge the two last screens. The folks at Citymapper do something very smart. After users tap on the action the native dialog shows up with an overlay and - even if behind the overlay - they change the content of the background to guide users, this is a screenshot (on device the caret jumps up and down).
I haven’t got a phone running older versions of Android to test this, but on my test phone running 8.1, somehow Opera Mini was able to invoke the system’s browser selection dialogue.
Interesting.
This menu item seems to do different things based on the Android system and if you have a default already. On my phone it tells me to first clear the current default and then sends me to the "App Info" page of Klar. After that it shows me the same flow like you showed to select the app from a list.
This seems more complicated than our solution (on systems that have a default browser setting). On other systems it's nice because they have a kind of interactive version of what we describe in the SUMO article.
We can iteratively improve this to something more complex that covers more cases but can we start defining something MVP for 7.0 (that still links directly to the setting change)?
@brampitoyo is this Eng Ready? Or do we still need UX and/or copy? I know for default browser there was some discussion about making that actionable without leaving the app, but leaving that implementation aside, can Eng get started on this?
[…] is this Eng Ready? Or do we still need UX and/or copy? I know for default browser there was some discussion about making that actionable without leaving the app, but leaving that implementation aside, can Eng get started on this?
@Sdaswani Yes. Other than default browser, this issue is Engineering ready.
In essence, the Start Screen Tips are text-based messages that replace our current “Browse. Erase. Repeat.” messaging at certain conditions, as explained above in https://github.com/mozilla-mobile/focus-android/issues/2816#issuecomment-407596977.
And if we cannot invoke the “Open with” system dialogue reliably, we can just send user to the correct page under the system Settings.app, which is what we already do if you go to Firefox Focus Settings and select “Set as default browser”.
@brampitoyo do we need @BrianNJones to finalize the copy for the tips?
Of course we need @bbinto's thoughts on this.
@aminalhazwani
The folks at Citymapper do something very smart. After users tap on the action the native dialog shows up with an overlay and - even if behind the overlay - they change the content of the background to guide users, this is a screenshot (on device the caret jumps up and down).
I like this idea a lot, and think that we can do something similar for default browser. Of course, it depends on whether we can invoke the “Default app” system dialogue reliably!
But ideally, it might look a little like this:
And the arrow animation would look like this: https://cl.ly/1M3H1h1h1R2Z
[…] do we need @BrianNJones to finalize the copy for the tips?
Yes. Absolutely.
Brian, here’s a summary of all the in-app communication that we want to do in Focus.
(To everybody else: if you feel like the discussion above are fragmented and incomplete – such is the nature of any bug/issue thread – then read below for a summary)
We think that educating our users about some of our less known features will make them more likely to use Firefox Focus more.
We have thought of things such as showing hints after users have performed certain sets of actions. However, showing something more passive (ie. doesn’t need any user tracking or activity detection) and direct (ie. allows users to perform the action directly, instead of telling them about a feature), will allow us to educate users while staying true to our mission.
We’re planning to have three kinds of in-app communication:
Instead of showing hints after users do certain actions (our prediction may be inaccurate), show information next to features and menu items themselves, and show them permanently (no tracking required).
We have just-in-time information for:
Instead of telling users how to access features, give them the ability to execute that feature in just one tap, and allow them to do it all the time (no tracking required).
We have one-tap actions for:
Those who have used Focus for a while already know our value proposition well. So can we replace our default “Browse. Erase. Repeat.” messaging with useful tips?
These tips refresh after each time you press Erase, and don’t interrupt your activity (you can still type on the URL bar straight away).
Best of all, these tips can also be adapted to show up in Focus for iOS.
We have start screen tips for:
Now you know all the in-app communication that we’d like to do in Focus for Android, and all the strings that we’ll need your help writing.
Of course we need @bbinto's thoughts on this.
@Sdaswani what exactly should I think of? If we want users to be sent to the settings page?
@bbinto I need your green light for us to build all these things for 7.0 (most importantly the start screen tips, which I would want to do first as they are the most high impact).
On Mon, Jul 30, 2018 at 3:16 AM, Barbara Bermes notifications@github.com wrote:
Of course we need @bbinto https://github.com/bbinto's thoughts on this.
@Sdaswani https://github.com/Sdaswani what exactly should I think of? If we want users to be sent to the settings page?
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/mozilla-mobile/focus-android/issues/2816#issuecomment-408816094, or mute the thread https://github.com/notifications/unsubscribe-auth/AEp2Uu4eyycUKzRU8tYs_nDW-6keBBsnks5uLt0FgaJpZM4U6LQy .
-- Susheel Daswani Senior Mobile Engineering Manager phone / text: (415) 218-7259
@Sdaswani & @brampitoyo, I also <3 the start screen tips and don't feel we need to get everything in for 7.0, so starting with start screen tips and starting to break them into eng issues would be great, including probes.
I feel the start screen tips are the easiest to implement and to add strings/tips as we go (especially the ones that don't deep link).
great @bbinto - @sblatz is going to breakdown the work for the simple implementation (where an app update is required for new tips) while @BrianNJones gets the strings ready
@brampitoyo @Sdaswani @bbinto, wrapping my head around everything here. Think there's more to understand before we implement the start screen tips.
@colintheshots @ekager @sblatz for screen tips, I see that @brampitoyo has included the workflow to get to the setting, but can't we just deep link if the user clicks on the tip?
My comments, but happy to hear from @brampitoyo :
@BrianNJones Thanks for bringing up all your concerns! They’re very important to address, and I’ll try my best to answer them below:
What cue(s) are we giving users to help understand that start screen content is semi-dynamic? The hedline (Firefox Focus) is static; it's unlikely users will understand the text beneath is changing.
Tying string refresh to "Erase" makes engineering sense, but we're assuming users will understand the relationship/cadence.
I had a few ideas around how the tip should initially display and refresh, but your point has helped clarify my thinking.
Every time the user cold boot the app, the initial state should always start out on “Browse. Erase. Repeat.” with no other hint fading in or displayed. This ensures that our initial state remains unsurprising to anybody who has used Focus before. Hint will only be displayed after the first tap of the Erase button.
How do we help users understand that the start screen content can change? How do we help them understand that tapping Erase will change hints? I like @Sdaswani’s idea: each time after the user taps Erase, the initial state should always start out on “Browse. Erase. Repeat.” – however, after a few seconds, the hint would replace this text permanently, until the next time the user taps Erase.
Once a hint is displayed, it won’t easily change (they won’t change on app switching or warm boot). The only way to change a hint is to tap the Erase button. And if the app is quit, the hint returns to its initial state: “Browse. Erase. Repeat.” – so as to minimise surprise and randomness.
Will user who has already turned off TP see the TP-related tip, etc?
I was thinking that the tip would only show up when the user has never used the feature before:
This means that many of our pro users won’t see any hint at all. That’s perfectly fine. We can still display “Browse. Erase. Repeat.” Our aim is simply to get users who haven’t tried specific features, to try them at least once.
5 strings + "Browse. Erase. Repeat" = 6 strings. For this to be meaningful/compelling, strongly think we need more.
I strongly agree that we need more than just 5 hint strings.
For a hint to be actionable, it needs to be tied to a certain feature – otherwise, it’s just crowding up the start screen.
I would recommend hinting at features that allow users to get to where they want to go faster, or give them more privacy:
Thoughts?
@brampitoyo, thank you X 1,000,000 for your response.
Tip display beneath Firefox Focus: I'm still skeptical that users will see the tips, but it can't hurt to try. (Aside: it would be interesting to do a quick eye-tracking test, eh?)
Display rules: makes total sense, Bram...great!
Number of hint strings: would you have time in the next couple days to talk this through?
Thanks again!
@brampitoyo some comments:
@Sdaswani I’ll meet with @BrianNJones and have a chat about the strings. Thanks!
@brampitoyo any updates on this? moving this to sprint 4
@bbinto I think that @sblatz has implemented the initial UI for home screen tips at #3039 and PR #3097.
With that in mind, should we close this issue? We can continue working on the details of the tips implementation (e.g. #3101, #3126) in other issues.
I’ve posted some more thoughts about tips on https://github.com/mozilla-mobile/focus-android/issues/3039#issuecomment-412384274, but generally, we’re good to go.
Why/User Benefit/User Problem
What / Requirements
Acceptance Criteria (how do I know when I’m done?)