🚀

azooKeyの開発近況(2024年3月末バージョン)

2024/03/30に公開

iOS向け日本語キーボードアプリ「azooKey」の開発者のMiwaです。

2023年はazooKeyをOSS化しましたが、それから1年強経過しました。この期間のazooKeyの動きをまとめます。

azooKeyの機能が紹介されている画像。次のようなテキストがある。
・ライブ変換で確定いらず
・カスタムキーで好きな文字を入力
・強力な予測変換
・自由な着せ替え
・スムーズなカーソル移動
・片手モード
・フルアクセスでさらに便利に
・カスタムタブでキーボードを魔改造
・オープンソースソフトウェア

azooKeyの改善

OSS化直後にバージョン2.0をリリースしました。2.1を4月、2.2を11月にリリースしました。細かい機能改善もいろいろ入れましたが、見た目に大きな変化としてはこの辺りです。

フルアクセスに対応し「ペースト」「コピペ履歴」「振動フィードバック」「連絡先変換」などのオプションを追加しました。OSS化に伴ってアプリケーションの信頼性が向上したため、フルアクセス機能を導入しても問題ないと判断しました。
特に「ペースト」は個人的にかなり気に入っている機能で、普段から便利に使っています。振動フィードバックも欠かせなくなりました。


フリックによるペーストを行っているスクリーンショット

また、予測変換を強化して確定後にも予測変換が表示されるように変更しました。まだ精度がそこまで高いわけではありませんが、今後も改善していく予定です。

さらに、テンキーとQwertyの両方でサジェストのデザインを改善しました。フリックのサジェストは電電猫猫さん(@nya3_neko2)に実装していただきました。

フリック時のサジェストのスクリーンショット

また、カスタマイズ機能の改善にも取り組んでいます。これまでは隠し機能になっていた一部のカスタムアクションをアプリ上で編集できるようにして、より高度なカスタマイズができるようになりました。また、外部からインポートしたカスタムタブはこれまで編集できませんでしたが、2.2.3以降のバージョンでは編集が可能になりました

開発中のバージョン2.3ではスクロール式のカスタムタブのエディタにも改善を加える予定です。これまで非常に無骨だったUIを改善し、直感的な操作で高機能なタブの作成が可能になります。

スクロール式のカスタムタブの新しいエディタのスクリーンショット。

パフォーマンス

変換精度の観点では辞書を大きく改善しました。根本的な仕組みはあまり変えていませんが、これらの変更によって体感の安定感がかなり向上していると思います。

  • 2023年末時点の人名データを反映
  • 四字熟語の変換をかなり改善
  • 間違っている辞書項目を大量に削除
  • ライブ変換時の英単語変換のチラつきの原因を抑制

また、変換速度の観点では、ボトルネックとなっていた処理を改善し、20%程度の速度向上を実現しました。

変換精度・変換速度を大きく改善する目的で、現在大規模なリファクタリングを進めています。これを実現できると、より良い誤字修正とより良い変換速度を同時に得られることが期待され、さらに「カスタムローマ字かな変換テーブル」のような機能も実現できる予定です。

オープンソース

マネージメント

k-taro56さん(@k_taro56v2)がazooKeyとAzooKeyKanaKanjiConverterのCIに取り組んでくださったおかげで、azooKeyの自動ビルド・テスト、さらにApp Store Connectへの自動アップロードが実現されています。

また、azooKeyのTestFlightを始めました。これまでベータ版無しでいきなりの公開としていたのですが、このプロセスを経ることで多少安定した状態で公開できるようになった気がします。

さらに、開発のハブとするべく、Discordコミュニティを作りました。基本は私が開発中の呻きやアイデアを垂れ流していますが、興味のある方に入っていただいて、開発の相談やバグの報告、コントリビュータの募集、ベータ版の告知などにも利用しています。気になる方はGitHubのREADME.mdに貼ってあるリンクから招待を踏んでください。

azooKeyのGitHubでは「Contribution Welcome」というタグを作りました。これは平たく言うと「やりたい人がやる」というタスクで、コア開発者は積極的に取り組まないが、興味がある人がやってくれたらリリースするよ、というものです。皆さんのコントリビュートをお待ちしてます!

AzooKeyKanaKanjiConverter

OSS化当初はazooKey内部のモジュールとしてかな漢字変換エンジンを持っていたのですが、Swift Packageとして使わせて欲しい、という声があり、独立したレポジトリに切り出しました。

https://github.com/ensan-hcl/AzooKeyKanaKanjiConverter

v0.6.0以降では辞書データ付きのモジュールを提供しているので、他のパッケージと同様に1行足せば簡単に動きます。

利用プロダクト

AzooKeyKanaKanjiConverterはazooKey以外のプロダクトでも使ってもらっています。自分の作ったものが第三者のソフトでも動いているのは嬉しいですね。

Forethumbではかな漢字変換エンジンとしてAzooKeyKanaKanjiConverterが採用されています。
https://twitter.com/Kyomesuke/status/1693049337952297167

また、推し活アプリ「Oshibana」の着せ替えキーボード機能でもAzooKeyKanaKanjiConverterが採用されていました。

Vision Proが日本で販売されていないこともあってか、visionOSは2024年3月時点で日本語入力に対応していません。そこで電電猫猫さん(@nya3_neko2)がAzooKeyKanaKanjiConverterを利用し、Vision Pro向けの日本語入力ソフトとしてazooEditorを開発してくださいました。
こういう動きが迅速にできるのはOSS化のメリットだったな、と思っています。

https://twitter.com/nya3_neko2/status/1756301026070802555

azooEditor自体もオープンソースです。
https://github.com/nyanko3141592/azooEditor

他プラットフォーム対応

現在UbuntuでのAzooKeyKanaKanjiConverterのビルド・テストを確認するCIが動いています。適切にクライアントを構築すれば、今後azooKey on Ubuntuを実現できるかもしれません。

また、Windowsでの動作確認も目指しています。こちらもビルドは成功しているものの、テストが成功していないため、もう少し時間がかかりそうです。

原理的にはWasmやAndroidも行けるのでは、と思っていますが、こちらも未着手です。

azooKey on macOS

こうした状況に刺激を受け、私もオープンソースでmacOS移植プロジェクトを開始しました。既にアルファ版をリリース済みで、GitHubのリリース欄から.pkgを落とすと利用できます。変換エンジンはAzooKeyKanaKanjiConverterをそのまま使っていて、ライブ変換に対応しています。

https://github.com/ensan-hcl/azooKey-Desktop

https://x.com/miwa_ensan/status/1770447420788199558?s=20

細かな不具合や改善できる振る舞いはまだまだ無限にありますが、既にある程度は実用的なクオリティになっています。この記事の文章は全てazooKey on macOSで書きました✌️

外部露出

今年は𝕏を始めたので、新しく人と知り合う機会が増えました。それに伴って、エンジニアの方を中心に「azooKey知ってるよ」と言っていただくことが多くなりました。感謝……!

2023年9月のiOSDCでは、「日本語入力できるキーボードアプリを作る」というテーマで発表しました。初のテックカンファレンスでめちゃくちゃニッチなテーマでの発表でしたが、たくさんの人に聞いてもらえて楽しかったです。

https://fortee.jp/iosdc-japan-2023/proposal/87be3428-5381-4aa3-8127-cfd714663429

App Storeでキュレーションしてもらえてダウンロード数が伸びたのも良い経験でした。この結果、レビューが1年で倍増し、トータルのレビュー数は180件を超えました!加えてASO的な改善があり、App Storeの検索経由での流入も1年で倍に増えました。

https://x.com/azooKey_dev/status/1723367453869142355?s=20

あとは、日経産業新聞で取り上げていただきました。

https://www.nikkei.com/article/DGKKZO77665450V10C24A1X45000/

𝕏がどうも怪しい感じになってきたので、azooKeyの公式アカウントをBlueskyとMissKeyにも開設しました。更新情報などはこちらでも公開しているので、適宜ご参照ください。

https://bsky.app/profile/azookey.bsky.social

https://misskey.io/@azooKey

これから

2023年はやや保守的な改善をおこなっていた感があるので、今後1年程度は意欲的な改善に取り組みたいと考えています。特に、デスクトップ環境においてニューラル言語モデルなどを利用してより妥当な変換を実現することにかなり興味を持っています。

iOS版では、やや増えすぎている機能を統廃合することで、azooKeyの設定画面を整理しようと考えています。メンテナンスコストも無視できなくなってきているため、明らかに利用者の少ない一部の機能は廃止したり、縮小したりするかもしれません。他方で、カスタムタブ機能についてはさらに充実させたいと考えています。

azooKeyは引き続き開発を進めます。手を付けられていない部分は山のようにあるので、興味のある方が居れば気軽にお声がけください。いつでも歓迎です!

azooKey blogs

Discussion