azooKeyの開発近況(2024年3月末バージョン)
iOS向け日本語キーボードアプリ「azooKey」の開発者のMiwaです。
2023年はazooKeyをOSS化しましたが、それから1年強経過しました。この期間の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として使わせて欲しい、という声があり、独立したレポジトリに切り出しました。
v0.6.0以降では辞書データ付きのモジュールを提供しているので、他のパッケージと同様に1行足せば簡単に動きます。
利用プロダクト
AzooKeyKanaKanjiConverterはazooKey以外のプロダクトでも使ってもらっています。自分の作ったものが第三者のソフトでも動いているのは嬉しいですね。
Forethumbではかな漢字変換エンジンとしてAzooKeyKanaKanjiConverterが採用されています。
また、推し活アプリ「Oshibana」の着せ替えキーボード機能でもAzooKeyKanaKanjiConverterが採用されていました。
Vision Proが日本で販売されていないこともあってか、visionOSは2024年3月時点で日本語入力に対応していません。そこで電電猫猫さん(@nya3_neko2)がAzooKeyKanaKanjiConverterを利用し、Vision Pro向けの日本語入力ソフトとしてazooEditorを開発してくださいました。
こういう動きが迅速にできるのはOSS化のメリットだったな、と思っています。
azooEditor自体もオープンソースです。
他プラットフォーム対応
現在UbuntuでのAzooKeyKanaKanjiConverterのビルド・テストを確認するCIが動いています。適切にクライアントを構築すれば、今後azooKey on Ubuntuを実現できるかもしれません。
また、Windowsでの動作確認も目指しています。こちらもビルドは成功しているものの、テストが成功していないため、もう少し時間がかかりそうです。
原理的にはWasmやAndroidも行けるのでは、と思っていますが、こちらも未着手です。
azooKey on macOS
こうした状況に刺激を受け、私もオープンソースでmacOS移植プロジェクトを開始しました。既にアルファ版をリリース済みで、GitHubのリリース欄から.pkg
を落とすと利用できます。変換エンジンはAzooKeyKanaKanjiConverterをそのまま使っていて、ライブ変換に対応しています。
細かな不具合や改善できる振る舞いはまだまだ無限にありますが、既にある程度は実用的なクオリティになっています。この記事の文章は全てazooKey on macOSで書きました✌️
外部露出
今年は𝕏を始めたので、新しく人と知り合う機会が増えました。それに伴って、エンジニアの方を中心に「azooKey知ってるよ」と言っていただくことが多くなりました。感謝……!
2023年9月のiOSDCでは、「日本語入力できるキーボードアプリを作る」というテーマで発表しました。初のテックカンファレンスでめちゃくちゃニッチなテーマでの発表でしたが、たくさんの人に聞いてもらえて楽しかったです。
App Storeでキュレーションしてもらえてダウンロード数が伸びたのも良い経験でした。この結果、レビューが1年で倍増し、トータルのレビュー数は180件を超えました!加えてASO的な改善があり、App Storeの検索経由での流入も1年で倍に増えました。
あとは、日経産業新聞で取り上げていただきました。
𝕏がどうも怪しい感じになってきたので、azooKeyの公式アカウントをBlueskyとMissKeyにも開設しました。更新情報などはこちらでも公開しているので、適宜ご参照ください。
これから
2023年はやや保守的な改善をおこなっていた感があるので、今後1年程度は意欲的な改善に取り組みたいと考えています。特に、デスクトップ環境においてニューラル言語モデルなどを利用してより妥当な変換を実現することにかなり興味を持っています。
iOS版では、やや増えすぎている機能を統廃合することで、azooKeyの設定画面を整理しようと考えています。メンテナンスコストも無視できなくなってきているため、明らかに利用者の少ない一部の機能は廃止したり、縮小したりするかもしれません。他方で、カスタムタブ機能についてはさらに充実させたいと考えています。
azooKeyは引き続き開発を進めます。手を付けられていない部分は山のようにあるので、興味のある方が居れば気軽にお声がけください。いつでも歓迎です!
Discussion