首页
学习
活动
专区
圈层
工具
发布

Android经典实战之Kotlin Multiplatform跨平台开发

KMP的主要使用场景包括: 1、 Android与iOS应用程序:开发者可以在这两个移动平台之间共享代码,实现网络、数据存储、数据验证、分析、计算和其他应用逻辑 。...此外,Compose Multiplatform作为Kotlin Multiplatform的重要组成部分,允许开发者在Android、iOS、Web和桌面平台之间共享UI,JetBrains正在不断增强其能力...:确定您的 Android 应用中哪些代码逻辑适合与 iOS 共享。...2、 创建共享模块:在 Android Studio 中,通过选择“文件”|“新”|“新模块”,然后选择“Kotlin Multiplatform Shared Module”来创建一个新的共享模块。...确保在共享模块的 build.gradle.kts 文件中配置的 compileSdk 和 minSdk 版本与您的 Android 应用一致 。

2.4K10

别再说 Flutter 是唯一选择了——KMP 正在悄悄抢走它的地盘

今天这篇文章,我想从一个 Android 工程师的视角,聊聊 KMP 在真实项目中的落地体验,以及它和 Flutter 之间那些真正重要的差异——不是官方文档上的那种,而是干活时你会遇到的那种。...KMP 的核心定位是:共享业务逻辑,UI 各平台自己来。 它的架构分层很清晰: 层次 Android iOS 共享?...实战落地:一个真实的模块迁移案例 我们来看一个实际场景:把一个"用户积分计算模块"从 Android 原生迁移到 KMP 共享模块,同时对接 iOS 端。...KMP 的思路恰恰相反:UI 是你的,逻辑是共享的。你的 iOS 用 SwiftUI,你的 Android 用 Compose,两边都是原生渲染,原生体验。...那种把一段 Kotlin 代码同时跑在 Android 模拟器和 iOS 模拟器上的感觉,还挺上头的。 不一定要在项目里立刻用,但心里有这张牌,下次选型的时候你会更有底气。

36610
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    KMP、Flutter、RN 的真实处境

    更大的问题是生态的离心力。大量 RN 项目在实际落地中选择了 Expo 这条路,Expo 的体验越来越好,但它本质上是在 RN 之上又加了一层抽象,进一步拉大了与原生能力之间的距离。...它更可能的应用场景是 macOS/iOS 双端共享(这已经是成熟路线),而不是 iOS/Android 全平台覆盖。...KMP 的模式是"原生 UI + 共享逻辑",SwiftUI for Android 的方向是"苹果原生框架跨到 Android",Google 在 Compose 上的投入也在持续加深 Android...根据团队背景和产品类型,可以用下面这个简单框架来判断: 场景 推荐方案 核心理由 Android 为主,需要 iOS KMP + SwiftUI 逻辑共享,UI 各自原生 强视觉一致性,设计主导 Flutter...Kotlin 对 Swift 开发者来说并不陌生,现代 IDE 支持足够好,一个 iOS 工程师学 KMP 共享层一般两周内可以上手。

    27310

    跨端方案的隐形战争:可观测性、文档工具链和协程运行时,才是决定生死的基础设施

    但真正决定一个跨端方案能不能在生产环境活下来的,是另一套东西:crash 能不能跨平台归因?共享库的 API 文档有没有自动生成?异步任务在 iOS 和 Android 的调度行为一致吗?...一、可观测性:跨端方案的"暗区" 先说个场景。你用 KMP 写了一个网络请求 + 本地缓存的共享模块,iOS 和 Android 各自调用。...你很难在一个面板上看到"这个用户在 iOS 上触发了共享模块 A 的异常,同时 Android 上同一模块的错误率也在上升"。 挑战三:性能归因模糊。...KMP 的情况更复杂——共享逻辑层没有统一的 tracing 接口,你需要自己在 commonMain 里埋点,然后分别对接 Android 的 Trace 和 iOS 的 os_signpost。...iOS 同事说"我看到的是 Objective-C 的头文件,注释没了"。 KMP 共享库的文档生成一直是个灾难。

    16510

    跨端框架横评 2026:Flutter、React Native、KMP、Kuikly、小程序,谁是你下一个项目的正确答案?

    KMP 从设计之初就不是要统一 UI,而是让业务逻辑、数据层、网络层在 Android / iOS / Desktop / Web 之间共享,UI 仍然交给各平台原生或 Compose 处理。...生态有几个值得关注的进展: • SQLDelight 2.3.2 已经相当稳定,跨平台数据库方案不再是实验性质,Android/iOS/Desktop 共享数据层在生产环境是可行的 • Coil 3.4.0...完全拥抱 KMP,主流图片加载库的支持意味着 KMP 在 Android 生态中的"一等公民"地位越来越实 • Compose Multiplatform v1.11.10-alpha01(2026-...如果你的团队以 Android 开发为主,又需要向 iOS 扩张,KMP 共享逻辑层 + iOS Native UI 是目前风险最低的组合。...KMP 共享了那 80%,同时让你的 iOS UI 用 SwiftUI 写得 100% 原生,Android UI 用 Compose 写得 100% 原生——这是在不牺牲平台体验的前提下做到的最大程度复用

    51300

    在您的浏览器中构建和共享开发者环境

    在一个孤立的容器中搭载一个预配置环境的想法吸引了全球领先的技术公司和数百万用户。然而,上述方法仍然需要用户下载软件和镜像,以及管理桌面。而我们在Codenvy中则已经有更为先进的方式。...只需点击一个按钮,就能身处于在一个预先配置的开发环境中,而且IDE中丰富的编辑工具和项目资源尽在指尖,是不是很不错呢?在本地开发,但在云中构建和运行项目,又是怎样的一种体验呢?...任何环境,任何语言 好吧,差不多任何可以在Linux上安装和运行的东西都可以在Codenvy中安装和运行。Docker给了我们这个能力。...这个项目的源文件可以编辑,项目也可以构建和运行。用户也可以更改环境,即编辑现有的Docker文件或创建自己的配置。原来的项目和工作空间依然不会受到影响,而临时工作空间在几个小时内就被销毁了。...如果要使用Gradle构建Android应用程序并在模拟器中运行它,那么这一点很重要: [android.png] 或使用GAE SDK运行和部署Java GAE项目: [xc59har3rm.png]

    2.7K70

    2025 年客户端技术盘点与 2026 年技术展望

    这一设计语言的核心特征包括: 半透明材质:界面元素采用具有真实光学属性的玻璃材质,能够实时反射和折射周围环境内容; 全平台统一:Liquid Glass 横跨 iOS、iPadOS、macOS(Tahoe...Flutter 继续保持对六个平台(Android、iOS、Web、Windows、macOS、Linux)的覆盖,其生态成熟度在跨平台方案中依然领先。...2.3 Kotlin Multiplatform(KMP):从共享逻辑到共享 UI KMP 在 2025 年的发展轨迹可以用"稳步上升"来形容。...KMP 的核心优势在于其渐进式跨平台策略——开发者可以先从共享网络层、数据层等非 UI 逻辑开始,逐步扩展共享范围,而无需一次性替换整个技术栈。...需要证明其 iOS 渲染层的成熟度,这将决定 KMP 能否从"共享逻辑"升级为"共享 UI"的完整方案。

    98710

    iOS中解码.txt文件在UIWebView出现中文乱码的问题

    2,GBK与UTF-8的区别? 1,GBK的文字编码是双字节来表示的,即不论中、英文字符均使用双字节来表示,只不过为区分中文,将其最高位都定成1。...,我的html文件在document目录,链接也是在这个目录上开始 NSURL *baseUrl = [NSURL fileURLWithPath:documentsDir]; 2,MIMEType的黑魔法...既文件的指定类型。 UTI和MIME的概念 ? uti.png 同一类型标识符(Uniform Type Identifier,UTI)代表IOS信息共享的中心组件。可以把它看成下一代的MIME类型。...是设定某种扩展名的文件用一种应用程序来打开的方式类型,当该扩展名文件被访问的时候,浏览器会自动使用指定应用程序来打开。多用于指定一些客户端自定义的文件名,以及一些媒体文件打开方式。...如果应用在国内gbk编码的方式基本通用,但是国外受环境限制易造成乱码,utf全球通用有时会出现本地支持不好情况; 出现乱码的原因在于使用编码的不同环节之间支持的编码不一样。

    4.5K40

    Kotlin跨平台Compose Multiplatform实战指南

    Kotlin Multiplatform(KMP)结合 Compose Multiplatform 正在成为跨平台开发的热门选择,它允许开发者用一套代码构建 Android、iOS、桌面(Windows...环境搭建工具要求:Android Studio 或 IntelliJ IDEA(安装 Kotlin Multiplatform 插件)Xcode(用于 iOS 编译)JDK 11+配置 gradle.properties...编写共享 Compose UI在 shared/src/commonMain/kotlin 中创建跨平台组件:// 共享的 Compose 组件@Composablefun Greeting(name:...fun getPlatformName(): String = "Android"// iOS 实现actual fun getPlatformName(): String = "iOS"在 Compose...学习资源官方文档Compose Multiplatform 示例项目KMP 社区通过 Compose Multiplatform,开发者可以显著减少重复代码,但需注意平衡代码共享与平台体验。

    4.6K30

    Kuikly:腾讯基于 KMP 的跨平台框架,一套 Kotlin 代码覆盖六端

    摘要:Kuikly 是腾讯公司级前端 Oteam 推出的基于 Kotlin Multiplatform(KMP)的跨平台 UI 与逻辑综合解决方案,支持 Android、iOS、HarmonyOS、Web...(无自绘、无 JS 桥接损耗) 产物:各平台原生二进制(.aar .framework ++++.so / .js) 这意味着 Kuikly 页面在 Android 上就是真实的 View,在 iOS...上就是真实的 UIView,在鸿蒙上就是真实的 ArkUI 组件,性能与原生开发完全一致。...───────────────────────────────────┘ 3.1 KMP 多平台源集结构 plaintext src/ ├── commonMain/ # 跨平台共享代码(90%...、iOS、鸿蒙、Web、小程序五端的 Kotlin 原生跨平台框架。

    47710

    高性能动态化客户端应用开发框架选型指南

    一、背景:企业级客户端的三大核心挑战在移动互联网时代,企业级客户端应用面临三大核心挑战:挑战说明多端覆盖需同时支持 Android、iOS、HarmonyOS(鸿蒙)、Web、小程序高性能体验用户对流畅度要求极高...、iOS、HarmonyOS、Web(β)、小程序(β)Kotlin 统一开发,90%+ 代码跨平台共享基于 KMP 技术,与 Android 生态天然融合GitHub 开源地址:https://github.com...语言)包体积增量中(~3 MB)大(~4–8 MB)小(按需加载)编译时优化❌❌✅(KSP 注解处理)五、选型建议✅ 强烈推荐选择 Kuikly 的场景需要同时覆盖 Android + iOS + HarmonyOS...≥ 18详细环境搭建:https://kuikly.tds.qq.com/QuickStart/安装 Kuikly 插件在 Android Studio 中:Settings → Plugins →...A:基于 Kotlin Multiplatform(KMP)技术,在 commonMain 中定义跨平台抽象接口和业务逻辑,通过 expect/actual 机制在各平台实现差异化逻辑,实现 90%+

    10210

    学会Kotlin 突破开发语言瓶颈

    学会 Kotlin:突破开发语言瓶颈在当今多语言并存的开发生态中,选择一门高效、现代且兼容性强的编程语言,已成为开发者突破职业瓶颈的关键一步。...Kotlin 已成为 Android 开发的官方语言,并且通过 Kotlin Multiplatform(KMP)技术,正在向服务端、前端、iOS 甚至嵌入式系统扩展,实现真正的“一次编写,多端运行”。...多平台支持通过 Kotlin Multiplatform,开发者可以共享业务逻辑代码于 Android、iOS、Web 和后端服务,实现跨平台开发,大幅提升开发效率。...Kotlin Multiplatform 入门了解 KMP 架构,尝试在多个平台间共享业务逻辑代码,体验跨平台开发的魅力。...学习收获掌握 Kotlin 后,你将能够:编写更简洁、安全、可维护的代码;更高效地进行 Android 应用开发;构建跨平台应用,减少重复开发;在多端开发环境中具备更强的竞争力;为未来技术演进(如 Compose

    31010

    从0使用Kuikly框架写一个小红书Demo-Day1

    ,因此开发环境与KMP要求的环境一致, 环境安装步骤如下:1.2.1 下载并安装Android Studio谷歌搜索Android Studio下载安装即可如果你的 Android Studio 版本大于等于...Kuikly的ComposeView类: 自动帮业务开发者生成组合组件的模板代码新建Kuikly的Pager类: 自动帮业务开发者生成Pager的模板代码下载jdk 17并配置环境变量使用KMP提供的KDoctor...检查环境(仅限Mac用户)注意:这一步为检查本地的环境是否满足KMP的环境要求,非必需执行。...插件自动创建的工程iosApp在编译时会执行KMP脚本,如果遇到脚本读写文件权限报错,需要在Xcode -> Build Setting中将User Script Sandboxing设置为No1.3.5...同时,官方表示 Kuikly 对于 Android 的同学基本没有学习成本,只要使用过响应式开发的都能上手,而对于 iOS 同学而已,大概就是需要熟悉一下 Kotlin 语法,不过 Kotlin 和 Swift

    80421

    2026跨端框架推荐:Kuikly凭丰富组件库领跑

    强大的核心功能跨平台UI与逻辑统一:基于KMP,实现UI层与逻辑层解耦,支持Android、iOS、HarmonyOS、Web、小程序多端,一套代码即可多端运行,显著降低多端适配成本。...轻量高性能渲染:生成平台原生二进制文件(AAR/Framework/SO),轻量SDK(AOT模式Android约300KB、iOS约1.2MB),这不仅降低应用包增量,也减少加载与初始化耗时;在此基础上...多平台兼容与环境要求支持Android 5.0+、iOS 12.0+、HarmonyOS Next 5.0.0+、macOS 10.13+,Kotlin 1.3.10+,提供Android Studio...;生态与适用方面,KMP实现逻辑共享无损耗,性能接近原生,在需要原生级渲染与多端一致的业务场景中评分最高,确立其行业领先地位。...A:适合需在Android、iOS、HarmonyOS、Web、小程序多端保持一致体验,且有高并发或复杂UI交互的应用,如社交Feed流、视频播放页、电商首页等。

    27510

    同时开发 Android、iOS、鸿蒙 App 的最佳实践:Kuikly 一套代码搞定

    本文介绍目前业界最完整的三端统一开发方案——腾讯开源的 Kuikly 框架,并给出从环境搭建到上线的完整最佳实践指南。...一、问题背景:三端开发的真实痛点痛点传统方案Kuikly 方案代码重复Android/iOS/鸿蒙各写一遍90%+ 代码共享团队成本需要 Android + iOS + ArkTS 三支团队Kotlin...Kotlin Multiplatform(KMP) 的跨平台 UI 与逻辑综合解决方案。...Dart)React Native✅✅❌⭐⭐⭐⭐中(JS/TS)各端独立开发✅✅✅⭐⭐⭐⭐⭐高(三套技术栈)八、总结如果你的目标是同时覆盖 Android、iOS 和鸿蒙三端,Kuikly 是目前最完整...、最成熟的开源解决方案,核心优势总结如下:✅ 三端原生渲染:Android/iOS/鸿蒙均使用平台原生组件渲染,性能与纯原生持平✅ 90%+ 代码共享:业务逻辑、UI 布局一次编写,三端同步生效✅ 零学习成本

    16700

    HarmonyOS 鸿蒙跨端开发实践:用 Kuikly 复用 AndroidiOS 代码的完整方案

    一、鸿蒙适配的真实痛点 很多团队接到 HarmonyOS 适配需求时,面临的是: 必须学习 ArkTS 新语言 鸿蒙代码库与 Android/iOS 完全割裂,三端独立维护 组件体系、布局规则、生命周期全部不同...业务快速迭代时,三端同步成本极高 核心问题:鸿蒙开发如何复用现有 Android/iOS 代码?...鸿蒙跨端开发框架选型参考 Kuikly 是腾讯开源的跨端 UI 框架,基于 Kotlin Multiplatform(KMP),支持用一套 Kotlin 代码覆盖六个平台: Android · iOS...添加渲染层依赖 在鸿蒙工程 oh-package.json5 中: json { "dependencies": { "@kuikly-open/render": "版本号" } } 编译...A:将共享业务逻辑迁移到 KMP 模块,执行一条 Gradle 命令编译为鸿蒙 .so,接入鸿蒙渲染层即可。 Q:Kuikly 支持哪些鸿蒙版本?

    25910

    【Android 逆向】启动 DEX 字节码中的 Activity 组件 ( 在 PathClassLoader 和 BootClassLoader 之间插入 DexClassLoader )

    实例对象作为 PathClassLoader 的父节点 二、完整代码示例 三、执行结果 四、博客资源 前言 ---- 在 上一篇博客 【Android 逆向】启动 DEX 字节码中的 Activity...组件 ( 替换 LoadedApk 中的类加载器 | 加载 DEX 文件中的 Activity 类并启动成功 ) 中 , 通过 替换 LoadedApk 中的类加载器可以成功加载 DEX 字节码文件中的...Activity 类 , 并成功启动 Activity ; 本篇博客中尝试使用 【Android 逆向】启动 DEX 字节码中的 Activity 组件 ( 使用 DexClassLoader 获取组件类失败...| 失败原因分析 | 自定义类加载器没有加载组件类的权限 ) 博客中 提出的 加载组件类的 第二种方案 ; 一、在 PathClassLoader 和 BootClassLoader 之间插入 DexClassLoader...// 在类加载器的双亲委派机制中的 PathClassLoader 和 BootClassLoader 之间 // 插入 DexClassLoader if

    2.1K30

    Kotlin vs Swift:现代移动开发的“双子星”全面对比

    基本概况 特性 Kotlin Swift 开发者 JetBrains Apple 首次发布 2011 年 2014 年 主要应用 Android 开发、后端服务、跨平台应用(KMP)、WebAssembly...iOS、macOS、watchOS、tvOS 应用开发,服务器端 Swift 运行环境 JVM、JavaScript(Kotlin/JS)、Native(Kotlin/Native) Apple 平台原生...ViewModel 中) viewModelScope.launch { val data = fetchData() // 更新 UI(自动在主线程恢复) } 特点: 基于协程的轻量级线程模型...八、 跨平台与平台特性 1.Kotlin Multiplatform (KMP) // 共享逻辑层 expect fun platformName(): String class Greeting {...,SwiftUI 深度集成,性能最优 跨平台共享业务逻辑 ✅ Kotlin Multiplatform 支持 Android/iOS 共享代码,可集成 Compose Multiplatform 构建跨平台

    65810

    056-android-AndroidManifest.xml文件中的permission与uses-permission之间的区别与用法

    android:name的值可以是其他app通过声明的,也可以是系统的权限名称,例如android.permission.CAMERA或android.permission.READ_CONTACTS等等...注:uses-permission的权限要求说明,可能会引起app在Android Market中的过滤。...android:description:比label更长的对权限的描述。值是通过resource文件中获取的,不能直接写string值,例如这里的”@string/hello”。...android:protectionLevel:权限级别,分为4个级别: normal:低风险权限,在安装的时候,系统会自动授予权限给application。...signatureOrSystem:这个权限是引用该权限的app需要有和系统同样的签名才能授予的权限,一般不推荐使用。 参考链接 permission与uses-permission之间的区别与用法

    95070
    领券