DaggerAndroidMVVM 项目教程

随笔2个月前发布 会飞的鼹鼠
37 0 0

DaggerAndroidMVVM 项目教程

DaggerAndroidMVVMDemonstrates using Dagger 2.11+ in MVVM app with Android Architecture Components, Clean Architecture, RxJava项目地址:https://gitcode.com/gh_mirrors/da/DaggerAndroidMVVM

1. 项目的目录结构及介绍




DaggerAndroidMVVM/


├── app/


│   ├── build.gradle


│   ├── src/


│   │   ├── main/


│   │   │   ├── java/


│   │   │   │   ├── com.example.daggerandroidmvvm/


│   │   │   │   │   ├── di/


│   │   │   │   │   ├── ui/


│   │   │   │   │   ├── MainActivity.kt


│   │   │   │   │   ├── MainViewModel.kt


│   │   │   ├── res/


│   │   │   │   ├── layout/


│   │   │   │   ├── values/


│   │   │   ├── AndroidManifest.xml


├── build.gradle


├── gradle.properties


├── settings.gradle

目录结构介绍

app/: 主应用程序模块。
build.gradle: 应用程序模块的构建脚本。src/main/: 主源代码目录。
java/com.example.daggerandroidmvvm/: 主应用程序包。
di/: 依赖注入相关代码。ui/: 用户界面相关代码。MainActivity.kt: 主活动文件。MainViewModel.kt: 主视图模型文件。 res/: 资源文件目录。
layout/: 布局文件。values/: 值资源文件。 AndroidManifest.xml: 应用程序清单文件。 build.gradle: 项目级构建脚本。gradle.properties: Gradle 属性文件。settings.gradle: 项目设置文件。

2. 项目的启动文件介绍

MainActivity.kt




package com.example.daggerandroidmvvm


 


import android.os.Bundle


import androidx.appcompat.app.AppCompatActivity


import androidx.lifecycle.ViewModelProvider


import com.example.daggerandroidmvvm.ui.MainViewModel


import javax.inject.Inject


 


class MainActivity : AppCompatActivity() {


 


    @Inject


    lateinit var viewModelFactory: ViewModelProvider.Factory


 


    private lateinit var viewModel: MainViewModel


 


    override fun onCreate(savedInstanceState: Bundle?) {


        super.onCreate(savedInstanceState)


        setContentView(R.layout.activity_main)


 


        (application as MyApplication).appComponent.inject(this)


 


        viewModel = ViewModelProvider(this, viewModelFactory).get(MainViewModel::class.java)


    }


}

介绍

MainActivity.kt: 这是应用程序的主活动文件。它继承自 AppCompatActivity 并实现了 onCreate 方法。依赖注入: 通过 (application as MyApplication).appComponent.inject(this) 进行依赖注入。ViewModel: 通过 ViewModelProvider 获取 MainViewModel 实例。

3. 项目的配置文件介绍

build.gradle (项目级)




// 项目级 build.gradle 文件


buildscript {


    ext.kotlin_version = '1.5.21'


    repositories {


        google()


        mavenCentral()


    }


    dependencies {


        classpath 'com.android.tools.build:gradle:7.0.0'


        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"


    }


}


 


allprojects {


    repositories {


        google()


        mavenCentral()


    }


}


 


task clean(type: Delete) {


    delete rootProject.buildDir


}

介绍

buildscript: 定义构建脚本的依赖和版本。repositories: 定义依赖仓库。dependencies: 定义构建脚本的依赖。allprojects: 定义所有模块的仓库。task clean: 定义清理任务。

build.gradle (模块级)




// 模块级 build.gradle 文件


plugins {


    id 'com.android.application'


    id 'kotlin-android'


    id 'kotlin-kapt'


}


 


android {


    compileSdk 30


 


    defaultConfig {


       

DaggerAndroidMVVMDemonstrates using Dagger 2.11+ in MVVM app with Android Architecture Components, Clean Architecture, RxJava项目地址:https://gitcode.com/gh_mirrors/da/DaggerAndroidMVVM

© 版权声明

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
暂无评论...