Flutter 由 Google 开发,是一个强大的跨平台应用程序开发框架,近年来受到广泛欢迎。
在这篇文章中将介绍 Flutter 的核心组件、它的编程语言(Dart)以及 widget 的概念。我还将讨论为什么 Flutter 已成为许多公司的首选,以及基于 ZEGO Flutter SDK 实现音视频通话流程。
什么是Flutter?
Flutter 是由 Google 设计的跨平台应用程序开发框架。它使开发人员能够为各种平台构建高质量的应用程序,包括 iOS、Android、Windows、MacOS、Linux 和 Web。
Flutter 的灵活性和兼容性不断扩展,即将支持 WebAssembly (WASM) 和 RISC-V。随着最近将 Dart 代码直接编译到 WASM 的进展,Flutter 在网络开发方面的潜力将进一步提高。
Flutter 和 Dart 都是开源的,因此尽管它们目前得到了谷歌的大力支持和投资,但它们并不依赖于谷歌的持续承诺。考虑到谷歌对其产品的跟踪记录,这一点还是很令人欣慰的……
使用 Flutter 的优点
Flutter 建立在三个核心价值之上,这三个价值驱动着它的发展方向:
- 必须快速
- 必须对开发人员友好
- 必须简单易学
必须快速: 接近原生的性能
Flutter 可在 iOS 和 Android 等平台上将代码编译为本地机器代码,从而提供接近原生的性能。对于Web应用程序,它使用自己的呈现引擎绕过文档对象模型(DOM),在 HTML5 画布上呈现元素。它能非常高效地计算用户界面的哪些部分已经更新,哪些部分需要重新绘制。
必须对开发人员友好:强大的工具
Flutter 提供了一系列提高开发人员工作效率的功能。它的热重载和热重启功能可在运行的应用程序中快速反映代码变化,从而实现快速开发和实验。此外,Flutter 还提供广泛的工具,包括性能分析、调试和自动测试设施。
必须简单易学:入门门槛低
相比其他跨平台框架,Flutter 相对容易学习和上手。其全面的文档、可运行的示例和直观的语法使其可供所有背景的开发人员使用。Dart 是 Flutter 中使用的编程语言,其设计风格是熟悉的,并提供 C 风格的语法。
大量小组件库
Flutter 提供了大量预构建的 widget,开发人员可以利它们来增强应用程序的功能和外观。这些小组件遵循 Material Design 指南(Google 的设计语言)和 Cupertino 风格(Apple 的设计语言)。
Dart:Flutter 的语言
Flutter 使用 Dart 编程语言,该语言提供了多种有助于流畅开发体验的功能:
熟悉的语法
Dart 的 C 风格语法和直观的结构使其易于开发人员使用。Google 专门将 Dart 设计为易于理解,降低了复杂性并提高了代码可读性。
出色的文档
Dart 的文档和可运行的示例为学习和实验提供了全面的资源。直接在浏览器中运行示例的能力允许开发人员观察不同更改对小组件的影响。
内存安全和并发
在 Dart 的 Native 平台中,所有代码都在隔离中运行。隔离有点像线程,但每个隔离都有自己的堆和事件循环。隔离区之间相互通信的唯一方式是通过消息传递。这可以避免并发访问的问题,或者在执行过程中变量被更改的问题。
对于 Dart 的 Web 平台,应用程序可以在 Web Worker 中运行后台脚本,类似于隔离。它们不会像本地分离那样快,但可以实现相同的目标。
基于ZEGO SDK 实现音视频通话
ZEGO Flutter SDK 能够为开发者提供便捷接入、高可靠、多平台互通的音视频服务。通过低至 200 ms 的端到端平均时延,业内领先的保障弱网质量的 QoS 策略,并结合强大的 3A 处理能力,完美支持一对多、多对多的实时音视频通话、直播、会议等场景。
前提条件
在实现基本的实时音视频功能之前,请确保:
- 已在项目中集成 ZEGO Flutter SDK,实现基本的实时音视频功能,详情请参考 快速开始 – 集成。
- 已在 ZEGO 控制台 创建项目,并申请有效的 AppID 和 AppSign,详情请参考 控制台 – 项目管理 中的“项目信息”。
使用步骤
用户通过 ZEGO SDK 进行视频通话的基本流程为:
用户 A、B 加入房间,用户 B 预览并将音视频流推送到 ZEGO 云服务(推流),用户 A 收到用户 B 推送音视频流的通知之后,在通知中播放用户 B 的音视频流(拉流)。
具体实现步骤请参考:https://doc-zh.zego.im/article/7634
Flutter 已经获得了巨大的市场份额,据 Google 称,Google Play 商店中已有超过 700,000 个 Flutter 应用程序。在 Stack Overflow 问题和 Google 搜索量方面,Flutter 的受欢迎程度已经超过了 React Native。它的上升轨迹表明了一个充满希望的未来,因此我们非常高兴能够支持 Flutter 开发人员构建音视频应用程序。