草庐IT

MVIKotlin

全部标签

MVIKotlin学习笔记(4):状态保存与日志记录

状态保存有时为了以后恢复状态,保存一个状态是有必要的。一个十分常见的使用情况是由于配置更改或进程结束而重新创建的安卓Activity。如果是一个纯安卓项目(不是多平台),可以直接使用AndroidX的SavedStateRegistry。对于多平台项目,可以使用Essenty库中的StateKeeper。保留对象另一种使用情况是在作用域重新创建后保留对象实例,这在安卓的配置发生变化时很常见。如果是一个纯安卓项目(不是多平台),可以直接使用AndroidX的ViewModelStore和ViewModelProvider。对于多平台项目,可以使用Essenty库中的InstanceKeeper。

MVIKotlin学习笔记(4):状态保存与日志记录

状态保存有时为了以后恢复状态,保存一个状态是有必要的。一个十分常见的使用情况是由于配置更改或进程结束而重新创建的安卓Activity。如果是一个纯安卓项目(不是多平台),可以直接使用AndroidX的SavedStateRegistry。对于多平台项目,可以使用Essenty库中的StateKeeper。保留对象另一种使用情况是在作用域重新创建后保留对象实例,这在安卓的配置发生变化时很常见。如果是一个纯安卓项目(不是多平台),可以直接使用AndroidX的ViewModelStore和ViewModelProvider。对于多平台项目,可以使用Essenty库中的InstanceKeeper。

MVIKotlin学习笔记(3):View、Binding和Lifecycle

View在实现Views时并不需要遵循什么特别指南,尽管MVIKotlin提供的东西可能会很有用。在MVIKotlin中有两个有关View的接口:ViewRenderer使用并渲染``Models。ViewEvents生产Events。还有一个MviView接口,它不过是同时包含了ViewRenderer和ViewEvents接口。通常不需要直接实现MviView接口,可以通过继承BaseMviView类来实现。如果使用的是JetpackCompose,那么很有可能你不需要用到MviView或它的其他超类。你可以直接在@Composable函数中监听Store。详情参阅ComposeTodoA

MVIKotlin学习笔记(3):View、Binding和Lifecycle

View在实现Views时并不需要遵循什么特别指南,尽管MVIKotlin提供的东西可能会很有用。在MVIKotlin中有两个有关View的接口:ViewRenderer使用并渲染``Models。ViewEvents生产Events。还有一个MviView接口,它不过是同时包含了ViewRenderer和ViewEvents接口。通常不需要直接实现MviView接口,可以通过继承BaseMviView类来实现。如果使用的是JetpackCompose,那么很有可能你不需要用到MviView或它的其他超类。你可以直接在@Composable函数中监听Store。详情参阅ComposeTodoA

MVIKotlin学习笔记(5):时间旅行

时间旅行时间旅行是一个强大的调试工具,它允许你记录所有来自活跃的Stores的事件和状态。当事件被记录后你可以浏览、重演和调试它。它的核心功能是多平台,被所有支持目标实现。然而,一些特定的功能只能在特定的平台上使用。时间旅行是一种调试工具,它可能会影响性能。理想情况下它不应该在生产环境中使用。启动并使用时间旅行有三个主要步骤:向所有Store的工厂提供一个time-travel-aware,这是StoreFactory的变体。在app上运行时间旅行服务端。使用客户端连接服务端并使用它。提供一个StoreFactory用于时间旅行TimeTravelStoreFactory用于创建Store的实

MVIKotlin学习笔记(5):时间旅行

时间旅行时间旅行是一个强大的调试工具,它允许你记录所有来自活跃的Stores的事件和状态。当事件被记录后你可以浏览、重演和调试它。它的核心功能是多平台,被所有支持目标实现。然而,一些特定的功能只能在特定的平台上使用。时间旅行是一种调试工具,它可能会影响性能。理想情况下它不应该在生产环境中使用。启动并使用时间旅行有三个主要步骤:向所有Store的工厂提供一个time-travel-aware,这是StoreFactory的变体。在app上运行时间旅行服务端。使用客户端连接服务端并使用它。提供一个StoreFactory用于时间旅行TimeTravelStoreFactory用于创建Store的实

MVIKotlin学习笔记(2):Store

StoreStore用来写业务逻辑。在MVIKotlin中用Store接口表示。接口特性三个参数:输入Intent、输出State、Label。属性state返回当前Store的State。可以在任何线程实例化。函数states(Observer)用于订阅State的更新。订阅时他会发出Store的State。可以在任何线程调用。States总是在主线程上发出。函数labels(Observer)用于订阅Labels。可以在任何线程调用。Labels总是在主线程上发出。函数accept(Intent)用于给Store补给Intents。只能在主线程调用。函数init()用于初始化Store。如

MVIKotlin学习笔记(2):Store

StoreStore用来写业务逻辑。在MVIKotlin中用Store接口表示。接口特性三个参数:输入Intent、输出State、Label。属性state返回当前Store的State。可以在任何线程实例化。函数states(Observer)用于订阅State的更新。订阅时他会发出Store的State。可以在任何线程调用。States总是在主线程上发出。函数labels(Observer)用于订阅Labels。可以在任何线程调用。Labels总是在主线程上发出。函数accept(Intent)用于给Store补给Intents。只能在主线程调用。函数init()用于初始化Store。如