03.08 Flutter为何对程序员来说很重要?

lxl爱莉


flutter可能是个天坑,我不看好,更没觉得flutter重要,跨平台方案很多种,flutter只是其中一种。

为什么我不看好flutter

flutter 哪里是革命性,除了Google 推 dart语言,真没觉得哪里革命性了。而且我还是Google崇拜者,比如Google在AI,go语言,Android等等开放性成果上,我都很崇拜。所以不看好flutter上仅仅是就事论事,下面的flutter原理图:

和游戏的引擎有多大区别吗?我通常说这个观点的时候,都建议去把Android的硬件加速打开,app本身也可以自己控制,我之所以这么说,是因为早期做Android系统开发优化时,做过这些优化尝试,结果是渲染上会出现无法预料的坑,而且我早期用过的flutter demo几乎是一样的现象,动画会拖尾黑屏。

有人说,这些可以解决呀,好的,我们假定能解决,那浏览器内核不能直接用硬件加速吗,h5解析后就不能同样直接显卡渲染吗?

所以我的观点是:

1、要么这个坑一直存在

2、要么解决后,h5自然好用

所以如果跨平台,我只看好h5,这也在公司架构上,重点推小程序和H5的原因。并且很多人强调体验,把体验和交互动画画等号。

我极其反对,体验就一定是漂亮的交互动画吗,除了游戏应该看重之外,更重要的是产品的易用性,功能性,服务的内涵


写代码的禅师



Flutter为何对程序员来说很重要?这里不能说程序员,应该说做移动端的程序员,对他们是非常重要,这就要从Flutter的设计初衷和用途来说起了。


Flutter是Google的移动UI框架,可以快速在iOS和Android上构建高质量的原生用户界面。 Flutter可以与现有的代码一起工作。在全世界,Flutter正在被越来越多的开发者和组织使用,并且Flutter是完全免费、开源的。


但从跨平台性来讲,如果要选择WebApp的开发的话,Flutter无疑是最好的选择,同时,Flutter在不久的将来将持续的支持更多的语言和方向。


如果了解Flutter的特性你就知道他为什么对程序员来说很重要了,在他的官网上是这样介绍的:


快速开发

毫秒级的热重载,修改后,您的应用界面会立即更新。使用丰富的、完全可定制的widget在几分钟内构建原生界面。

富有表现力和灵活的UI

快速发布聚焦于原生体验的功能。分层的架构允许您完全自定义,从而实现难以置信的快速渲染和富有表现力、灵活的设计。

原生性能

Flutter包含了许多核心的widget,如滚动、导航、图标和字体等,这些都可以在iOS和Android上达到原生应用一样的性能。

但从这三点我们就知道,他有着轻量级的工作区和代码设计框架,并且更加的灵活和多变,而且在原生的支持上也是非常好的, 谁叫是Google自家的呢。



从这张图就可以看到,当我们在写完逻辑之后,可以直接刷新即可更新应用界面,大大的提高了我们的开发效率,并且界面简洁,优雅。


再来看下Flutter所支持的UI吧,同样丰富


作为一名移动开发者,流畅并且美观的UI大大提高了用户体验,这是每个人都希望看到的,Flutter的支持十分的好,我们可以轻松实现各种炫酷的界面,这都是他的魅力。


看到这里,你是如何看待Flutter的呢? 欢迎评论讨论。


刘某人程序员


大部分小企业或者初创公司需要在选择使用哪种移动端开发技术时都要做出关键选择。他们不断测试和评估技术,以形成快捷的开发效率以及强大的用户体验,无论客户端的移动设备或操作系统如何。无论推广渠道或设备如何,都有可能落后竞争对手。


更大挑战在于跨平台开发可能存在各种问题(坑)。在某些情况下,尽管开发人员尽了最大的努力,但用户体验却落后于实际的原生应用程序。近几年来,我们已经看到各种移动框架如React Native,Xamarin和Ionic的出现,这些框架能帮助程序员更容易高效地开发出最大化接近原生(Native)的体验,以及良好的性能。而2018年12月初的 Flutter Live 2018 上我们看到一个新玩家进入游戏 - 谷歌发布的Flutter1.0 稳定版。



从本质上讲,Flutter可能看起来像是各种Google技术和概念的大杂烩,但这会产生一个不可思议的强大移动端解决方案或框架。它基于谷歌的内部编程语言Dart,可以让Flutter访问Skia图形库 - 也是Chrome浏览器使用的。此外,Flutter与Google的Material Design规范无缝结合。


以下我列举13个理由来说明为什么选择Flutter比较“重要”,甚至是开始您的Flutter职业生涯。

1. Flutter克服了跨平台方案的传统局限

一个真正的跨平台方案长期以来一直是个技术瓶颈,我们不得不开发同一产品的多个版本(ios/android/pc/web)等。但是,实际上,用户体验以及性能通常落后于本机原生的应用程序,因为我们通常最终会使用间接通过在JavaScript中构建并使用JIT(Just In Time)编译的UI用户体验。

但使用Flutter,我们不仅可以获得“一次编写”方法的优势,还可以创建高性能的“本机”体验,因为Flutter App是一个提前编译的机器二进制可执行文件。它克服了其他跨平台解决方案带来的一些常见挑战。

2.开发人员将开发率提高n倍

开发率的提高之一来自Flutter的“热重载”(AKA“有状态热重载”和“热重启”)。这些允许开发人员在不到一秒的时间内看到他们对应用程序状态所做的更改。

无需再运行另一个Gradle构建 - 只要保存就可以实时看到修改。对于开发人员来说,这往往很容易掌握 - 使用“热重载”时很少或根本没有学习曲线,因为默认情况下每次保存都会触发。但是,优势至关重要。开发时间通常会减少30-40%,因为Gradle的重建时间会减慢Android开发人员的开发速度一般需要很长时间才能应用每个修改。

3.前端和后端只用一种语言、代码

与Android编码不同的是,后端(Java)引用前端(视图)的单独文件,而flutter使用单一语言(Dart)来完成工作。

Dart建立在其他语言的许多最流行的特性以及功能之上,而且不会失去Java或类似其他语言的熟悉程度

.Dart

是在开发人员的易用性的基础上构建的,从而使得许多常见任务变得更加容易。

4.一个开箱即用的强大开发、设计体验。

由于Flutter团队精心实施了Material设计规范,因此可以轻松创建开箱即用的强大UI组件。它有助于产生通常只能在本机应用程序中看到的流畅,清晰的体验,因为Flutter的发布版本是本机应用程序。

Flutter有一些小组件可以实现iOS的界面设计规范,让您在iPhone和iPad上也能获得原生的“感觉”。

5.有大量的开源软件包(轮子)

大量的开源软件包可以帮助您更快,更轻松地开发APP,并且当前有许多软件包可以使许多复杂的功能变得更加容易实现。尽管仍然相对年轻,但由于越来越多的开发人员积极地为Flutter做出贡献,软件包库每天都在飞速发展。

6.与Firebase直接集成

Firebase为云服务,云功能,数据库,托管,身份验证等一系列服务提供天然的支持。我们开发的基础架构可立即无服务器,冗余和可扩展。这意味着我们不必花费大量时间和资源来构建服务端。将它与用于敏捷开发或自动化开发和发布过程的工具(比如Fastlane)结合起来也很简单; 促进项目可持续交付。因此,我们不必在团队中拥有专门的DevOps支持。

7.Flutter支持各种IDE。

使用Flutter敲代码时,我们可以从众多集成开发环境(IDE)中进行选择。起初我开始使用Android Studio,但后来我看到Flutter Live 发布会直播使用的是VS Code。这让我感到疑惑,我发现许多Flutter开发人员使用Visual Code。当我也更风使用VS Code时,我才体会到为什么这么多人更喜欢它。VS Code重量轻,速度更快,并且具有Android Studio和IntelliJ中提供的大多数功能。就个人而言,我已经转移到VSCode阵营了🙂,但你也可以继续使用其他一些IDE甚至vim,没必要切换自己所熟悉的IDE才开始在Flutter中工作。

8.UI统一性,一切都是小部件(widgets)

一切都是一个小部件,Appbar,抽屉,Snackbar,List,Card等。我们很容易将一个Widget嵌入在另一个Widget中,以便通过将它包装在Center Widget中来做一些事情。这也有助于确保您的用户无论在哪个平台上运行都能获得体验。

9.适用于Android / iOS的不同主题

为移动端分配不同的主题就像使用三元运算符(platform==IOS?IosStyle:androidStyle)一样简单检查用户正在运行的平台; 允许我们APP的UI让运行时决定使用哪些UI组件。

这是一个相同的示例代码,它检查当前平台,如果它的iOS,它返回紫色主色的主题。

return new MaterialApp(

// 默认主题

theme: new ThemeData(), builder: (context, child) {

final defaultTheme = Theme.of(context);

if (defaultTheme.platform == TargetPlatform.iOS) {

return new Theme( data: defaultTheme.copyWith( primaryColor: Colors.purple ), child: child, );

}

return child;

});

10.使用Code Magic进行持续集成。

Code magic是2018年12月4日Flutter Live中的一个开源工具。

Code Magic很容易学习,完全免费!它是一种高度复杂的CI工具,专门针对Flutter进行了优化。Code magic使构建过程无缝。

11.使用2Dimensions Flare 可以更轻松地制作动画。

我第一次尝试使用Flutter + Flare - Bouncy

在Flutter live 2018期间也推出了这个牛X的在线工具,可以轻松创建非凡的UI或动画。它填补了UI设计人员和开发人员之间的空白,减少了应用UI或动画相关更改所需的时间。

我曾经使用过Flare,制作动画soeasy; 很好入门!可以非常细粒度的定制动画以及各种特效

12.PC端桌和WEB端

每个开发者都被Flutter团队现在拥有在Web浏览器中运行的Flutter应用程序原型所震惊。之前的Top Secret项目“Hummingbird”在Flutter Live期间向全世界揭幕。现在就可以使用相同的代码轻松地为移动端,PC桌面设备和WEB网页端创建跨平台的应用程序。


13.来自Flutter团队和强大社区的支持

Flutter社区是一个很好的地方,即使你没有的任何问题,你也可以通过倾听其他开发者回答别人的问题来学到很多东西。任何一个健壮的技术或语言都离不开强大的开发社区以及生态。


每种开发语言或开发解决方案都有它的一席之地,也许Flutter就是你的“雷神之锤”!

欢迎入坑Flutter!!!

以上,望采纳。


GeekEnter


基本架构就类似与unity 3D 看看后者的发展就知道未来会怎样,有无限可能


远78444659


Flutter是谷歌的移动UI框架,可以快速在iOS和Android上构建高质量的原生用户界面。 Flutter可以与现有的代码一起工作。在全世界,Flutter正在被越来越多的开发者和组织使用,并且Flutter是完全免费、开源的。

这么省时省力节约人工成本的东西,肯定重要


程序猿dd


目前坑不少 简单的app可以做 复杂的资料少 排坑是个事...但一定有市场 大前端可以学


分享到:


相關文章: