Overview

September 23, 2023 · View on GitHub

azooKeyは以下のような構成になっています。

AzooKeyCore: azooKey全体で共有するモジュール
MainApp: 本体アプリの実装
Keyboard: キーボードアプリの実装
azooKeyTests: MainAppとKeyboardのテスト
DictionaryDebugger: 辞書のデバッグツール
Resources: MainAppとKeyboardで共有されるリソース

AzooKeyCore

AzooKeyCoreは全体で共有すべき実装を記述したSwift Packageです。詳しくはREADMEを参照してください。

MainApp

MainAppはazooKeyの種々の設定を行うためのアプリです。

SwiftUIを用いて実装しています。

Keyboard

Keyboardはキーボード本体の実装です。

Keyboard/Display/KeyboardViewController.swiftviewDidLoadが実質的なエントリーポイントです。viewDidLoadが呼ばれると、KeyboardActionManagerのインスタンスが1つ生成され、ユーザの操作を管理するようになります。また、KeyboardのUIの読み込みが行われます。KeyboardのUIはSwiftUIで実装されていますが、実装をMainAppと共有するためShared配下に存在します。

KeyboardActionManagerInputManagerを用いて変換状態を管理します。InputManagerは変換器であるKanaKanjiConverterのAPIを呼び出したり、LiveConversionManagerを通してライブ変換に関する処理を行ったり、DisplayedTextManagerを通してディスプレイされるテキストの管理を行ったりします。

キーボードのUI

キーボードのUIはAzooKeyCore/KeyboardViewsで実装しています。

かな漢字変換モジュール

かな漢字変換モジュールはazooKeyとは独立のパッケージ「AzooKeyKanaKanjiConverter」として切り出されています。以下を参照してください。

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

キーボードの拡張

カスタムタグ及び一部の機能はazooKeyと独立したパッケージ「CustardKit」として切り出されています。以下を参照してください。

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

Resources

SharedはazooKey全体で共有されるリソースです。主に以下のものなどを含みます。

  • 絵文字の生データ
  • Localization.strings
  • フォント
  • 色データ

azooKeyTests

主にKeyboardの実装のテストが含まれています。

用語

英語日本語備考
Actionユーザの操作
Candidate変換候補
ChangeKeyboardKey地球儀キーキーボードを変更するための地球儀キー。Appleの言葉ではInputModeSwitchKey。
Composing編集中変換対象のテキストになっている、との意味。
Cursorカーソル入力フィールド上に表示されるカーソル。コメントなどでは`
Cursor Barカーソルバー空白キーの長押しなどで表示されるカーソル移動用のバーUI。
CustardカスタードCustom Keyboardの略。カスタムタブに関わる機能で用いている。
Dicdata辞書データ
Displayed表示されている内部状態ではなく、ユーザに見えている状態である、との意味。
InputStyle入力方法ローマ字入力、ダイレクト入力など、入力方式を意味する。
Learning学習専ら学習機能を意味する。
Live Conversionライブ変換
LOUDSLOUDSデータ構造の名。
Post Composition Prediction確定後の予測変換候補を全て確定した後に表示される予測変換。
Result Barリザルトバー変換候補を表示しているバーUI。
Tab BarタブバーazooKeyのアイコンのボタンを押すと表示されるバーUI。タブの移動などに用いる。