android - Flutter 有哪些原生 Android 或 iOS SDK 不能做到的?

标签 android ios dart flutter

最近我遇到了一个新的奇思妙想,他们称之为“用于制作高质量 native 界面的 SDK”,即 Flutter。

然而,有几件事我还不清楚。有没有什么事情是使用 Flutter 无法实现的,但可以通过原生 Android 或 IOS SDK 轻松完成?

他们说,如果我们需要原生功能,我们可以使用 Android 上的 MethodChannel 和 IOS 上的 FlutterMethodChannel 轻松编写代码。

就目前而言,Flutter 在快速且非常简单的应用程序原型(prototype)设计方面很有前途,但是,您是否会考虑将它用于可能需要大量原生 SDK 功能(例如后台服务、传感器数据等)的应用程序...

最佳答案

我认为 Flutter 是一个框架,它有两个主要部分。首先,它用高级原语包装了一个渲染引擎,用于实现现代移动应用程序。这部分包括手势检测、动画、物理以及这些 slides 中的所有其他内容.这是 Flutter 必须提供的核心。

其次,Flutter是一系列原生平台插件。插件将工作委托(delegate)给平台,平台反过来实现特定于平台的功能,并通过统一的、平台无关的接口(interface)向 Flutter 报告。这包括 GPS、相机、媒体播放等。插件利用底层平台来增强 Flutter 无法或不想自行重新实现的核心功能。

从这个意义上说,如果有插件可以提供所需的功能,Flutter 的功能可能不亚于它运行的平台。我们还没有做到这一点,但是您已经可以使用现有的插件做很多事情,而且生态系统正在发展。比如就在上周社区在官方camera中加入了对视频录制的支持包。

也就是说,在某些情况下,Flutter 的优势开始减弱。我能想到的一个这样的例子是 Flutter 的渲染引擎,Skia , 是一个 2D 渲染引擎,所以如果你想做 3D 图形之类的事情,你可能会发现自己通过编写比实际 Flutter 更多的插件来绕过框架。大多数应用程序都需要 2D 渲染,但它使框架不太适合游戏等特殊用例。

此外,由于 Flutter 和 Dart 还处于早期阶段,您肯定会看到一些局限性。例如。 Flutter 目前只为 arm targets 输出 Android APK。但发生这种情况并没有内在原因,像这样的问题很可能会在一段时间内得到解决。

关于android - Flutter 有哪些原生 Android 或 iOS SDK 不能做到的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50510112/

相关文章:

android - 允许用户在 Recyclerview Android 中仅选择 1 项

ios - 如何仅播放YouTube视频的音频?

dart - Dart :如何获取列表中倒数第二个项目

android - 如何使用 Web 服务连接到远程数据库?

android - Lollipop 工具栏抽屉切换不可点击

Android Studio 在布局预览时禁用反射

ios - 如果在添加 barBarttonItem 的范围之外创建,为什么添加 barBarttonItem 不起作用?

ios - Google 登录与 Facebook 登录冲突

dart - 如何禁用复选框 flutter

dart - 在 polymer.dart 中使用聚合物的 `.job`