Skip to content

Latest commit

 

History

History
80 lines (54 loc) · 4.84 KB

overview.md

File metadata and controls

80 lines (54 loc) · 4.84 KB

Overview

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 ライブ変換
LOUDS LOUDS データ構造の名。
Post Composition Prediction 確定後の予測変換 候補を全て確定した後に表示される予測変換。
Result Bar リザルトバー 変換候補を表示しているバーUI。
Tab Bar タブバー azooKeyのアイコンのボタンを押すと表示されるバーUI。タブの移動などに用いる。