KMP从零创业 Live Show(6)-什么样的开发框架?

314 阅读4分钟

上集回顾

上篇我们借助MasterGO的AI功能,完成了app的第一版设计和logo.并准备着手用CMP去开发Android和IOS双端的ui页面.在正式开始前,我觉得有必要花点时间去构思一下咱们用KMP开发项目的框架设计.在初期确定一个骨架和结构,后面根据不同项目的开发再慢慢迭代优化,旨在打造出一款面相广大KMP开发的快速开发框架.

什么样的开发框架?

框架的选择上,我认为选择适合自己远好于其他因素.拿Android开发举例,如果你一直都倾向于紧跟MAD技术去做开发,那么MVI,MVVM可能更适合作为KMP的开发框架;反之可能MVP,MVC更适合作为KMP的开发框架.除此之外,我们去设计一个框架的时候还应考虑其他因素,包括以下几点我认为有代表性的因素:

  • 功能性

    [!tip] 框架赋予项目哪些能力?

    建议首先考虑功能性!功能是所有app的核心和基础.虽说不同app有着功能的差异,但其核心功能往往都是相同可复用的.比方说,几乎每个app都需要如下功能

    • 网络处理
    • 数据处理
    • 页面处理
    • 图像处理
    • 性能和优化

    在功能性的方案选择上,建议选择职责单一清晰并有高度隔离设计的方案.往往这种风格的方案有着更好的健壮性和维护性,在前期单元测试及上线后的质量监控环节都能快速定位到问题所在.

  • 扩展性

[!tip] 框架是否易于扩展?

在多个都满足了功能性的方案中做选择的时候,扩展性可以作为重要参考.拿网络处理举例,可能会考虑否支持protobuf解析?是否支持自定义拦截器?是否支持自定义加密?等等好多这种属于横向扩展的因素.

  • 平台兼容性

[!tip] 框架是否能兼容多端?

除了考虑扩展性因素外,平台兼容性也是我们选择具体方案时的一个关键指标.KMP,CMP毕竟出现的时间还不够久,支持它们的三方库远没有原生开发平台丰富.所以一般情况下,在选择一个方案时首先会先看看是否有目标所需平台的兼容性.如果在兼容范围内,那么能大大提高我们的开发效率,降低学习成本;而不在范围内的时候,只能通过在不同平台用原生或者对应平台的库去实现了,这样往往需要我们花更多时间去学习我们并不熟悉的平台开发技术.

  • 一致性

    [!tip] 框架是否在逻辑和ui上保持多端一致?

以上都考虑后,最后需要注意的一点就是一致性.除了一些想保留的平台默认风格的ui实现外,逻辑和ui两个方面都应保持最大程度的一致.

KMP 库资源

Jetbrains官方整理kmp库 image.png 另外大家还可以在GitHub上搜到很多kmp相关的lib,好比上一篇我们用到的生成应用icon的库

下集预告

下面每篇会介绍和展示一个赋予框架功能的方案.从接入到应用,详细记录每一步,希望能给需要拿来开箱即用的朋友一个选择,也为其他对KMP感兴趣的朋友起到一个抛砖引玉的作用.

[!todo]

  • 做个什么?
  • 研究学习一下BeatPrints,把流程跑一跑,琢磨一下盈利点
  • 创建 python 项目提供接口,通过 docker 在本地运行,调通接口 (跪求好心python大佬们指导和支持,帮助我们快速实现预期的后台功能)
  • 通过 figma ai 生成 ui 图(用MasterGo代替了)
  • 通过 app 页面交互,最终完成封面下载
  • 接入三方平台分享 sdk
  • 接入支付 sdk
  • 前后端用户注册登录及等级系统建立
  • 接入网易云 api
  • 健壮后端项目,做好场景覆盖和错误捕捉等
  • 上架
  • 待续补充

[!info] 如果您觉得这篇文章对你有用或者有趣的话,请点赞,关注,收藏三连支持一下作者.

千万不要小看你随手善意的支持,每一份好心的善意最终都化为作者持续分享的动力