再次感谢大家对 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. Python爬虫(1-4)-基本概念、六个读取方法、下载(源代码、图片、视频 )、user-agent反爬

    Python爬虫 一.爬虫相关概念介绍 1.什么是互联网爬虫 如果我们把互联网比作一张大的蜘蛛网,那一台计算机上的数据便是蜘蛛网上的一个猎物,而爬虫程序就是一只小蜘蛛,沿着蜘蛛网抓取自己想要的数据 解 ...

  2. 阅读翻译Prompting Engineering Guides之Introduction(提示工程简介)

    阅读翻译Prompting Engineering Guides之Introduction(提示工程简介) 关于 首次发表日期:2024-07-19 Prompting Engineering Gui ...

  3. php 选择驱动写法

    在 ThinkPHP 5.1 中,若要根据配置文件 sms.conf 中的设置在不同的短信渠道之间进行切换,可以采用以下步骤: 第一步:定义接口 首先,创建一个接口,这个接口将由所有短信渠道类实现.这 ...

  4. pyspark初步了解

    spark的运行角色: 分布式代码的流程分析 pythononspark原理

  5. 《最新出炉》系列初窥篇-Python+Playwright自动化测试-61 - 隐藏元素定位与操作

    1.简介 对于前端隐藏元素,一直是自动化定位元素的隐形杀手,让人防不胜防.脚本跑到隐藏元素时位置时报各种各样的错误,可是这种隐藏的下拉菜单又没有办法避免,所以非常头痛,这一篇只为交流隐藏元素自动化定位 ...

  6. 【Spring-Security】Re10 Oauth2协议 P1 授权码模式 & 密码模式

    一.Oauth2协议: 第三方登录,即忘记本站密码,但是登录界面中提供了一些第三方登录,例如微信.支付宝.QQ.等等,通过第三方授权实现登录 第三方认证技术主要解决的时认证标准,各个平台的登录要遵循统 ...

  7. 使用pycharm专业版(支持远程调试及运行)如何运行mpi的代码呢???(mpi4py的代码)

    问题如题: 请注意:这里pycharm专业版的远程调试及运行该如何设置不进行介绍. 由于mpi进程启动是需要执行mpiexec或mpirun命令的,然而在pycharm中我们只能远程调用Python命 ...

  8. SonarQube集成Xunit单元测试

    安装SonarQube 利用docker 安装SonarQube docker run -d --name sonarqube -e SONAR_ES_BOOTSTRAP_CHECKS_DISABLE ...

  9. PyTorch的TensorBoard用法示例

    原文: https://www.emperinter.info/2020/07/30/tensorboard-in-pytorch/ 缘由 自己上次安装好PyTorch以及训练了一下官方的数据,今天看 ...

  10. 最详细STL(四)priority_queue

    好吧,开始累了,不想写那么多废话了,直接讲对打oj有用的部分吧. priority_queue是由堆来实现的,底层是用vector来实现的,接收三个参数 priority_queue<int , ...