MVIKotlin

2025-12-11 0 588

维护通知

该存储库不保留。 Arkadii Ivanov继续在叉子Arkivanov/ MVIKotlin上工作。

灵感

该项目的灵感来自Badoo Mvicore图书馆。

概述

如果您有任何疑问或想法,请欢迎来到Slack频道: MVIKotlin

什么是MVI

MVI代表模型视图。这是一种利用单向数据流的架构模式。数据仅在ModelView之间循环 – 从ModelView ,从ViewModel

什么是MVIKotlin

MVIKotlin是一个Kotlin Multiplatform框架,它提供了一种(不仅)使用MVI模式编写共享代码的方法。它还包括强大的调试工具,例如记录和时间旅行。框架的主要功能不取决于任何反应性和珊瑚色库。 Reaktive和Coroutines库的扩展名为单独的模块。

责任

MVIKotlin不会带来或执行任何特定的体系结构。它的责任可以描述如下:

  • 要为State提供单一的真实来源(未定义范围,它可以是整个应用程序,屏幕,功能或功能的一部分);
  • 为了提供有效更新的UI抽象(但这不是必须的,您可以使用任何想要的东西);
  • 为了在输入和输出之间提供生命周期意识的连接(绑定)(同样,这在任何方面都不是必不可少的)。

其他所有内容都超出了库的范围,没有针对“屏幕”,“功能”,“模块”等的定义。另外,没有执行/暴露的特定反应框架。这具有很大的灵活性:

  • 可以逐步引入MVIKotlin (例如,您可以在小功能中开始使用它,然后逐渐扩展);
  • 您可以使用/实验不同的体系结构,方法和/或库进行导航,UI,模块化等;
  • 使用您喜欢的任何反应性框架或根本不使用它。

您可以在样本中找到一个体系结构选项。同样,这只是一个可能的解决方案的一个示例。

设置

推荐的最低gradle版本为5.3。请先阅读有关元数据发布模式的文档。

Maven Central发表了许多模块:

  • MVIKotlin核心接口和功能(乘法图)
  • MVIKotlin -main具有默认Store实现(mutiplatform)的主模块
  • MVIKotlin -logging记录功能(mutiplatform)
  • MVIKotlin -timetravel时间旅行功能(mutiplatform)
  • MVIKotlin -extensions-reaktive reaktive库设置的扩展(乘法图)
  • MVIKotlin -extensions-coroutines为coroutines设置的扩展(乘法)
  • keepers – 为状态保存和保留对象提供StateKeeperInstanceKeeper API (弃用)
  • rx带有RX和Coroutines上抽象的微型模块(乘法)

将所需的模块添加到模块的build.gradle文件:

implementation \" com.arkivanov. MVIKotlin :<module-name>:<version> \"

创意现场模板

为了加快新商店的创建,您可以使用以下想法实时模板。

特征

  • 多平台:Android,JVM,JavaScript,IOSX64,IOSARM64,MACOSX64,Linuxx64
  • 不依赖任何反应性库或coroutines
  • Reaktive库的扩展
  • Coroutines的扩展
  • 多线程友好(如果需要的话,可在Kotlin本地冻结)
  • 输入和输出之间的生命周期感知连接(BINDINS)
  • 可自定义的记录仪和格式的记录功能
  • 时间旅行功能:
    • 所有受支持的目标的乘以
    • 用于Android的插件UI
    • iOS的插件UI(示例应用程序中的复制纸)
    • Android的导出/导入事件
    • 用于Android应用的Intellij Idea和Android Studio插件
    • 用于Android,Java和本地Apple(iOS,WatchOS,TVOS,MACOS)应用的桌面客户端应用程序

文档

https://arkivanov.gith**u*b.io/mvikotlin

样本项目

示例项目是带有详细信息的待办事项列表。

  • 使用Reaktive共享模块在这里
  • 使用Coroutines共享模块在这里
  • 在此处,示例使用Reaktive和Coroutines实现的Android应用程序,以及日志记录和时间旅行
  • 示例iOS应用程序仅具有Reaktive实施,再加上日志记录和时间旅行
  • 示例JavaScript应用程序具有带有Reaktive和Coroutines实现的示例,以及日志记录和时间旅行

作者

Twitter: @arkann1985

如果您喜欢这个项目,您总是可以;-)

观看视频(时间旅行,日志,调试等)

使用MVIKotlin调试Android应用程序

使用MVIKotlin调试iOS应用程序

使用Intellij Ideas Time Travel插件调试Android应用程序

使用MVIKotlin Time Travel Client应用程序调试iOS应用程序

下载源码

通过命令行克隆项目:

git clone https://github.com/badoo/MVIKotlin.git

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

申明:本文由第三方发布,内容仅代表作者观点,与本网站无关。对本文以及其中全部或者部分内容的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。本网发布或转载文章出于传递更多信息之目的,并不意味着赞同其观点或证实其描述,也不代表本网对其真实性负责。

左子网 编程相关 MVIKotlin https://www.zuozi.net/34326.html

JavaPark
上一篇: JavaPark
graphql java tools
下一篇: graphql java tools
常见问题
  • 1、自动:拍下后,点击(下载)链接即可下载;2、手动:拍下后,联系卖家发放即可或者联系官方找开发者发货。
查看详情
  • 1、源码默认交易周期:手动发货商品为1-3天,并且用户付款金额将会进入平台担保直到交易完成或者3-7天即可发放,如遇纠纷无限期延长收款金额直至纠纷解决或者退款!;
查看详情
  • 1、描述:源码描述(含标题)与实际源码不一致的(例:货不对板); 2、演示:有演示站时,与实际源码小于95%一致的(但描述中有”不保证完全一样、有变化的可能性”类似显著声明的除外); 3、发货:不发货可无理由退款; 4、安装:免费提供安装服务的源码但卖家不履行的; 5、收费:价格虚标,额外收取其他费用的(但描述中有显著声明或双方交易前有商定的除外); 6、其他:如质量方面的硬性常规问题BUG等。 注:经核实符合上述任一,均支持退款,但卖家予以积极解决问题则除外。
查看详情
  • 1、左子会对双方交易的过程及交易商品的快照进行永久存档,以确保交易的真实、有效、安全! 2、左子无法对如“永久包更新”、“永久技术支持”等类似交易之后的商家承诺做担保,请买家自行鉴别; 3、在源码同时有网站演示与图片演示,且站演与图演不一致时,默认按图演作为纠纷评判依据(特别声明或有商定除外); 4、在没有”无任何正当退款依据”的前提下,商品写有”一旦售出,概不支持退款”等类似的声明,视为无效声明; 5、在未拍下前,双方在QQ上所商定的交易内容,亦可成为纠纷评判依据(商定与描述冲突时,商定为准); 6、因聊天记录可作为纠纷评判依据,故双方联系时,只与对方在左子上所留的QQ、手机号沟通,以防对方不承认自我承诺。 7、虽然交易产生纠纷的几率很小,但一定要保留如聊天记录、手机短信等这样的重要信息,以防产生纠纷时便于左子介入快速处理。
查看详情

相关文章

猜你喜欢
发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务