dmdevgo/Premo
Premo helps to implement the presentation layer and share it on Android, iOS, Desktop and Web.
15 Releases
Latest: 2y ago
1.0.0-alpha.15Latest
📋 Changes
- Added `wasm` target.
- Added `INITIALIZED` state for `PmLifecycle`.
- Update libraries:
- Kotlin 1.9.23
- Compose Multiplatform 1.6.1
- kotlinx-coroutines 1.8.0
- kotlinx-serialization 1.6.3
1.0.0-alpha.14
📋 Changes
- Fixed `DialogGroupNavigator` and `DialogGroupNavigationHost`.
- Removed sender tag from `PmMessage`.`PmMessage` is the interface again.
1.0.0-alpha.13
📋 Changes
- Published new module for PM testing: `premo-test`. Use `runPmTest` to test a presentation and navigation logic.
- Added new methods to send PM messages: `sendToTarget` and `sendToChildren`. Added sender tag to `PmMessage` (now it is abstract class).
- Added navigation hosts interfaces: `StackNavigationMost`, `SetNavigationHost`, `DialogGroupNavigationHost`, `DialogNavigationHost`, `MasterDetailNavigationHost`.
- Added new extensions for `PmLifecycle`: `doOnCreate`, `doOnForeground`, `doOnBackground`, `doOnDestroy`.
- Added errors handler for delegates `onSaveOrRestoreStateError`.
- Added extension `JvmPmDelegate<*>.attachWindowLifecycle` for desktop.
- Added `DialogNavigator`.
- Added `SingleStatePresentationModel`.
- + 3 more
1.0.0-alpha.12
📋 Changes
- Removed `PmDescription` and `PmParams`. Instead, use `PmArgs` to pass serializable arguments to the `PresentationModel`.
- Added `NoPmStateSaver` and `NoPmStateSaverFactory`.
- Added `oldState` parameter to `PmLifecycle.Observer`
- Kotlin is updated to 1.9.21.
1.0.0-alpha.11
📋 Changes
- Published new module: `premo-navigation-compose`.
- Removed `showForResult` from `DialogNavigator` because this way of waiting the result is not persistent.
- Removed `sendResult` from `DialogNavigator`. The right way to send a result is using PM messages.
- Kotlin is updated to 1.9.0.
1.0.0-alpha.10
📋 Changes
- Published new module: `premo-saver-json`.
- Implemented `DialogGroupNavigation` for showing a group of dialogs.
- Implemented new PM delegates: `IosPmDelegate`, `JvmPmDelegate`, `JsPmDelegate`, `AndroidPmDelegate`.
- Removed `PmActivityDelegate` and `Premo`. Use `AndroidPmDelegate` directly in the Activity.
- Removed `PmLifecycle.Event`.
- Lots of improvements in navigators and state savers.
1.0.0-alpha.09
📋 Changes
- `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
📋 Changes
- Add `iosSimulatorArm64` target.
- Implemented `DialogNavigator`.
- Fixed `currentTopFlow` property of `StackNavigator`.
- Added default back handling for `SetNavigator`.
- A bit of refactoring: improved extensions for navigators.
1.0.0-alpha.07
📋 Changes
- Kotlin is updated to 1.7.20.
- Fixed the desktop sample.
- Removed `SystemBackMessage`. Use `BackMessage` instead.
- A bit of refactoring: renaming and using SAM interface.
1.0.0-alpha.06
📋 Changes
- popToRoot
- popUntil
- replaceTop
- replaceAll
1.0.0-alpha.05
📋 Changes
- Abstraction level support for implementing state persistence in different formats (Json, ProtoBuf, Parcelable) #6.
- Added PmStateSaverFactory and BundleStateSaver.
1.0.0-alpha.04
📋 Changes
- Added JS target.
- Implemented the sample for Web with Compose Multiplatform.
1.0.0-alpha.03
📋 Changes
- Added JVM target.
- Implemented the sample for desktop with Compose Multiplatform.
1.0.0-alpha.02
📋 Changes
- Kotlin is updated to 1.6.0.
- Migrated to the new memory model.
- `MasterDetailNavigator` — implements adaptive navigation for Master-Detail views.
1.0.0-alpha.01
📋 Changes
- `PresentationModel` — the base class for placing presentation logic.
- `PmLifecycle` — represents the lifecycle of the Presentation Model.
- `PmMessageHandler` — provide communication of Presentation Models. Allows you to send a message from the child Presentation Model towards the root Presentation Model.
- `PmStateHandler` — handles the saved state of the Presentation Model.
- `StackNavigator` — allows you to organize a back stack of the Presentation Models.
- `SetNavigator` — used to implement bottom navigation.
