2025/10/08にIrohaTypeのバージョンをv0.1.0からv0.2.0に更新しました!
こんにちは。情報系の専門学校に通っている Sh1ragami です。
Rust の勉強の一環として、ターミナルで動く日本語タイピングアプリ「IrohaType」を作成し、crates.io に公開しました。自作クレートを初めて公開した経験について書いてみます。
github↓
crates.io↓
こちらのコマンドで利用することができます。Rustがインストールされていれば動作するので、興味がある方はぜひ利用してみてください!
cargo install irohatype
irohatype
何を作ったの?
まずは今回作成した「IrohaType」について紹介します。
このアプリは、ターミナルで動くTUIアプリです。タイピングが好きで有名?なタイプウェル国語Rというフリーソフトを使っていました。しかしwindowsにしか対応していない、すでに開発が終了しているという状態でした。今回windowsからmacに乗り換えたことをきっかけに、自分でタイピングソフトを開発することにしました。
こちらが実際の画面になります。全ては紹介しきれないので、主要なものに絞って紹介していきます。
トップ画面
起動時に最初に表示されるトップ画面です。ただタイトルを表示するだけでは味気なかったので、「IrohaType」という文字をASCIIアートっぽく表示してみました。gでプレイ開始、escまたはqで終了することができます。
プレイ画面
上に日本語、下にローマ字が表示されています。400打を打ち切るまでの時間を計測します。タイピング速度に応じて簡易的なレベル表示も実装しています。
細かいですが、cha と tya など複数の入力方式にも対応しています。
ランキング画面
プレイ終了後にはランキング画面が表示され、トップ15の記録やレベル、ミスタイプの回数などを確認できます。現記録がローカルファイルに保存されるため個人の記録のみが表示されます。
統計画面
こちらでは先ほどのプレイの統計情報を見ることができます。
まだ簡易的にしか実装できてませんが、入力のリプレイ、得意・苦手語句など基本的なものは見られるようになっています。
実装の工夫点
ゲーム要素の強いものではなく、シンプルな練習用タイピングソフトを目指していたので、できるだけシンプルになるよう意識しました。入力すべき文章、現在の進捗、正誤のフィードバックなど、画面を見た瞬間に理解できるよう最小限にまとめています。
内部の文字判定部分は日本語特有のローマ字変換ルールに対応する必要があり、ここは特に時間をかけて実装しました。たとえば「shi」と「si」どちらでも「し」と判定できるようにするなど、ストレスのない入力ができるようになっています。
またせっかくRustで実装するなら、Rustの強みである高速性を活かしたいと思ったので軽量な動作といった点も考慮して実装しました。
crates.io への公開体験
今回が初めてのクレート公開だったので、cargo publish のワークフローを体験できたのも大きな収穫でした。テストコードの整理やライセンス表記、READMEの準備など、普段のローカル開発ではあまり意識していなかった部分に手を入れる必要があり、公開することを意識した開発に一歩踏み出せた感覚があります。
crates.io で自分のプロジェクトページが生成され、他の人に試してもらえるようになったのは素直に嬉しい瞬間でした。
今後やりたいこと
まだ最低限の機能しか実装できていないので、タイプウェルに劣らないタイピングソフトを目指して作成していきたいと思います。より使いやすいものにしていきたいので、改善点や追加して欲しい機能があれば、ぜひ教えてください!
ソースコードは GitHub に公開しています。Rust に興味がある方や、ターミナルで動く日本語タイピングアプリを探している方はぜひ試してみてください。





