On-board Approach

Added by carriestiens about 3 years ago

Hello! I've included a diagram of initial thoughts about how to on-board (onboard_v1.png). There are 2 approaches shown. Also, please refer to this google doc for an outline of our goals, scope, best practices, etc. as they relate to on boarding -- https://docs.google.com/document/d/1b0EoyeqWyOpA2KsQQFQ83Sonmb5Sutjw95qndi2OsVQ/edit

A. In the first approach, the focus is on connecting to your friends. Creating an account is secondary. An account would be created after the users selects the friends he/she wants to add. On the account screen, the user can create an ID, choose to be anonymous or use an existing account name (if they connected Facebook, Google or Jabber).

If they choose to use their existing account, they could have un-encrypted conversations over google hangouts or Facebook. But if they create a new account, the friends they want to talk to would need to sign up for chat secure account to talk to them. The better experience is if both people are using chatsecure, rather than 1 person using it, and 1 person using hangouts or Facebook and getting the jibber throughout the conversation. It seems that we want to encourage both people to use chat secure to talk. Is there a reason why we would want to encourage 1 person using chat secure to talk and the other remaining on Facebook or hangouts?

B. The second approach outlines a fairly standard setup. The account information is required upfront, the user gets into the app pretty directly and is subtly guided through starting a conversation and/or finding friends.

onboard_v1.png (369 KB)


Replies (19)

RE: On-board Approach - Added by chrisballinger about 3 years ago

You can use OTR over Facebook or Hangouts as long as both users are using a client that supports OTR, such as ChatSecure, Adium, Jitsi, or Pidgin.

Here's a full list of other clients that are compatible with ChatSecure's OTR encryption: https://en.wikipedia.org/wiki/Off-the-Record_Messaging#Client_support

Facebook is deprecating their XMPP gateway on April 30, 2015 so we should probably remove support for it before then. They currently don't have any alternative planned.

RE: On-board Approach - Added by hans about 3 years ago

Also, I think it'll be difficult to entirely ignore "XMPP/Jabber" as an existing account type in the intro wizard.

I think the "who do you want to chat with" approach is quite interesting, I like that it is directly focused on what people actually want to with the app. There is a fair amount of auto-detection we can do to support that flow, but I worry that there will be a lot of cases where the app won't have enough information to provide a easy, reliable setup for contacting the whole set of people selected.

Here are relevant things that can be auto-detected by looking at info sources on the device itself (Accounts, Contacts, etc):
  • whether there is a gmail/facebook/etc. account setup
  • whether a contact has a gmail account, from the email field in contacts
  • whether a contact has an XMPP/Jabber account from the IM field in contacts
So in response to that info, the app can automatically:
  • setup a gmail/facebook/etc. account
  • create an XMPP/Jabber account
  • send an XMPP invite/subscribe message to all XMPP contacts
  • send an email/text message with an invite to use ChatSecure with the XMPP account

RE: On-board Approach - Added by hans about 3 years ago

Just chatting with Rivka here about it. Here are a couple of points that came out of our discussion:

  • seeing Facebook and Gmail first thing from a US-based, privacy-aware perspective might be a put off, watering down our "cred", so it is important that those options don't have too much weight over the more private options we want to steer people towards.
  • about the language, "Find your Friends" seems quite broad, and maybe similar to those annoying services that spam out your whole contact list. The language should be more focused on what will happen, like "Who do you want to chat with?"
  • maybe the first screen needs to separate the options into two general paths:
    1. "find your friends" automatic setup
    2. use this account (i.e. "Connect to gmail/facebook/nearby".)

RE: On-board Approach - Added by n8fr8 about 3 years ago

hans wrote:

Also, I think it'll be difficult to entirely ignore "XMPP/Jabber" as an existing account type in the intro wizard.

Maybe we can call this "my own server" or "another server", just to simplify the jargon.

Here are relevant things that can be auto-detected by looking at info sources on the device itself (Accounts, Contacts, etc):
  • whether there is a gmail/facebook/etc. account setup

We can also detect if people are using a google apps organization/corporate/edu domain.

So in response to that info, the app can automatically:

I think figuring out these automatic things we can do is a good idea... however, with the vast majority of China/Tibet-based users, they won't have a device with a Google or Facebook account built-in, and/or they won't be able to connect to contacts on @gmail XMPP accounts either. We do want to serve our users in the rest of the world still, of course, and for them, using the @gmail account build into their device is still useful.

RE: On-board Approach - Added by n8fr8 about 3 years ago

I like the Discover tab from WeChat, and how that is an ongoing/persistent feature and not just in a wizard once. This is especially important for "Nearby" and the QR Code scanning. I think we should unify all "find my friends" type features under that, and since it is more then friends (i.e. you might want to join a group chat, or connect to some other sort of share), I think the "Discover" approach works for me.

I agree with Hans and Rivka, that we should not push Gmail / Facebook so much. I do like the 2nd wireframe "I have an account / I need an account" approach.

One other idea though is to automatically assume that people will need an account so that the primary promoted option is "Register" or "Sign Up", but then a secondary less prominent option is "I have an account" or "Use my own account" or something of that nature.

RE: On-board Approach - Added by carriestiens about 3 years ago

RE: Discover -- Yes, I like that too. And, we need those to always be available.

Since the vast majority of our target audience won't have an existing account (Facebook, Jabber, Google) to connect to, I agree that it should not be the primary focus. Nathan and Hans, thanks for your feedback on that. The primary flow we should design for, is getting getting people set up with a chatsecure ID, then connecting to friends.

I did another round of mock-ups with this in mind. You can see below, that connecting to an existing account is secondary.

onboard_v2.png (60.9 KB)

RE: On-board Approach - Added by n8fr8 about 3 years ago

!Lucha libre!

RE: On-board Approach - Added by n8fr8 about 3 years ago

Anonymoose!

RE: On-board Approach - Added by carriestiens about 3 years ago

Yes, anonymoose!

RE: On-board Approach - Added by hans about 3 years ago

I like onboard_v2 a lot for the part about creating an account, I think that approach makes a lot of sense. I do think we lose something valuable by entirely eliminating the "who do you want to chat with" aspect of it. That can serve as a more direct connection to what people actually want to do (chat with people) versus a technical detail (creating an account). It also provides the automatic setup process with specific information about which account types are going to be most important to the user, based on what accounts the selected contacts have.

RE: On-board Approach - Added by n8fr8 about 3 years ago

hans wrote:

I like onboard_v2 a lot for the part about creating an account, I think that approach makes a lot of sense. I do think we lose something valuable >by entirely eliminating the "who do you want to chat with" aspect of it. That can serve as a more direct connection to what people actually want to >do (chat with people) versus a technical detail (creating an account).

Agreed. We need to somehow keep that part as part of the bootstrap, though again, it may be more of an ongoing "Discover" type feature, where your friends might be "found" because they are within bluetooth or wifi range. Rather then just having the one time emphasis of adding friends to start, we need to emphasize that you can always discover new people around you, or add them via QR code, etc.

It also provides the automatic setup process with specific information about >which account types are going to be most important to the user, >based on what accounts the selected contacts have.

There is a high probability that someone in China, say, could have a in their phone's address book, but would not have an @gmail account themselves. Since talk.google.com doesn't support server-to-server TLS, we can't reach them from @dukgo or @calyx currently, either so it is a bit of a dead-end to try and reach someone on @gmail if you don't have an account there yourself.

RE: On-board Approach - Added by carriestiens about 3 years ago

n8fr8 wrote:

hans wrote:

I like onboard_v2 a lot for the part about creating an account, I think that approach makes a lot of sense. I do think we lose something valuable >by entirely eliminating the "who do you want to chat with" aspect of it. That can serve as a more direct connection to what people actually want to >do (chat with people) versus a technical detail (creating an account).

Agreed. We need to somehow keep that part as part of the bootstrap, though again, it may be more of an ongoing "Discover" type feature, where your friends might be "found" because they are within bluetooth or wifi range. Rather then just having the one time emphasis of adding friends to start, we need to emphasize that you can always discover new people around you, or add them via QR code, etc.

It seems that, since out target audience, will most likely need to make an account, that we should make that the primary action of the first screen. I do agree that we need to include an experience that helps people get connected to their friends. It makes a lot of sense to have the bootstrapping of friends experience as something that is always available (as Nathan mentioned). I'll include that in the next round of mock-ups.

RE: On-board Approach - Added by carriestiens about 3 years ago

Hello! I've attached a .png file showing the workflow for a new account and finding friends for the first time. There is also a diagram of the workflow to connect to Facebook.

onboard_v2.png (337 KB)

RE: On-board Approach - Added by hans about 3 years ago

Sorry I didn't have much feedback yesterday in the meeting, had a rough night the night before with the kids, so was too sleepy. Now that I've gotten some real sleep, I have something to say.

about "chatsec_onboard_friends"

  • I like the overall structure, its simple and makes sense
  • the "nearby" view looks like it covers everything while looking quite simple
  • nitpick: I think the 3 dot menu button repeated a lot might be weird, I feel like the standard behavior there would be click or long-press for the menu
  • about the Contacts view, is the idea that Contacts would always be used instead of a "buddy list"?
  • If the Connect/Import/Invite buttons are always at the bottom, won't it be almost always hidden at the bottom of a long scroll? I imagine most people have a lot more than 4 contacts in their phone.

RE: On-board Approach - Added by carriestiens about 3 years ago

Hans, thanks for the feedback. Comments below.

hans wrote:

Sorry I didn't have much feedback yesterday in the meeting, had a rough night the night before with the kids, so was too sleepy. Now that I've gotten some real sleep, I have something to say.

about "chatsec_onboard_friends"

  • I like the overall structure, its simple and makes sense
  • the "nearby" view looks like it covers everything while looking quite simple
  • nitpick: I think the 3 dot menu button repeated a lot might be weird, I feel like the standard behavior there would be click or long-press for the menu

That's possible. It's often a good idea to have something visible on the screen if it's an action that isn't exclusive to expert users. We can consider the UI here more, though.

  • about the Contacts view, is the idea that Contacts would always be used instead of a "buddy list"?

Is the "buddy list" you're referring to the same as the screen on Android that says "select contact(s) to invite"?

  • If the Connect/Import/Invite buttons are always at the bottom, won't it be almost always hidden at the bottom of a long scroll? I imagine most people have a lot more than 4 contacts in their phone.

Yes. Still working this out.

I've added an updated doc, based on our scrum conversation last week.

onboard_v3.png (465 KB)

RE: On-board Approach - Added by carriestiens almost 3 years ago

Here's v2 of the prototype with the existing account workflow mocked up for Facebook, along with the flow to create a new account: https://carriewinfrey.proto.io/share/?id=86c05641-d64b-4fa4-8544-70fed99300be&v=2

RE: On-board Approach - Added by carriestiens almost 3 years ago

Here is an updated version of the on boarding design.
https://carriewinfrey.proto.io/share/?id=86c05641-d64b-4fa4-8544-70fed99300be&v=3

Updates include:
- Removed Facebook as an option for connecting to friends, since their API is removing that support.
The existing account workflow is applicable to Google and existing XMPP accounts, because you would still have a list of friends to invite to join you on Chatsecure. Correct?

- Added a basic advanced features modal for choosing a place on the internet; This certainly needs more design based on the information we decide to provide.

- Added QR code and nearby options as methods for finding friends in the setup.

Things remaining:
Importing contacts on setup
- Right now, inviting contacts imports your contact list into the app. We should consider including a way to send individual invites in the setup, so that people aren’t forced to import their entire list if they don’t want to.

Brand
- Overall brand and visual design (including the default avatars)
- Dynamic, animated welcome screen and loading page

Exchanging XMPP credentials with people nearby

Proxy
- Prompt to connect to proxy
- Where proxy lives

(1-19/19)