Flutter 您需要知道的知识点 | FAQ・第四期

栏目: IOS · Android · 发布时间: 5年前

内容简介:下面开始 Flutter FAQ 第四期: 功能篇 (上)

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_viewflutter_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 更多详细信息

Flutter 您需要知道的知识点 | FAQ・第四期


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

渐进增强的Web设计

渐进增强的Web设计

[美] Todd Parker、[英] Patty Toland、[英] Scott Jehl、[法] Maggie Costello Wachs / 牛化成 / 人民邮电出版社 / 2014-1 / 69.00

本书由全球著名Web设计公司Filament集团两位创始人和两位开发主力联手打造,其中Scott Jehl还是jQuery团队成员。四位作者具有多年的网站设计和开发经验,曾为网站、无线设备、Web应用设计过众多高度实用的用户界面,受到了高度赞扬。本书展示了如何利用渐进增强方法开发网站,从而获得最佳用户体验。本书既是理解渐进增强原则和益处的实用指南,也用详细的案例分析,目的是向设计师以及开发人员传授......一起来看看 《渐进增强的Web设计》 这本书的介绍吧!

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换