首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏libill

    KotlinNative KMM项目架构

    一、什么是KMM? Kotlin Multiplatform Mobile ( KMM ) 是一个 SDK,旨在简化跨平台移动应用程序的创建。 KMM用纯Kotlin编写一次代码,即可在iOS和Android上运行,开发应用的公共业务逻辑只需要编写一次。KMM减少了为不同平台编写和维护相同代码所花费的时间。 当然可以使用KMM依赖klib开发Android、iOS应用。 [KMM构建.png] 二、KMM项目架构 项目架构主要分为原生系统层、Android/iOS业务SDK层、KMM SDK层、KMM业务逻辑SDK层、iOS sdkframework层、Android/ KMM SDK层:如alog、PlatformMMKV写成一个SDK可以供其他KMM模块(business)使用。

    3.9K00发布于 2021-10-17
  • 来自专栏libill

    KotlinNative 用KMM写Flutter插件

    一、用KMM写Flutter插件 Google官方有一个写Flutter例子How to write a Flutter plugin,这里把Google plugin_codelab 例子改成用KMM 二、如何运行 Github项目地址:kmm-flutter-plugin Android: run shared/plugin_codelab/example/android iOS: 1、build 三、设计思路 Android/iOS插件PluginCodelabPlugin只需要实现KMM Module的接口,不写任何逻辑,把逻辑通过接口放在KMM Module中。 使用KMM开发插件的好处是公共逻辑都使用kotlin写,一般公共逻辑比较简单适合使用kotlin写,便于维护。而且,实现了KMM写插件,Flutter写UI。 四、参考链接 本文地址:https://www.cnblogs.com/liqw/p/15477079.html Github项目地址:kmm-flutter-plugin

    1.3K00发布于 2021-10-28
  • 来自专栏代码男人

    再探Kotlin 跨平台——迁移Paging分页库至KMM

    前言 KMM的发展除了靠官方社区的支持外,一些大企业的开源落地也尤为重要。从这些开源中我们需要借鉴他的设计思想和实现方式。从而在落地遇到问题时,寻得更多的解决办法。  {_ in print("completed")})     })     textField.resignFirstResponder()     return true   } } 写在最后 KMM 目前我们所能做的就是持续关注KMM的动态,探索可尝试落地的组件,为己所用。

    1.7K20编辑于 2022-11-21
  • 来自专栏代码男人

    谷歌社区说|聊聊Compose跨平台与KMM

    Compose Multiplatform 与 KMM的关系 要Compose Multiplatform 与 KMM的关系,我们只要来分别了解Compose Multiplatform 与 KMM分别是什么就行了 KMM更像是营销术语,我们不用纠结Mobile这个词,你要知道的是,下文我们所说的KMM就是指的Kotlin跨平台不仅限于移动端就行了。 KMM可以简化多平台应用程序的开发。 有了Compose跨平台,便弥补了KMM的缺陷。 实践KMM KMM用于实现业务逻辑部分,这里我们只以Android和iOS两端为例。 这里我基于刚刚创建的KMM项目,在KMM的基础上添加Compose Multiplatform的配置。

    3.3K10编辑于 2023-12-28
  • 来自专栏代码男人

    KMM跨平台开发入门,看这一篇就够了~

    KMM却与之相反,接下来让我们来一起了解一下吧~ 什么是KMM KMM 即 Kotlin Multiplatform Mobile 是一个 SDK,旨在简化跨平台移动应用程序的开发。 上面官方的描述说了这么多,简单的来说就是KMM注重业务逻辑跨平台,和Flutter、Compose完全相反。即使如此,在这个都想着跨别人的年代,KMM也称自己并没有说过不会做UI的跨平台... 由于KMM还不是特别的成熟,所以建议开发者将Kotlin插件也升级到最新版本,避免出现一些兼容性问题。 点击Finish就创建了一个KMM的项目。 项目结构 创建完的KMM项目结构如下图所示。 写在最后 到这里,恭喜你,已经入门了KMM的使用,更多的使用方法需要在实际项目中不断地去总结,去尝试,Jetpack目前也在开发KMM版本,这对KMM发展将会是一个推进~

    5.7K21编辑于 2022-10-24
  • 来自专栏携程技术

    干货 | 携程机票 App KMM 跨端生产实践

    但我们的场景是在现有且彼此独立的携程 Android 与 iOS App工程中引入 KMM,所以我们需要将 KMM 作为一个独立子工程模块进行集成。 KMM 作为一个独立的工程需要依赖基础库,且机票业务 bundle 依赖 KMM 跨端共享业务逻辑工程。 KMM 目前尚缺成熟可靠的 UI 框架,UI 层暂且保留原生开发方式,由平台各自实现,Model 层与 ViewModel 层由 KMM 工程承载。 无论是新建独立 KMM App工程,还是基于现有 App工程集成 KMM 模块,KMM 子工程模块生成的 AAR 或 JAR 文件产物,均可发布上传至指定的 Maven 源仓库,进行集中依赖管理。 挑战与对策 KMM 的探索过程并非一帆风顺,KMM 与 Kotlin/Native 作为 alpha 阶段的新技术给我们提出了不小的挑战。

    4.8K10发布于 2021-12-01
  • 来自专栏Bennyhuo

    KMM 求生日记二:KotlinNative 被踩中的坑

    最近几周团队的 KMM 进度推进了不少,已经陆续把几个小业务需求迁移到了 KMM。 其实万事开头难,最初的时候许多公共团队基础类库都没有桥接到 KMM,导致好像啥业务都没法着手开始。 目前基本的开发方式是,主要由我来编写 KMM 工程的代码,包括需要主工程实现的接口、以及通过桥接过来的对象实现的各种基础 API,最后是基于这些 API 编写的真正的业务逻辑。 然后我在 Android 的主工程中编写这些桥接接口的实现,以及对 KMM 中业务逻辑的调用。 结语 KMM 代码发布上线在即,如果它能在线上稳定跑一到两个版本(主要担心的就是 iOS 平台),就至少可以说明 Kotlin/Native 的编译器、 runtime 以及标准库没有太大问题,当然 如果能证明语言层面上问题,后续 Model 层的业务逻辑就可以大规模迁移到 KMM。 后面我们可能会把精力花在研究一下 cinterop 这个工具以及 iOS 的构建系统上。

    3.1K10发布于 2021-03-18
  • 来自专栏图像处理与模式识别研究所

    将具有多个子聚类均值的数据点分组到指定的K个聚类中的KMM算法。

    KMM.m function [laKMM, laMM, BiGraph, A, OBJ, Ah, laKMMh] = KMM_mmconv(X, c, m, k) % [laKMM, laMM, BiGraph , Anc, ~, ~, ~]= KMM(X', c, m,k) : K-Multiple-Means % Input: % - X: the data matrix of size nFea struG2la.m % eig1.m % Usage: % % X: d*n % [laKMM, laMM, AnchorGraph, Anchors, ~, ~, ~]= KMM = face_gen(n, 0.1);c=4; m=floor(sqrt(n*c));k=5; fig = 1; tic [laKMM,~,~,A,~,Ah,laKMMh ]= KMM (X', c, m,k) ; toc; result_KMM = ClusteringMeasure(y, laKMM); if ~fig figure('name','KMM') rl

    3.8K20编辑于 2022-05-28
  • 来自专栏iOS开发~

    KMM_Compose 获取当前容器或父视图的尺寸size

    获取当前容器或父视图的尺寸可以使用 onGloballyPositioned,不过拿到的是像素点。

    75310编辑于 2024-07-09
  • 来自专栏微言码道

    别具特色的跨平台移动开发 - Kotlin Multiplatform Mobile

    当然,我这篇文章不是来对比这两个技术的,而是来介绍另一个新的移动跨平台技术的选择 -- KMM KMM KMM的全称是:Kotlin Multiplatform Mobile,它是jetbrains公司的产品 与众不同的实现 我画了一个图来说明KMM究竟是怎么一个思路。 KMM的实现思路是重用业务。 在Android中开发业务实现,KMM会将你的业务生成iOS类库。你在iOS开发的时候,相当于依赖了一个类库,这个类库提供了本身你业务的很多方法。 KMM官网:https://kotlinlang.org/lp/mobile/ myddd-kmm-scoffold示例项目发布 我一直在关注与调研移动开发的技术,对iOS的SwiftUI,Android 而KMM也是我关注的一个移动开发技术方向,因为它一方面重用了业务,另一方面又维持了原生开发,似乎是个挺不错的实现思路。 最近五一假期时,基于KMM做了一个可运行的示例项目。

    2K20编辑于 2022-06-07
  • 来自专栏路遥的专栏

    Hello World —— 使用 Kotlin 开发跨平台应用

    使用 KMM,具备灵活性的同时也保留了原生编程的优势。 KMM 可以和你的工程无缝集成。 在写这篇博客的同时,KMM 仍然处于 Alpha,你可以开始尝试在你的应用中共享业务逻辑代码。 在移动开发领域,KMM 目前没有为大众所熟知。 Jetbrains 开发了 Android Studio 的 KMM 插件 来帮助你快速设置 KMM 工程。插件还可以帮助你编写,运行,测试共享代码。 你已经完成了你的第一个 KMM app 。

    2.9K20发布于 2021-08-31
  • 来自专栏codelang

    Compose 跨平台现状

    Compose 能应用于跨平台,主要是基于 KMM 架构,KMM 的介绍可以查看官方文档《Get started with Kotlin Multiplatform Mobile[1]》,我们来看下 KMM 为通用层模块,也可以被称为平台无关层,如果 commonMain 涉及到平台相关操作的话,则需要定义 expect 方法,让 xxxMain 模块去 actual 实现这个方法,这样,在不同的平台集成 KMMKMM 架构可以看出,一些通用的逻辑计算完全可以丢进 commonMain 来实现,以此来达到各端只维护一份代码的目的,也算是提效了。 KMM 架构可以实现各端的通用逻辑,那基于 KMM 的 Compose 主要目的是为了实现各平台的 ui 统一。

    4.1K30编辑于 2022-11-30
  • 来自专栏代码男人

    Compose也能开发iOS了,快来体验~

    同时Kotlin也表示将在2023年发布KMM的稳定版本。 届时Compose-jb + KMM 将实现Kotlin全平台。 项目,如果你不知道如何创建一个KMM项目,可以参照之前的这篇文章KMM的初次尝试~ ,项目目录结构如下所示。 创建好KMM项目后我们需要添加Compose跨平台的相关配置。 不过这是KMM的iOS项目,接下来我们看如何使用Compose编写iOS页面。 KMM

    1.9K30编辑于 2023-05-31
  • 来自专栏携程技术

    开源|携程机票 App KMM 跨端 KV 存储库 MMKV-Kotlin

    由于目前 Kotlin Multiplatform 生态尚处于起步阶段,大部分 Kotlin 开源库都是 JVM only 的,因此在我们团队的日常开发过程中迫切需要一些能够支持 KMM(Kotlin 2.1 安装与导入 对于 KMM 开发者,在 common source set 中导入 MMKV-Kotlin,在 Gradle 脚本(kts)中添加: dependencies {           在使用前需要进行初始化,由于 MMKV-Android 强依赖于 Context 类型,因此 MMKV-Kotlin 的初始化 API 在两端有所区别,需要在 Android 与 iOS 的主工程或 KMM MMKV-Kotlin 的总体设计见下图: 四、实现简介 在《携程机票 App KMM 跨端生产实践》(参考链接 1)一文的 2.2 小节中我们曾以 MMKV 作为 demo 来介绍 KMM 的 八、参考链接 携程机票 App KMM 跨端生产实践 https://mp.weixin.qq.com/s/gQNPO5iNFH1OQ-ygqjNfTA MMKV https://github.com/

    2.3K20编辑于 2022-06-17
  • 来自专栏Bennyhuo

    说说最近官方公布的 Kotlin 的动态

    KMM 插件 KMM 算是 Kotlin Team 为多平台这个重磅特性挖掘的一个重要的应用场景。 ? 所以 KMM 简直就是众望所归。 KMM 运行在 iOS 上的实际上就是 Kotlin Native 的代码,通过 Kotlin MPP 与运行在 Android 上的 Kotlin Jvm 代码来共享逻辑。 最近随着 Kotlin 1.4 发布推出的 KMM 插件也支持了在 Android Studio 上直接运行 iOS 应用,启动 iOS 模拟器,甚至单步调试运行在 iOS 上的 Kotlin Native 不过,如果想要将 KMM 直接应用于移动端跨平台上上,还是有些问题需要解决的,这主要就是 Kotlin Native 对于 iOS 的支持的问题,例如: Kotlin Native 的并发模型比较严格,

    1.5K30发布于 2020-10-27
  • 来自专栏深度学习与python

    Kotlin Multiplatform 实战记 | QCon

    在下文中,我会多次提到 KMM 这个简称,这里先简单讲一下 KMM 是什么: 基于 KMP(Kotlin Multiplatform)派生,全称 Kotlin Multiplatform Mobile。 对于 KMM 工程来说,通过 Android Studio KMM 插件生成的结构是这样的: 如何扩展原生能力 先举一个最简单的例子,实现一个双端的 Log 工具。 cinterop 是 Kotlin Native 支持的能力,KMM 工程的编译使用了 gradle 工具链,其中对 iOS 来说,我们使用了 Kotlin CocoaPods 插件。

    2.3K10发布于 2021-11-19
  • 来自专栏Web行业观察

    Kotlin开发框架建议入门实践

    通过Kotlin Multiplatform Mobile(KMM),开发者可以在iOS和Android应用程序之间共享通用代码,并仅在必要时编写特定于平台的代码。 KMM注重业务逻辑的跨平台共享,这使得开发者可以更加高效地利用代码资源,减少重复工作。 以下是一个简单的KMM项目结构示例:my-app/├── androidApp/├── iosApp/└── shared/ ├── commonMain/ │ └── kotlin/

    87420编辑于 2024-12-06
  • 来自专栏携程技术

    开源 | 携程机票跨端 Kotlin DSL 数据库框架 SQLlin

    一、背景 2022年9月 Kotlin 1.7.20 发布之后,Kotlin Multiplatform Mobile(简称KMM)进入 Beta 阶段,Kotlin/Native new memory 携程机票移动端团队在2021年介绍过 KMM 技术在机票产线的落地情况(参考链接 1),2022 年年中开源了团队首个 KMM 项目—— MMKV-Kotlin(参考链接 2),并撰文(参考链接 3)详述 如果你准备从 0 打造一个 KMM app 或者你是某项目的基础架构团队的成员,我非常建议你尝试 SQLDelight。 机票团队除 UI 层以外已经基本完成了基础架构建设,后续会继续调研 Kotlin Multiplatform 的 UI 跨端方案,并同步推进更多的业务代码向 KMM 的迁移。 参考链接 文章《携程机票 App KMM 跨端生产实践》 MMKV-Kotlin Github 主页:https://github.com/ctripcorp/mmkv-kotlin 文章《携程机票

    2.4K40编辑于 2023-02-28
  • 来自专栏Y大宽

    WGCNA关键模块和hub基因筛选

    有其他方法会继续补充 找到模块后如何筛选hub gene 1 High intramodular k within the module(KIM) 2 High module membership (kMM

    6.6K21发布于 2018-10-11
  • 来自专栏超级架构师

    【移动开发趋势】2022 年移动应用程序开发的主要趋势

    安卓 超宽带 (UWB) API、Jetpack Compose、Kotlin Multiplatform Mobile (KMM) 和聊天机器人是 Android 应用程序开发的主要亮点。 Kotlin 多平台移动 (KMM) Kotlin Multiplatform Mobile (KMM) 技术允许您编写一次代码,然后在 iOS 或 Android 等多个平台上使用此代码。 KMM 支持许多移动目标,包括 Android 应用程序和库,以及 ARM32 和 ARM64 平台上的 Android NDK。

    3.8K20编辑于 2022-09-26
领券