Kanji Tree ~ An Iced Rust Showcase #1316
KiraResari
started this conversation in
Show and tell
Replies: 2 comments
-
This is so cool! 🥳 Here are some screenshots for everyone to see: |
Beta Was this translation helpful? Give feedback.
0 replies
-
Just as an update, I am now at Version 2-7-0 of this project, and here's how it looks now: |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Hello everyone,
a few months back I decided to try and accomplish one of my personal projects using Rust. Since it needed an UI I ended up using Iced for that, and by now have arrived at a stage where I think it's ready to show around.
Here's the link to the repository:
https://github.com/KiraResari/kanji_tree
About the project:
The Kanji Tree is a way of visualizing the "parts" that Japanese (and by extension also Chinese) Kanji are made of and thus help with learning. Since many more complex Kanji are combinations of simpler Kanji (e.g.: 好 = 女 + 子) it can really help in memorizing some of the more complex Kanji. Also, it can help with studying the subtle differences between similar Kanji that are easy to mix up, like 招 and 投 for example.
The basic idea was to have a program that can visualize these relations in a simple, tree-like view that is also scalable. I used to have a flowchart for this, but around the 1000 Kanji mark the program pretty much collapsed under the sheer number and was no longer usable, so this is my attempt to write something to solve this myself. Another goal was for it to be easy to add new Kanji, which was also something that grew exponentially more time-consuming in the flowchart. The Kanji Tree program now uses a simple .json file as input.
Right now, I have hit the mark where there's 100 Kanji and a good number of supporting characters in the program. I plan to extend it over time to include all the characters used in the Japanese language. Also, there's still a number of usability and display issues that I need to fix when I find the time, such as the fact that the program currently panics and crashes if the .json is invalid, or that it can't display more than about 25 child characters. Also, in the future I want to see if I can implement a flowchart-like view, but that is yet far off.
I've written the program in accordance to Clean Code guidelines, which means that the code should be easy to read and navigate. Since I spent many hours trying to figure out a number of Rust- and Iced-specific issues, I hope that the code for this program can also help others with their own projects by showcasing how certain things can be done in Rust and Iced.
Total time spent programming to this point: 43h
Total time spend adding Kanji to this point: 6h (16.7 Kanji/h)
Cheers,
Kira
=^,^=
Beta Was this translation helpful? Give feedback.
All reactions