diff --git a/.github/workflows/compilation-check.yml b/.github/workflows/compilation-check.yml index a85499f..62122c5 100644 --- a/.github/workflows/compilation-check.yml +++ b/.github/workflows/compilation-check.yml @@ -12,10 +12,12 @@ jobs: steps: - uses: actions/checkout@v1 - - name: Set up JDK 11 + - name: Set up JDK 17 uses: actions/setup-java@v1 with: - java-version: 11 + java-version: 17 + - name: Print Xcode version + run: xcodebuild -version - name: Check build run: ./gradlew build publishToMavenLocal syncMultiPlatformLibraryDebugFrameworkIosX64 - name: Install pods diff --git a/.gitignore b/.gitignore index 2a11f92..1d2381e 100755 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ .gradle +.kotlin .settings .project .classpath diff --git a/README.md b/README.md index cdf4c07..6d4eb26 100755 --- a/README.md +++ b/README.md @@ -37,13 +37,13 @@ allprojects { project build.gradle ```groovy dependencies { - commonMainApi("dev.icerock.moko:fields-core:0.12.0") + commonMainApi("dev.icerock.moko:fields-core:0.13.0") // integration with reactive flows - commonMainApi("dev.icerock.moko:fields-livedata:0.12.0") - commonMainApi("dev.icerock.moko:fields-flow:0.12.0") + commonMainApi("dev.icerock.moko:fields-livedata:0.13.0") + commonMainApi("dev.icerock.moko:fields-flow:0.13.0") - androidMainApi("dev.icerock.moko:fields-material:0.12.0") + androidMainApi("dev.icerock.moko:fields-material:0.13.0") } ``` diff --git a/fields-core/src/commonMain/kotlin/dev/icerock/moko/fields/core/FormFieldExt.kt b/fields-core/src/commonMain/kotlin/dev/icerock/moko/fields/core/FormFieldExt.kt index 99fd632..d59702e 100644 --- a/fields-core/src/commonMain/kotlin/dev/icerock/moko/fields/core/FormFieldExt.kt +++ b/fields-core/src/commonMain/kotlin/dev/icerock/moko/fields/core/FormFieldExt.kt @@ -4,5 +4,6 @@ package dev.icerock.moko.fields.core -fun List>.validate(): Boolean = - all { it.validate() } +fun List>.validate(): Boolean { + return map { it.validate() }.all { it } +} diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index c0e8bed..bccbb78 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,5 +1,5 @@ [versions] -kotlinVersion = "1.8.10" +kotlinVersion = "1.9.10" # android androidAppCompatVersion = "1.6.1" @@ -10,10 +10,11 @@ androidLifecycleVersion = "2.6.1" coroutinesVersion = "1.6.4" # moko -mokoResourcesVersion = "0.21.2" -mokoMvvmVersion = "0.16.0" +mokoResourcesVersion = "0.24.5" +mokoMvvmVersion = "0.16.1" mokoTestVersion = "0.6.1" -mokoFieldsVersion = "0.12.0" +mokoFieldsVersion = "0.13.0" +mokoParcelizeVersion = "0.9.0" [libraries] # android @@ -31,6 +32,7 @@ coroutines = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-core", version mokoMvvmDataBinding = { module = "dev.icerock.moko:mvvm-databinding", version.ref = "mokoMvvmVersion" } mokoResources = { module = "dev.icerock.moko:resources", version.ref = "mokoResourcesVersion" } mokoResourcesCompose = { module = "dev.icerock.moko:resources-compose", version.ref = "mokoResourcesVersion" } +mokoParcelize = { module = "dev.icerock.moko:parcelize", version.ref = "mokoParcelizeVersion" } mokoMvvmCore = { module = "dev.icerock.moko:mvvm-core", version.ref = "mokoMvvmVersion" } mokoMvvmLiveData = { module = "dev.icerock.moko:mvvm-livedata", version.ref = "mokoMvvmVersion" } mokoMvvmFlow = { module = "dev.icerock.moko:mvvm-flow", version.ref = "mokoMvvmVersion" } @@ -41,7 +43,7 @@ mokoTest = { module = "dev.icerock.moko:test-core", version.ref = "mokoTestVersi # gradle plugins kotlinGradlePlugin = { module = "org.jetbrains.kotlin:kotlin-gradle-plugin", version.ref = "kotlinVersion" } -androidGradlePlugin = { module = "com.android.tools.build:gradle", version = "7.4.2" } +androidGradlePlugin = { module = "com.android.tools.build:gradle", version = "8.2.1" } mokoResourcesGradlePlugin = { module = "dev.icerock.moko:resources-generator", version.ref = "mokoResourcesVersion" } -mokoGradlePlugin = { module = "dev.icerock.moko:moko-gradle-plugin", version = "0.3.0" } +mokoGradlePlugin = { module = "dev.icerock.moko:moko-gradle-plugin", version = "0.4.2" } mokoKSwiftGradlePlugin = { module = "dev.icerock.moko:kswift-gradle-plugin", version = "0.6.1" } diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index ae04661..00077cd 100755 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,6 @@ +#Tue Apr 15 22:30:14 KRAT 2025 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.5.1-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.4-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/sample-declarative-ui/androidApp/build.gradle.kts b/sample-declarative-ui/androidApp/build.gradle.kts index 1ae686e..77e7b4c 100644 --- a/sample-declarative-ui/androidApp/build.gradle.kts +++ b/sample-declarative-ui/androidApp/build.gradle.kts @@ -8,14 +8,14 @@ plugins { } android { - compileSdk = 33 + compileSdk = 34 buildFeatures { compose = true } defaultConfig { applicationId = "dev.icerock.moko.fields.sample.declarativeui.android" minSdk = 21 - targetSdk = 33 + targetSdk = 34 versionCode = 1 versionName = "1.0" } @@ -25,7 +25,14 @@ android { } } composeOptions { - kotlinCompilerExtensionVersion = "1.4.4" + kotlinCompilerExtensionVersion = "1.5.15" + } + + namespace = "dev.icerock.sample.declarativeui.android" + + compileOptions { + sourceCompatibility = JavaVersion.VERSION_17 + targetCompatibility = JavaVersion.VERSION_17 } } diff --git a/sample-declarative-ui/androidApp/src/main/AndroidManifest.xml b/sample-declarative-ui/androidApp/src/main/AndroidManifest.xml index dd51cf2..9e6e5b4 100644 --- a/sample-declarative-ui/androidApp/src/main/AndroidManifest.xml +++ b/sample-declarative-ui/androidApp/src/main/AndroidManifest.xml @@ -1,7 +1,5 @@ - + diff --git a/sample-declarative-ui/shared/build.gradle.kts b/sample-declarative-ui/shared/build.gradle.kts index 4b3586c..7c17bdd 100644 --- a/sample-declarative-ui/shared/build.gradle.kts +++ b/sample-declarative-ui/shared/build.gradle.kts @@ -18,7 +18,7 @@ val dependenciesList = listOf( ) kotlin { - android() + androidTarget() val xcf = XCFramework("MultiPlatformLibrary") listOf( @@ -75,15 +75,22 @@ kotlin { } multiplatformResources { - multiplatformResourcesPackage = "dev.icerock.moko.fields.sample.declarativeui" + resourcesPackage.set("dev.icerock.moko.fields.sample.declarativeui.shared") } android { - compileSdk = 32 + compileSdk = 34 sourceSets["main"].manifest.srcFile("src/androidMain/AndroidManifest.xml") defaultConfig { minSdk = 21 - targetSdk = 32 + targetSdk = 34 + } + + namespace = "dev.icerock.sample.declarativeui.shared" + + compileOptions { + sourceCompatibility = JavaVersion.VERSION_17 + targetCompatibility = JavaVersion.VERSION_17 } } diff --git a/sample-declarative-ui/shared/src/androidMain/AndroidManifest.xml b/sample-declarative-ui/shared/src/androidMain/AndroidManifest.xml deleted file mode 100644 index 4350a79..0000000 --- a/sample-declarative-ui/shared/src/androidMain/AndroidManifest.xml +++ /dev/null @@ -1,2 +0,0 @@ - - \ No newline at end of file diff --git a/sample-declarative-ui/shared/src/commonMain/kotlin/dev/icerock/moko/fields/sample/declarativeui/LoginViewModel.kt b/sample-declarative-ui/shared/src/commonMain/kotlin/dev/icerock/moko/fields/sample/declarativeui/LoginViewModel.kt index 9c2a7cb..eca0f06 100644 --- a/sample-declarative-ui/shared/src/commonMain/kotlin/dev/icerock/moko/fields/sample/declarativeui/LoginViewModel.kt +++ b/sample-declarative-ui/shared/src/commonMain/kotlin/dev/icerock/moko/fields/sample/declarativeui/LoginViewModel.kt @@ -14,6 +14,7 @@ import dev.icerock.moko.fields.core.validations.notBlank import dev.icerock.moko.fields.flow.FormField import dev.icerock.moko.fields.flow.flowBlock import dev.icerock.moko.fields.flow.validations.fieldValidation +import dev.icerock.moko.fields.sample.declarativeui.shared.MR import dev.icerock.moko.mvvm.flow.CFlow import dev.icerock.moko.mvvm.flow.cFlow import dev.icerock.moko.mvvm.viewmodel.ViewModel diff --git a/sample-declarative-ui/shared/src/commonMain/resources/MR/base/strings.xml b/sample-declarative-ui/shared/src/commonMain/moko-resources/base/strings.xml similarity index 100% rename from sample-declarative-ui/shared/src/commonMain/resources/MR/base/strings.xml rename to sample-declarative-ui/shared/src/commonMain/moko-resources/base/strings.xml diff --git a/sample/ios-app/Podfile.lock b/sample/ios-app/Podfile.lock index 4fbf6a6..dcbbba8 100644 --- a/sample/ios-app/Podfile.lock +++ b/sample/ios-app/Podfile.lock @@ -13,4 +13,4 @@ SPEC CHECKSUMS: PODFILE CHECKSUM: 407e24455d8967c472bda10cdbc0fe637bc20d05 -COCOAPODS: 1.11.3 +COCOAPODS: 1.15.2 diff --git a/sample/ios-app/TestProj.xcodeproj/project.pbxproj b/sample/ios-app/TestProj.xcodeproj/project.pbxproj index 51dfc5c..5faf3d5 100644 --- a/sample/ios-app/TestProj.xcodeproj/project.pbxproj +++ b/sample/ios-app/TestProj.xcodeproj/project.pbxproj @@ -126,7 +126,7 @@ 287627FB1F319065007FA12B /* Sources */, 287627FC1F319065007FA12B /* Frameworks */, 287627FD1F319065007FA12B /* Resources */, - 1F30FEA104DFAFA202996FA6 /* [CP] Embed Pods Frameworks */, + 6B86E7EA430DB946E699CDFD /* [CP] Embed Pods Frameworks */, ); buildRules = ( ); @@ -187,7 +187,7 @@ /* End PBXResourcesBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */ - 1F30FEA104DFAFA202996FA6 /* [CP] Embed Pods Frameworks */ = { + 6B86E7EA430DB946E699CDFD /* [CP] Embed Pods Frameworks */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( diff --git a/sample/mpp-library/build.gradle.kts b/sample/mpp-library/build.gradle.kts index 8890cb3..269c38f 100644 --- a/sample/mpp-library/build.gradle.kts +++ b/sample/mpp-library/build.gradle.kts @@ -1,3 +1,6 @@ +import io.gitlab.arturbosch.detekt.Detekt +import java.util.Locale + /* * Copyright 2019 IceRock MAG Inc. Use of this source code is governed by the Apache 2.0 license. */ @@ -25,10 +28,12 @@ dependencies { commonMainApi(libs.mokoMvvmLiveData) commonMainApi(libs.mokoMvvmLiveDataResources) commonMainApi(projects.fieldsLivedata) + + iosMainImplementation(libs.parcelize) } multiplatformResources { - multiplatformResourcesPackage = "com.icerockdev.library" + resourcesPackage.set("com.icerockdev.library") } framework { diff --git a/sample/mpp-library/src/commonMain/resources/MR/base/strings.xml b/sample/mpp-library/src/commonMain/moko-resources/base/strings.xml similarity index 100% rename from sample/mpp-library/src/commonMain/resources/MR/base/strings.xml rename to sample/mpp-library/src/commonMain/moko-resources/base/strings.xml diff --git a/settings.gradle.kts b/settings.gradle.kts index c892581..1e0bd15 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -1,7 +1,6 @@ /* * Copyright 2019 IceRock MAG Inc. Use of this source code is governed by the Apache 2.0 license. */ -enableFeaturePreview("VERSION_CATALOGS") enableFeaturePreview("TYPESAFE_PROJECT_ACCESSORS") dependencyResolutionManagement {