首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

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

    安装好插件后,打开Android Studio我们可以直接创建支持KMM的项目。 创建的时候会让我们填写模块的信息 创建好项目后,生成的项目目录结构是这个样子的。...expect与actual 我们要依赖Kotlin中的expect与actual关键字。expect是我们期望实现的方式,actual是实现方式,有点类似接口与实现类。...那么到这里呢,KMM我们就了解的差不多了,从上面的了解可以看出 其实KMM当前是可以使用在实际项目中的,不过我们可以再等等,Kotlin的RoadMap中说今年会发布正式版本,我们可以一起期待一下。...我们可以借助KMM插件在Android Studio中快速的创建KMM项目,但是当前如果我们想快速创建Compose Multiplatform 项目只能借助新版的IDEA。...中可以通过使用 UIKitView,在共享用户界面中嵌入复杂的特定于平台的小部件,如地图、 Web 视图、媒体播放器和照相机等。

    1.5K10

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

    2)配置 KMM 工程编译打包生成的产物导入至 Xcode 工程,使得 Objective-C 代码可以访问调用 Kotlin 代码。...我们首先选择了两个官方库:kotlinx.coroutines 与 kotlinx.serialization,当前 Kotlin 生态中的绝大部分第三方库都只能支持 Kotlin/JVM,能用于 KMM...由于框架是根据 class 对象来生成 Java 对象或 Objective-C 对象,而在 KMM 工程中我们无法拿到 Kotlin 类的 class 对象(问题的根源将在3.3 小节讨论),因此当前的网络框架无法支持生成...3.3 Kotlin 类的根级超类与 Objective-C 类的根级超类不兼容 在 Kotlin 中,所有类的根级超类是 Any。...当我们把 KMM 工程打包生成 iOS 端的 framework 之后,我们查看其内部的头文件可知,所有 Kotlin 类的跟级超类叫做KotlinBase,KotlinBase 在 KMM 工程中不可见

    3.7K10

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

    KMM的实现思路是重用业务。 在Android中开发业务实现,KMM会将你的业务生成iOS类库。你在iOS开发的时候,相当于依赖了一个类库,这个类库提供了本身你业务的很多方法。...KMM官网:https://kotlinlang.org/lp/mobile/ myddd-kmm-scoffold示例项目发布 我一直在关注与调研移动开发的技术,对iOS的SwiftUI,Android...而KMM也是我关注的一个移动开发技术方向,因为它一方面重用了业务,另一方面又维持了原生开发,似乎是个挺不错的实现思路。 最近五一假期时,基于KMM做了一个可运行的示例项目。...最终的效果参照如下: 现将这个项目的源码纳入myddd中开源出来。...• github: https://github.com/mydddorg • Gitee: https://github.com/mydddorg 未来 对于KMM这个技术,我也仍然在学习与尝试中,

    1.7K20

    Compose 跨平台现状

    这里可以看下 ComposePlugin 插件的 RedirectAndroidVariants 类,在 Android 项目编译的时候,会将 jb-compose 依赖替换成 jetpack-compose...❞ 这里面有个小插曲,在我看 compose-jb 项目的 sample 时,看到 todoapp[3] 有 iOS 项目,难道 jb 开始支持 iOS 了?...,但如果 Android 项目有用到如 AndResGuard[6] 等资源混淆的话,则这块代码将会报错,需要做 keep 处理。...如果项目有资源混淆需求的话, 建议直接定义获取图片的方法,如: 3、多语言统一 多语言的实现与图片资源设置类似: 在运行 desktop 项目时遇到中文多语言乱码问题,解决办法是将项目编码改成 UTF...-8 即可: 资源设置可以查看我的项目:KMPCompose[7] desktop 多语言设置:java中如何实现多语言切换[8] 总结 在整个调研和使用下来,感觉 Compose 跨平台还有很长的路要走

    3.5K30

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

    Android Studio创建一个KMM项目,如果你不知道如何创建一个KMM项目,可以参照之前的这篇文章KMM的初次尝试~ ,项目目录结构如下所示。...创建好KMM项目后我们需要添加Compose跨平台的相关配置。...不过这是KMM的iOS项目,接下来我们看如何使用Compose编写iOS页面。...一个尴尬的问题 我一直认为存在一个比较尴尬的问题,那就是像上面实现一个完整的双端网络请求功能需要用到KMM + Compose-jb,但是KMM与Compose-jb并不是一个东西,但是用的时候呢基本上都是一起用...Compose-jb很久之前已经发了稳定版本只是Compose-iOS目前还没有开放出来,而KMM当前还处于试验阶段,不过在2023年Kotlin的RoadMap中,Kotlin已经表示将会在23年中发布第一个稳定版本的

    1.4K30

    初学JNI java中调用c++的函数 helloworld实验

    以下这个例子,是java调用c++输出hello world的例子。也是我根据博客做的实验的记录。...我们在native method里实现的方法的名字必须也是greeting 第三步:编写C/C++本地代码,生成动态链接库文件 在visual studio(或VC++)中创建dll项目。...笔者用的是vs。 ? 创建dll项目 笔者此时用的项目名为Win32Project1。所以你应该在目录中能看到Win32Project1.cpp。...请把上面生成的头文件nativeTest_NativeTest.h放在工程目录中(与Win32Project1.cpp在同一目录下),然后将其添加入项目。 ?...jni.h在JDK安装目录下的include中。 同时得将include/win32中的两个头文件jawt_md.h、jni_md.h也导入到vs中,放在同上的路径。

    1.1K80

    quarkus实战之六:配置

    创建一个demo工程,参考下面的命令,这样的工程会自带一个web服务类HobbyResource.java: mvn "io.quarkus:quarkus-maven-plugin:create"...在环境变量中应该写成GREETING_MESSAGE 打开控制台,执行以下命令,即可在当前会话中设置环境变量: export GREETING_MESSAGE="from Environment.../resources/application.properties文件中的greeting.message配置项删除 MicroProfile是一个 Java 微服务开发的基础编程模型,它致力于定义企业...quarkus提供了一个生成UUID的方式,可以低成本解决上述问题,如下所示,应用启动时,${quarkus.uuid}会生成一个UUID,此时的greeting.message的值也是唯一的 greeting.message...,接下来的文章与本篇是配套的,会详细说明如何在代码中使用这些配置

    1.2K20

    KotlinNative 用KMM写Flutter插件

    三、设计思路 Android/iOS插件PluginCodelabPlugin只需要实现KMM Module的接口,不写任何逻辑,把逻辑通过接口放在KMM Module中。...1、定义接口中间层用于转发数据 如参考Flutter插件的MethodCall、MethodChannel,定义CommonMethodCall数据类、CommonMethodChannel.Result...fun notImplemented() } } 2、在KMM中的commonMain实现CommonCodelabPlugin插件的公共逻辑 CommonCodelabPlugin需要初始化并启动...使用KMM开发插件的好处是公共逻辑都使用kotlin写,一般公共逻辑比较简单适合使用kotlin写,便于维护。而且,实现了KMM写插件,Flutter写UI。...四、参考链接 本文地址:https://www.cnblogs.com/liqw/p/15477079.html Github项目地址:kmm-flutter-plugin

    1.1K00

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

    最近几周团队的 KMM 进度推进了不少,已经陆续把几个小业务需求迁移到了 KMM。 其实万事开头难,最初的时候许多公共团队基础类库都没有桥接到 KMM,导致好像啥业务都没法着手开始。...然后我在 Android 的主工程中编写这些桥接接口的实现,以及对 KMM 中业务逻辑的调用。...在 Android 上完成基本的测试,能跑通之后,由我的一位同事(也是小组 leader)在 iOS 主工程中编写类似我在 Android 主工程中编写的代码(Objective-C)。...对象的 API,通常的左右是来生成一个对象(和 Java 中使用 class 的方式相似),那么这样的 API 可能对 Kotlin 类不兼容。...但奇怪的是,在 Kotlin 工程中如果直接声明一个类继承自 NSObject,可以用 class() 函数来获取自身的 class 对象,但普通的 Kotlin 类则没有这个函数。

    2.7K10

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

    携程机票移动端团队在2021年介绍过 KMM 技术在机票产线的落地情况(参考链接 1),2022 年年中开源了团队首个 KMM 项目—— MMKV-Kotlin(参考链接 2),并撰文(参考链接 3)详述...如果你准备从 0 打造一个 KMM app 或者你是某项目的基础架构团队的成员,我非常建议你尝试 SQLDelight。...在我的构思中,我希望 DSL 的设计可以尽量还原 SQL 语法,并且能最大程度的减少用户编写的样板代码。...它反序列化的原理是它通过 KCP 处理注解,并生成了每个被注解类的 KSerializer,KSerializer 是一个辅助类,它包含被注解类的属性名,属性类型等信息,kotlinx.serialization...由于目前我们是本地编译发布,而 Kotlin 当前不支持类 Unix 系统和 Windows 系统的交差编译,因此 SQLlin 暂时还不支持 Windows 平台。

    1.7K40

    Typescript 全栈最值得学习的技术栈 TRPC

    当你导入 trpc 并输入 trpc. 时,将会提示出服务端定义好的 greeting 函数,如下图所示。...你如果同时调用了多次 greeting 函数,如 pages/index.tsx const result1 = trpc.greeting.useQuery({ name: 'kuizuo1' })...在我印象中,RPC 框架通常是可以跨语言进行调用的,比如 gRPC 框架,然而tRPC 目前只能在 Typescript 项目中进行调用,我倒是希望能向 gRPC 那个方向发展,不过不同语言间的类型安全又是个大麻烦...此时就可以使用 Migrate,通过命令的方式自动为我们生成当前版本下的 sql 文件,而需要用到的也通过命令的形式运行 sql 文件。...(至于如何创建 Github OAuth Apps,在我之前的文章以及外面诸多文章中都有介绍到,这里不在演示了,附上配置图) 首先在 server/auth.ts 中 导入 server/auth.ts

    3.4K51

    Typescript 全栈最值得学习的技术栈 TRPC

    当你导入 trpc 并输入 trpc. 时,将会提示出服务端定义好的 greeting 函数,如下图所示。...greeting 函数,如const result1 = trpc.greeting.useQuery({ name: 'kuizuo1' })const result2 = trpc.greeting.useQuery...在我印象中,RPC 框架通常是可以跨语言进行调用的,比如 gRPC 框架,然而tRPC 目前只能在 Typescript 项目中进行调用,我倒是希望能向 gRPC 那个方向发展,不过不同语言间的类型安全又是个大麻烦...此时就可以使用 Migrate,通过命令的方式自动为我们生成当前版本下的 sql 文件,而需要用到的也通过命令的形式运行 sql 文件。...(至于如何创建 Github OAuth Apps,在我之前的文章以及外面诸多文章中都有介绍到,这里不在演示了,附上配置图)图片首先在server/auth.ts 中 导入import CredentialsProvider

    2K20

    使用 Spring Boot Actuator 构建 RESTful Web 应用

    Spring Boot Actuator 是 Spring Boot 的一个子项目。通过它,可以很轻易地为应用提供多种生产级服务。本教程中,你将通过构建一个应用来学习如何添加这些服务。 1....你需要准备什么 大约 15 分钟时间 一个喜欢的 IDE 或文本编辑器 JDK 1.8 或更高版本 Gradle 4+ 或 Maven 3.2+ 还可以直接将代码导入到 IDE 中: Spring Tool...创建目录结构 在工作目录中,创建如下所示的子目录结构;例如,在类 UNIX 系统中,可使用 mkdir -p src/main/java/hello 命令创建。...创建目录结构 在工作目录中,创建如下所示的子目录结构;例如,在类 UNIX 系统中,可使用 mkdir -p src/main/java/hello 命令创建。...使用 IDE 构建 阅读如何将本教程代码直接导入到 Spring Tool Suite 阅读如何在 IntelliJ IDEA 中使用本教程代码 6.

    74120

    SpringBoot构建RESTful程序入门

    你需要的 大约15分钟 你喜欢的文本编辑器(我这里用了vscode)或者IDE jdk1.8+ Gradle 4+ 或 Maven 3.2+ 你也可以直接把你的代码导入到你的ide中 Spring Tool...这3个包算是完整的项目基本上都要用到的。 然后是spring-boot-maven-plugin插件。他提供了很多便捷的特性。 把用到的所有依赖打包成一个整体,这样方便服务的执行以及分发。...创建一个资源表示类 定义好了pom就可以开始写代码了。 先想一下服务的交互是怎么样的。 服务处理/greeting过的来的get请求,可能会有一个name参数。...@SpringBootApplication是一个简便的注解,它添加了下面这些东西: @Configuration 定义这个类是bean的来源类。...编译生成可执行的jar 你可以通过命令行的Maven或者Gradle来运行程序。或者你可以把程序编译生成一个可执行的jar文件。这个jar文件包含了必须的依赖,类,资源文件。这方便于分发部署。

    66130
    领券