AzooKeyCore
February 29, 2024 · View on GitHub
azooKeyの開発に必要なモジュールをまとめたライブラリです。
SwiftUIUtils
SwiftUIで利用できるユーティリティのモジュールです。
KeyboardThemes
Keyboardの着せ替えデータ(ThemeData)に関するモジュールです。
KeyboardViews
KeyboardのViewを実装したモジュールです。最小で以下のように利用できます。
var body: some View {
KeyboardView<AppSpecificExtension>()
.themeEnvironment(theme)
.environment(\.userActionManager, KeyboarActionManager())
.environmentObject(variableStates)
}
UserActionManager
UserActionManagerはキーボード上でユーザが行った操作によって発火したアクションを管理するマネージャクラスです。このクラスを継承し、任意の操作を実装します。azooKeyではKeyboardActionManagerとして実装されています。
VariableStates
VariableStatesはKeyboardView全体で共有される状態をまとめたObservable Objectです。
private static let variableStates = VariableStates(
clipboardHistoryManagerConfig: ClipboardHistoryManagerConfig(),
tabManagerConfig: TabManagerConfig(),
userDefaults: UserDefaults.standard
)
初期化にはany ClipboardHistoryManagerConfigurationとany TabManagerConfigurationの値が必要になります。azooKeyではそれぞれClipboardHistoryManagerConfigとTabManagerConfigとして実装しています。
AppSpecificExtension
AppSpecificExtensionは、KeyboardViewにアプリケーション固有の振る舞いを持たせるために注入する型で、ApplicationSpecificKeyboardViewExtensionというプロトコルに準拠しています。azooKeyではAzooKeyKeyboardViewExtensionとして実装しています。
この型を通じてKeyboardViewにユーザ設定を注入したり、お知らせのデータを注入したりすることができます。
AzooKeyUtils
azooKey固有の実装をまとめたユーティリティのモジュールです。