azooKeyは以下のような構成になっています。
AzooKeyCore: azooKey全体で共有するモジュール
MainApp: 本体アプリの実装
Keyboard: キーボードアプリの実装
azooKeyTests: MainAppとKeyboardのテスト
DictionaryDebugger: 辞書のデバッグツール
Resources: MainAppとKeyboardで共有されるリソース
AzooKeyCore
は全体で共有すべき実装を記述したSwift Packageです。詳しくはREADMEを参照してください。
MainAppはazooKeyの種々の設定を行うためのアプリです。
SwiftUIを用いて実装しています。
Keyboardはキーボード本体の実装です。
Keyboard/Display/KeyboardViewController.swift
のviewDidLoad
が実質的なエントリーポイントです。viewDidLoad
が呼ばれると、KeyboardActionManager
のインスタンスが1つ生成され、ユーザの操作を管理するようになります。また、KeyboardのUIの読み込みが行われます。KeyboardのUIはSwiftUIで実装されていますが、実装をMainAppと共有するためShared配下に存在します。
KeyboardActionManager
はInputManager
を用いて変換状態を管理します。InputManager
は変換器であるKanaKanjiConverter
のAPIを呼び出したり、LiveConversionManager
を通してライブ変換に関する処理を行ったり、DisplayedTextManager
を通してディスプレイされるテキストの管理を行ったりします。
キーボードのUIはAzooKeyCore/KeyboardViewsで実装しています。
かな漢字変換モジュールはazooKeyとは独立のパッケージ「AzooKeyKanaKanjiConverter」として切り出されています。以下を参照してください。
https://github.com/ensan-hcl/AzooKeyKanaKanjiConverter
カスタムタグ及び一部の機能はazooKeyと独立したパッケージ「CustardKit」として切り出されています。以下を参照してください。
https://github.com/ensan-hcl/CustardKit
SharedはazooKey全体で共有されるリソースです。主に以下のものなどを含みます。
- 絵文字の生データ
- Localization.strings
- フォント
- 色データ
主にKeyboardの実装のテストが含まれています。
英語 | 日本語 | 備考 |
---|---|---|
Action | ユーザの操作 | |
Candidate | 変換候補 | |
ChangeKeyboardKey | 地球儀キー | キーボードを変更するための地球儀キー。Appleの言葉ではInputModeSwitchKey。 |
Composing | 編集中 | 変換対象のテキストになっている、との意味。 |
Cursor | カーソル | 入力フィールド上に表示されるカーソル。コメントなどでは` |
Cursor Bar | カーソルバー | 空白キーの長押しなどで表示されるカーソル移動用のバーUI。 |
Custard | カスタード | Custom Keyboardの略。カスタムタブに関わる機能で用いている。 |
Dicdata | 辞書データ | |
Displayed | 表示されている | 内部状態ではなく、ユーザに見えている状態である、との意味。 |
InputStyle | 入力方法 | ローマ字入力、ダイレクト入力など、入力方式を意味する。 |
Learning | 学習 | 専ら学習機能を意味する。 |
Live Conversion | ライブ変換 | |
LOUDS | LOUDS | データ構造の名。 |
Post Composition Prediction | 確定後の予測変換 | 候補を全て確定した後に表示される予測変換。 |
Result Bar | リザルトバー | 変換候補を表示しているバーUI。 |
Tab Bar | タブバー | azooKeyのアイコンのボタンを押すと表示されるバーUI。タブの移動などに用いる。 |