Common:
Arch: 
About Summer
Summer is a presentation level library with kotlin-multiplatform support. It can be used to share viewModels between iOS, Android and Web apps.
Summer does not use code generation and thus have not significant effort on compilation time and odd build-time errors.
Project aims to have out-of-box support of Android Framework, Jetpack Compose, UIKit and SwiftUI without any adapters and platform-specific limitations.
Example of feature written using Summer:
Common, Kotlin Multiplatform:
Android Framework, Kotlin:
: (R.layout.news_fragment), NewsView {
viewModel viewModels<NewsViewModel>()
{
.onActivityCreated(savedInstanceState)
viewModel.bindView { }
}
isLoading: didSet {
progressBar.isVisible = isLoading
}
news: String didSet {
newsView.text = news
}
toAuth: () -> = {
}
}
BaseViewController (Subject of change)
UIKit, Swift:
Jetpack Compose, Kotlin:
@Composable
fun NewsUI() {
viewModel = viewModel<NewsViewModel>()
view = viewModel.bind( : NewsView {
isLoading: remember { mutableStateOf() }
news: String remember { mutableStateOf() }
toAuth: () -> = {
}
})
(!view.isLoading) {
Text(view.news)
} {
CircularProgressIndicator()
}
}
SwiftUI, Swift:
Intellij IDEA / Android Studio plugin
Plugin page
Gradle dependencies:
allprojects {
repositories {
mavenCentral()
}
}
dependencies {
implementation("com.github.adevone.summer:summer:1.0.0-beta11")
implementation("com.github.adevone.summer:summer-arch-lifecycle:1.0.0-beta11")
implementation("com.github.adevone.summer:summer-android-support:1.0.0-beta11")
}