首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

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

打开 Android Studio -> 点击 Configure -> 选择 Plugins plugins 部分选择 Marketplace ,搜索 KMM,安装并重启 Android Studio... Android Studio 首页选择 “Start a new Android Studio project” 。...首先, common 模块中使用 expect 关键字声明一个类或函数,就像创建接口或者抽象类一样。然后,在所有的其他模块编写平台特定代码来实现对应类或函数,并用 actual 修饰。...你已经完成了你一个 KMM app 。...不知道你怎么看 KMM评论区留下看法吧! 最后打个广告,推荐一波小专栏,面向面试 Android 复习笔记 ,目前已经输出六篇文章,感兴趣可以给个订阅,点击文末 阅读原文 可直达。

1.9K20

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

输入项目名称,选择对应配置 iOS 框架分发列表,选择常规框架选项 (这里为了简单演示,实际项目根据所需选择即可)。点击Finish就创建了一个KMM项目。...共享模块由三个源集组成:androidMain、commonMain 和 iosMain。 源集是一个 Gradle 概念,用于逻辑上组合在一起多个文件,其中每个组都有自己依赖项。... Kotlin Multiplatform ,共享模块不同源集可以针对不同平台。 如下图所示。 支持多个目标的多平台库,可以公共源集 commonMain 中使用。...我们这里仅运行Android程序,运行结果如下图所示。 这个结果来自shared模块commonMain下Greeting文件,代码如下所示。...写在最后 到这里,恭喜你,已经入门了KMM使用,更多使用方法需要在实际项目中不断地去总结,去尝试,Jetpack目前也开发KMM版本,这对KMM发展将会是一个推进~

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

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

创建项目 Android Studio我们可以借助Kotlin Multiplatform Mobile plugin插件来快速创建支持KMM项目。...安装好插件后,打开Android Studio我们可以直接创建支持KMM项目。 创建时候会让我们填写模块信息 创建好项目后,生成项目目录结构是这个样子。...KMM插件只为我们创建了Android和iOS源集,如果想创建其他平台可以自己创建文件夹然后指定目标平台。 创建好项目之后我们来看如何处理公共业务逻辑。...首先我们要在commonMain中使用expect定义这个接口 然后我们shares模块androidMain、iOSMain目录下各自实现打开蓝牙方法。...我们可以借助KMM插件Android Studio快速创建KMM项目,但是当前如果我们想快速创建Compose Multiplatform 项目只能借助新版IDEA。

55110

KotlinNative KMM项目架构

KMM 帮助下,您可以 iOS 和 Android 应用程序之间共享通用代码,并仅在必要时编写特定于平台代码。...[KMM构建.png] 二、KMM项目架构 项目架构主要分为原生系统层、Android/iOS业务SDK层、KMM SDK层、KMM业务逻辑SDK层、iOS sdkframework层、Android/...Android/iOS业务SDK层:主要是包括一些现有的Android/iOS SDK,需要直接依赖现有SDK来开发KMM时,commonMain expect声明接口,androidMain、iosMain...String, message: String) ... } androidMain中用actual修饰来实现真正接口,带actual修饰方法为Android/iOS公共方法,不带actual...这里提一下几个值得注意问题。有2种方式构建:1、本地构建,写一个sdkframework项目依赖其他模块klib包,来构建sdkframework。

3K00

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

搭建项目 创建项目 因为目前Compose for iOS阶段还在试验阶段,所以我们无法使用Android Studio或者IDEA直接创建Compose支持iOS项目,这里我们采用之前方法,先使用...Android Studio创建一个KMM项目,如果你不知道如何创建一个KMM项目,可以参照之前这篇文章KMM初次尝试~ ,项目目录结构如下所示。...gradle.properties,代码如下所示: compose.version=1.3.0 然后我们shared模块build文件引用插件 plugins { kotlin("multiplatform...一个尴尬问题 一直认为存在一个比较尴尬问题,那就是像上面实现一个完整双端网络请求功能需要用到KMM + Compose-jb,但是KMM与Compose-jb并不是一个东西,但是用时候呢基本上都是一起用...Compose-jb很久之前已经发了稳定版本只是Compose-iOS目前还没有开放出来,而KMM当前还处于试验阶段,不过2023年KotlinRoadMap,Kotlin已经表示将会在23年发布第一个稳定版本

1.2K30

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

前言 KMM发展除了靠官方社区支持外,一些大企业开源落地也尤为重要。从这些开源我们需要借鉴他设计思想和实现方式。从而在落地遇到问题时,寻得更多解决办法。...如果之前项目已经使用了AndroiXPaging库,则可以Android平台上无缝迁移。...如果你之前从未使用过Paging库,可以参考许久之前两篇相关文章: View中使用Paging3分页库 Compose中使用分页库 接下来我们就以multiplatform-paging-samples...项目架构 从项目架构可以看出在共享模块,只有iosMain并没有AndroidMain,这是因为我们前面所讲到针对Android平台是可以无缝迁移。...是定义models.kt密封接口。

1.1K20

Kotlin Multiplatform 实战记 | QCon

日常开发,会遇到以下几个问题: 基础模块逻辑相对复杂,多端研发成本高 双端逻辑代码膨胀,无法保证完全一致,问题排查难 逻辑代码穿插在各个模块,现有跨端复用方案迁移成本高 这些问题可能很多存量 App...对于 KMM 工程来说,通过 Android Studio KMM 插件生成结构是这样: 如何扩展原生能力 先举一个最简单例子,实现一个双端 Log 工具。... commonMain 里定义好 expect fun,然后分别在 iosMain 和 androidMain 实现 actual fun。...1 + 1 = 2 例子举完了,真正应用开发,调用 Android 能力是非常简单,和普通 Android 开发没有区别,只要通过 gradle 引入需要库,就可以调用里面的代码了。...整个日志模块 Kotlin 部分,起到一个承上启下作用。 搜索筛选 搜索筛选是个业务场景,1688 APP 首页就可以直接跳转到搜索,是一个非常大流量入口。

1.4K10

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

如果要从零搭建一个 KMM 工程,IntelliJ IDEA 或 Android Studio KMM 模版插件可以辅助创建,整体工程就是一个常规 Gradle 工程,内部包含两个 Gradle module...但我们场景是现有且彼此独立携程 Android 与 iOS App工程引入 KMM,所以我们需要将 KMM 作为一个独立子工程模块进行集成。...2.4 业务 Model 模块 根据由下至上开发顺序,基础底层架构都搭建完毕后, KMM 工程业务层代码编写应该首先要规范 MVVM 模式 Model 层代码编写。...更让人头疼是,数据 Store 内流转时每经过一个组件就会变一个名字,这丛概念上讲确实没有什么问题,因为数据不同组件间流转时从概念上来说会有区别,但在 MVIKotlin 设计每种概念都由一个...; kotlinx 库方面,除了上述 kotlinx.coroutines 与 kotlinx.serialization,官方之前又启动了 kotlinx.datetime 项目,用于全平台

3.2K10

别具特色跨平台移动开发 - 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示例项目发布 一直关注与调研移动开发技术,对iOSSwiftUI,Android...而KMM也是关注一个移动开发技术方向,因为它一方面重用了业务,另一方面又维持了原生开发,似乎是个挺不错实现思路。 最近五一假期时,基于KMM做了一个可运行示例项目

1.5K20

Android开发(第一行代码 第二版) 常见异常和解决办法(基于Android Studio)(一)

1.Android Studio 3.0及以上版本找不到Android Device Monitor: 解决办法: (1)Android Studio打开终端,如图 ?...AndroidX 是一个扩展 库,用于向下兼容.支持, 28稳定版库将所有的v4,v7,后续功能将被整合到 androidx 包。...如果取值为false,表示不迁移依赖包到androidx,但在使用依赖包内容时可能会出现问题,当然了,如果你项目中没有使用任何三方依赖,那么,此项可以设置为false (2)modulegradle...意思大概是说调用了一个空对象不存在方法,但是Button明明是存在啊,为什么会这样呢?...原来是因为Project中有多个活动,一个MainActivity和其他活动,这个Button是在其他活动,这里是OCRActivity调用,每个活动都有一个对应.xml文件,来对里面的组建进行布局

2.6K11

Compose 跨平台现状

实现这个方法,这样,不同平台集成 KMM 时就可以实现各自平台效果。...❞ 这里面有个小插曲,看 compose-jb 项目的 sample 时,看到 todoapp[3] 有 iOS 项目,难道 jb 开始支持 iOS 了?...来实现组件路由,但该组件 jb 并没有移植到 jb-compose ,所以,无法两个平台上实现复用,好在浏览 jb-compose 项目的 issue 时找到了一个可替代方案 Decompose...-8 即可: 资源设置可以查看我项目:KMPCompose[7] desktop 多语言设置:java如何实现多语言切换[8] 总结 整个调研和使用下来,感觉 Compose 跨平台还有很长路要走...觉得,如果有一款能直接让客户端编程语言(kotlin、swift)直接实现跨端,而不是再学习一款语言(dart) 来实现多平台开发,那真是一件美好事情。

3K30

不得不看Flutter与Android混合开发

/include_flutter.groovy' )) ``` 添加完成后,就能够Android Studio中看到flutter模块,如下图。...页面构建成View flutter模块Flutter类给我们提供了一个方法——createView。...通过该方法,我们可以将flutter页面构建成一个View。而View相关操作想必对于Android开发者来说都不陌生,所以就通过addView将flutter页面添加到相应地方。...3.2、flutter模块调试 其实混合项目的flutter模块调试与flutter项目唯一却别就是如何在Android Studio与设备之间建立socket连接。...flutter项目中,我们可以直接点击debug按钮来进行调试,但在混合项目中,该按钮就不起作用了,得通过其他方式来建立连接。

5.3K41

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

如果你准备从 0 打造一个 KMM app 或者你是某项目的基础架构团队成员,非常建议你尝试 SQLDelight。...三、 基本设计与实现 3.1 架构设计与 module 划分 一个项目开发之前,我们首先需要做是将项目的基本功能理清,然后进行适当 module 划分: 无论是 iOS 还是 Android,最底层调用都是...再往上就到了 KMM common 层,我们希望 DSL API 实现应该是完全平台无关, 因此我们需要 sqllin-dsl 下层提供了一个叫做 sqllin-driver 模块,它在不同平台上提供不同具体实现...构思希望 DSL 设计可以尽量还原 SQL 语法,并且能最大程度减少用户编写样板代码。...使用 val 声明属性用于条件语句中表示列名,而使用 var 声明则是 SetClause 扩展属性,用于 SET 子句中设置一个值。

1.6K40

Android P-Slices特性实践

Slice其实是一个UI展示模块,它可以搜索APP、语音助手、关键字识别等动作动态地显示你APP部分模块内容,通过它,可以丰富地显示你APP当中内容。...开始使用 Tips *1.开始使用之前,你需要更新最新版本Android Studio,到目前使用最新版本为 Android Studio 3.3 Canary 3 。...*   1.新建你Android项目gradle添加如下依赖: implementation 'androidx.slice:slice-core:1.0.0-beta01' implementation...Viewer ,搜索框输入对应SliceURI地址,便可在搜索APP中看到应用APP添加Slice模块: Slice模板 ListBuilder   Slices通过ListBuilder类来创建...ListBuilder,你可以添加不同类型模块在你Slice中进行展示。

1.2K40

ReactJS和React-Native主要区别在哪里

React-Native某种程度上与ReactJS非常相似,但在开始第一个本机应用程序之前,您需要知道它们之间差异。...不知道你,但即使Flexbox已经有一段时间了,从来没有完全沉浸于其使用,主要是因为涉及项目需要与旧版浏览器向后兼容性。...确信你为现代浏览器写代码时遇到过类似的问题,而且需要在旧浏览器中看起来“不太糟糕”,在这里添加一些条件代码,在那里Javascript甚至Javascript 。...建议您将组件主要逻辑定义一个名为index.js文件,然后您将使用单个文件定义演示组件。...开发者工具 当您启动本机项目时,您可以从React获得几个开发人员工具,而无需安装任何内容,这在我看来非常棒。当您需要对应用程式样式做小修改时,非常适合使用热加载。

16.9K30

❤️【Android精进之路-03】创建第一个Android应用程序竟然如此简单❤️

这篇文章将介绍如何使用Android Studio创建第一个Android应用,重点介绍Android Studio目录结构。...创建第一个Android应用 首先,让我们来创建第一个Android应用。欢迎页面点击New Project按钮。...进入下一个界面之后选中Basic Activity 按钮,创建一个基本视图Android应用。 接着进入下一个界面,在这个界面可以填写项目名,包名等等。...这里建了一个名为HelloWorld项目。 设置完成之后点击Finish 按钮。即可完成第一个Android项目的创建。...每个模块均有自己build.gradle文件。但此项目当前仅有一个模块,所以只有一个针对应用模块

60400

深踩Android Studio 缓存坑及解决方法

本文记录是今天群里提到昨天所踩一个坑,有关 AndroidStudio 缓存。 先说一下背景。 负责一个项目,对一个图表库有外部依赖。...不周知也没关系,在这里补充说明一下, Gradle 用户指南依赖管理一章,有提到 Gradle 对于动态版本和变化模块缓存时间默认是 24 小时。 何为动态版本?...这时候忽然想起,我们公司阿里云服务器上搭建了一个 maven 私服,去年时候在上面配置了对 OJO 代理,这时候拉取是私服上版本,是它没有更新? 没关系,解决方法很简单,删!... Android Studio 执行了构建,然后发现它确实重新缓存了。但是—— 悲剧就此发展,深坑就此塌陷! 这时候,发现不单是 API 没有出来,编辑器里有关这个库代码全都变红了!...忽然 Stackoverflow 中看到了一个看起来不是很常见回答: 退出 Android Studio,删除所有的 .iml 文件以及 .idea 目录,打开 Android Studio 重新导入项目

4.5K30
领券