Dependency Injection(DI)とは、オブジェクトに必要な依存関係を外から注入する設計パターンです。オブジェクト間の依存を疎に保つことで、コードを再利用しやすくなり、保守性を高めることができます。
Androidアプリ開発ではDagger(Hilt)というDIライブラリの使用が推奨されていますが、iOSアプリ開発においてはまだまだデファクトスタンダードと呼べるDIライブラリは存在しません。
そこで私はSword (https://github.com/rockname/sword) というDaggerライクなiOS向けのDIライブラリを開発し、Swift Macros等の言語機能を活用したコード生成による静的なDIのアプローチを探求しました。
本トークでは、そもそもDIとはどのような設計パターンであるかを説明しつつ、Androidアプリ開発におけるDaggerによるDIのアプローチについて具体的に紹介します。その上でiOSアプリ開発においてはどのようなDIのアプローチが考えられるのか、Swordの開発から得られた知見をもとにお話しします。
本トークを通じて、iOSアプリ開発における最適なDIのアプローチについてみなさんの考えるきっかけやヒント、あるいは答えを提供できれば幸いです。