美文网首页
04_Kotlin跨平台初探

04_Kotlin跨平台初探

作者: 刘加城 | 来源:发表于2023-01-01 01:12 被阅读0次

Kotlin跨平台初探

    在学习Kotlin的时候,发现它居然提供了移动跨平台解决方案。虽然目前还是个beta版本,但也引起了我的好奇心。想着如果Kotlin能够解决跨平台问题,那么不论从语言角度,还是从熟悉角度,都是首选。毕竟相比另外两大方案Flutter和React Native来说,它容易多了。Flutter使用了全新的开发语言Dart,不论是Framework层、View层,还是数据层,都是重新设计的一套。React Native则是在JS 库React基础上发展而来的,它使用JS来描述界面元素。这两者都有较大的学习成本。

(1)主要目录结构

    在AndroidStudio或者IDEA上,根据官方文档步骤,可以创建Kotlin跨平台项目。下面是它的主要结构:

  • androidApp目录:Android主项目,它和使用AndroidStudio创建的普通项目一样;
  • iosApp目录:ios主项目,可以通过mac Xcode打开。如果要做一些配置,如开发者账户信息,需要通过Xcode来处理。AndroidStudio或者IDEA本身不支持配置;
  • shared目录:跨平台的精髓,所有支持跨平台的代码都放在这里。对Android来说,它是作为一个lib导入到Android Project里。

(2)协程

    跨平台的代码,是用kotlin语言编写的,它可以使用协程。对于Android来说,它最终是Java Class字节码。不论是Dalvik虚拟机,还是Art虚拟机,都不知道协程的存在。对于IOS来说,它最终会被实现为回调的方式。

(3)限制

    Kotlin跨平台方案存在很大的限制。大体概括一下:只有数据层的可以跨平台,如网络请求、Json序列化和某些工具方法等;View层不能跨平台,UI绘制分别在各自的Project里;平台相关的如文件、数据库操作等,都不能跨平台,需要各自处理。以下是一些总结:
    可以跨平台的:

  • 网络请求及签名加密;
  • 序列化数据层model;
  • kotlin跨平台库;
  • 某些特定工具方法。

    不能跨平台的:

  • View相关,及动画相关;
  • 四大组件相关;
  • 文件操作相关(SharePreference、File);
  • 数据库操作相关(sqlite);
  • 与js的交互相关;
  • 屏幕信息相关;
  • 资源相关;
  • 国际化(多语言)相关;
  • JNI相关;
  • 多媒体(音频、视频)相关;
  • 通知(Notification)相关;

(4)总结

    基于上面的结论,就没有对Kotlin跨平台方案再深入下去。因为限制太多了,可以跨平台的很有限。但总的来说,Kotlin提供了诸多跨平台方案中的一种,对一些公共逻辑代码,提供了很大的方便。期待它能继续发展下去,创造更大的舞台。
    Over !

相关文章

  • nginx平台初探

    nginx平台初探 nginx平台初探(100%) — Nginx开发从入门到精通

  • 移动跨平台方案初探索

    小伙伴们,今天牛同学有空,整理了当下最受欢迎的跨平台方案Rn和Flutter的优缺点, 在此做下记录,持续更新in...

  • C#开发linux服务初探3

    承接上文《C#开发linux服务初探2》,今天讲一下服务对外提供调用接口。进来微软为了跨平台提出了OWIN新标准,...

  • 为什么要学习跨平台? Flutter 跨平台框架应用实战

    为什么要学习跨平台? Flutter 跨平台框架应用实战为什么要学习跨平台? Flutter 跨平台框架应用实战

  • flutter-对跨平台的理解

    一、跨平台语言 1、对跨平台的理解(跨操作系统) java语言的跨平台说白了是让程序员用户可以跨平台,它的平台移植...

  • JAVA学习笔记1

    1.java的跨平台java能跨平台是因为JVM,java语言可以跨平台,JVM不能跨平台对于不同的系统,有不同的...

  • 2018-09-06

    浅谈应用跨平台开发 名词解释 跨平台 什么是跨平台?——Techopedia A cross-platform c...

  • Java跨平台根本原因,面试必问JVM内存结构白话文详解来了

    目录 什么是跨平台?跨平台定义C语言代码能不能跨平台运行呢?Java跨平台的原因 JVM内存结构运行时数据区总览程...

  • 1.进程-multiprocessing

    1.由于Python是跨平台的,自然也应该提供一个跨平台的多进程支持。multiprocessing模块就是跨平台...

  • 跨平台

    1. 当出现如下报错是模拟器无法连接到本地服务器,原因的系统没有启动node服务器,需要自己打开 解决方法:运行命...

网友评论

      本文标题:04_Kotlin跨平台初探

      本文链接:https://www.haomeiwen.com/subject/oyrqcdtx.html