Welcome to my pet project. It will be supported by me at free time.
This project exposes ideas, approaches and its implementations.
- Coroutines
- ViewModel
- Paging3
- NavComponent
- Ktor
- Retrofit
- kotlin-serialization
- Moshi
- Dagger2
- Mockk
- Glide
If you desire to try this app, you have to do few steps:
- remove suffix .example for the file
api-config.properties.example
- add API key to the file.
If you don't have it, you'll be able generate it there
The main idea is to separate project build logic using gradle plugins.
There are basic plugins:
- android-application-convention plugin - uses for configuring android application module;
- android-library-convention plugin - uses for configuring android library modules;
- basic-android-convention plugin - configures android modules;
- basic-kotlin-convention plugin - applies Kotlin's compile configuration to each modules;
- kotlin-jvm-convention plugin - uses for configuring Kotlin in modules;
- detekt-convention plugin - uses for configuring detekt plugin in modules.
- jacoco-convention plugin - uses for configuring jacoco plugin in modules.
Read official documentation here.
Note!
Version catalog don't accessible from precompiled script plugins
Issue (gradle/gradle#15383 (comment))
By default, versions of a dependency declared in the file gradle/libs.versions.toml
.
If you wish to add dependency to the project, just declare a version of a dependency in the one of 4 major sections in the TOML file and press Sync project.
Now, your can pick from when declaring dependencies in a build script.
The dependency coordinates can be picked from a version catalog (example, for build.gradle.kts):
dependencies {
implementation(libs.{your_dependency_name})
}
MockKtorHttpClient - solution for mocking responses over Ktor library.
Have a good coding:)