Flutter开发者入门10个知识点:框架采用什么编程范式?
- Flutter 和 ReactNative(RN) 有什么异同?
- RN 是一个使用 JS 代码调用系统的原生控件,最高支持每秒 60 帧。 Flutter 不使用本机系统驱动程序。 Flutter 基于 GPU 渲染,因此保证了高性能,最高支持每秒 120 帧,甚至与原生一样好。
- Flutter 只需维护一套 UI 代码:Flutter 是 IOS 和 Android 上的一套 UI 风格的组件,所以 Flutter 需要很少的定制,因为上层只有一套 UI 代码。 RN是同一套代码,在IOS和Android上显示不同的样式,需要两个代码库的定制和维护。
- 相似之处:和RN一样,基于组件开发widget,一切都是组件。
- 谁创建了 Flutter?
Flutter 是一个开源项目。目前,大部分开发工作是由谷歌的工程师完成的。现在越来越多的社区开发者加入。 - Flutter 引擎有多大?
官方测量了一个最小的 Flutter 应用(没有任何材质组件,只有一个 Center 控制器,使用 flutter build apk 构建)并打包成发布版本,大小约为 4.06 MB。 APP:核心引擎约2.7MB(压缩后),框架和应用代码约820.6KB(压缩后),LICENSE文件53.5KB(压缩后),所需Java代码(classes.dex) )除了约 450.4 KB(压缩)的 ICU 数据外,还有 61.8 KB(压缩)。
因此,相比应用Flutter的引擎并不大。 - Flutter 可以构建桌面应用程序吗?
是的,但目前我们主要关注移动设备。未来将支持 Windows、Mac 和 Linux。 - Flutter的页面描述语言在哪里?为什么 Flutter 没有标记语法(类似于 Android 的 XML 布局文件)?
与Android最初的开发相反,用代码动态构建的用户界面会更加灵活:
1. 严格的标记系统导致很难以某种方式表达和创建widget。
2.“Code First”更好地支持热重载、动态环境适配等功能。 - 我可以在 Flutter 中使用 JSON 吗?
一定是可能的。有关在 Flutter 中使用 JSON 的教程,请参阅 JSON 教程。 - Flutter支持与原生混合开发吗? Flutter可以嵌入到现有的原生APP中吗?
是的,目前可以将 Flutter 嵌入到现有的 Android 或 iOS 应用程序中,但目前可能并不完美。这是官方文档供您参考。 - Flutter 为什么选择 Dart 语言?
- Dart 运行时和编译器支持 Flutter 的混合翻译:
- 基于快速 JIT 的开发周期:使用基于 ARM 的翻译编写的语言实现转换和有状态热重载。代码启动速度快,并且具有可预测的生产使用性能。
- Tika 由 Google 提供支持,Dart 社区正在积极投入资源来改善 Dart 在 Flutter 中的使用。
- 梯子语言非常有效,这是最重要的! ! ! ,这对于框架团队和开发者来说都非常重要。由于大多数 Flutter 功能都是使用 Dart 实现的,因此我们需要在不影响框架和小部件的可读性的情况下高效地处理 100,000 行代码。
- Tika 是面向对象的。大多数开发人员都有面向对象开发的经验,因此更容易学习如何使用Flutter进行开发。
- Tika 有预见性且有能力。 Flutter 框架使用的功能流严重依赖于底层内存分配器,因此高效处理小型、短期内存分配非常重要,因此 Flutter 无法在缺乏此功能的语言中高效处理。上班。
- Dart 运行时和编译器支持 Flutter 的混合翻译:
- Flutter 是用什么语言编写的?
Flutter 与众不同,因为它的核心只有一层轻量级 C/C++ 代码。 Flutter 在 Dart 中实现了大多数其他系统(组合、手势、动画、框架、小部件等),开发人员可以轻松读取、更改、替换或删除它们。这为开发人员提供了巨大的系统可定制性。
分布数据点:flutter 架构 - Flutter 框架使用什么编程范式?
Flutter 是一个多范式编程环境。汇集了近十年来最好的开发范式:- 组合:Flutter使用的主要范式是使用小对象,然后将它们组合起来得到更复杂的对象。例如,小部件的嵌套。
- 函数式编程:整个应用程序可以仅使用无状态小部件构建,这些小部件主要是描述参数与其他函数的绑定的函数。
- 基于事件:用户交互由事件对象表示,这些事件对象被发送到带有注册事件处理程序的回调。显示刷新也是由类似的回调机制触发的。
- 基于类的面向对象编程:框架的大多数 API 都是使用继承的类构建的。我们采用的方法是在基类中定义高度抽象的 API,然后在子类中迭代地自定义它们。
- 强制编程:直接命令式编程通常与对象封装状态相结合,用于提供最直观的解决方案。
- 反应式编程:小部件和元素树有时被描述为反应式,因为小部件构建器给出的新输入会根据小部件的构造方法立即作为对较低级别小部件的更改进行传输,并且在较低级别中进行更改级别小部件(例如,响应用户输入)通过事件处理程序传输回小部件树。
- 泛型:泛型检测可用于帮助开发人员及早发现编程错误。 Flutter框架使用泛型编程来解决这个问题。
- 并发:Flutter 使用了大量的异步 API。例如,动画系统使用 future 来通知动画何时完成。图像上传系统还使用 future 来报告上传完成的时间。
- 约束:Flutter 的布局系统使用弱形式的约束编程来定义布局几何形状。约束(例如,父控件将大小约束委托给子控件)满足这些约束。使用这种技术,Flutter 可以更精确地控制布局。
作者:齐泽伟
来源:掘金- Flutter 和 ReactNative(RN) 有什么异同?
版权声明
本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。