范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

Android开发为什么除Flutter之外,还需要另一个跨平台框架?

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

徕卡SL2S擅长拍,善于摄徕卡SL2S,追光逐影为摄影师和摄像师呈现淋漓尽致的传奇徕卡风格徕卡SL2S擅长拍依然专属新一代BSICMOS徕卡SL2S相机配备全新的2400万像素BSICMOS感光元件,在任何这一口哈苏月饼,你可曾尝过?月球表面,NASA,哈苏相机拍摄CHAPTER01赏月哈苏与月球说之不尽的浪漫1962年随水星计划8号登上太空的哈苏500C,是当时太空舱内唯一没有经过定制的器材。仅凭自身配置的标哈苏80岁生日,发布奢华907X周年纪念版套装1941年,第一台HK7相机诞生,哈苏由此开启传奇影像之路,历经八十载,留下无数珍贵影像印记与动人故事。2021年,哈苏以907X周年纪念版套装,铭记为卓越影像而生的80年。灵感源哈苏XH减焦镜0。8,这款转接利器你该入手了哈苏XH减焦镜0。8为完美承接哈苏X系统与H系统而诞生的桥梁,为哈苏摄影师的创作带来更多创意选择。OttavioGiannellaX1DII50CXH减焦镜0。8HC50IIXH减如何成为一名哈苏907X50C资深玩家?距离哈苏发布907X50C已经有一段时间了,手拿哈苏907X50C进行创作时,它的操作方法,你是否已一一掌握?今天,天诺就带你一起,玩转哈苏907X50C!跨越时空连接今昔首先我们再过几天,五菱再推宏光MINIEV马卡龙秋色,好看时尚,俘获少女心在如今的汽车市场中,一款车型除了拥有更为个性的外观设计能吸引到消费者的关注之外,独特的车身配色也能成为消费者青睐这款车型的原因之一。能证明一点的案例有很多,比如说保时捷Taycan既省油性能还强的丰田SUV,零百加速5。92S,油耗1。2L,续航1152KM威兰达速不可挡说到丰田系产品,可能我们脑海中最先想到的是质量稳定这一属性,其次是混动系统加持下十分省油,但要说性能强这一点貌似与丰田车从不搭边。客观地说,长期以来丰田旗下车型的确是如何足不出户保持创造力?当疫情再次阻止了你的脚步,当自然街头甚至平日里繁忙的工作室,成为无法触及的风景,居家的你是否将相机放在角落,没有的摄影灵感?今天小编带大家看看各国徕卡哈苏摄影师们是如何保持灵感涌现全新缤智明年将国产,外观变化明显,内饰质感提升,或搭1。5L混动作为本田旗下的小型SUV,相信大多数人对缤智这款车都不陌生,2014年正式进入国内市场,与思域飞度雅阁等同属全球战略车型,不过因为多年未换代的缘故,现款缤智其实已经存在不少槽点,其TeledyneImaging的新款2k和4k线扫描相机采用紧凑型封装TeledyneImaging的新款2k和4k线扫描相机采用紧凑型封装,性能领先业界全新LineaLite系列线扫描相机比以往更易理解和使用加拿大滑铁卢,May25,2021(GL吉利星越现金优惠0。75万元现车直售星越现金直降3000元,吉利品牌CMA架构下首款SUV,百公里加速6。8秒,融合多项安全科技,现在预订享多重豪礼1。金融优享首付一成起,最低0月供2。置换优享置换补贴5500元3。
红米在印度发布新品配3200万像素前置,主打自拍!近日,小米在亚马逊印度网站更新了红米新款手机,将于4月24日在印度推出红米Y2的继承者红米Y3。亚马逊的页面显示红米Y3渲染图呈现星云红色调,猜测应该是采用类似于红米Note7系列一加发布Nord2,搭载天玑1200SoC芯片,网友称为高端机杀手日前,一加宣布推出OnePlusNord2该公司的中端系列手机。新手机采用了OPPOReno5Pro的硬件平台,因为它现在由新的联发科天玑1200提供支持。特别之处在于,一加似乎只20世纪十大战争(二)无产阶级的曙光对苏干涉战争沙皇俄国在世界第一次大战中屡战屡败,给俄国民众带来了严重的战争负担。国内先后爆发了二月革命和十月革命,列宁几乎在全国范围内建立了苏维埃政权。1918年3月3日,苏维埃俄华为举行军团组建成立大会,任正非我认为和平是打出来的10月29日,华为在广东东莞松山湖园区举行军团组建成立大会。军团包括煤矿军团智慧公路军团海关和港口军团智能光伏军团和数据中心能源军团等。此次组建大会,包括华为CEO兼创始人任正非及吴亦凡工作室再发声明,细心网友发现系P图ampampquot7月20日21点03分,吴亦凡工作室再发关于都美竹声称的转账内容声明。总结一下大致内容为1工作室收到都美竹方面威胁邮件,吴亦凡妈妈通过邮件回复和都美竹取得联系2都美竹给了自己及另外20世纪十大战争(一)铁与血的时代20世纪是人类社会风起云涌,发生重大变革的时代。科学技术的发展带动了社会生产力的空前提高,资本主义的压迫导致民族独立运动此起彼伏20世纪的世界变革伴随着战争的残酷洗礼。让我们回顾一又又又!一架美军C130降落台湾桃园机场!这次依旧送物资?前些天,美一架C146A行政专机降落在台北空军松山基地,停留34分钟后起飞离台。针对此事,相关部门随即对此事作出了回应表明了我国的严正立场。随后台湾媒体否认了美国军机一说,台湾媒体20世纪十大战争(六)人类战争史上的奇迹人类战争史上的奇迹抗美援朝战争1950年6月25日,朝鲜爆发了全面内战。美国出于维护其世界霸权的目的,进行全面干涉。同时,美国悍然将战火烧到了中国境内,并派遣第7舰队入侵台湾海峡。华为捐赠3000万元驰援河南,网友永远在默默做事据悉,此次河南洪涝灾害截止25日下午,已经导致63人遇难5人失踪。史无前例的暴雨给当地的居民生活带来了极大的影响,水电气出现不同程度的中断。灾害一发生,相关部门迅速做出应急响应,保小米11Ultra评测又大又快,但效率低下在拥有新级别的超Android旗舰设备(其规格和价格明显高于传统高端设计)的最新趋势中,我们看到小米凭借新的Mi11Ultra加入了竞争。早在3月份宣布,这款手机花了几个月的时间才20世纪十大战争(七)此消彼长的越南战争越南战争是1955年至1975年间,北越共产党政权与南越西贡政权对峙的战争。美军先是以派出军事顾问提供军事援助,继而出动特种部队直接参与对北越的军事行动,最后大规