Dependency Injection(DI)とは、オブジェクトに必要な依存関係を外から注入する設計パターンです。オブジェクト間の依存を疎に保つことで、コードを再利用しやすくなり、テストを書きやすくなります。
さらに、依存関係を管理するコンテナクラスのDI Containerを用いることで、シングルトンのようなアンチパターンを用いることなくオブジェクトのライフタイムを管理することができます。
本トークでは、DIの存在しないプロジェクトへ段階的にDIを導入していきながら、DIによってどのような具体的な課題が解決されていくのかについて体系的にお話しします。発展的な内容として、マルチモジュールのプロジェクトにおける依存関係解決の戦略や、Property Wrapper, MacrosといったSwiftの言語機能を活用したボイラープレートの削減についてお話しします。