Android用diフレームワークの使い方は?

Android では、依存関係注入のフレームワークとして Dagger 2 を使用できます。依存関係注入を Dagger 2 で実施するための手順を以下に示します。

ステップ1:Dagger 2の依存関係を追加する

Dagger 2 の依存をプロジェクトの build.gradle ファイルに追加します:

implementation 'com.google.dagger:dagger:2.x'
annotationProcessor 'com.google.dagger:dagger-compiler:2.x'

ステップ2:依存注入モジュールを作成する

依存関係のインスタンスを提供する Java クラスを作成します。このクラスには @Module アノテーションが付けられ、各依存関係に提供者メソッドを指定するために @Provides アノテーションを使用する必要があります。例:

@Module
public class AppModule {
@Provides
public ApiService provideApiService() {
return new ApiService();
}
}

ステップ3: ディペンデンシーインジェクションコンポーネントの作成

モジュールとDI(依存性注入)する必要があるクラスを接続するためのJavaインタフェースを作成する。そのインタフェースには、@Component アノテーションを付けて、注入するモジュールを指定する。例えば:

@Component(modules = {AppModule.class})
public interface AppComponent {
void inject(MainActivity mainActivity);
}

ステップ4:DIを活用する

依存性の注入が必要なクラスで、@Injectを注入する属性にアノテーションを付けます。例えば:

public class MainActivity extends AppCompatActivity {
@Inject
ApiService apiService;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// 创建Dagger组件
AppComponent appComponent = DaggerAppComponent.builder()
.appModule(new AppModule())
.build();
// 注入依赖
appComponent.inject(this);
// 使用注入的依赖
apiService.doSomething();
}
}

Dagger 2では、依存関係が自動的に作成され、注入される。上の例では、ApiServiceインスタンスが自動的に作成され、MainActivityのapiServiceプロパティに注入される。

Dagger 2で依存注入用コードを生成するためには、コンパイル時にannotationProcessorを使用し、関連する依存関係がプロジェクトに正しく追加されていることを確認する必要があることに注意してください。

これらはDagger 2を使用して依存関係を注入するための基本的なステップです。もちろんDagger 2には、スコープや依存関係のライフサイクル管理など、より高度な使用方法もあり、具体的な要件に基づいて深く学習して使用できます。

bannerAds