Skip to content

1.0

Compare
Choose a tag to compare
@arianneorpilla arianneorpilla released this 27 Nov 09:58
· 599 commits to main since this release
004bde1

This release debuts the new jidoujisho, completely rewritten with a modular project architecture, greatly enabling user and developer customization of the application.

A special thanks to @dotnest for providing the necessary feedback and details to get the hot fixes for this release out as fast as possible.

Existing Users: You are recommended to migrate to the new version. Both new and legacy versions can be installed at the same time. However, be advised that versions beginning with 1.0.0 will use a different Anki note type, and that support for legacy versions have now been sunset.

Make sure you set your Pitch Accent Export Diagrams as Auto and your reading dictionary widget as Pitch Accent if you want the old pitch accent functionality back, and also Bing Search as Auto if you want the auto image search back again. Everything is implemented as modular enhancements now, so if you wish to have the legacy implementation back, these will need to be set up.

System Requirements: This application has been tested to work on a variety of devices and emulators running Android 7 and above.

For this debut release, the application currently contains assets for three languages all in one package. The bundling of these languages together has ballooned the file size of the application package significantly. If the installation fails, try clearing enough storage space.

Please note that a significant amount of internal storage space may be taken up by the dictionary database for indexing in order to optimize query speed and performance. Try to give the application around 2GB of storage space.

🚀 Debuting jidoujisho's landmark release

  • A familiar experience, retouched and refactored. Existing users will feel right at home, though many new concepts are introduced, along with new optimizations made in state management and data structures. New logo by suzy and Aaron Marbella.
  • 🤝 Three languages. One application. The new jidoujisho initially supports Chinese, Japanese and Korean, architectured so that all it takes to introduce a new language or a dictionary is existing resources, and a single developer motivated enough to write its implementation.
  • 🌐 More places to explore. More ways to immerse. Go anywhere on the web with the new Browser media source, intended for a minimal, distraction-free reading experience. Visit sites like Wikipedia and Syosetu and mine your sentences anywhere with your dictionaries.
  • 🤖 Creator extensions. For the people that control their workflow. Advanced users can easily write their own enhancements that appear as buttons on the creator page. Use existing enhancements or write your own, flag them automatic or cascade them together powerfully.
  • 📖 Dictionary formats. For those wanting words from a certain somewhere. The new architecture provides a neat abstraction for implementing your own custom dictionary formats. Implement your own file format or a web source - and even show results in your own custom widget.
  • 📹 Media sources. Broaden your view. The new framework provides abstractions for Player, Reader and Viewer sources. If you think you're up to introducing a new source to get images from, or get videos to watch, you can simply write your own implementation.
  • 🎆 Throwing flashbang. Users can now switch to light mode if they so wish, with the entire application adapting to theme.
  • 🤔 Recall, revisit and reminisce. Cards exported with the new jidoujisho that have been sourced with context include deep links back to the application. If you're having trouble with something vague in your deck, you can simply return to where it was from.
  • 🖼️ Optical character recognition. Built-in. Powered by Google ML Kit's Text Recognition V2, you can now drag a box and get text from images in the Viewer - whether it be in Chinese, Japanese or Korean script, on-device, offline and in-app.
  • 🤳 Run across something. Snap a shot. The new Camera media source allows you to quickly take a picture or upload your own images, and use them in the Viewer to scan and export immediately.
  • ㊙️ View once. Remember never. Go into incognito mode if you want to view a source without it saving in your history. Dictionary history will still be populated by new words you find, but media sources history will not.
  • 👨‍🔧️ Scoped storage support and other fixes. Users running into permission and file picker issues should now have these addressed, and the application now targets Android 12. Follow-ups and compatibility reports are welcome.
  • ⏯️ New features for existing media sources. Set a subtitle to sync to a current dialogue line that just ended, pick another video without exiting. Put ッツ Ebook Reader into horizontal mode, and have its theme adapt to the UI.
  • 🗺️ A language project in a language project. The application is localized in both English and Tagalog. Not a developer, but fluent in a non-supported language? Make your mark by making a pull request for your localization, and introduce language learning to even more people.

🔭 A look at the new jidoujisho

📝 On rebuilding and rewriting an entire application

I have friends, acquaintances, online and off, English-speaking or otherwise, interested and curious in pursuing this hobby of mine. This release is for all of them. I would preface by saying that developing language learning software is not language learning. Time spent developing this application does not get me any better at Japanese, but regardless I felt a strong motivation to start, plan and release this version and see it in the hands of my users.

jidoujisho has received around 26 major updates. It began as a small experiment with Flutter, when I realized that nobody had properly done a language learning video application for mobile, and particularly Japanese with AnkiDroid export. I didn't know the way forward after that first version, the first time I posted something on Reddit, but I knew that this kind of pet project was something that I wanted to pursue. It was something that I thought aligned well with my other hobbies, and provided some sort of direction for me in my final semesters of university, when I felt like I had lost all passion for code.

Now I am sitting here, my eyes shot from over just about a month long sprint from having planned this out, white boarding the architectural changes I wanted to make, checking in with what users want and then finally rising to action. I have made a lot of sacrifices in immersion time, my academics, and perhaps a part of my sanity - which I suppose I could gain back with some good hours of sleep - in getting this written and released.

However it may be explained to me that some things may deserve a higher priority more than just this project, such things simply do not compute in my head. I felt like this was something I had to do, I had an obligation to release this. And I hope that you, dear reader or prospecting user, existing or new, find this, which I have spent over what must have been over one or two hundred hours of development time, some use in your path to learn.

This new jidoujisho, which I internally named Chisa for repository and documenting purposes, is a complete rewrite of the application which I have already developed for just about under a year, with many major and minor releases. Essentially knowing what the requirements of the software I had to design were already, I was motivated to architecture it in such a way that it would address the roadblocks that would prevent my vision of the existing legacy project from progressing.

Many components or entities in the application, dictionary formats, creator enhancements, media sources and languages have been abstracted in such a way that you could simply and quickly replace parts. Japanese is a very popular language to learn, and has a very busy developer community. I wanted to make it in such a way that anyone who was interested in implementing something they wanted, big or small, could do it with just about a fundamental level of programming knowledge. Given that isn't really realistic with the actual complexity and scale of different things people want to do, I wanted to give it my best shot to get a prospecting developer who wanted to bodge simply go for it.

Chisa is written in null-safe Dart code, and while there are some areas that I am more and less proud of, I have learned a lot building this application. I plan to roll out developer documentation for any developers who wish to maintain a language, media source or branch for this application (do get it in touch!), and similarly I am very happy to get interested developers up to speed, and accept contribution and pull requests from the community.

This project stands on the shoulders of giants, as many of my dependencies do. On top of the spectacular, growing Flutter community, I also leverage a suite of natural language processing tools (which would explain the file size...). I have an admiration for contributors that have a kind of direct involvement in developing language tools, and I hope to be able to give back in this way.

In any case, there will be a time for later development. For now, I think I'll rest, kick back, enjoy and immerse. I hope with this you'll be able to do the same.

📲 Which file should I download?

The files are split between two device architectures. The arm64 download should suffice for mobile devices, and generally desktops and emulators should use x86_64.

Depending on which device you are using, download the appropriate APK by expanding the "Assets" drop-down menu below and install with your file explorer.