5 ms·
I've been contributing to the Andorid port of Anki (HTML based flashcards + spaced repetition) for the past few months. https://github.com/ankidroid/Anki-Andro
by DAllison 6y ago
I've been contributing to the Andorid port of Anki (HTML based flashcards + spaced repetition) for the past few months.
https://github.com/ankidroid/Anki-Android https://github.com/ankidroid/Anki-Android
https://github.com/david-allison-1 https://github.com/david-allison-1
Knowing that I've actively been impacting students (particularly medical students) from around the world has been really good for the soul.
- ciarannolan 6y agoI rely heavily on Anki for work and study. Thank you! The android version already seems to work great. Is there a roadmap somewhere? I'm curious what's being worked on.
- DAllison 6y agoThanks!! No official roadmap (such is Open Source), but: * Rust Conversion (got a proof of concept, need to productionise it) - Anki Desktop has moved to Rust. We can unify all of the platform, and remove most of our backend code and maintenance burden. * Android 11 has made significant changes to how applications store files on the device (Scoped Storage). I expect this will be a nightmare to deal with: https://developer.android.com/preview/privacy/storage https://developer.android.com/preview/privacy/storage * Visual HTML Editor (probably 2.13) - currently editing and adding formatting could do with a ton of love. Typing HTML by hand isn't a great experience for non-technical users. * User onboarding & UX - We get tons of bad reviews: "All my cards have been deleted" - this is because we fail to explain how Anki/Spaced Repetition works and that we take control of scheduling. People download AnkiDroid expecting flashcards, and we can do much better in this area. * Performance improvements with larger collections - we're fast, but there's still lots of low-hanging fruit regarding multithreading. * Background media sync - Medical Students have multi-gigabyte collections (just fixed a bug where some Android systems wouldn't open zips >= 2^31-1 bytes). We're tied to the AnkiWeb protocol for syncing, but it'd be a much better UX if we moved this to the background. Personal Goals (some point in the future) * CI/CD improvements - both speeding up build times, adding more styles of testing to the pipeline and adding more auto-linting. * Accessibility - our TTS doesn't play well with Android talkback; this hurts me to type. * Better gamepad support
- DAllison 6y agoMissed the edit window formatted: Thanks!! No official roadmap (such is Open Source), but: * Rust Conversion (got a proof of concept, need to productionise it) - Anki Desktop has moved to Rust. We can unify all of the platform, and remove most of our backend code and maintenance burden. * Android 11 has made significant changes to how applications store files on the device (Scoped Storage). I expect this will be a nightmare to deal with: https://developer.android.com/preview/privacy/storage https://developer.android.com/preview/privacy/storage * Visual HTML Editor (probably 2.13) - currently editing and adding formatting could do with a ton of love. Typing HTML by hand isn't a great experience for non-technical users. * User onboarding & UX - We get tons of bad reviews: "All my cards have been deleted" - this is because we fail to explain how Anki/Spaced Repetition works and that we take control of scheduling. People download AnkiDroid expecting flashcards, and we can do much better in this area. * Performance improvements with larger collections - we're fast, but there's still lots of low-hanging fruit regarding multithreading. * Background media sync - Medical Students have multi-gigabyte collections (just fixed a bug where some Android systems wouldn't open zips >= 2^31-1 bytes). We're tied to the AnkiWeb protocol for syncing, but it'd be a much better UX if we moved this to the background. Personal Goals (some point in the future) * CI/CD improvements - both speeding up build times, adding more styles of testing to the pipeline and adding more auto-linting. * Accessibility - our TTS doesn't play well with Android talkback; this hurts me to type. * Better gamepad support
- ciarannolan 6y agoAwesome, thank you for the info. Anki is a tool I use and love but I know very little about the behind the scenes work. >* User onboarding & UX - We get tons of bad reviews: "All my cards have been deleted" - this is because we fail to explain how Anki/Spaced Repetition works and that we take control of scheduling. People download AnkiDroid expecting flashcards, and we can do much better in this area. Somewhat related, but I would like a way to "cram" cards (ie. temporarily review all cards in a deck, in random order, without affecting anything about their spaced repetition timing). I feel like this must exist but I haven't found it. Do you know how to do this? Also, how does Anki support the costs of Ankiweb? Is there a way I can contribute? It's not immediately obvious to me from clicking around on Ankiweb. Finally, is this just a rip-off of Anki or is it legit? https://www.ankiapp.com/ https://www.ankiapp.com/
- Redflag40 6y agoWhen did you get to the point where you were confident enough to hop on some opensource shenanigans?
- david_allison 6y ago(new account, hit the HN anti-procrastination timer) I hadn't contributed to Open Source before, had never wrote Java professionally, and my Android knowledge was pretty much non-existent, but I was aware of the project and how it operated. The catalyst was encountering a frustrating bug, and downloading the source to fix it. The best thing about working on an application rather than a library is that you're dogfooding your own changes, and you have a good intuition for what the end result will be. You can always tell yourself: "Even if this isn't accepted, I find it useful and can use it". I started out with small issues that I wanted improving, gradually moved on to getting access to crash reports, and fixing most of them (I think we're down from around 12 to 0.05 crashes per 1000 users). Confidence with larger issues comes from experience: documentation helps to some extent, but sitting down and reading the source code is always useful, as is looking to the source of the port as a source of truth. Most projects would benefit from more volunteers (I just helped put out an ad for contributors on Stack Overflow). For confidence: accept that you're going to make mistakes as you start out, but the value that you bring to a project will overwhelmingly be net-positive as long as you stick with it.
- ldeangelis 6y agoI use it to learn Japanese and it's very useful. Thank you for your contributions.