城市直播房产教育博客汽车
汽车报价
买车新车
博客专栏
专题精品
教育留学
高考读书
房产家居
彩票视频
直播黑猫
投资微博
城市上海
政务旅游

Android开发为什么除Flutter之外,还需要另一个跨

2月26日 金钟寨投稿
  编译:核子可乐、燕珊
  不久前,谷歌正式推出JetpackCompose1。0版本。近日,JetBrains在此基础上发布了ComposeMultiplatformAlpha版本,旨在将Compose扩展到桌面和Web端。
  ComposeMultiplatform由ComposeforDesktop和ComposeforWeb组成,通过KotlinMultiplatform支持许多不同的平台。其中,ComposeDesktop采用Google的Skia图形库,来实现在Windows、macOS和Linux上的UI绘制,借此在所有支持的操作系统中提供统一的体验,类似于Flutter的做法。
  根据Kotlin团队的说法,相比起Electron框架,ComposeMultiplatform在内存消耗、安装大小和UI渲染性能等方面将有更明显的优势。随着Alpha版本的发布,ComposeMultiplatform还收获了新的AndroidStudio插件,包括对在IDE中显示组件预览的支持以及许多附加功能。
  我们希望通过本文帮助大家进一步了解Compose的跨平台能力,以及JetBrains将Compose从Android扩展到这些其他平台背后的主要驱动力是什么。基于JetpackCompose1。0
  由谷歌打造的JetpackCompose是一款用于在Android应用程序之内构建用户界面的官方框架,上周刚刚发布1。0版本。与此同时,AndroidStudio代号极狐的首个稳定版2020。3。1也正式亮相。
  尽管才刚迎来1。0,但谷歌表示目前PlayStore中已经有超过2000款应用程序在使用Compose更重要的是,就连PlayStore这款应用本身也在使用Compose。谷歌方面还表示,我们一直在与一些顶级应用的开发人员进行合作,他们的反馈和支持帮助我们使1。0版本更加强大。
  Compose是一套声明式框架,其最大特色在于摆脱了传统Android方法中的层级结构,或者说布局与控制树。Compose用户界面通过编写带有Composable注释的函数(用于描述屏幕状态)来定义,也就是所谓函数生成用户界面。谷歌Android开发团队解释道,随着应用程序状态的变化,你的UI也会自动更新,这让快速构建UI变得更加简单。
  JetpackComposeforAndroid迎来1。0版本
  Compose基于Kotlin开发,而Kotlin与AndroidStudio(即官方指定的AndroidIDE)均来自开发工具厂商JetBrains。虽然JetpackCompose专为Android打造(与谷歌的Flutter框架不同),但JetBrains公司坚信Compose完全能够获得跨平台能力。ComposeforDesktop:这只是开始
  ComposeMultiplatform可以说是该框架面向MacOS、Linux、Windows以及Web开设的一个端口,目前刚刚发布1。0Alpha版本。虽然尚处于早期开发阶段,但JetBrains表示,其已经为开发人员带来能够基本安全使用的稳定API。
  TheRegister就此事询问了JetBrains公司Compose项目负责人NikolayIgotti,希望了解为什么该公司在拥有了已经广泛应用于IntelliJIDEAIDE及多种丰富变体的桌面应用程序跨平台Java框架之外,还要费力开发ComposeforDesktop。Igotti的回答是,旧有Java框架基本上就是修改版的Swing。Swing属于默认JDKUI框架,Swing和AWT(AbstractWindowsToolkit,抽象窗口工具包)。Compose则完全是另一码事,当然我们也在设计中考虑到了互操作性需求Swing这套框架太陈旧了,最早出现在上世纪九十年代末。多年来人们对于UI的设计思路已经天翻地覆,Swing显然满足不了要求了。
  JetBrainsIDE中的ComposeforDesktop项目
  Compose与Swing有一个比较大的共同点:与其他使用本机控件的跨平台框架,比如例如Java的SWT(StandardWidgetToolkit)以及微软的Xamarin有所不同,它们选择自主绘制控件。Compose使用的Skia开源图形库,也在谷歌Chrome、Flutter及其他众多框架当中得到广泛应用。那这是否意味着Compose应用程序将没有自己的原生外观?对此,Igotti的回应是,这取决于开发人员的选择,取决于他们如何为应用程序设置主题。在这方面,Compose的情况与Flutter等其他框架没什么区别。
  那ComposeforDesktop应用程序是否依赖于JVM(JavaVirtualMachine)运行?Igotti表示,我们也知道,JVM应用程序的发布情况可能比较棘手。因此我们提供自己的Gradle插件,其使用jpackage与Jlink以JVM应用程序为基础制作原生应用程序。Mac的。dmg、Windows的MSI、Linux的deb包等均可实现,大家用不着担心JVM。
  也就是说,开发成果将会是一款被精心包裹起来的JVM应用程序。JetBrains还有一款用于解决这个问题的KotlinNative编译器,预计将在未来发布,或者专门用于桌面开发。
  对应用程序的另一种思考方式
  那Web应用程序方面呢?Igotti回应称,我们使用KotlinJS编译器。Compose的Web版本不如桌面版先进,说明文档中也警告称API尚未最终确定,预计会发生重大变化。此外,虽然Web版本确实使用Compose模型,但API却完全不同,而且会使用HTML与CSS。所以,Web版与ComposeforDesktop之间能够共享的代码应该比较少。
  据Igotti介绍,Compose代表着一种不同的应用程序思考方式。状态即UI的真实来源,而UI本身是无状态的,其表达永远由状态计算得出。在这方面,ComposeforWeb采用一组相同的原语,完全相同的状态管理思路。但是对于具体的小部件集合与排列方式,Web版与桌面版之间确实无法互通。
  说到这里,为什么要把ComposeforAndroid扩展到多种其他平台之上?Compose的目标受众主要分为三类。首先是使用Kotlin与Compose的Android开发人员,他们希望把自己的开发成果交付至其他平台;其二是纯Kotlin开发人员,他们希望以‘一次编写、随处运行’的方式开发新的应用程序;第三则是那些不太熟悉Kotlin或者Compose,但又希望开发出精美UI的用户,我们希望能为他们提供实现目标的工具。
  Igotti并没有给出具体的发布日期,但表示自己希望Beta版能在今年秋天发布,我们也希望能在今年之内推出1。0版本。项目本身是完全开源的,二十一世纪了,框架在大多数人们心目中就不应该收费。我们只是想开发一款长期缺失的软件,补足JetBrains当前商业模式中的工具链。
  需要注意的是,Compose并不提供可视化设计器。Igotti提到,大多数开发者都不喜欢图形UI构建器,声明式UI与设计内容预览才是最受欢迎的解决思路。因此我们提供预览机制,您可以在composable函数上添加注释,并在无需运行应用程序的前提下快速预览。
  JetBrains认为目前工具市场对于桌面应用程序开发者的支持并不到位,公司组织的内部开发者调查也在一定程度上证实了这个结论。桌面开发现在有点‘二等公民’的意思这可是个需要高度关注的小众市场。
  那么,JetBrains会在自己的其他工具中使用Compose吗?事实上,他们的JetBrainsToolbox(用于管理已安装的IDE)已经在使用Compose,但Igotti表示短时间内Compose还无法取代IntelliJIDEA等现有框架。编辑器是其中最复杂也最重要的组件,经历了20年的发展演进,我们几乎不可能在中途进行重写了。无论是JetBrains还是我个人,都不打算强迫每个人都转而使用Compose。我们的目标是为原有框架选项满足不了的用户提供新的解决方案。写在最后
  那么,为什么除了Flutter之外,我们还需要另一个跨平台框架?虽然谷歌的Flutter最开始主要面向移动设备,但现在也开始向桌面及iOS进军,甚至比Compose还抢先了一步。不过,根据StackOverflow的最新调查,Flutter使用的语言为D尽管Dart语言的人气正在增长(正是受到Flutter的推动),但仍然无法与Kotlin相提并论。
  更重要的是,Compose的发展势头颇为强劲其GitHubrepo拿下5000多个星,上报问题的数量也非常多。虽然诸多问题代表着麻烦不断,但也恰恰说明了这是开发者们所热切关注的方向。
  Compose代表着一种独特的UI构建方法,也许最期待Compose跨平台功能的受众,正是那些曾在Android上使用过它、又特别喜欢这种UI构建体验的开发者。
  想要进一步了解Compose,大家可以通过私信我获取jetpack完全手册
  在这里还分享一份由大佬亲自收录整理的Android学习PDF架构视频面试文档源码笔记,高级架构技术进阶脑图、Android开发面试专题资料,高级进阶架构资料
  这些都是我现在闲暇时还会反复翻阅的精品资料。里面对近几年的大厂面试高频知识点都有详细的讲解。相信可以有效地帮助大家掌握知识、理解原理,帮助大家在未来取得一份不错的答卷。
  当然,你也可以拿去查漏补缺,提升自身的竞争力。
  真心希望可以帮助到大家,Android路漫漫,共勉!
  如果你有需要的话,只需私信我【进阶】即可获取
投诉 评论 转载

什么是私域流量?私域流量是什么?为什么要做私域流量?私域流量的载体有哪些?如何玩转私域流量?本文笔者将从这四个方面来与大家分析下私域流量。为什么私域流量突然被广大公司提起,其势头还很可能……BAT批处理脚本教程BAT批处理脚本教程第一章批处理基础第一节常用批处理内部命令简介批处理定义:顾名思义,批处理文件是将一系列命令按一定的顺序集合为一个可执行的文本文件,其扩展名……恒大汽车已获得授权专利1355件中证网讯(记者崔小粟)5月12日,恒大汽车发布公告,截至本公告日,恒大新能源汽车集团(含下属企业)在中国及国外总共申请专利3012件,其中已获得授权专利1355件,这些专利涵盖……茅台在中国股市是什么样的存在?茅台股价几乎一直再涨,市值最高时在三万多亿人民币。茅台股市表现为什么这么好?因为它是中国股市最契合巴菲特价值投资理念的公司。茅台拥有深广的护城河,给你再多的钱也没法……高通骁龙888Plus将加速高端5G手机的游戏和人工智能它将在2021年第三季度到达设备。莎拉蒂布肯太平洋时间2021年6月28日凌晨3:15高通的骁龙888Plus将于今年晚些时候用于手机。高通手机的速度正……轻至960g惠普星13Air是如何做到的惠普最近发力很不错,星13Air最近就十分火,这款号称轻至960g,为何能够做到这么轻呢?我们今天一起来探究一下。首先我们要解决一个问题:一款笔记本到底是怎么做轻的?……智能助理透露ColorOS12将于9月13日发布OPPORe智能助理透露:ColorOS12将于9月13日发布OPPOReno7Pro曝光继OPPO发布了OPPOFindX3系列之后,虽然还发布了包括第二代智能手表等Iot产品,但……5G时代还需要光纤吗?5G时代核心网到基站的光纤还是要有的,但是入户的光纤可以被替代。我们现在家里上网很多时候是电信局拉一根光纤入户,然后配合光猫和无线路由器变成WiFi信号。5G时代家里上网……蚁起悦暖冬元气新出行奇瑞新能源约惠不停随着早冬的来临,金九银十销售旺季逐步接近尾声,这也让车企鏖战的喧闹告一段落。在这场销量争夺赛中,奇瑞新能源不负众望地迎来金秋硕果,凭借时尚精致的颜值和出色的产品力表现,奇瑞小蚂……Android开发为什么除Flutter之外,还需要另一个跨编译:核子可乐、燕珊不久前,谷歌正式推出JetpackCompose1。0版本。近日,JetBrains在此基础上发布了ComposeMultiplatformAlpha……北京多次违规停放用户将被限制使用来源:北京青年报为解决互联网租赁自行车(即共享单车)乱停乱放问题,进一步引导用户形成禁停区不停车、入栏管理区停车入栏、其他区域有序停放的良好习惯,昨日,由北京市自行车电动……山灵播放器怎么样,山灵播放器好吗,山灵播放器值得购买吗山灵播放器还是不错的,非常好用,可参考下面对山灵播放器试用点评和感受。本人算音频爱好者,工作原因多选移动设备。大约20年前入手第一块砖,港货,稍可满足。10年前先后入手爱……
SQL那些事入门基础语法花椒母公司冲刺港股前8个月营收近30亿周鸿祎为大股东为什么佩戴助听器时,有些人需要做个耳模?3亿台设备!关于鸿蒙系统,华为高管公开发声德国超市麦德龙将退出中国市场你怎么看?创小报80期阿里公布处罚结果腾讯微视裁员NASA模拟火星生活腾讯的势力到底有多大?网友堪比财阀传说中的网红香水合集!来挑选你的专属香水佳缘科技2022年第一季度亏损430。12万同比亏损减少业务三分钟了解Go语言的前世今生这些SpaceX的前工程师计划用电动机器人火车改变货运轨道手机掉了,怎样第一时间将支付宝,微信支付通道堵死?
看完新半生缘发现,前面47集白看了,结局20分钟才是重点避雷!想要祛斑成功,避开这些祛斑误区!热博聚热点网 这几个星座表面看似花心实际用情至深抗美援朝防空作战,对伪装作战的要求很高,要求做到五不见枕上书是谁害死阿兰若?结局是怎样的?空降利刃林俊娇张启是一对吗林俊娇张启结局在没在一美女跑车KenBlock御用甩尾战车大战法拉利F8Tribu恭喜!猴哥何钰欣被曝登记结婚,现场照片曝光,手拿证件开心微笑暴雪暗黑破坏神不朽将于年内在全球各地发售合伙企业解散的有哪几种情形春节感谢老板红包祝福语有哪些热传聚热点网 怎么用微信赚钱四种方式让微信成为您的摇钱树

友情链接:中准网聚热点快百科快传网快生活快软网快好知文好找江西南阳嘉兴昆明铜陵滨州广东西昌常德梅州兰州阳江运城金华广西萍乡大理重庆诸暨泉州安庆南充武汉辽宁