ankidroid / Anki-Android

AnkiDroid: Anki flashcards on Android. Your secret trick to achieve superhuman information retention.
GNU General Public License v3.0
8.67k stars 2.24k forks source link

Improve visual reviewing experience using animation and visual feedback #4833

Closed luc-vocab closed 6 years ago

luc-vocab commented 6 years ago

There's no question AnkiDroid is the most powerful flashcard package out there. The reviewing experience however is a little bit bland, with no animation, very faint visual feedback when flipping through cards. The first change request i'd like to suggest is using ViewPagers to flip between question and answer, and then following question: #4832

Longer term, I believe some well crafted animations (opt-in to preserve usability on low power devices) on card review could further improve the experience and bring AnkiDroid up the the level of the most modern android apps visually.

What are the committer team's thoughts with regards to changes like these ?

mikehardy commented 6 years ago

I personally don't care about animations and stuff but I recognize many do, this is a common complaint among poor reviews in the Play Store and if you take the stance that more people learning more things is good, then increasing adoption by addressing (even semi-frivolous) concerns could be considered good. By that reasoning, I'd be open to this. I will mention that UI changes in particular seem really hard to manage, to me. The API skew in the underlying UI libraries is sometimes problematic, and the device skew we support (including e-ink devices that can not handle animation at all really) mean any changes like this would need to be done very carefully, and with an eye towards easy maintenance (that is - some testing support, and good code design) as the UI APIs will change in the future if the past predicts anything

Those are the cons.

For the pros I could see maybe a little library of card transitions and maybe even some congratulatory ones for streaks etc (like a confetti cannon and dissolve). To my engineer brain this sounds like the stupidest thing ever but I also do reviews with my 7 year old and that stuff works - this could help engagement for users like him.

If you propose a PR for this, UI enhancements in particular are best paired with little screengrab videos to demonstrate so people don't have to pull branches and build just to see.

timrae commented 6 years ago

This discussion already came and went in #4832 PR body

luc-vocab commented 6 years ago

It's absolutely the right decision to keep all that fancy presentation-only code and possibly gamification logic in a separate project, which would not be burdened by the same stability requirements as the main AnkiDroid code (what I mean is I can break something in my app, it won't severely impact people, they can always go back to AnkiDroid). I'm working on something right now. Here are a few high level points:

A couple of questions:

Current repo: https://github.com/lucwastiaux/AnkiReview/tree/dev (not in a usable state currently as the custom styling code is not in place yet, I've hardcoded something to work with my card layout).

timrae commented 6 years ago

That all sounds good, I don't have any objections to the name per se, but I don't think it's either very catchy or descriptive... In particular I'm not a fan of the double Anki. The way I originally conceived the relationship of this app with AnkiDroid was as a "plugin" where the plugin (when enabled) basically overrides the main AnkiDroid reviewer and jumps straight to your app (or opens a link to install it if it doesn't exist). Is this still how you envisage the interaction? I think you'll get far more users this way.

In this case maybe something like "Enhanced reviewer for AnkiDroid" would be better? Maybe someone else has a better idea.

mikehardy commented 6 years ago

Ah! I totally missed that other PR - was before I started poking around and there's enough things still "open" I'm still lost in the forest, but this all sounds great to me and for whatever it's worth I'm totally fine working to keep up with whatever parts of AnkiDroid are needed to make something like this a smooth experience for users - the API or hooks or whatever. To have a really visual user experience for some of my use cases, a lean mean one for the rest, but still have centralized reviewing data is the best of all worlds for me. Seems you guys know where you're going so other than that I'll just watch

mikehardy commented 6 years ago

One thought - Maybe we could even have a special shared Intent and this could be a provider you register as the thing to open "reviews" either for all decks or per deck or something, with the registration in the advanced preferences and we broadcast out for review with the deck id. I missed the other PR as I mentioned so this may have already been thrashed out, so now I will actually just watch :-)