InputMethodKitとTCAを使ったmacOS上で動作する英語向けIMEツールの開発を通して得た効率的に開発する知見 by Tatsumi0000

iOSDC Japan 2024
ポスターセッション

InputMethodKitとTCAを使ったmacOS上で動作する英語向けIMEツールの開発を通して得た効率的に開発する知見

Tatsumi0000

macOS上で動作するIMEを開発するために、Appleが公式で提供するInputMethodKitを利用して開発しました。

InputMethodKitでは主に、IMKInputController、IMKCandidates、IMKServerの3つのクラスを使い開発します。実際の開発中に、特にロジックが集中するIMKInputControllerのコードが肥大化し、コードの見通しが悪くなるという問題に直面しました。他にもIME開発特有のデバッグの煩わしさもありました。

そこで、コードの見通しをよくするためにThe Composable Architecture(TCA)を導入し、IMEのデバッグの煩わしさを軽減するために、fastlaneを使った自動化や、Repository層とUseCase層を採用したマルチモジュール構成で開発する方針を採用しました。

これらについて実際に書いたコードと一緒に以下の内容について解説します。

  • InputMethodKitでよく使う項目に対しての解説
  • UIKit/SwiftUIを使用していないコードに対してのTCAを使った開発
  • デバッグを簡単にするためのfastlaneを使ったビルドの自動化とマルチモジュール構成を使ったデバッグアプリの開発