Skip to content

Commit f28ea27

Browse files
committed
chore: Update basic logic
Bug: #21 Change-Id: Id06acb17bbf6f66115428884231cd81e0a166983
1 parent 18d4dfc commit f28ea27

20 files changed

Lines changed: 126 additions & 60 deletions

File tree

composeApp/src/androidMain/kotlin/app/icampuspass/AndroidApp.kt

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
package app.icampuspass
22

33
import android.app.Application
4-
import app.icampuspass.viewmodels.MainViewModel
4+
import app.icampuspass.viewmodels.GreetingScreenViewModel
5+
import app.icampuspass.viewmodels.MainScreenViewModel
56
import org.koin.dsl.module
67

78
class AndroidApp : Application() {
@@ -12,8 +13,12 @@ class AndroidApp : Application() {
1213
androidContext = this@AndroidApp,
1314
extraModules = listOf(
1415
module {
15-
factory<MainViewModel> {
16-
MainViewModel(appRepository = get())
16+
factory<GreetingScreenViewModel> {
17+
GreetingScreenViewModel()
18+
}
19+
20+
factory<MainScreenViewModel> {
21+
MainScreenViewModel()
1722
}
1823
}
1924
)

composeApp/src/androidMain/kotlin/app/icampuspass/views/screens/GreetingScreen.kt

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,18 +26,20 @@ import androidx.compose.ui.tooling.preview.Wallpapers.BLUE_DOMINATED_EXAMPLE
2626
import androidx.compose.ui.tooling.preview.Wallpapers.GREEN_DOMINATED_EXAMPLE
2727
import androidx.compose.ui.tooling.preview.Wallpapers.RED_DOMINATED_EXAMPLE
2828
import androidx.compose.ui.tooling.preview.Wallpapers.YELLOW_DOMINATED_EXAMPLE
29-
import app.icampuspass.Greeting
29+
import app.icampuspass.models.Greeting
3030
import app.icampuspass.composeapp.generated.resources.Res
3131
import app.icampuspass.composeapp.generated.resources.compose_multiplatform
32-
import app.icampuspass.viewmodels.MainViewModel
32+
import app.icampuspass.viewmodels.GreetingScreenViewModel
3333
import app.icampuspass.views.theme.Theme
3434
import org.jetbrains.compose.resources.painterResource
3535
import org.koin.androidx.compose.koinViewModel
3636

3737
@Composable
3838
fun GreetingScreen(
39-
viewModel: MainViewModel = koinViewModel()
40-
) = GreetingScreenContent()
39+
viewModel: GreetingScreenViewModel = koinViewModel()
40+
) {
41+
GreetingScreenContent()
42+
}
4143

4244
@Composable
4345
private fun GreetingScreenContent() {

composeApp/src/androidMain/kotlin/app/icampuspass/views/screens/MainScreen.kt

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,14 +10,16 @@ import androidx.compose.ui.tooling.preview.Wallpapers.BLUE_DOMINATED_EXAMPLE
1010
import androidx.compose.ui.tooling.preview.Wallpapers.GREEN_DOMINATED_EXAMPLE
1111
import androidx.compose.ui.tooling.preview.Wallpapers.RED_DOMINATED_EXAMPLE
1212
import androidx.compose.ui.tooling.preview.Wallpapers.YELLOW_DOMINATED_EXAMPLE
13-
import app.icampuspass.viewmodels.MainViewModel
13+
import app.icampuspass.viewmodels.MainScreenViewModel
1414
import app.icampuspass.views.theme.Theme
1515
import org.koin.androidx.compose.koinViewModel
1616

1717
@Composable
1818
fun MainScreen(
19-
viewModel: MainViewModel = koinViewModel()
20-
) = MainScreenContent()
19+
viewModel: MainScreenViewModel = koinViewModel()
20+
) {
21+
MainScreenContent()
22+
}
2123

2224
@Composable
2325
private fun MainScreenContent() {

composeApp/src/androidUnitTest/kotlin/app/icampuspass/ComposeAppAndroidUnitTest.kt renamed to composeApp/src/androidUnitTest/kotlin/app/icampuspass/tests/ComposeAppAndroidUnitTest.kt

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
1-
package app.icampuspass
1+
package app.icampuspass.tests
22

33
import kotlin.test.Test
44
import kotlin.test.assertEquals
55

66
class ComposeAppAndroidUnitTest {
7-
87
@Test
98
fun example() {
109
assertEquals(expected = 3, actual = 1 + 2)

iosApp/iosApp/ContentView.swift

Lines changed: 1 addition & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -4,33 +4,8 @@ import Shared
44
import SwiftUI
55

66
struct ContentView: View {
7-
@StateViewModel var viewModel = MainViewModel(
8-
appRepository: KoinDependencies().appRepository
9-
)
10-
11-
@State private var showContent = false
12-
137
var body: some View {
14-
VStack {
15-
Button("Click me!") {
16-
withAnimation {
17-
showContent = !showContent
18-
}
19-
}
20-
21-
if showContent {
22-
VStack(spacing: 16) {
23-
Image(systemName: "swift")
24-
.font(.system(size: 200))
25-
.foregroundColor(.accentColor)
26-
27-
Text("SwiftUI: \(Greeting().greet())")
28-
}
29-
.transition(.move(edge: .top).combined(with: .opacity))
30-
}
31-
}
32-
.frame(maxWidth: .infinity, maxHeight: .infinity, alignment: .top)
33-
.padding()
8+
GreetingScreen()
349
}
3510
}
3611

File renamed without changes.
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
import KMPNativeCoroutinesAsync
2+
import KMPObservableViewModelSwiftUI
3+
import Shared
4+
import SwiftUI
5+
6+
struct GreetingScreen: View {
7+
@StateViewModel var viewModel = GreetingScreenViewModel()
8+
9+
@State private var showContent = false
10+
11+
var body: some View {
12+
VStack {
13+
Button("Click me!") {
14+
withAnimation {
15+
showContent = !showContent
16+
}
17+
}
18+
19+
if showContent {
20+
VStack(spacing: 16) {
21+
Image(systemName: "swift")
22+
.font(.system(size: 200))
23+
.foregroundColor(.accentColor)
24+
25+
Text("SwiftUI: \(Greeting().greet())")
26+
}
27+
.transition(.move(edge: .top).combined(with: .opacity))
28+
}
29+
}
30+
.frame(maxWidth: .infinity, maxHeight: .infinity, alignment: .top)
31+
.padding()
32+
}
33+
}
34+
35+
struct GreetingScreen_Previews: PreviewProvider {
36+
static var previews: some View {
37+
GreetingScreen()
38+
}
39+
}
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
import KMPNativeCoroutinesAsync
2+
import KMPObservableViewModelSwiftUI
3+
import Shared
4+
import SwiftUI
5+
6+
struct MainScreen: View {
7+
@StateViewModel var viewModel = MainScreenViewModel()
8+
9+
var body: some View {
10+
}
11+
}
12+
13+
struct MainScreen_Previews: PreviewProvider {
14+
static var previews: some View {
15+
MainScreen()
16+
}
17+
}

shared/src/androidMain/kotlin/app/icampuspass/Platform.android.kt renamed to shared/src/androidMain/kotlin/app/icampuspass/models/Platform.android.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package app.icampuspass
1+
package app.icampuspass.models
22

33
import android.os.Build
44

shared/src/commonMain/kotlin/app/icampuspass/Koin.kt

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,27 @@
11
package app.icampuspass
22

3+
import app.icampuspass.models.UserAccountRepository
4+
import app.icampuspass.models.UserRepository
35
import app.icampuspass.models.database.DatabaseHelper
46
import org.koin.core.context.startKoin
57
import org.koin.core.module.Module
68
import org.koin.dsl.module
79

810
val commonModule = module {
9-
single<AppRepository> {
10-
AppRepository().apply {
11+
single<DatabaseHelper> {
12+
DatabaseHelper(driverFactory = get())
13+
}
14+
15+
single<UserAccountRepository> {
16+
UserAccountRepository().apply {
1117
init()
1218
}
1319
}
1420

15-
single<DatabaseHelper> {
16-
DatabaseHelper(driverFactory = get())
21+
single<UserRepository> {
22+
UserRepository().apply {
23+
init()
24+
}
1725
}
1826
}
1927

0 commit comments

Comments
 (0)