Skip to content

Commit 8b49a75

Browse files
committed
Update README.md
1 parent 303ddc5 commit 8b49a75

File tree

1 file changed

+22
-14
lines changed

1 file changed

+22
-14
lines changed

README.md

+22-14
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ DependencyProperty
99

1010
- simple in defining and resolving dependencies.
1111
- usable in classes accessible to Application instance like Activity, Fragment, and etc.
12-
- able to constructor injection to ViewModel without affecting other classes.
12+
- able to inject to ViewModel's constructor without affecting other classes.
1313
- less code for testing than Dagger Hilt.
1414
- easy to use in multi-module and Dynamic Feature Module.
1515
- easy to manage modules lifecycle.
@@ -18,19 +18,19 @@ DependencyProperty
1818

1919
## Usage
2020
### Configure DependencyProperty in Application
21-
Application class must implements `DependencyModulesHolder` like below.
21+
Application class must implements `DependencyModulesHolder` like the following.
2222

2323
```kt
2424
class App: Application(), DependencyModulesHolder {
2525
override val dependencyModules: DependencyModules by dependencyModules(AppModule(this), CoroutinesModule())
2626
}
2727
```
2828

29-
You can pass variable number of arguments(`DependencyModule`) to `dependencyModules()`.
29+
You can pass `DependencyModule` to `dependencyModules()` as variable number of arguments.
3030

3131
### Define dependencies in DependencyModule
3232
`DependencyModule` is marker interface.
33-
You can define dependencies as property and function.
33+
You can define dependencies as property or function.
3434

3535
```kt
3636
open class CoroutinesModule : DependencyModule {
@@ -41,7 +41,7 @@ open class CoroutinesModule : DependencyModule {
4141
}
4242
```
4343

44-
You can resolve other DependencyModule using below extension methods.
44+
You can resolve other DependencyModule using the following extension methods.
4545

4646
- `inline fun <reified T : DependencyModule> Application.dependencyModule(): T`
4747
- `inline fun <reified T : DependencyModule> FragmentActivity.dependencyModule(): T`
@@ -60,13 +60,13 @@ class AppModule(private val application: Application) : DependencyModule {
6060
}
6161
```
6262

63-
- If You want to define dependency as singleton, you can define property as lazy.
64-
- If You want to define dependency as not singleton, you can define property as getter.
65-
- If You want to define dependency using parameters, you can define property as function.
63+
- If You want to define dependency as singleton, you can use lazy.
64+
- If You want to define dependency as not singleton, you can use getter.
65+
- If You want to define dependency using parameters, you can use function.
6666

6767
### Resolve dependencies
6868

69-
You can resolve dependency by delegated property using below extension methods.
69+
You can resolve dependency by delegated property using the following extension methods.
7070

7171
- `fun <T: DependencyModule, R> Application.dependency<T, R>(resolve: (T) -> R): Lazy<R>`
7272
- `fun <T: DependencyModule, R> FragmentActivity.dependency<T, R>(resolve: (T) -> R): Lazy<R>`
@@ -75,14 +75,22 @@ You can resolve dependency by delegated property using below extension methods.
7575
- `fun <T: DependencyModule, R> Service.dependency<T, R>(resolve: (T) -> R): Lazy<R>`
7676
- `fun <T: DependencyModule, R> Context.dependency<T, R>(resolve: (T) -> R): Lazy<R>`
7777

78-
Activity's example is below.
78+
Activity's example is the following.
7979

8080
```kt
8181
class MainActivity : AppCompatActivity() {
8282
private val loadItemsUseCase by dependency<AppModule, LoadItemsUseCase> { it.loadItemsUseCase }
8383
}
8484
```
8585

86+
Another example is the following.
87+
88+
```kt
89+
class MainActivity : AppCompatActivity() {
90+
private val loadItemsUseCase: LoadItemsUseCase by lazy { dependencyModule<AppModule>().loadItemsUseCase }
91+
}
92+
```
93+
8694
For testing, ViewModel inherits AndroidViewModel and its constructor is annotated `@JvmOverloads`.
8795

8896
```kt
@@ -164,7 +172,7 @@ class App: Application(), DependencyModulesHolder {
164172
}
165173
```
166174

167-
In Dynamic Feature Module, you can add DependencyModule dynamically using below extension methods.
175+
In Dynamic Feature Module, you can add DependencyModule dynamically using the following extension methods.
168176

169177
```kt
170178
val Application.dependencyModules: DependencyModules
@@ -181,7 +189,7 @@ val Context.dependencyModules: DependencyModules
181189
get() = (applicationContext as Application).dependencyModules
182190
```
183191

184-
Activity's example is below.
192+
Activity's example is the following.
185193

186194
```kt
187195
class MainActivity : AppCompatActivity() {
@@ -194,13 +202,13 @@ class MainActivity : AppCompatActivity() {
194202

195203
### Lifecycle of DependencyModule
196204

197-
You can manage lifecycle of DependencyModule below methods.
205+
You can manage lifecycle of DependencyModule using the following methods.
198206

199207
- `fun <T: DependencyModule> DependencyModules.addModule(module: T)`
200208
- `fun <T: DependencyModule> DependencyModules.removeModule<T>()`
201209
- `fun <T: DependencyModule> DependencyModules.replaceModule(module: T)`
202210

203-
Activity's example is below.
211+
Activity's example is the following.
204212

205213
```kt
206214
class MainActivity : AppCompatActivity() {

0 commit comments

Comments
 (0)