一不小心入坑了Flutter

一、为什么决定入坑Flutter

Flutter是Fuchsia的开发框架,是一套移动UI框架,可以快速在iOS、Android以及Fuchsia上构建高质量的原生用户界面。 其使用的编程语言为Dart,是一门全新的语言。所以说,上手成本是比较高的,对于移动端开发人员,语言以及框架都是全新的,整个技术栈的积累也都得从头开始。

对于这种高成本的学习,我为什么决定入坑Flutter呢?其原因主要有两个:

一是之前一直对跨平台技术很感兴趣,但当时由于时间原因和已有的跨平台方案有很大的不足之处。所以一直犹豫不决也就迟迟没有入手。

二是按照目前的趋势来看,大前端是一种趋势。毕竟对于一个企业来说,用一份人力来开发适用多个平台的APP是很有价值的。作为一个Android开发者,为了让自己更有竞争力,不被淘汰,需要拥抱这种变化。

对于大前端的趋势,建议看一下刚哥的观点与建议

七分精力留给原生开发,剩下三分给大前端

今年 GMTC 大会,Flutter 发布了第一个预览版,阿里巴巴闲鱼团队已经在闲鱼 APP 中使用了 Flutter 技术。Flutter 三年前开始开发,直到今年才有第一个 beta 版本。通过 Dart 编写 APP,然后编译成机器码同时运行在 Android 和 iOS 上,做到了原生跨平台,Hot Reload,性能很不错,可定制性也非常强,连封装的系统层 Dart 代码都能改。提供了 Web、iOS、Android、React-Native 开发者学习 Flutter 的入门文档,也是今年移动端少数的几个比较火的热点之一。它的思路不同于 React-Native,是一种全新的思路。
总的来说,就是个人感觉Flutter的未来前景很好,虽然现在还不够成熟。但我相信它的未来不是梦。蜜汁自信?可能是男人的直觉吧,求后期打脸[啪啪啪]。

二、详细介绍Flutter

看一下它的特性:

  1. 快速开发:Flutter的热重载可以快速地进行测试、构建UI、添加功能并更快地修复错误。
  2. 富有表现力,漂亮的用户界面:自带的Material Design和Cupertino(iOS风格)widget、丰富的motion API、平滑而自然的滑动效果。
  3. 响应式框架:使用Flutter的现代、响应式框架,和一系列基础widget,轻松构建您的用户界面。
  4. 访问本地功能和SDK:Flutter可以复用现有的Java、Swift或ObjC代码,访问iOS和Android上的原生系统功能和系统SDK。
  5. 统一的应用开发体验:Flutter拥有丰富的工具和库,可以帮助开发者轻松地同时在iOS和Android系统中实现想法和创意。
  6. 原生性能:Flutter包含了许多核心的widget,如滚动、导航、图标和字体等,这些都可以在iOS和Android上达到原生应用一样的性能。

最具有吸引力的就是统一的应用开发体验,一套代码运行在多个平台。以及它的热重载。

其实让我决定入手学Flutter的最后一根稻草就是看到了它的热重载功能。就是在下面的视频看到的。如果你对Flutter有点感冒,强烈建议你也看一下这个视频,看完后你会对Flutter有不一样的认知。

使用 Flutter 快速构建美观又高性能的移动应用

如果你实在不想看,那我就说一下热重载是什么吧?

什么是热重载?

您可以在Flutter应用程序运行时对其进行更改,重新加载应用程序的代码,将其从之前的操作位置继续下去。一次热重载通常用不到一秒钟。 如果您的应用遇到错误,您通常可以修复错误,然后继续,就像错误从未发生过。 即使你必须完全重新加载,它也是很快速的。

三、关于它的语言-Dart

Dart是谷歌开发的计算机编程语言,于2011年10月份发布,可以被用于web、服务器、移动端和物联网等领域的开发。

  1. Dart是AOT(Ahead Of Time)编译的,编译成快速、可预测的本地代码,使Flutter几乎都可以使用Dart编写;
  2. Dart也可以JIT(Just In Time)编译,开发周期快;
  3. Dart可以更轻松地创建以60fps运行的流畅动画和转场;
  4. Dart使Flutter不需要单独的声明式布局语言;
  5. Dart容易学习,具有静态和动态语言用户都熟悉的特性。

Dart最初设计是为了取代JavaScript成为web开发的首选语言,最后的结果可想而知,到Dart 2的发布,专注于改善构建客户端应用程序的体验,可以看出定位的转变。对应使用过Java、Kotlin的人,都可以很快的上手Dart。

最后放上一些有关Flutter的.....

Flutter社区
Flutter官方文档
Flutter原理
Flutter - Google 开源的移动 UI 框架
Flutter - 不一样的跨平台解决方案

代码交流 2021