微信号:Google_Developers

介绍:谷歌官方公众号,这里有:Develop ( Android 等各种谷歌开发技术)、Engage (利用 Google Play 进行产品经营和优化) 和 Earn (利用 AdMob 进行产品营利和变现).

用 Flutter 在 Android 和 iOS 上构筑精彩

2019-04-12 09:30 Flutter

作者 / Martin Aguinis, Flutter Team


  • Bilibili 视频链接

    https://www.bilibili.com/video/av48889301/


很多开发者都会抱怨——移动开发充满了妥协。当您构建新的应用时,可能经常被迫做出艰难的选择: 是否要构建两次相同的应用,其中一次用于 iOS,另一次用于 Android,然后才能在两个平台上获得高质量的体验?您是否尝试过用同一套代码编译两个平台的应用,但是没能获得您希望的性能或用户体验?Flutter 的出现提供了第三个选择: 以卓越的性能实现高品质的用户体验,同时清晰顺畅地表达出设计师的意图,而且用同一个代码库就能支持两个平台的应用。

  • Bilibili 视频链接

    https://www.bilibili.com/video/av48890675/

无论您是拥有新应用创意的创业者,还是对编写 - 编译 - 调试的冗长周期感到沮丧的开发者,或是想要能够迭代新设计概念的设计师,都可以考虑使用 Flutter 来创建下一个应用,本文会为您详述采用 Flutter 的几个理由。



跨平台的精美应用


在实现应用的设计方案时,可能需要在设计师的意图和实际开发平台的限制之间进行权衡。移动设计师和开发者经常在不同的世界中工作,他们使用的工具之间存在难以跨越的边界,并且在开发过程中想迭代设计难免遇到困难。有时,设计师的愿景会因开发者使用的 API 或框架而受到限制; 有时,为了考虑整体的开发日程,视觉上的调整会经常被 "推迟" (这个 "推迟" 可能意味着 "永远")。

△ 设计师难免要执着于细节,但开发日程却让妥协成为常态。

使用 Flutter 的话,您可以从一开始就控制屏幕上的每个像素。Flutter 还内置一整套 widget,可以在 iOS 和 Android 上提供像素级的完美体验。设计师们也开始使用 Flutter 来设计极具吸引力的体验,例如在 Apple App Store 中排名第一的日记应用 Reflectly:

在设计领域也已经出现了针对 Flutter 打造的工具。比如 2Dimensions Flare,您可以使用它来制作动画,并用一行代码将动画插入到应用中。下图是一个使用 Flare 构建的自定义动画示例,请注意这个动画不是预渲染的序列帧,小熊的眼睛会跟踪您的手指:

Supernova ,知名的 design-to-code (设计转代码) 工具,最近也宣布支持将 Sketch 设计文件直接导入 Flutter。相信不少设计师都在使用 Sketch 制作界面和线框,现在您的设计距离代码只有一 "键" 之遥。


  • Supernova 支持 Sketch 转 Flutter

    https://blog.prototypr.io/sketch-to-flutter-automatically-cf693ea1c892


跨平台的高效表现


Flutter 应用不是在代码和底层操作系统之间引入抽象层,而是原生应用——这意味着它们是直接针对 iOS 和 Android 设备编译。


Flutter 的编程语言 Dart 是为满足全球化应用开发的需求而设计的。它易于学习,包含全面的代码库和代码包,可以减少您需要编写的代码量,并且它是完全为了提高开发者的生产力而设计的。当您发布应用时,您的代码会直接编译成目标 ARM 设备的机器代码——这意味着您所写的代码会在设备上直接运行并显示——因此您可以充分利用设备的全部功能,而不是像 JavaScript 那样需要隔着一层引擎运行。

△ Flutter 在手机上实时播放动画。

Flutter 不是游戏引擎,但它为您的应用带来了游戏级别的性能。Flutter 中的每个像素都是使用 Skia 图形引擎绘制的,这是一种 Android 和 Chrome 同样在使用的硬件加速引擎。这可以让应用具备快速稳定的性能表现,您的应用可以以每秒 60 帧的速率在手机屏幕上运行,即使在配置较低的设备上您也不会感到卡顿。



跨平台的高生产力


如果您是移动应用开发者,您可能会觉得开发的时候等待的时间比写代码的时间还要长。当您对代码做出更改后,必须重新编译它,将其部署到手机,还需要将应用运行到上次测试时候的状态,然后才可以看到修改的结果。这些都成为过去了,Flutter 引入了名为 Stateful Hot Reload (有状态热重载) 的新功能,它可以让您的修改在毫秒内展现。毫秒级的响应速度意味着 Stateful Hot Reload 能让开发者和设计师在针对画面进行调整时能合作得更为顺畅。

△ 修改应用的 UI 和逻辑后无需重新编译,即刻可见。

使用 Stateful Hot Reload 的团队已经向我们反馈称,他们在开发应用时的生产力得到了巨大的提升。开发者们手中现在已经有了快速修改微调的能力,再加上跨 iOS 和 Android 双平台的发布能力,效率已经今非昔比。我们已经看到,来自 Abbey Road Studios、Hamilton 和 Reflectly 等品牌的应用能够在几周内走完从写下第一行代码到最终发布的全过程。



我们期待来自您的精彩


我们不久前在 MWC 2019 上发布了 Flutter 1.2 版本。我们鼓励您造访 flutter.dev 并上手尝试 Flutter 。您将在那里找到入门所需的所有资源,包括视频、代码示例、案例研究、文档、社区链接等。


生产力的大门已经打开,我们期待着来自您的精彩。



 点击屏末 |  | 了解 Flutter 更多详细信息

推荐阅读



 
谷歌开发者 更多文章 Gboard 基于 RNN 的手写识别 Coral — 我们的本地 AI 开发平台! 让更多的开发者听到您的声音,移动开发征文活动现已开始 | 开发者说·DTalk Women Techmakers 系列活动重磅来袭 创作、连接与成长: Google 的游戏成功蓝图
猜您喜欢 评价对象抽取综述 Serverless实战:打造个人阅读追踪系统 我这样减少了26.5M Java内存! 专治XP正在启动就蓝屏,重启后仍循环蓝屏的问题!(重要数据一个不丢) iOS Webapp的桌面图标及更新