Implement app introduction system
https://user-images.githubusercontent.com/35566748/128643613-95f852cc-cfa7-48e5-8f8d-6a2560539938.mp4
Would you mind rebasing this on top of master? Maybe working on both PR in parallel. I think they don't use a lot in common anymore, and you have at least one html document to start to work with. So that you have something else to do while you wait for our review
Is there a way for the user to choose the language when AnkiDroid start? I fear that some users may get English by default and then change the language later, when the onboarding is already seen.
We use the system language (except for traditional Chinese, which is set to simplified Chinese due to a bug). We fallback to the "default" language files if the language is not available
There are some points
- Can we add simple gradients to html body page? (https://webgradients.com/)
- Round corner to images
- Title in bold and subtitle not in bold
- May be different color for different screen? More ideas https://dribbble.com/tags/onboarding
We use the system language
That's not blocking, but I guess that I'd like for the user to choose their language, before showing them an introduction. Simply because not all users know how to configure their phone language. It's virtually a selection menu, so I'd assume it requires nothing very fancy. But I also expect to be proven wrong in unexpected way
@infinyte7 Can you please explain your reasoning? I'm quite ignorant and I'd like to understand why it would be better.
We use the system language
@Arthur-Milchior I think this answer will be given by @david-allison-1 .
Wiki page for introduction slides: https://github.com/ankidroid/Anki-Android/wiki/Introduction-slides-for-new-user-onboarding Wiki page for feature prompts: https://github.com/ankidroid/Anki-Android/wiki/Onboarding-feature-prompts-for-new-users
These are the initial versions of these pages, they might be updated later to include more information.
@david-allison-1 any reason not to merge? @mikehardy can you review?
Thanks a lot @ShridharGoel for the wiki page. Can you please let me know whether you expect to update them to take my discord remarks into account? In particular, I think they really need:
- screenshot
- links to the github page with both the implementation of the methods you discuss, and an example of its usage
Implementation: I'm happy, but I don't feel the content is providing an optimal onboarding benefit right now.
I'd like to discuss the content and our goals with onboarding
As I've said a couple of times: We don't want to be advertising features. When a user installs an app, they want to get started as soon as possible, and we should only get in the way if the benefit is tangible. UX advice* suggests onboarding to be as short as possible, and I feel we can cut this down.
I feel we want to provide:
- Information: Benefit of AnkiDroid. Something like: "We're different. We tell you what to study so you don't forget. Study less and get better results." but with more thought put into it - we don't show this enough in the UI. We probably can't easily show the benefit well and users could use the hook.
- Onboarding: download from AnkiWeb if the user already has an account
- Inform: Free recommended backups (optional)
- Onboarding: Storage Permissions? Probably not, as that's going away this month.
- Optional: create your own deck, or download for free from AnkiWeb
- Optional: further tutorials
* There are multiple really high quality articles & videos on Mobile Onboarding under the link
Hello 👋, this PR has been opened for more than 2 months with no activity on it. If you think this is a mistake please comment and ping a maintainer to get this merged ASAP! Thanks for contributing! You have 7 days until this gets closed automatically
It took conflict. Maybe we can merge it, and improve on it later. Since it is not activated by default, and require a preference change, it's not like the users will get to see it. However, it will be easier for other contributors to provide suggestion or PR on top of this system when they have already existing examples.
It's not like one of us seems to know how to design an optimal slide system, and current options seems better than nothing
@Arthur-Milchior I agree with you, I'm sad to see this unmerged still Let me queue it for review and then hopefully we can iterate from there once it is in
Oh for ______ 😠 it took another conflict 😆 because of #10577 doing Kotlin migration on IntentHandler. We need to get this in ASAP, the entropy effect on it is fierce I'll review it as is, I assume @ShridharGoel has the Kotlin mastery in more than sufficient quantity to rework that bit and it won't be significantly different
- Onboarding: download from AnkiWeb if the user already has an account
~~This is something that I'm 100% on and would like to push heavily in our onboarding, even if it's this one feature for now. This saves a lot of hassle~~
EDIT: Moved to https://github.com/ankidroid/Anki-Android/issues/10643
- Onboarding: download from AnkiWeb if the user already has an account
This is something that I'm 100% on and would like to push heavily in our onboarding, even if it's this one feature for now. This saves a lot of hassle
I entirely agree with the feature. However, I'm not sure it's great to put it in this PR, given that it's already big, require already some changes, and I don't expect it to be quite harder to add it into an extra PR once this one is merged
If this PR is only the framework, then agreed. I'll move this to a separate issue.
I'm not worried about the asset size as much as the duplication in the assets files (specifically the CSS which is copy-pasted all over. If we can de-duplicate so it's good code (HTML/CSS is code...) then there won't be that much text to begin with (after APK unpack), and the assets are compressed pretty hard in the APK so it should be a non-issue.
I just want there to be one canonical set of CSS mostly
I saw @ShridharGoel you force pushed. However, it still has a conflict. I don't know if it was here when you pushed or if you really got unlucky. Anyway, can you please let us know when you want the next review