再次感谢大家对 Flutter Engage China 活动 的关注和积极参与!我们在活动前后收到了很多来自开发者的反馈和问题,Flutter 团队和演讲嘉宾在直播 Q&A 环节中也针对部分问题在第一时间给出回复。现在我们将一些开发者关心的问题和回复整理出来分享给大家,希望对您有所帮助。由于问题数量较多,我们会分为上下两期发布。您也可以观看 Flutter Engage China 视频回顾精彩内容:

点击这里观看直播回顾视频

如何更好地解决跟平台硬件交互的问题?

回答者: 于潇,Google Flutter 移动端团队负责人

和硬件 API 交互最好的方法是通过 平台通道 (Platform Channel) 和平台的 SDK 进行交互。在这之上也有 Pigeon 之类的插件可供大家使用,它可以生成针对所有语言的终点 (endpoint),从而简化平台通道代码的编写过程。

如果硬件有 C++ 的驱动的话,也可以使用 外部函数接口 (FFI),通过 FFI 调用 C++ 的 SDK 来使用硬件层的能力。

Flutter 在开发效率方面有哪些优势?

回答者: 刘森森,阿里巴巴 UC 客户端团队

Flutter 的开发效率很高,从阿里巴巴和 UC 多个团队的实际应用情况来看,主要体现在以下几点:

  • Flutter 具备非常良好的研发体验 ,可以说是非常接近 web 了: 包括提供了设备的热重载功能,在 IDE 里也能提供可视化布局,这些都非常便于开发和迭代。
  • Flutter 内置了很多符合现代化 UI 设计的 widget ,使得开发团队能很容易地开发出 UI 表现力很好的 Flutter 页面。
  • Flutter 跨平台的一致性非常强大

从开发者们实际落地使用的效果来看,单客户端的开发者使用 Flutter 就可以覆盖多端的研发任务。在 UC 团队里,前端的开发者也能深度参与 Flutter 的业务开发。另外 Flutter 在互操作上也很灵活,比如提供了 FFI、平台通道、外接纹理等做法,让开发团队可以更容易地为 Flutter 提供现有的原生组件,为组件研发的速度带来了非常大的提升。

在团队正式使用 Flutter 之前,建议大家把 Flutter 融入到现有的研发工作流程里,包括开发、测试、集成等各个阶段,并为开发者们进行一些常规的 Flutter 技能培训,这些做法可以大幅提升 Flutter 落地的效率。

总的来说,Flutter 对比传统的 Android 和 iOS 研发效率有质的飞跃。

Flutter 适合做游戏开发吗?

回答者: 樊舟颖 (Zoey),Google Flutter 产品经理

Flutter 的初衷并不是为游戏而创作的,也就是说,游戏的应用场景并不是 Flutter 一开始所考虑的。但是我们在过去的一年到一年半里,发现确实有越来越多的游戏开发者开始使用 Flutter,而且在 Play Store 里获得了非常大的下载量。

就我们观察到的情况而言,强调性能和图像表现,或者需要用到很多重力感应等特殊组件的游戏大部分还是会用 Unity 这样的引擎来开发。但是一些休闲游戏,比如字谜、猜图、连连看,我们有看到越来越多的人在使用 Flutter 开发。

后续我们会通过用户问卷调查,了解游戏开发者使用 Flutter 的话主要有哪些需求。

Flutter 1 升级到 2 后有很多 API 都过时了,有好的方法快速从 1 转 2 么?

回答者: 董韬,Google Flutter 用户体验研究负责人

Flutter 2.0 版本的发布是一个比较主要的升级,从 release note 来看有大概 12 个重大变更 (breaking changes)。我们团队对 API 的更改一直抱持非常谨慎的态度。毕竟我们也了解开发者需要去更新到新的版本,这个过程中会碰到一些障碍。但我们也会不断改进 API,来让 Flutter 本身更加好用、易用。

如果在升级 Flutter 的过程中碰到 API 变更的问题,这里有两个建议:

  • 请考虑使用我们在 2.0 版本中同时发布的 Flutter Fix 工具。这个工具有命令行,也有和 IDE 进行集成,可以帮助大家更方便地自动进行 API 升级。
  • 建议大家放心及时地升级 Flutter 版本。如果您从一个相邻的版本升级到一个新的版本,那么需要更改的代码一般是比较少的。

Flutter 的渲染默认不是平台的主线程,那在渲染的时候会不会由于线程优先级问题而影响流畅度?如果出现流畅度问题,该如何解决?

回答者: 于潇,Google Flutter 移动端团队负责人

线程优先级确实有可能导致问题。在 Android 上我们是有改变 "背景" 线程的优先级的,但在 iOS 上目前还没有。请继续关注我们在这方面的探讨: https://github.com/flutter/flutter/issues/65752

除了 Ubuntu,其他 Linux 版本 (如 Red Hat) 要定制开发底层解析 Flutter 引擎吗?

回答者: 董韬,Google Flutter 用户体验研究负责人

Flutter 对 Linux 的支持其实是不仅限于 Ubuntu 的。只要您使用的 Linux 是 64 位的,就可以安装和使用 Flutter 去开发 App。具体可以参考 Flutter 官方的 Linux 安装说明

Ubuntu 则更方便了一些,提供了一个官方的 Flutter 安装工具。另外 Ubuntu 也开始用 Flutter 开发一些内置的 App。

希望官方插件尽快解决现有的 issue,期待 Flutter 生态越来越好!

回答者: 杨天航 (Chris),Google Flutter 团队工程师

谢谢提出这个问题的同学。我们在去年的时候,由于各种原因,把主要的工作重点放在了基础设施的建设上,包括稳定性这些方面。今年我们的工作重点之一就是解决 issue,包括对 pull request 的审核等。大概在一个月前,我们大大增加了每周整理 issue 和 PR 的时间,增加为去年的 4 倍以上。

另外,我们目前还在跟一些公司和团队进行合作,比如 Baseflow,Invertase,以及和社区进一步加大合作,从而进一步提高 Flutter 插件的质量。

・・・

以上就是 Flutter Engage China 开发者常见问题解答 (上篇) 的内容,也请大家继续关注即将到来的下篇内容。如果您有任何疑问或者建议,也欢迎在评论区和我们分享。

Flutter Engage China 开发者常见问题解答 | 上篇的更多相关文章

  1. Delphi XE5 常见问题解答

    Delphi XE5 常见问题解答 有关于新即时试用的问题吗?请看看 RAD Studio 即时试用常见问答. 常见问题 什么是 Delphi? Embarcadero? Delphi? XE5 是易 ...

  2. SSL/TLS 高强度加密: 常见问题解答

    关于这个模块 mod_ssl 简史 mod_ssl会受到Wassenaar Arrangement(瓦森纳协议)的影响吗? mod_ssl 简史 mod_ssl v1 最早在1998年4月由Ralf ...

  3. dubbo常见问题解答FAQ

    常见问题解答 1. 如果服务注册不上怎么办? 2. 出现RpcException: No provider available for remote service异常怎么办? 3. 出现调用超时co ...

  4. MySQL同步常见问题解答(自己的小心得)

    前几天刚刚注册了博客园,我想写一些技巧性的教程,今天给大家分享一个MySQL同步常见问题解答. Q:如果主服务器正在运行并且不想停止主服务器,怎样配置一个从服务器? A:有多种方法.如果你在某时间点做 ...

  5. [!!!!!]Inno Setup教程-常见问题解答

    [转]Inno Setup教程-常见问题解答 功能 * 翻译 Inno Setup 文字  * 它支持 MBCS (多字节字符集) 吗?  * 将来会支持 Windows Installer 吗?   ...

  6. 英特尔® 实感™ SDK 前置摄像头 (F200) 常见问题解答

    原文地址 https://software.intel.com/zh-cn/articles/intel-realsense-sdk-faq-for-front-facing-camera-f200? ...

  7. 我个人有关 Azure 网络 SLA、带宽、延迟、性能、SLB、DNS、DMZ、VNET、IPv6 等的 Azure 常见问题解答

    Igor Pagliai(微软)   2014 年 9月 28日上午 5:57  年 11 月 3 年欧洲 TechEd 大会新宣布的内容). 重要提示:这篇文章中我提供的信息具有时间敏感性,因为这些 ...

  8. 关于CopyU!的常见问题解答

    拷优(CopyU!)常见问题解答 本常见问题解答列举了一些常见的疑问及其解释,如果您对CopyU!有任何问题,请您首先查看本解答! 本解答将会保持随时更新! 一.使用篇:     1.问:我的杀毒软件 ...

  9. Golang开发者常见的坑

    Golang开发者常见的坑 目录 [−] 初级 开大括号不能放在单独的一行 未使用的变量 未使用的Imports 简式的变量声明仅可以在函数内部使用 使用简式声明重复声明变量 偶然的变量隐藏Accid ...

  10. genymotion常见问题解答

    [转]常见问题解答 很多人喜欢使用Genymotion这款安卓模拟器,但是虽然Genymotion很好用,可是却有各种问题存在哦,下面潇潇就一些常见的Genymotion问题来说下解决方法吧. 为什么 ...

随机推荐

  1. [oeasy]python0106 七段数码管_显示字母_BP机

    七位数码管进化 回忆上次内容 上次回顾了 7-seg 七位数码管 可以显示数字 甚至是十六进制数字   ​   添加图片注释,不超过 140 字(可选)   能否让 七位数码管 将26个字母 全部都显 ...

  2. .Net4.5及.Net Core2.1下的HttpClient使用详解

    一.HTTP系列演进 方式 说明 HttpWebRequest .NET早期版本,同步方式 WebClient HttpWebRequest的封装简化版,同步方式 HttpClient .NET4.5 ...

  3. 【Java】Jsoup 解析HTML报告

    一.需求背景 有好几种报告文件,目前是人肉找报告信息填到Excel上生成统计信息 跟用户交流了下需求和提供的几个文件,发现都是html文件 其实所谓的报告的文件,就是一些本地可打开的静态资源,里面也有 ...

  4. 【SVN】文件解锁

    提交代码莫名其妙的把文件上锁了 然后找到文件右键的SVN的选项也不能解锁: 原来是这样解锁的: 对上锁文件的所在目录右键找到SVN选项 然后勾选第二项: 这样就解锁了.如果还说没有解锁,说明是对方自己 ...

  5. 从.net开发做到云原生运维(七)——服务网格Istio

    1. 前言 上篇文章我们讲了dapr,dapr作为开发阶段使用的组件,需要开发人员知道怎么使用,到此篇文章之前,开发人员的开发任务已经完成了,剩下的就是一些运维相关的事情了.假设我们的服务已经开发完成 ...

  6. 特斯拉在感知网络架构引入BEV三维空间转化层

    Learnging Where To Look End-to-End

  7. Ubuntu18.04环境下 以太坊Geth的安装

    ubuntu18.04系统下安装: sudo apt-get install software-properties-common sudo add-apt-repository -y ppa:eth ...

  8. 使用django-treebeard实现树类型存储与编辑

    前言 其实之前做很多项目都有遇到跟树相关的功能,以前都是自己实现的,然后前端很多UI组件库都有Tree组件,套上去就可以用. 不过既然用 Django 了,还是得充分发挥一下生态的优势,但是我找了半天 ...

  9. SMU Summer 2023 Contest Round 7

    SMU Summer 2023 Contest Round 7 A. Two Rival Students 答案不能大于 \(n-1\): 如果竞争对手之间的当前距离小于 \(n - 1\) ,我们总 ...

  10. 2023 ICPC 香港

    gym 开场发现 E 是传统数据结构题很高兴,不过先跳了.F 知道相邻两段的长度差 \(\le1\),以为最终每段长度只有 \(\lfloor\frac{n}{m+1}\rfloor,\lceil\f ...