内容简介:下面开始 Flutter FAQ 第四期: 功能篇 (上)
Flutter 是一套高效的跨平台免费开源 SDK,可以帮助开发者用一套代码同时在 Android 和 iOS 上构建媲美原生体验的精良应用。今年的 I/O 开发者大会上我们将 Flutter 进一步升级到了 1.5 版本 ,我们从社区中也搜集到了不少开发者关注的问题,我们会用连载的形式由浅到深地为开发者们进行解答。如果您对 Flutter 已经有一定的了解,不妨在看到问题的时候先试着回答,然后和我们给出的答案进行比较,从而进一步加深理解。
下面开始 Flutter FAQ 第四期: 功能篇 (上)
问题 1:
Flutter 应用会拥有怎样的性能表现?
点击下方空白区域查看答案
▼
Flutter 应用会有很出色的性能。Flutter 设计的目标就是帮助开发者轻松实现 60 fps 的稳定帧率。Flutter 应用通过本地编译的代码运行,不涉及解释过程。这也意味着 Flutter 应用启动会非常快捷。
问题 2:
开发 Flutter 时的操作周期有多长?修改代码和看到界面内容更新之间会隔多久?
点击下方空白区域查看答案
▼
Flutter 使用的是热重载式的开发操作周期。您在实机或者模拟器上都能实现亚秒级的修改-更新速度。
另外,Flutter 的热重载是有状态的 (stateful),这意味着重新加载后 app 的状态会被保留。这样即使您修改的界面在应用很深的位置,重载后您也能直接看到修改后的该界面,而无需从应用首页开始重新操作。
问题 3:
热重载 (hot reload) 相比较热重启 (hot restart) 的区别在哪里?
点击下方空白区域查看答案
▼
热重载是通过将更改过的源代码文件注入到正在运行的 Dart VM 中来实现的。这不仅包括添加新的类,还包括在既存的类里添加方法和字段,以及修改既有的方法。不过有少数代码修改是无法被热重载的:
-
全局变量的初始化程序
-
静态字段的初始化程序
-
应用的 main() 方法
-
更多关于热重载的详细信息,请查看
https://flutter.dev/docs/development/tools/hot-reload
问题 4:
我能把 Flutter 应用部署到哪里?
点击下方空白区域查看答案
▼
您可以将 Flutter 应用编译并部署到 iOS 和 Android 平台上。
问题 5:
Flutter 可以运行在哪些设备,哪些操作系统版本上?
点击下方空白区域查看答案
▼
移动操作系统: Android Jelly Bean, v16, 4.1.x 或更新版本,以及 iOS 8 或更高版本。
移动硬件: iOS 设备 (iPhone 4S 或更新版本) 和 ARM Android 设备。
请注意,Flutter 目前不支持直接为 x86 Android 进行构建 ( 参考 问题 #9253 ) ,但是针对 ARMv7 或 ARM64 构建的应用都在很多 x86 Android 设备上表现良好 (通过模拟 ARM 来实现)。
我们支持使用 Android 和 iOS 设备以及这两种 OS 的模拟器来开发 Flutter 应用。
我们会在各种从低端到高端的手机上进行测试,但我们还没有正式保证设备兼容性。
我们认为,Flutter 会在平板电脑上运行良好。我们目前没有覆盖到全部的 Material Design 平板电脑适配规则,但我们正计划在这个领域进一步加大投入。
-
参考问题 #9253
https://github.com/flutter/flutter/issues/9253
问题 6:
Flutter 能在 Web 上运行吗?
点击下方空白区域查看答案
▼
Flutter web 目前处于技术预览状态。我们将它做为 Flutter 项目的一个分支进行开发,这种做法有利于在确保高速迭代的同时保持 Flutter 核心项目的稳定。您可以将现有的 Flutter 代码打包放在 web 预览版里使用,但由于我们还处于预览状态所以会有一些警告。
-
Flutter web 技术预览版
https://flutter.dev/web
-
使用 Flutter web 的操作说明
https://github.com/flutter/flutter-web
问题 7:
我能使用 Flutter 构建桌面应用吗?
点击下方空白区域查看答案
▼
可以,但目前支持得并不完美。我们正在致力于为桌面应用打造最佳体验。这方面的进展在我们的 wiki 上可以了解到。
-
Flutter wiki - 桌面应用
https://github.com/flutter/flutter/wiki/Desktop-shells
问题 8:
我能在我现有的原生应用里使用 Flutter 吗?
点击下方空白区域查看答案
▼
可以,您可以在现有的 Android 或 iOS 应用中嵌入 Flutter 视图,但是我们的 工具 目前尚未针对这场景进行全面优化 (相关详情请 参考 问题 #14821 )。
目前的两个演示是 platform_view 和 flutter_view 。我们的 wiki 页面 中也提供了一些初始文档。
-
参考问题 #14821
https://github.com/flutter/flutter/issues/14821
-
查看演示项目
https://github.com/flutter/flutter/tree/master/examples/platform_view
https://github.com/flutter/flutter/tree/master/examples/flutter_view
-
Flutter wiki - 将 Flutter 添加至现有应用
https://github.com/flutter/flutter/wiki/Add-Flutter-to-existing-apps
问题 9:
我能访问传感器、本地存储之类的平台服务和 API 吗?
点击下方空白区域查看答案
▼
可以。Flutter 默认即为开发者提供了操作系统中某些平台专属服务和 API 的操作入口。但是,我们希望避免大多数跨平台 API 的 “最小公约数” 问题,因此我们不打算为所有本地服务和 API 构建跨平台的操作 API。
很多平台服务和 API 都在 Pub 站点 中提供了现成的代码包,使用起来非常方便。
最后,我们鼓励开发者使用 Flutter 的异步消息传递系统来创建出自己的平台与第三方 API 整合方案。开发者可以根据需要公开尽可能多 (或者尽可能少) 的平台 API,并构建最适合其项目的抽象层。
-
Pub 站点中有大量现成的 Package
https://pub.dev/flutter/
-
使用 Package 的说明
https://flutter.dev/docs/development/packages-and-plugins/using-packages
-
Flutter 平台通道
https://flutter.dev/docs/development/platform-integration/platform-channels
问题 10:
我能对自带的 widget 进行扩展和定制吗?
点击下方空白区域查看答案
▼
当然可以。Flutter widget 系统的设计思路就是让开发者可以轻松定制。
Flutter 没有让每个 widget 都提供大量参数,而是采用了组合的方式。较大的 widget 是用较小的 widget 组合构建出来的,您可以重复使用它们,并以新颖的方式对其加以组合,从而生成自定义的 widget。例如,RaisedButton 没有继承自一个通用按钮 widget,而是将 Material widget 与 GestureDetector widget 组合在一起。Material widget 负责视觉呈现,GestureDetector widget 则实现其交互。
如果您想要创建自定义设计的按钮,可以将负责视觉呈现的 widget 与提供交互的 GestureDetector 组合起来使用。例如,CupertinoButton 就采用了这种方法,将 GestureDetector 与其他几个负责表现视觉的 widget 进行组合。
这种组合策略使您可以最大限度地控制 widget 的可视化和交互逻辑,同时重复利用大量代码。在框架中,我们将复杂的 widget 分解为实现视觉、交互和动效的各部分。您可以按照自己喜欢的方式重新组合这些 widget,从而制作出自定义 widget 来完整传达出您的设计意图。
如果您在使用 Flutter 构建应用的时候有什么想法或疑问,欢迎在评论区给我们留言。 我们期待着看到您为不同平台的用户们打造出同样精美、高效的体验!
点击屏末 | 阅 读 原 文 | 了解 Flutter 更多详细信息
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
渐进增强的Web设计
[美] Todd Parker、[英] Patty Toland、[英] Scott Jehl、[法] Maggie Costello Wachs / 牛化成 / 人民邮电出版社 / 2014-1 / 69.00
本书由全球著名Web设计公司Filament集团两位创始人和两位开发主力联手打造,其中Scott Jehl还是jQuery团队成员。四位作者具有多年的网站设计和开发经验,曾为网站、无线设备、Web应用设计过众多高度实用的用户界面,受到了高度赞扬。本书展示了如何利用渐进增强方法开发网站,从而获得最佳用户体验。本书既是理解渐进增强原则和益处的实用指南,也用详细的案例分析,目的是向设计师以及开发人员传授......一起来看看 《渐进增强的Web设计》 这本书的介绍吧!