0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

全功能跨平台的音乐制作平台设计方案

谷歌开发者 来源:谷歌开发者 作者:谷歌开发者 2022-03-11 09:41 次阅读

本文由小声团队出品,小声团队是一个专注于音频&音乐技术的初创团队,深度使用 Flutter 构建跨平台应用,希望与大家一起共同探索 Flutter 在桌面端&移动端的可能性。

背景

我们计划研发一款全功能跨平台的音乐制作平台 (DAW),从立项之初我们就已经明确了全平台的支持计划 (即Windows / MacOS / Linux / iOS / Android),也因此我们也是以这个为目标来寻找技术解决方案,经过一段时间的研究与学习,大致确定了几个可选项,内部的调研结果如下(本结果仅代表团队内部认知,如有差异还请包涵):

技术方案 性能 研发效率 跨平台兼容性 扩展能力 原声代码交互能力
HTML5
QT 极低
React Native
Flutter

为什么不使用基于 HTML5 打造的技术栈?

HTML5 是众所周知的最易上手的跨平台 UI 解决方案,并且产业成熟,有众多可选的框架与开源组件可直接使用。但是 DAW 作为一款专业生产力工具并不适合完全在浏览器环境中运行,比如第三方插件系统浏览器则无法支撑,另外在内存资源上的使用也不是很便捷,通常一个音乐工程可能需要占据数 G 内存,运行时需要维护数万个对象,这对于 Javascript 来说还是浏览器来说都是很严重的负担。 从另一个方面来看,就算我们需要以一种阉割的形式支持 Web,那么 WASM 技术则是我们更佳的选择。 因此,我们不考虑基于 HTML5 的技术方案。

为什么不选择 QT & GTK 等老牌原生高性能框架?

在传统技术上来看,QT 是最符合我们需求的技术方案,很多老牌工具厂商背后也都是基于 QT 技术栈完成。QT 在运行效率上而言无疑是最佳的选择,我们的主要顾虑在对于 CPP 的掌控能力与研发效率,UI 开发与引擎开发有一个很大的根本区别在于引擎开发通常使用单元测试来完成逻辑验证,而 UI 则很难使用单元测试来验证UI效果,也很少看到有团队真的依赖单元测试的方式来进行 UI 开发,而 QT 没有像 Webpack 类似的 hot reload 技术,UI 的验证效率会非常的低下,甚至于不是我们一个小团队可以承受得起的。 而 CPP 也是入门门槛极高的编程语言,我们对于 QT 方案也存疑,但是没有完全放弃。

Flutter 的什么特性吸引了我们

Flutter 使用基于 Skia 绘图引擎直接构建组件,操作系统只需要提供像素级的绘图能力即可,因此也就保证了跨平台的 UI 一致性 (像素级一致),而对 React Native 的兼容性吐槽一直充斥着社区。

Dart 对于 UI 开发也是非常舒服的。

对象默认引用传递。

支持 HOT Reload。这为开发效率带来本质的提升,使得 Flutter 研发效率不弱于 HTML5

AOT 支持,生产级代码运行效率飞升,不逊色于原生应用的表现。

FFI 支持。可以直接与原生 C & Cpp 代码进行交互而几乎没有任何性能损失。

Web 支持。Flutter 即可直接编译到 Web 运行,这也为我们提供 Web 服务打下了可能性。

Flutter 的这些特性都是直击我们需求的,所以我们决定尝试使用 Flutter 来构建我们的平台。

结论

如果您也在寻找一个技术方案兼顾研发效率与运行时效率,那么 Flutter 应该是一个很不错的选择。

"开发者说·DTalk" 面向

中国开发者们征集 Google 移动应用 (apps & games) 相关的产品/技术内容。欢迎大家前来分享您对移动应用的行业洞察或见解、移动开发过程中的心得或新发现、以及应用出海的实战经验总结和相关产品的使用反馈等。我们由衷地希望可以给这些出众的中国开发者们提供更好展现自己、充分发挥自己特长的平台。我们将通过大家的技术内容着重选出优秀案例进行谷歌开发技术专家 (GDE) 的推荐

原文标题:我们为什么选择了Flutter Desktop | 开发者说·DTalk

文章出处:【微信公众号:谷歌开发者】欢迎添加关注!文章转载请注明出处。

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 移动
    +关注

    关注

    1

    文章

    430

    浏览量

    38876
  • 操作系统
    +关注

    关注

    37

    文章

    6743

    浏览量

    123196
  • 功能
    +关注

    关注

    3

    文章

    589

    浏览量

    29228

原文标题:我们为什么选择了Flutter Desktop | 开发者说·DTalk

文章出处:【微信号:Google_Developers,微信公众号:谷歌开发者】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    分享一个平台通用型GUI框架

    AAGUI是一个不依赖特定硬件、操作系统的平台通用型GUI。
    的头像 发表于 10-28 09:21 273次阅读
    分享一个<b class='flag-5'>跨</b><b class='flag-5'>平台</b>通用型GUI框架

    高效先进的全功能工业级All-in-One触控电脑解决方案

    研扬的ACP-1075与ACP-1078工业级All-in-One全功能触控电脑,以优雅的设计、平台支持和灵活部署的特点,加速了从智慧零售到工业网关解决方案等各个领域的项目整合。这两
    的头像 发表于 09-21 08:01 95次阅读
    高效先进的<b class='flag-5'>全功能</b>工业级All-in-One触控电脑解决<b class='flag-5'>方案</b>

    松下MPS媒体制作平台的优势和功能

    松下MPS媒体制作平台是一个多元化的服务平台,它将一体化摄像机的多种配套软件整合到一个统一的环境中,提供了丰富的功能和直观的操作界面,让用户的使用体验更便捷、更高效。
    的头像 发表于 09-19 10:04 322次阅读
    松下MPS媒体<b class='flag-5'>制作</b><b class='flag-5'>平台</b>的优势和<b class='flag-5'>功能</b>

    昆仑万维发布全球首个AI流媒体音乐平台Melodio

    昆仑万维在科技创新领域再次迈出重要一步,正式推出了全球首个AI流媒体音乐平台——Melodio,以及配套的AI音乐商用创作平台Mureka。这两款创新产品的问世,标志着音乐产业正式迈入
    的头像 发表于 08-14 17:44 804次阅读

    松下MPS媒体制作平台的设备查看功能

    松下MPS媒体制作平台是一个多元化的服务平台,用户可以在统一的界面上进行不同需求的功能操作,无需再单独一个个打开软件,让用户的使用体验更便捷、更高效。
    的头像 发表于 08-08 14:11 296次阅读
    松下MPS媒体<b class='flag-5'>制作</b><b class='flag-5'>平台</b>的设备查看<b class='flag-5'>功能</b>

    智慧CAN云应用(1)-平台功能

    CANDTU云平台是一个专业CAN报文存储与分析平台,CANDTU云平台解决方案使汽车路测行业、工业自动化行业能够更有效地采集、管理和分析CAN报文,下面将详细介绍CANDTU云
    的头像 发表于 05-25 08:25 486次阅读
    智慧CAN云应用(1)-<b class='flag-5'>平台</b><b class='flag-5'>功能</b>

    鸿蒙开发ArkUI-X基础知识:【ArkUI平台设计总体说明】

    本文档描述ArkUI开发框架平台运行能力相关的总体技术方案
    的头像 发表于 05-24 15:41 1497次阅读
    鸿蒙开发ArkUI-X基础知识:【ArkUI<b class='flag-5'>跨</b><b class='flag-5'>平台</b>设计总体说明】

    鸿蒙ArkUI-X平台技术:【开发准备】

    本文档适用于ArkUI平台应用开发的初学者。通过开发环境搭建、应用工程创建、编译和运行,熟悉ArkUI平台应用开发基本流程。
    的头像 发表于 05-24 10:40 441次阅读
    鸿蒙ArkUI-X<b class='flag-5'>跨</b><b class='flag-5'>平台</b>技术:【开发准备】

    鸿蒙ArkUI-X语言调用说明:平台差异化【Android、ios动态化】

    ArkUI-X支持动态化,使用者可以根据自己需要动态发布平台内容,从而使平台部分和宿主应用进行解耦。
    的头像 发表于 05-23 14:38 788次阅读
    鸿蒙ArkUI-X<b class='flag-5'>跨</b>语言调用说明:<b class='flag-5'>平台</b>差异化【Android、ios动态化】

    鸿蒙ArkUI-X平台开发:【命令行工具(ACE Tools)】

    ACE Tools是一套为ArkUI-X项目平台应用开发者提供的命令行工具,支持在Windows/Ubuntu/macOS平台运行,用于构建OpenHarmony/HarmonyOS、Android和iOS
    的头像 发表于 05-21 17:39 1657次阅读
    鸿蒙ArkUI-X<b class='flag-5'>跨</b><b class='flag-5'>平台</b>开发:【命令行工具(ACE Tools)】

    鸿蒙ArkUI-X平台开发:【bility开发说明(Android平台)】

    本文介绍将ArkUI框架扩展到Android平台所需要的必要的类及其使用说明,开发者基于OpenHarmony,可复用大部分的应用代码(生命周期等)并可以部署到Android平台,降低平台
    的头像 发表于 05-21 10:54 894次阅读
    鸿蒙ArkUI-X<b class='flag-5'>跨</b><b class='flag-5'>平台</b>开发:【bility开发说明(Android<b class='flag-5'>平台</b>)】

    鸿蒙ArkUI-X平台技术:【开发初体验】

    在DevEco Studio中导入ArkUI-X Sample,快速创建平台工程。
    的头像 发表于 05-17 15:54 588次阅读
    鸿蒙ArkUI-X<b class='flag-5'>跨</b><b class='flag-5'>平台</b>技术:【开发初体验】

    分布式运维管理平台地域企业中的部署与运维案例

    问题,某地域企业决定引入分布式运维管理平台,以提升其运维效率和管理水平。 二、平台部署与优势 统一化管理与监控 分布式运维管理平台通过统一的界面和接口,实现对
    的头像 发表于 03-26 16:11 430次阅读

    荣耀发布AI时代全场景战略,实现平台智慧互联

    荣耀在发布会上宣布与微软、谷歌、英特尔、英伟达等重要合作伙伴建立紧密联系,共同推进安卓与Windows两平台设备、系统、应用的智慧互通。
    的头像 发表于 02-26 11:33 530次阅读

    如何选择监测平台有哪些优势 在线监测平台

    监测平台
    稳控自动化
    发布于 :2023年12月01日 09:57:08