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.swiftのviewDidLoadが実質的なエントリーポイントです。viewDidLoadが呼ばれると、KeyboardActionManagerのインスタンスが1つ生成され、ユーザの操作を管理するようになります。また、KeyboardのUIの読み込みが行われます。KeyboardのUIはSwiftUIで実装されていますが、実装をMainAppと共有するためShared配下に存在します。
KeyboardActionManagerはInputManagerを用いて変換状態を管理します。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 | ライブ変換 | |
| LOUDS | LOUDS | データ構造の名。 |
| Post Composition Prediction | 確定後の予測変換 | 候補を全て確定した後に表示される予測変換。 |
| Result Bar | リザルトバー | 変換候補を表示しているバーUI。 |
| Tab Bar | タブバー | azooKeyのアイコンのボタンを押すと表示されるバーUI。タブの移動などに用いる。 |