首页 > 其他分享 >现在开发需要兼容Android 和 iOS 手机的大型App,优选什么框架?

现在开发需要兼容Android 和 iOS 手机的大型App,优选什么框架?

时间:2023-08-26 18:34:23浏览次数:37  
标签:App iOS Flutter 跨平台 API Android KMM

前言

现在最主流的跨平台方案应该也就是Flutter了,再就是RN,不过RN已经在慢慢退出历史舞台。

中小企业目前最优先选择的还是Flutter,Flutter现在的生态也逐渐很完善。不过大型App,我还是推荐混编,一些不重要的模块使用Flutter,重要的模块还是使用原生的好。

除了Fluttet的方案,还有一种方案可以选择,那就是KMM,Kotlin跨平台方案。

现在开发需要兼容Android 和 iOS 手机的大型App,优选什么框架?_App

在共用代码部分,Android平台会直接构建成aar,与普通Android依赖无差异;iOS平台会使用 Kotlin/native 实现Kotlin与OC/Swift的相互调用,生成framework供现成的iOS项目直接依赖使用。

可以说无论对于新建立的项目,还是旧有维护已久的项目都非常友好,入侵性不大,接入成本小。

而UI部分,KMM没有直接提供跨平台实现,需要用各自原生去实现。

就拿携程来说

携程App已有很长的历史了,在类似这样一个庞大成熟的App中要引入一套新的跨端框架,最先考虑的就是接入成本。

而历史的跨端框架以及现存的RN、Flutter等,都需要大量的基建工作,最后才能利用上这个跨平台框架。

通常对于大型的APP引用新的框架,通信本身的属性肯定是没问题的,那么最关键要解决的就是对现有依赖的处理,像RN和Flutter如果需要对iOS原生API调用,需要从RN和Flutter内部底层增加访问API,而对于现有成型的一些API或者第三方SDK的API调用,将需要在iOS的工程中写好对接的接口API才可以实现,而这个工作量是巨大的。

而KMM这个跨端框架,正好可以规避这个问题,他只需要通过简单的配置就可直接调用原有的API,甚至不需要写额外的路由代码就可以实现。

那该如何学习

由于网上的博客文章非常零散,这里小编联合携程团队花费大量时间收集和整理,将KMM方面的知识点整理成了一个专题,并借此文章无偿分享给对KMM感兴趣的朋友,点击下方课程链接详细了解!!!

https://edu.51cto.com/course/32703.html

第一章 简介与基本环境搭建

  • 什么是KMM?
  • Kotlin Mutiplatform 之间的关系
  • 与其他跨平台框架的简单对比
  • 跑一个 KMM Demo
  • KMM 工程文件结构

现在开发需要兼容Android 和 iOS 手机的大型App,优选什么框架?_跨平台_02

第二章 在现有工程中集成 KMM

  • 为什么要在现有工程中集成?
  • 如何在现有工程中集成 KMM

现在开发需要兼容Android 和 iOS 手机的大型App,优选什么框架?_跨平台_03

第三章 平台差异化实现

现在开发需要兼容Android 和 iOS 手机的大型App,优选什么框架?_API_04

第四章 与依赖库交互

  • KMM 的依赖类型
  • 使用 Common 或 Android 依赖
  • iOS 依赖

现在开发需要兼容Android 和 iOS 手机的大型App,优选什么框架?_跨平台_05

第五章 处理多线程

  • 为什么需要在 KMM 中处理多线程?
  • 可行的多线程切换方式
  • KMM 多线程需要注意的问题
  • 个人比较推荐的异步工作实现方案

现在开发需要兼容Android 和 iOS 手机的大型App,优选什么框架?_Android_06

第六章 使用 SQLDelight 操作数据库

  • 数据库在 App 中的作用
  • SQLDeilight 简介及特点
  • 使用 SQLDelight 开发的流程
  • 其他使用建议及注意事项

现在开发需要兼容Android 和 iOS 手机的大型App,优选什么框架?_Android_07

第七章 处理 HTTP 网络请求

  • 背景
  • Ktor 是什么?
  • 为 KMM 模块配置 Ktor
  • 创建 Ktor 的 HttpClient
  • 发送一个简单的 HTTP 请求
  • 自定义请求
  • 处理响应
  • Ktor 的其他功能
  • KMM 网络能力建设

现在开发需要兼容Android 和 iOS 手机的大型App,优选什么框架?_跨平台_08

第八章 KMM跨平台实战

  • 跨端的 MVI 框架 —— MVIKotlin
  • 对 Jetpack 架构组件移植的失败尝试
  • 使用 kotlinx.serialization 对 SQLite 数据库反序列化
  • 携程机票 App KMM 跨端 KV 存储库 MMKV-Kotlin

现在开发需要兼容Android 和 iOS 手机的大型App,优选什么框架?_API_09

最后

希望这份资料可以给希望了解、学习、应用Android 跨平台框架KMM的小伙伴一个参考。

有需要的小伙伴,可以点击下方课程链接详细了解!!!

https://edu.51cto.com/course/32703.html

标签:App,iOS,Flutter,跨平台,API,Android,KMM
From: https://blog.51cto.com/u_16163442/7245698

相关文章

  • Vmware虚拟机bios里面启动顺序怎么改?
    参考https://it.cha138.com/python/show-4080587.html1、首先打开虚拟机,并选择创建好的虚拟机,如图中所示,选中后,右边会出来这个虚拟机的基本配置,2、然后在右边虚拟机上红框处点击右键,并选择“电源”=》“启动时进入BIOS”。3、进入BISO界面后,按键盘右方向键到“BOOT”项,然......
  • 在线拍卖直播系统源码(双端APP+H5前端+管理后台)
    "东莞梦幻网络科技"开发该拍卖直播系统采用了多种开发语言。具体而言,后端采用了PHP语言,并且使用了ThinkPHP框架。而在移动端方面,苹果端采用了Objective-C语言,而安卓端则采用了Java。前端H5部分则使用了Vue.js框架。以下是该拍卖直播系统的主要功能模块:1、直播拍卖:用户可以观看主播......
  • Android并发编程高级面试题汇总(含详细解析 十)
    Android并发编程高级面试题汇总最全最细面试题讲解持续更新中......
  • Android入门教程 | Fragment 基础概念
    什么是Fragment?Fragment,直译为“碎片”,“片段”。Fragment表示FragmentActivity中的行为或界面的一部分。可以在一个Activity中组合多个片段,从而构建多窗格界面,并在多个Activity中重复使用某个片段。可以将片段视为Activity的模块化组成部分,它具有自己的生命周期,能接收自......
  • Applescript脚本实现全自动无痕检测手机号码是否注册iMessage的原理
    一、检测数据的两种方式:1.人工筛选,将要验证的号码输出到文件中,以逗号分隔。再将文件中的号码粘贴到iMessage客户端的地址栏,iMessage客户端会自动逐个检验该号码是否为iMessage账号,检验速度视网速而定。红色表示不是iMessage账号,蓝色表示iMessage账号。2.编写脚本控制Macos/iphon......
  • uniapp使用canvas电子签名
    <template><viewclass="draw-page"><viewclass="draw-content"><canvasstyle="width:100%;height:100%"ref="sign"canvas-id="sign"id=&qu......
  • vue项目axios请求 解决跨域问题 2种方法
    前端添加vue.config.js文件 【【4k小白到全栈】进阶课好看登录页面Vue3+Ts+Pinia+Axios+VueRouyer+SpringBoot2.7+MybatisPlus前后端分离】https://www.bilibili.com/video/BV1x14y1Z74z?p=26&vd_source=da9319adec9f5f92ccc22db2f6108195 后端  response.setConte......
  • AppSpider Pro 7.4.054 for Windows - Web 应用程序安全测试
    AppSpiderPro7.4.054forWindows-Web应用程序安全测试Rapid7DynamicApplicationSecurityTesting(DAST)请访问原文链接:https://sysin.org/blog/appspider/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.orgappspider没有任何应用程序未经测试,没有未知风险......
  • Cisco Secure Web Appliance Virtual 15.0.0 GD - 适用于网络安全的思科高级威胁防护
    CiscoSecureWebApplianceVirtual15.0.0GD-适用于网络安全的思科高级威胁防护AsyncOSforWSA15.0.0GeneralDeployment(GD)请访问原文链接:https://sysin.org/blog/cisco-wsa-15/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.orgCiscoSecureWebAppliance......
  • How to get the Axios's response file type All In One
    HowtogettheAxios'sresponsefiletypeAllInOne获取Axios请求响应头中的文件类型AxiosAPIhttps://www.npmjs.com/package/axiosdemosimportfsfrom'node:fs';importpathfrom'path';importaxiosfrom'axios';asyncfunctio......