[译] 为什么你需要关注一下 Flutter

“桥”
传统上,构建跨平台应用会因为在不同领域运行而面临性能损失。应用程序是用 JavaScript 开发但界面是完全原生的。不同领域的变量不能互相访问。不同领域的变量和数据交互都必须通过“桥”来完成。
例如,如果你在 Chrome 中调试 React Native 应用,这就意味着程序将在两个不同的领域运行(桌面和移动)。而这些领域通过 WebSocket 连接起来。
React Native 的优化尝试在运行时通过“桥”将数据交换保持在最低值。最终,每个环境下的运行都很流畅但跨桥的交换的延迟会增大。
Flutter 依赖 Dart 语言的静态编译解决这个问题。这意味着在运行时不再需要“桥”,因为程序会被编译成原生代码。
组件
窗口组件是控制和影响应用程序的视图和界面的元素。Flutter 中万物皆组件。这使它更加自包含,可重用和可扩展。
布局
传统的布局依靠的是不同 CSS 文件中定义的多项样式规则。这些规则适用于标记,因此能够为所应用的规则创造多种可能的交互和矛盾。CSS3 有大约 375 项规则。不考虑规则中可能存在的矛盾,布局的可能性通常为 N 阶平方。
Flutter 重新设计的布局更高效也更直观。布局信息由组件在建模时单独指定。这不仅使查看代码的开发者更容易理解正在发生的事,而且还意味着窗口组件没有处理可能不适用于它的规则的开销。
Flutter 团队提供了很多他们觉得用起来不错的布局组件。Flutter 也有很多围绕布局的优化,像为了只在有必要生成大体积组件时的缓存。
Dart
Flutter 团队使用 Dart 有以下几个原因:
- 静态编译 Dart 是静态编译的。Dart VM 可以为你正在开发的平台构建本机 ARM 代码。这意味着与使用即时编译器,在程序执行时编译的应用程序相比,程序要快得多。
- 动态编译: Dart 也可以即时编译。Flutter 利用这种开发能力来缩短开发周期。像热重载这样的功能是可行的,因为应用程序可以轻松编译更新,从而更容易测试和迭代产品。
- 强类型: Dart 是一种 强类型 语言。如果你用过 Java 或 C#,有几个原因使得过渡到 Dart 非常理想,其中一个就是是,Dart 看起来比较熟悉,以及它的类型安全,所以你不必牺牲程序的完整性。
- 服务端的潜力: Dart 非常适合很多事情,包括在服务器上运行。服务器端的 Dart 越来越受人们关注。考虑到统一代码库的可能性,在 Flutter 中使用它就是一个很好的例子。
你可以从 这里 了解更多关于 Flutter 上使用的 Dart 语言。
Flutter 的结构

Flutter 应用的结构
在 Fuchsia 上的潜力
能够在 Fuchsia 上使用。Fuchsia 是一个新的 开源 操作系统,现在由谷歌开发,这在科技爱好者圈子引起了不少的关注。不像 Android 和其他流行的操作系统,它基于一个叫做“Zircon”的微内核。Flutter 已经和 Armadillo 一起用来测试 Fuchsia 用户界面 的开发了。
目前的不足之处
现在能感觉出的缺点是基于过去的开发者经验。这部分只用于突出 Flutter 项目的重要性和解决方案。证明了 Flutter 团队的发展速度。
你可以查看本文,以了解原生移动开发者在测试驾驶 Flutter 时面临的挑战。他们强调的一些问题在我看来非常有争议,比如缺乏 OpenGL 支持,允许 Flutter 使用 Skia,支持 OpenGL 作为其后端之一。
由于 Flutter 处于刚发布不久,其他你可能面临的可能的挑战包括:
- 动画的低级实现。这在过去对于一些需要降低水平以创作想要的动画的人来说就是一种挑战。
- 仍然缺少数据操作库。Flutter 一开始专注视觉渲染。如果你是一个非常依赖现成的社区模块和组件来实现的人,那么你可能会因为稀缺的数据操作库而艰难前行。然而,我个人觉得这个领域正在稳步成熟,Flutter 提供了很多关于构建应用程序的建议,并为人们构建库以使其产品与最佳约定保持一致铺平了道路。
Flutter 入门
前往 Flutter.io 了解怎样入门 Flutter 。你还也查看底部参考资料部分中的内容。
总之,Flutter 入门将涉及下载 SDK 并配置使用它的路径。在你使用的编辑器中安装必要的插件是必要的下一步。
你可能在 Mac OS 上遇到依赖缺失问题 ,这可以通过运行 pip install six 来解决。
当你尝试运行 flutter upgrade 时,你可能遇到的另一个问题是合并冲突。如果你已经测试了与 SDK 捆绑在一起的 Flutter 示例,就会出现这种情况。在这种情况下,在运行 Flutter 升级命令之前进入 Flutter SDK 文件夹,存储已更改的文件(git add.| git stash)非常有用。
一些资源
- Rohan Taneja 在这篇文章 中提供了珍贵资源的一套相当详细的链接。
- Fluttery 是一系列为想入门 Flutter 的人准备的教程,挑战和模式集合。
- Flutter studio 也是为想简化开发过程的人准备的优秀资源。
我很高兴尝试它。如果你也是,请告诉我! ❤️🚀
如果发现译文存在错误或其他需要改进的地方,欢迎到 掘金翻译计划 对译文进行修改并 PR,也可获得相应奖励积分。文章开头的 本文永久链接 即为本文在 GitHub 上的 MarkDown 链接。
掘金翻译计划 是一个翻译优质互联网技术文章的社区,文章来源为 掘金 上的英文分享文章。内容覆盖 Android、iOS、前端、后端、区块链、产品、设计、人工智能等领域,想要查看更多优质译文请持续关注 掘金翻译计划、官方微博、知乎专栏。
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则近万的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。





既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:Android)
结尾
最后小编想说:不论以后选择什么方向发展,目前重要的是把Android方面的技术学好,毕竟其实对于程序员来说,要学习的知识内容、技术有太多太多,要想不被环境淘汰就只有不断提升自己,从来都是我们去适应环境,而不是环境来适应我们!
当程序员容易,当一个优秀的程序员是需要不断学习的,从初级程序员到高级程序员,从初级架构师到资深架构师,或者走向管理,从技术经理到技术总监,每个阶段都需要掌握不同的能力。早早确定自己的职业方向,才能在工作和能力提升中甩开同龄人。
想要拿高薪实现技术提升薪水得到质的飞跃。最快捷的方式,就是有人可以带着你一起分析,这样学习起来最为高效,所以为了大家能够顺利进阶中高级、架构师,我特地为大家准备了一套高手学习的源码和框架视频等精品Android架构师教程,保证你学了以后保证薪资上升一个台阶。
当你有了学习线路,学习哪些内容,也知道以后的路怎么走了,理论看多了总要实践的。

高级UI,自定义View
UI这块知识是现今使用者最多的。当年火爆一时的Android入门培训,学会这小块知识就能随便找到不错的工作了。
不过很显然现在远远不够了,拒绝无休止的CV,亲自去项目实战,读源码,研究原理吧!

《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!
)]
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!
更多推荐


所有评论(0)