macOS上で動作するIMEを、Appleが公式で提供するInputMethodKitを利用して開発しました。
InputMethodKitでは主に、IMKInputController、IMKCandidates、IMKServerの3つのクラスを使って開発します。実際に開発をする中で、特にロジックが集中するIMKInputControllerのコードが肥大化していき、コードの見通しが悪くなるという問題に直面しました。
そこで、この問題を解決するためにThe Composable Architecture(TCA)を導入しました。
本セッションでは、これらの開発体験をもとに、InputMethodKitでよく使う項目に対しての解説と、UIKit/SwiftUIを使用していないコードに対してどのようにTCAを適用するかを中心に発表します。