First off, thank you VERY much for such a fantastic piece of work. I hope that Damien E. sees this feedback – Anki is such an accomplishment, and such a great contribution to learners. It’s a massive undertaking to have such a product available, stable, and easily usable. I’ve been a dev for a long time and so know how much work it takes to do even a fraction of what you’ve accomplished here. Hats off, and thank you.
Second, I have a question about the Anki build/release system, perhaps you can point me in the right direction in your code or build pipeline. I’ve been working on my own free project (Lute, on GitHub) for language learners, and would like to increase its availability and accessibility. Currently, it’s in PHP, but I’ll be moving to Python (I hope). Anki’s build/release cycle is exactly what I’m hoping to emulate for Lute, e.g. exes for Windows and *nix, and dmgs for Mac. Is there a doc available about the Anki build process somewhere? If it was something I could reproduce on a much smaller scale, that would be such a boon to Lute and its users.
Completely understood if you don’t have time to respond.
Cheers and thank you again for such a fantastic project, Anki really is a massive contribution to the world. Regards and best wishes, jz
The packaging system isn’t documented, but the code is in the qt/bundle folder, and can be invoked with ‘./ninja bundle’. Executables are created using a tool called pyoxidizer.
Write your apps in Python and release them on iOS, Android, Windows, MacOS, Linux, Web, and tvOS using rich, native user interfaces. Multiple apps, one codebase, with a fully native user experience on every platform.
Have you come across this, @dae ? It’s quite impressive!
It is definitely an ambitious project but also definitely legit! The founder is a former Django core dev and the project is now backed by Anaconda! I had the pleasure of seeing him present at DjangoCon last year. Also Australian (as I believe you are?), incidentally!
I developed the first version of AnkiMobile using a cross platform toolkit (Titanium SDK - Wikipedia). I ended up regretting it - it was slower than native, would sometimes crash, they were slow to support new iOS functionality, and if you ever wanted to step outside the bounds of the system, you ended up having to learn to write native code anyway. I ended up throwing out all the code, and 2.0 was a complete rewrite using the native tools. Maybe BeeWare will fare better there, but once bitten, twice shy