diff --git a/README.md b/README.md index d5203c3..22e5dde 100755 --- a/README.md +++ b/README.md @@ -50,25 +50,25 @@ allprojects { project build.gradle ```groovy dependencies { - commonMainApi("dev.icerock.moko:mvvm-core:0.16.0") // only ViewModel, EventsDispatcher, Dispatchers.UI - commonMainApi("dev.icerock.moko:mvvm-flow:0.16.0") // api mvvm-core, CFlow for native and binding extensions - commonMainApi("dev.icerock.moko:mvvm-livedata:0.16.0") // api mvvm-core, LiveData and extensions - commonMainApi("dev.icerock.moko:mvvm-state:0.16.0") // api mvvm-livedata, ResourceState class and extensions - commonMainApi("dev.icerock.moko:mvvm-livedata-resources:0.16.0") // api mvvm-core, moko-resources, extensions for LiveData with moko-resources - commonMainApi("dev.icerock.moko:mvvm-flow-resources:0.16.0") // api mvvm-core, moko-resources, extensions for Flow with moko-resources + commonMainApi("dev.icerock.moko:mvvm-core:0.16.1") // only ViewModel, EventsDispatcher, Dispatchers.UI + commonMainApi("dev.icerock.moko:mvvm-flow:0.16.1") // api mvvm-core, CFlow for native and binding extensions + commonMainApi("dev.icerock.moko:mvvm-livedata:0.16.1") // api mvvm-core, LiveData and extensions + commonMainApi("dev.icerock.moko:mvvm-state:0.16.1") // api mvvm-livedata, ResourceState class and extensions + commonMainApi("dev.icerock.moko:mvvm-livedata-resources:0.16.1") // api mvvm-core, moko-resources, extensions for LiveData with moko-resources + commonMainApi("dev.icerock.moko:mvvm-flow-resources:0.16.1") // api mvvm-core, moko-resources, extensions for Flow with moko-resources // compose multiplatform - commonMainApi("dev.icerock.moko:mvvm-compose:0.16.0") // api mvvm-core, getViewModel for Compose Multiplatfrom - commonMainApi("dev.icerock.moko:mvvm-flow-compose:0.16.0") // api mvvm-flow, binding extensions for Compose Multiplatfrom - commonMainApi("dev.icerock.moko:mvvm-livedata-compose:0.16.0") // api mvvm-livedata, binding extensions for Compose Multiplatfrom - - androidMainApi("dev.icerock.moko:mvvm-livedata-material:0.16.0") // api mvvm-livedata, Material library android extensions - androidMainApi("dev.icerock.moko:mvvm-livedata-glide:0.16.0") // api mvvm-livedata, Glide library android extensions - androidMainApi("dev.icerock.moko:mvvm-livedata-swiperefresh:0.16.0") // api mvvm-livedata, SwipeRefreshLayout library android extensions - androidMainApi("dev.icerock.moko:mvvm-databinding:0.16.0") // api mvvm-livedata, DataBinding support for Android - androidMainApi("dev.icerock.moko:mvvm-viewbinding:0.16.0") // api mvvm-livedata, ViewBinding support for Android + commonMainApi("dev.icerock.moko:mvvm-compose:0.16.1") // api mvvm-core, getViewModel for Compose Multiplatfrom + commonMainApi("dev.icerock.moko:mvvm-flow-compose:0.16.1") // api mvvm-flow, binding extensions for Compose Multiplatfrom + commonMainApi("dev.icerock.moko:mvvm-livedata-compose:0.16.1") // api mvvm-livedata, binding extensions for Compose Multiplatfrom + + androidMainApi("dev.icerock.moko:mvvm-livedata-material:0.16.1") // api mvvm-livedata, Material library android extensions + androidMainApi("dev.icerock.moko:mvvm-livedata-glide:0.16.1") // api mvvm-livedata, Glide library android extensions + androidMainApi("dev.icerock.moko:mvvm-livedata-swiperefresh:0.16.1") // api mvvm-livedata, SwipeRefreshLayout library android extensions + androidMainApi("dev.icerock.moko:mvvm-databinding:0.16.1") // api mvvm-livedata, DataBinding support for Android + androidMainApi("dev.icerock.moko:mvvm-viewbinding:0.16.1") // api mvvm-livedata, ViewBinding support for Android - commonTestImplementation("dev.icerock.moko:mvvm-test:0.16.0") // test utilities + commonTestImplementation("dev.icerock.moko:mvvm-test:0.16.1") // test utilities } ``` @@ -78,10 +78,10 @@ kotlin { // export correct artifact to use all classes of library directly from Swift targets.withType(org.jetbrains.kotlin.gradle.plugin.mpp.KotlinNativeTarget::class.java).all { binaries.withType(org.jetbrains.kotlin.gradle.plugin.mpp.Framework::class.java).all { - export("dev.icerock.moko:mvvm-core:0.16.0") - export("dev.icerock.moko:mvvm-livedata:0.16.0") - export("dev.icerock.moko:mvvm-livedata-resources:0.16.0") - export("dev.icerock.moko:mvvm-state:0.16.0") + export("dev.icerock.moko:mvvm-core:0.16.1") + export("dev.icerock.moko:mvvm-livedata:0.16.1") + export("dev.icerock.moko:mvvm-livedata-resources:0.16.1") + export("dev.icerock.moko:mvvm-state:0.16.1") } } } @@ -97,7 +97,7 @@ generation enabled. All `LiveData` to `UIView` bindings is extensions for UI ele To use MOKO MVVM with SwiftUI set name of your kotlin framework to `MultiPlatformLibrary` and add dependency to CocoaPods: ```ruby -pod 'mokoMvvmFlowSwiftUI', :podspec => 'https://raw.githubusercontent.com/icerockdev/moko-mvvm/release/0.16.0/mokoMvvmFlowSwiftUI.podspec' +pod 'mokoMvvmFlowSwiftUI', :podspec => 'https://raw.githubusercontent.com/icerockdev/moko-mvvm/release/0.16.1/mokoMvvmFlowSwiftUI.podspec' ``` required export of `mvvm-core` and `mvvm-flow`. diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index e85750d..b312c56 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -4,7 +4,7 @@ androidLifecycleVersion = "2.6.1" coroutinesVersion = "1.6.4" mokoResourcesVersion = "0.21.1" mokoTestVersion = "0.6.1" -mokoMvvmVersion = "0.16.0" +mokoMvvmVersion = "0.16.1" mokoKSwiftVersion = "0.6.1" composeVersion = "1.4.0" composeJetBrainsVersion = "1.3.1" diff --git a/mokoMvvmFlowSwiftUI.podspec b/mokoMvvmFlowSwiftUI.podspec index dd1b1ab..2d48929 100644 --- a/mokoMvvmFlowSwiftUI.podspec +++ b/mokoMvvmFlowSwiftUI.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = 'mokoMvvmFlowSwiftUI' - s.version = '0.16.0' + s.version = '0.16.1' s.summary = 'MOKO MVVM SwiftUI additions for Flow' s.description = 'some description here' s.homepage = 'localhost' diff --git a/mvvm-flow/apple/xcode/mokoMvvmFlowSwiftUI/CFlowExt.swift b/mvvm-flow/apple/xcode/mokoMvvmFlowSwiftUI/CFlowExt.swift index 62306de..82a7781 100644 --- a/mvvm-flow/apple/xcode/mokoMvvmFlowSwiftUI/CFlowExt.swift +++ b/mvvm-flow/apple/xcode/mokoMvvmFlowSwiftUI/CFlowExt.swift @@ -31,8 +31,10 @@ private class CFlowSubscription: Subscription init(flow: CFlow, subscriber: S) { self.subscriber = subscriber - self.disposable = flow.subscribe { value in - let _ = subscriber.receive(value!) + // TRICKY: `as! CFlow` cast here, and `as! Output` cast below, combine + // to work around https://github.com/apple/swift/issues/65331 + self.disposable = (flow as! CFlow).subscribe { value in + let _ = subscriber.receive(value as! Output) } }