Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
42 commits
Select commit Hold shift + click to select a range
a383350
Add: UC abstraction
Velord Apr 15, 2026
1f4b6c7
Update: gradle
Velord Apr 15, 2026
e5ec4d5
Refactor: delete UCImpl for setting
Velord Apr 15, 2026
0c2e149
Refactor: delete UCImpl for movie
Velord Apr 15, 2026
46e6146
Merge pull request #71 from Velord/feature/useCaseAbstraction
Velord Apr 15, 2026
930d4fc
Migrate: from Java 21 to Java 24
Velord Apr 16, 2026
1ab8618
Migrate: "model" module to KMP
Velord Apr 16, 2026
9bc8363
Migrate: "usecase-setting" module to KMP
Velord Apr 18, 2026
660504c
Migrate: date time to kotlinx
Velord Apr 18, 2026
67b4707
Migrate: use case test from desktop to common target
Velord Apr 18, 2026
2b23891
Add: todo to MoviePagination
Velord Apr 18, 2026
5a8cd14
Migrate: all use case tests to actual API
Velord Apr 18, 2026
de8c200
Add: more tests
Velord Apr 18, 2026
50be6ff
Migrate: android log to KMP log(Kermit)
Velord Apr 18, 2026
1e24f95
Refactor: convention plugin to more idiomatic API
Velord Apr 18, 2026
6de6828
Refactor: use project type save accessor
Velord Apr 18, 2026
1c848b6
Migrate: "data-appstate" module to KMP
Velord Apr 19, 2026
5f0d5e5
Migrate: "infrastructure-config" module to KMP
Velord Apr 19, 2026
d06b234
Migrate: "core-resource" module to KMP
Velord Apr 19, 2026
243e19a
Migrate: backend, core-navigation, and gateway modules to KMP
Velord Apr 19, 2026
fe0b677
Migrate: data layer to KMP
Velord Apr 19, 2026
5394fe2
Refactor: camera API to be used via UC
Velord Jun 30, 2026
2c39433
Refactor: camera API to be used via data layer
Velord Jun 30, 2026
240647e
Update: gradle version
Velord Jun 30, 2026
a5d1829
Restore: FileName
Velord Jun 30, 2026
5c0ee3b
Refactor: make "infrastructure:util" module KMP
Velord Jul 1, 2026
ccc1fd9
Refactor: move from java to kotlin folder
Velord Jul 1, 2026
f8dac5e
Refactor: infrastructure modules now have proper path
Velord Jul 1, 2026
5ae8be7
Update: gradle version
Velord Jul 1, 2026
81a3f8d
Refactor: rename modules to reflect their layer
Velord Jul 2, 2026
1919e10
Add: konsist module
Velord Jul 2, 2026
b8a2d61
Add: CodeStyleTest
Velord Jul 3, 2026
2b5798a
Migrate: "sharedviewmodel" to KMP
Velord Jul 6, 2026
2e17eb5
Add: more code style tests
Velord Jul 7, 2026
112d439
Fix: navigation back handling graph did not take responsibility
Velord Jul 7, 2026
f692622
Update: toml
Velord Jul 7, 2026
3ad5d05
Delete: unused parameter
Velord Jul 8, 2026
48ca6b0
Migrate: "core:ui" module to CMP
Velord Jul 8, 2026
9f9b28b
Add: draft of global toast event
Velord Jul 8, 2026
78439e0
Refactor: add use case for toast events
Velord Jul 8, 2026
80a25d9
Refactor: add use case to MainViewModel instead of MainActivity
Velord Jul 8, 2026
7f5ab2d
Refactor: naming
Velord Jul 10, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 1 addition & 1 deletion .idea/compiler.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 4 additions & 0 deletions .idea/gradle.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion .idea/misc.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,9 @@ To use different Navigation library need to change in ```build.gradle.kts``` at

```
buildConfigField(
"com.velord.config.NavigationLib",
"com.velord.infrastructure.config.NavigationLib",
"NAVIGATION_LIB",
"com.velord.config.NavigationLib.{Voyager}" or "Jetpack" or "Destinations" or "Compose" or "Nav3"
"com.velord.infrastructure.config.NavigationLib.{Voyager}" or "Jetpack" or "Destinations" or "Compose" or "Nav3"
)
```

Expand Down
47 changes: 27 additions & 20 deletions app/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ plugins {
alias(libs.plugins.convention.android.viewbinding)
id(libs.plugins.kotlin.plugin.parcelize.get().pluginId)
alias(libs.plugins.kotlin.plugin.serialization)
alias(libs.plugins.ksp)
alias(libs.plugins.convention.koin)
alias(libs.plugins.google.gms.services)
alias(libs.plugins.google.firebase.crashlytic)
Expand Down Expand Up @@ -63,9 +64,9 @@ android {
named("debug") {
buildConfigField("Boolean", "IS_LOGGING_ENABLED", "true")
buildConfigField(
"com.velord.config.NavigationLib",
"com.velord.infrastructure.config.NavigationLib",
"NAVIGATION_LIB",
"com.velord.config.NavigationLib.Nav3"
"com.velord.infrastructure.config.NavigationLib.Nav3"
)
}
named("release") {
Expand All @@ -77,9 +78,9 @@ android {
)
buildConfigField("Boolean", "IS_LOGGING_ENABLED", "false")
buildConfigField(
"com.velord.config.NavigationLib",
"com.velord.infrastructure.config.NavigationLib",
"NAVIGATION_LIB",
"com.velord.config.NavigationLib.Destinations"
"com.velord.infrastructure.config.NavigationLib.Destinations"
)
}
}
Expand Down Expand Up @@ -134,30 +135,36 @@ android {
}

dependencies {
implementation(project(":model"))
implementation(projects.model)
// Module Infrastructure
implementation(project(":infrastructure:util"))
implementation(project(":infrastructure:navigation"))
implementation(project(":infrastructure:di"))
implementation(project(":infrastructure:config"))
implementation(projects.infrastructure.util)
implementation(projects.infrastructure.navigation)
implementation(projects.infrastructure.di)
implementation(projects.infrastructure.config)
// Module Domain
implementation(projects.domain.usecaseEvent)
// Module Core
implementation(project(":core:core-ui"))
implementation(project(":core:core-navigation"))
implementation(project(":core:core-resource"))
implementation(projects.core.coreUi)
implementation(projects.core.coreNavigation)
implementation(projects.core.coreResource)
// Module Data
implementation(project(":data:os"))
implementation(projects.data.os)
implementation(projects.data.appstate)
// Module UI
implementation(project(":ui:sharedviewmodel"))
implementation(projects.ui.sharedviewmodel)
// Module UI Feature
implementation(project(":ui:feature-bottomnavigation"))
implementation(project(":ui:feature-splash"))
implementation(projects.ui.featureBottomnavigation)
implementation(projects.ui.featureSplash)
// Module UI Widget
implementation(project(":ui:widget-refreshableimage"))
implementation(project(":ui:widget-counter"))
// Templates
implementation(projects.ui.widgetRefreshableimage)
implementation(projects.ui.widgetCounter)
// Template
implementation(libs.bundles.kotlin.module)
implementation(libs.bundles.androidx.module)
implementation(libs.bundles.compose.ui)
implementation(libs.bundles.compose.ui.core)
// Koin annotations
implementation(libs.koin.annotation)
ksp(libs.koin.ksp)
// Tool
coreLibraryDesugaring(libs.android.desugar)
// Other
Expand Down
6 changes: 5 additions & 1 deletion app/dependencies/productionReleaseRuntimeClasspath.txt
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,7 @@ androidx.credentials:credentials:1.5.0
androidx.cursoradapter:cursoradapter:1.0.0
androidx.customview:customview-poolingcontainer:1.0.0
androidx.customview:customview:1.1.0
androidx.databinding:viewbinding:9.0.1
androidx.databinding:viewbinding:9.1.1
androidx.datastore:datastore-android:1.2.0
androidx.datastore:datastore-core-android:1.2.0
androidx.datastore:datastore-core-okio-jvm:1.2.0
Expand Down Expand Up @@ -230,6 +230,10 @@ cafe.adriel.voyager:voyager-tab-navigator-android:1.1.0-beta03
cafe.adriel.voyager:voyager-tab-navigator:1.1.0-beta03
cafe.adriel.voyager:voyager-transitions-android:1.1.0-beta03
cafe.adriel.voyager:voyager-transitions:1.1.0-beta03
co.touchlab:kermit-android:2.1.0
co.touchlab:kermit-core-android:2.1.0
co.touchlab:kermit-core:2.1.0
co.touchlab:kermit:2.1.0
co.touchlab:stately-concurrency-jvm:2.1.0
co.touchlab:stately-concurrency:2.1.0
co.touchlab:stately-concurrent-collections-jvm:2.1.0
Expand Down
8 changes: 4 additions & 4 deletions app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@
</activity>

<receiver
android:name="com.velord.refreshableimage.RefreshableImageWidgetReceiver"
android:name="com.velord.ui.widget.refreshableimage.RefreshableImageWidgetReceiver"
android:enabled="true"
android:exported="false">

Expand All @@ -54,7 +54,7 @@
</receiver>

<provider
android:name="com.velord.refreshableimage.RefreshableImageWidgetFileProvider"
android:name="com.velord.ui.widget.refreshableimage.RefreshableImageWidgetFileProvider"
android:authorities="${applicationId}.fileprovider"
android:exported="false"
android:grantUriPermissions="true">
Expand All @@ -65,7 +65,7 @@
</provider>

<receiver
android:name="com.velord.widgetcounter.CounterWidgetReceiver"
android:name="com.velord.ui.widget.counter.CounterWidgetReceiver"
android:enabled="true"
android:exported="false">

Expand All @@ -80,4 +80,4 @@

</application>

</manifest>
</manifest>

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,14 @@ import android.app.Application
import android.os.StrictMode
import android.os.StrictMode.ThreadPolicy
import android.os.StrictMode.VmPolicy
import android.util.Log
import co.touchlab.kermit.Logger
import com.google.firebase.crashlytics.FirebaseCrashlytics
import com.velord.config.BuildConfigResolver
import com.velord.config.NavigationLib
import com.velord.di.startKoin
import com.velord.navigation.voyager.initVoyager
import com.velord.os.MemoryLeakMonitor
import com.velord.os.MemoryLogger
import com.velord.data.os.memory.MemoryLeakMonitor
import com.velord.data.os.memory.MemoryLogger
import com.velord.infrastructure.config.BuildConfigResolver
import com.velord.infrastructure.config.NavigationLib
import com.velord.infrastructure.di.startKoin
import com.velord.infrastructure.navigation.voyager.initVoyager
import org.koin.android.ext.android.inject
import org.koin.core.annotation.ComponentScan
import org.koin.core.annotation.Module
Expand All @@ -34,36 +34,37 @@ internal class MemoryLoggerImpl : MemoryLogger {

override fun log(message: String, isError: Boolean) {
if (isError) {
Log.e(TAG, message)
log.e { message }
crashlytics.log("E/$TAG: $message")
} else {
Log.d(TAG, message)
log.d { message }
crashlytics.log("D/$TAG: $message")
}
}

override fun recordException(throwable: Throwable) {
Log.e(TAG, "Recording non-fatal exception", throwable)
log.e(throwable) { "Recording non-fatal exception" }
crashlytics.recordException(throwable)
}

override fun setCustomKey(key: String, value: Int) {
Log.d(TAG, "Key [$key] = $value")
log.d { "Key [$key] = $value" }
crashlytics.setCustomKey(key, value)
}

override fun setCustomKey(key: String, value: Long) {
Log.d(TAG, "Key [$key] = $value")
log.d { "Key [$key] = $value" }
crashlytics.setCustomKey(key, value)
}

override fun setCustomKey(key: String, value: String) {
Log.d(TAG, "Key [$key] = $value")
log.d { "Key [$key] = $value" }
crashlytics.setCustomKey(key, value)
}

companion object {
private const val TAG = "MemoryLogger"
private val log = Logger.withTag(TAG)
}
}

Expand Down
Loading