- Added wasm target.
- Added
INITIALIZED
state forPmLifecycle
. - Update libraries:
- Kotlin 1.9.23
- Compose Multiplatform 1.6.1
- kotlinx-coroutines 1.8.0
- kotlinx-serialization 1.6.3
- Fixed
DialogGroupNavigator
andDialogGroupNavigationHost
. - Removed sender tag from
PmMessage
.PmMessage
is the interface again.
- Published new module for PM testing:
premo-test
. UserunPmTest
to test a presentation and navigation logic. - Added new methods to send PM messages:
sendToTarget
andsendToChildren
. Added sender tag toPmMessage
(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
. - Used
Dispatchers.Main.immediate
for PM scopes now. - Added
PmStateHandler.setSaved
. - Fixed compatibility with java 1.8.
- Removed
PmDescription
andPmParams
. Instead, usePmArgs
to pass serializable arguments to thePresentationModel
. - Added
NoPmStateSaver
andNoPmStateSaverFactory
. - Added
oldState
parameter toPmLifecycle.Observer
- Kotlin is updated to 1.9.21.
- Published new module:
premo-navigation-compose
. - Removed
showForResult
fromDialogNavigator
because this way of waiting the result is not persistent. - Removed
sendResult
fromDialogNavigator
. The right way to send a result is using PM messages. - Kotlin is updated to 1.9.0.
- Published new module:
premo-saver-json
. - Implemented
DialogGroupNavigation
for showing a group of dialogs. - Implemented new PM delegates:
IosPmDelegate
,JvmPmDelegate
,JsPmDelegate
,AndroidPmDelegate
. - Removed
PmActivityDelegate
andPremo
. UseAndroidPmDelegate
directly in the Activity. - Removed
PmLifecycle.Event
. - Lots of improvements in navigators and state savers.
PmActivity
is interface now. You need to callPremo.init()
in the Android app'sonCreate
.- 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.
- Added
iosSimulatorArm64
target. - Implemented
DialogNavigator
. - Fixed
currentTopFlow
property ofStackNavigator
. - Added default back handling for
SetNavigator
. - A bit of refactoring: improved extensions for navigators.
- Kotlin is updated to 1.7.20.
- Fixed the desktop sample.
- Removed
SystemBackMessage
. UseBackMessage
instead. - A bit of refactoring: renaming and using SAM interface.
Added commands for StackNavigator
:
- popToRoot
- popUntil
- replaceTop
- replaceAll
- Abstraction level support for implementing state persistence in different formats (Json, ProtoBuf, Parcelable) #6.
- Added
PmStateSaverFactory
andBundleStateSaver
.
- Added JS target.
- Implemented the sample for Web with Compose Multiplatform.
- Added JVM target.
- Implemented the sample for desktop with Compose Multiplatform.
Premo
- Kotlin is updated to 1.6.0.
- Migrated to the new memory model.
Premo-navigation
MasterDetailNavigator
— implements adaptive navigation for Master-Detail views.
First public release:
Premo
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.
Premo-navigation
StackNavigator
— allows you to organize a back stack of the Presentation Models.SetNavigator
— used to implement bottom navigation.