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

VariableStatesKeyboardView全体で共有される状態をまとめたObservable Objectです。

private static let variableStates = VariableStates(
    clipboardHistoryManagerConfig: ClipboardHistoryManagerConfig(),
    tabManagerConfig: TabManagerConfig(),
    userDefaults: UserDefaults.standard
)

初期化にはany ClipboardHistoryManagerConfigurationany TabManagerConfigurationの値が必要になります。azooKeyではそれぞれClipboardHistoryManagerConfigTabManagerConfigとして実装しています。

AppSpecificExtension

AppSpecificExtensionは、KeyboardViewにアプリケーション固有の振る舞いを持たせるために注入する型で、ApplicationSpecificKeyboardViewExtensionというプロトコルに準拠しています。azooKeyではAzooKeyKeyboardViewExtensionとして実装しています。

この型を通じてKeyboardViewにユーザ設定を注入したり、お知らせのデータを注入したりすることができます。

AzooKeyUtils

azooKey固有の実装をまとめたユーティリティのモジュールです。