diff --git a/CHANGELOG.md b/CHANGELOG.md index 4a685afc..2d1b34c8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,14 @@ +# 1.0.0-alpha.09 / 18.05.2023 +- `PmActivity` is interface now. You need to call `Premo.init()` in the Android app's `onCreate`. +- Added list of removed PMs to `BackStackChange`. +- Added a method to replace values for `SetNavigator`. +- Fixed: Detach a dialog's PM after sending result. +- Kotlin is updated to 1.8.20. +- Added React Sample. +- Added Compose Sample for iOS and Web. + # 1.0.0-alpha.08 / 16.12.2022 -- Add `iosSimulatorArm64` target. +- Added `iosSimulatorArm64` target. - Implemented `DialogNavigator`. - Fixed `currentTopFlow` property of `StackNavigator`. - Added default back handling for `SetNavigator`. @@ -20,7 +29,7 @@ Added commands for `StackNavigator`: # 1.0.0-alpha.05 / 09.05.2022 - Abstraction level support for implementing state persistence in different formats (Json, ProtoBuf, Parcelable) #6. -- Added PmStateSaverFactory and BundleStateSaver. +- Added `PmStateSaverFactory` and `BundleStateSaver`. # 1.0.0-alpha.04 / 02.01.2022 - Added JS target. diff --git a/README.md b/README.md index fdac6fff..5826be80 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,7 @@ ![platform-jvm](https://img.shields.io/badge/platform-jvm-orange) ![platform-js](https://img.shields.io/badge/platform-js-yellow) -Premo is a Kotlin Multiplatform library that helps you implement the Presentation Layer and share it on Android, iOS, Desktop and Web. Focus on writing logic instead of solving common and boring UI related issues. +Premo is a Kotlin Multiplatform library that helps to implement the Presentation Layer and share it on Android, iOS, Desktop and Web. Focus on writing logic instead of solving common and boring UI related issues. Here are some key features: - **State holding** — PresentationModel is a multiplatform version of the ViewModel. @@ -16,16 +16,15 @@ Here are some key features: - **Persistence** — saving and restoring state after recreating a process. - **Communication** — send messages from children towards the root PresentationModel. -At the same time, the library provides freedom of choice: +At the same time, the library does not depend on: - **Architecture** — MVVM, PM, MVI or other. -- **UI** — Jetpack Compose for Android and SwiftUI for iOS. +- **UI** — Compose, SwiftUI, UIKit, React and other. -## Table of Contents - -- [Overview](#overview) -- [Installation](#installation) -- [Sample](#sample) -- [License](#license) +Navigation module implements the following commonly used navigators: +- [`StackNavigator`](/premo-navigation/src/commonMain/kotlin/me/dmdev/premo/navigation/StackNavigator.kt) — organizes child presentation models in a stack and navigate between them. +- [`SetNavigator`](/premo-navigation/src/commonMain/kotlin/me/dmdev/premo/navigation/SetNavigator.kt) — can be used for tabs, bottom navigation, navigation drawer. +- [`MasterDetailNavigator`](/premo-navigation/src/commonMain/kotlin/me/dmdev/premo/navigation/MasterDetailNavigator.kt) — allows to implement an adaptive layout to show one pane or two panes side-by-side. +- [`DialogNavigator`](/premo-navigation/src/commonMain/kotlin/me/dmdev/premo/navigation/DialogNavigator.kt) — helps to show a dialog and wait for the result from it ## Overview @@ -79,9 +78,8 @@ You will also need [kotlinx serialization](https://github.com/Kotlin/kotlinx.ser [Sample](https://github.com/dmdevgo/Premo/tree/master/sample) demonstrates: - Sharing presentation logic between Android, iOS, Desktop and Web. -- Sharing Compose UI between Android and Desktop. -- UI on Compose and SwiftUI. -- Using StateFlow to implement MVVM (PM). +- Sharing Compose UI between Android, iOS, Desktop and Web. +- UI on Compose Multiplatform, SwiftUI, React, Compose for Html. - Simple Counter. - Stack navigation. - Bottom navigation with multistack. diff --git a/buildSrc/src/main/kotlin/Premo.kt b/buildSrc/src/main/kotlin/Premo.kt index a162ab2c..af665d95 100644 --- a/buildSrc/src/main/kotlin/Premo.kt +++ b/buildSrc/src/main/kotlin/Premo.kt @@ -25,7 +25,7 @@ object Premo { const val groupId = "me.dmdev.premo" - const val version = "1.0.0-alpha.08" + const val version = "1.0.0-alpha.09" const val description = "Premo helps you implement the presentation layer and share it on iOS and Android." const val url = "https://github.com/dmdevgo/Premo" diff --git a/premo-navigation/build.gradle.kts b/premo-navigation/build.gradle.kts index bd1696c7..684d5177 100644 --- a/premo-navigation/build.gradle.kts +++ b/premo-navigation/build.gradle.kts @@ -50,7 +50,7 @@ kotlin { val commonMain by getting { dependencies { - compileOnly(project(":premo")) + api(project(":premo")) } }