Skip to content

Commit 2217698

Browse files
committed
Add iOS Compose MP screen
1 parent d80ac10 commit 2217698

File tree

4 files changed

+39
-1
lines changed

4 files changed

+39
-1
lines changed

sample/iosApp/KMPObservableViewModelSample.xcodeproj/project.pbxproj

+4
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
1DCF89AB2933929400A4C54A /* KMPObservableViewModelSwiftUI in Frameworks */ = {isa = PBXBuildFile; productRef = 1DCF89AA2933929400A4C54A /* KMPObservableViewModelSwiftUI */; };
1818
1DDAF2202935470A0049C114 /* KMPObservableViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1DDAF21F2935470A0049C114 /* KMPObservableViewModel.swift */; };
1919
1DDAF222293548A60049C114 /* TimeTravelViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1DDAF221293548A60049C114 /* TimeTravelViewModel.swift */; };
20+
1DF227B02C2856BC00D8B3A7 /* ContentViewMP.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1DF227AF2C2856BC00D8B3A7 /* ContentViewMP.swift */; };
2021
/* End PBXBuildFile section */
2122

2223
/* Begin PBXContainerItemProxy section */
@@ -51,6 +52,7 @@
5152
1DCF89A82933928600A4C54A /* KMP-ObservableViewModel */ = {isa = PBXFileReference; lastKnownFileType = wrapper; name = "KMP-ObservableViewModel"; path = ../..; sourceTree = "<group>"; };
5253
1DDAF21F2935470A0049C114 /* KMPObservableViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMPObservableViewModel.swift; sourceTree = "<group>"; };
5354
1DDAF221293548A60049C114 /* TimeTravelViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TimeTravelViewModel.swift; sourceTree = "<group>"; };
55+
1DF227AF2C2856BC00D8B3A7 /* ContentViewMP.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentViewMP.swift; sourceTree = "<group>"; };
5456
/* End PBXFileReference section */
5557

5658
/* Begin PBXFrameworksBuildPhase section */
@@ -110,6 +112,7 @@
110112
1D44EF7D292C066C00465C43 /* Preview Content */,
111113
1DDAF21F2935470A0049C114 /* KMPObservableViewModel.swift */,
112114
1DDAF221293548A60049C114 /* TimeTravelViewModel.swift */,
115+
1DF227AF2C2856BC00D8B3A7 /* ContentViewMP.swift */,
113116
);
114117
path = KMPObservableViewModelSample;
115118
sourceTree = "<group>";
@@ -314,6 +317,7 @@
314317
1DDAF2202935470A0049C114 /* KMPObservableViewModel.swift in Sources */,
315318
1DDAF222293548A60049C114 /* TimeTravelViewModel.swift in Sources */,
316319
1D44EF7A292C066B00465C43 /* ContentView.swift in Sources */,
320+
1DF227B02C2856BC00D8B3A7 /* ContentViewMP.swift in Sources */,
317321
1D44EF78292C066B00465C43 /* KMPObservableViewModelSampleApp.swift in Sources */,
318322
);
319323
runOnlyForDeploymentPostprocessing = 0;
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
//
2+
// ContentViewMP.swift
3+
// KMPObservableViewModelSample
4+
//
5+
// Created by Rick Clephas on 23/06/2024.
6+
//
7+
8+
import SwiftUI
9+
import KMPObservableViewModelSampleShared
10+
11+
struct ContentViewMP: UIViewControllerRepresentable {
12+
13+
@StateObject var viewModel = TimeTravelViewModel()
14+
15+
func makeUIViewController(context: Context) -> some UIViewController {
16+
TimeTravelViewControllerKt.TimeTravelViewController(viewModel: viewModel)
17+
}
18+
19+
func updateUIViewController(_ uiViewController: UIViewControllerType, context: Context) {
20+
21+
}
22+
}

sample/iosApp/KMPObservableViewModelSample/KMPObservableViewModelSampleApp.swift

+3-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,9 @@ struct KMPObservableViewModelSampleApp: App {
1313
var body: some Scene {
1414
WindowGroup {
1515
NavigationStack {
16-
NavigationLink("GO!", destination: ContentView())
16+
NavigationLink("SwiftUI", destination: ContentView())
17+
Spacer().frame(height: 24)
18+
NavigationLink("Compose MP", destination: ContentViewMP())
1719
}
1820
}
1921
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
package com.rickclephas.kmp.observableviewmodel.sample.shared
2+
3+
import androidx.compose.material.MaterialTheme
4+
import androidx.compose.ui.window.ComposeUIViewController
5+
6+
fun TimeTravelViewController(viewModel: TimeTravelViewModel) = ComposeUIViewController {
7+
MaterialTheme {
8+
TimeTravelScreen(viewModel)
9+
}
10+
}

0 commit comments

Comments
 (0)