安庆大理运城常德铜陵江西
投稿投诉
江西南阳
嘉兴昆明
铜陵滨州
广东西昌
常德梅州
兰州阳江
运城金华
广西萍乡
大理重庆
诸暨泉州
安庆南充
武汉辽宁

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年前先后入手爱……
两位重要领导公开发声,撕开了联想柳传志的遮羞布追着太阳跑,要多快才能一直是白天?中国网安企业人士提供翔实一手资料印度黑客对我重要部门频密发动美企高调官宣终止和大疆的合作,外媒在国际上是一个笑话科大讯飞是一家什么样的公司?湖南亿麦思医疗5G智慧医疗助力临床医学发展重磅!清华大学成立芯片学院,为国家培养芯片人才手机买8GB还是12GB内存?老师傅详细讲解,早知道该多好JZ和为S的两个数字荣耀7月14日发布新款MagicBook,网友还用美国芯片?美团王兴称马云仍有诚信问题,阿里回应亮了大众T家族车型再次回归将推新能源版车型

友情链接:中准网聚热点快百科快传网快生活快软网快好知文好找七猫云易事利