如何说服客户或公司使用Flutter

哈Ha! 我给你翻译英文。 向公司或客户文章投掷 Flutter (作者Wm Leler

自《 关于Flutter的革命 》一文发表以来已经过去了一年多(并且该材料仍然有用)。 当我写这篇文章时,只有很少的移动开发人员听说过Flutter,但此后发生了很多变化。 现在,我没有时间关注这个活跃且不断发展的社区中出现的新文章和视频。 开发人员发现了Flutter他们对此感到疯狂 。 这是使用Flutter创建的Reflectly示例应用程序:


智能反光日记应用程序

我经常从开发人员那里听到说服公司经理或客户(如果我们正在谈论代理商或自由职业者)尝试Flutter的难度。 决策者还不准备仅仅因为它是尖端技术而转向最新技术。 通常,他们了解问题,但技术堆栈只是他们工作的一部分。 对于他们而言,重要的是要知道使用新工具将帮助他们的公司在市场上取得更大的成功,例如,吸引新的消费者或降低风险。

本文适用于:

  • 想要向公司管理层解释使用Flutter的好处的开发人员。 即使您熟悉此框架,您仍然需要令人信服的论据以支持它。
  • 正在考虑在Flutter上创建自己的产品的开发人员。

本文还将讨论Flutter为什么不适用于特定应用程序的原因,这将有助于您做出明智的决定。

什么是颤动?


口号扑(简洁明了):
在创纪录的时间内创建美观的本机应用程序!

此口号包括四个部分,必须分别考虑每个部分:

  1. 应用程式建立
  2. 美学
  3. 本土性
  4. 记录日期

1.创建一个应用程序


现在Flutter因开发iOS和Android移动应用程序而入狱。 但是,从长远来看,它的方式在现有移动框架的背景下脱颖而出:Flutter不仅是一个框架,而且是用于创建使用屏幕的应用程序的完整SDK。 这意味着Flutter具有创建用户界面所需的一切,包括可视化工具和需要渲染的元素(Flutter术语中的小部件)。

Flutter与UnityUnreal之类的游戏引擎有很多共同点,它们也提供了自己的可视化工具。 区别在于Flutter用于构建应用程序 ,而不是游戏。

Flutter是完整的SDK的事实意味着它可以移植到几乎任何具有显示器的设备上。 Flutter渲染器使用Skia,这是一种跨平台使用的流行开源图形引擎


在台式机和Raspberry Pi上抖动

当我们专注于Google的移动应用程序时,多家公司将Flutter移植到台式计算机 (macOS,Windows,Linux等), 电视 (在这里您可以看到Flutter在Nvidia Shield TV上的工作方式 )以及Raspberry Pi。 Flutter甚至用于构建紫红色的用户界面。

应用程序将逐渐出现在手机之外。 一次访问多个设备上的应用程序将变得很熟悉:包括家庭助理(Google Home Hub,Lenovo Smart Display等),汽车,家用电器(例如冰箱),配件(手表,衣服)和其他物联网中的交互式显示器-设备。

到2017年,已经有84亿个此类设备在线注册,并且根据国际数据公司的预测,到2020年,它们的数量将超过300亿(相对于50亿部手机)。 但是,这些设备中的许多设备将具有交互式显示器。 Flutter架构具有为新设备创建美观且功能强大的用户界面的所有要素。


到处都是屏幕!

而且,当然,Flutter是完全免费和开源的。

2.美学


如果您的移动应用程序能够与Google Play商店中的380万个应用程序和Apple App Store中的200万个应用程序竞争,您能否保证其成功? 即使您设法说服用户下载应用程序,但30天后他会积极使用该应用程序的机会也只有3%! 咨询公司Gartner Inc. 指出只有0.01%的已发布申请在财务上取得了成功。 在这种情况下,帮助将不会是多余的。

根据研究,具有吸引力的设计起着巨大的作用 。 如果查看过去几年中最受欢迎的移动应用程序,您会发现它们每个都有独特的美学设计。 此外,精美的应用程序赢得了奖项并赢得了名声,这尤其有价值。


阿里巴巴(左)和Topline(右)


2维

Flutter应用程序的顶级示例包括来自阿里巴巴 (世界上最大的电子商务公司 )的应用程序 ,Abbey Road Studios Topline录音应用程序以及令人惊叹的2Dimensions 应用程序的演示,这些应用程序可用于创建实时动画。

越来越多的公司正在努力确保其移动应用程序与公司品牌相匹配,就像其网站或Web应用程序一样。 反过来,这需要高度的定制

最后,由于工具的局限性,设计师通常会提供一些创意,这些创意在实施时就会受到侵蚀。 感谢Flutter,您可以为应用程序实现任何设计

其他示例可以在Flutter官方网站上以及It's All Widgets中找到 。 在它们之中,您将找到Reflectly diary app ,我在本文开头引用了它作为示例。 我建议您通过从应用程序商店将其下载到AndroidApple智能手机上来熟悉此不寻常的应用程序。 另外,请务必阅读有关他们切换到Flutter经验的文章。

3.本土性


对于移动开发人员,此项目一定令人困惑。 在移动开发中,术语“本机应用程序”通常用于指代使用特定语言直接访问平台API的应用程序。 为了完全混淆所有人,在诸如React Native和Xamarin之类的框架中,术语“本机”表示他们可以使用平台小部件。

在其他开发领域,此术语不适用于移动领域。 例如,您可以在运行Windows或macOS(以及许多其他操作系统)的计算机上安装Linux,但不会将Windows或macOS称为“本机”,而Linux则称为“跨平台”或“混合”操作系统。 我们将Linux与Windows或macOS一样原生。

开发中对“本机”的更准确定义如下所示:
目的或内置于指定系统中的,尤其是与此处理器,计算机或编译器以及在其上编写的程序相关的语言的含义。
Flutter应用程序可立即在iOS和Android上编译为本机( ARM )代码。

使用本机应用程序的好处是绰绰有余的:它们运行速度更快,最重要的是,工作更稳定,并且很少出现延迟或刹车(冻结是丑陋的)的情况。 此外,本机应用程序使开发人员可以更好地控制其应用程序的行为。

为了获得本机应用程序的所有好处,移动开发人员通常使用不同的工具和语言集编写两个独立的应用程序。 通常,必须相互协调的两个独立的开发团队必须从事此类项目。 这种方法大大增加了开发成本,增加了风险,并缩短了产品交付期限。 另一方面,Flutter允许开发人员共同编写单一代码库,联合开发团队,降低风险并加快应用程序在市场上的发布时间-所有这些都结合了本机应用程序的优势。


这些应用程序中的哪个是本地应用程序? 都!

但是小部件呢? 由于Flutter使用其自己的窗口小部件进行操作 ,因此似乎在其上编写的应用程序看起来与在窗口小部件和平台工具上编写的应用程序有所不同。

上面的GIF动画显示了iOS上编写的设置窗口与Flutter上类似界面相比的外观。 尽管在像素级别上存在细微的差异,但Flutter极大地简化了外观和感觉像本机屏幕的创建。

我们不能忘记,即使是本机应用程序,根据操作系统版本的不同,外观通常也会有所不同。 本质上,Flutter不必“完美像素”。

Flutter窗口小部件可适应目标平台,为应用程序提供正确的外观,包括图标,调色板,布局,字体,滚动行为等。 Flutter的主要任务是创建用户友好的应用程序,这些应用程序也符合设计特定平台的原则。

通过Flutter编写的应用程序可以直接显示在平台的画布上,从而确保了高质量的呈现。 由于Flutter具有完整SDK的功能,因此有可能。 因此,您的应用程序不依赖于小部件,字体和其他平台元素的更改。



使用Flutter消除了对支持库的使用。 例如,运行在装有Android Jelly Bean操作系统(4.1.2)的手机上的Flutter应用程序使用了材料设计的小部件,尽管该手机本身是在发布前两年发布的。 当然,电话没有内置材料设计的小部件。 不管怎样,您的Flutter应用程序将像在更现代的设备上一样运行,并且看起来很棒。

如果不是Flutter,则必须自己解决这些问题。 这意味着需要在较旧版本的OS上进行更彻底的测试,并为无法访问应用程序中使用的元素的平台找到变通办法。 我们不断收到开发人员的消息,Flutter极大地简化了测试过程。

除了本机应用程序的优点之外,Flutter还具有其他优点:

  • 用Flutter编写的应用程序也可以在任何平台的旧OS版本上运行。 特别是,如果要在新版本的Android上测试Flutter应用程序,则它在旧版本上的外观将完全相同。 这使此类应用程序在较旧的手机上可以正常工作,并节省了测试时间。
  • 新版本的操作系统将无法破坏您的应用程序(这种情况极为罕见,通常,这是Flutter内部的错误,而不是您的应用程序中的错误)。
  • 由于制造商或提供商对操作系统的修改,您的应用程序将不会更改(最常见的示例是更改默认字体)。
  • 最重要的是,Flutter使您可以完全控制应用程序在所有平台和操作系统上的外观, 直到最后一个像素
  • 如果需要,可以专门使Flutter应用程序在iOS和Android上看起来有所不同。 即使您不这样做,Flutter小部件本身也将适应每个平台的设计原则。


Flutter允许您使用两个平台的单一代码库来完成所有这些工作。 或者,您可以根据需要在Flutter应用程序中为每个平台添加本机代码

4.记录日期


最后,Flutter也很好,因为它允许您更快地开发更好的应用程序。 Flutter最受欢迎的(也是炒作)功能是有状态的热重启 。 它不仅给人留下深刻的印象(花费不到一秒钟的时间),而且还给状态保留留下了深刻的印象,也就是说,如果您在应用程序中深处更改了代码,那么在重新编译之后,您将不必手动重新创建应用程序的最后一个状态即可查看结果。


有状态重启!

借助先进的编译技术(由JavaScript的V8编译器的开发者和针对Smalltalk的Strongtalk所开发的),以及Flutter是本机的并且基于反应性更新的视图而建立的,这样的重新引导成为可能。

除了加快流程外,许多开发人员还注意到Flutter正在认真改变其工作风格:他们可以在两个帐户中创建新的布局,并在有客户在场的情况下进行必要的更改。

我们也看到了完全满足他们需求的设计师的工作所产生的积极影响。 因此,他们可以使用不同的参数,直到找到理想的选择。 确实,在Web应用程序中使用CSS的设计人员声称,他们很容易找出如何在Flutter上进行布局更改。

要了解有关Flutter如何工作的更多信息,请参阅实时应用程序开发记录 。 您还可以参加hackathon,以了解您能以多快的速度学习Flutter并在其上构建可运行的应用程序。

如前一段所述,Flutter应用程序需要较少的测试,这意味着您可以更快地添加新功能。 这是京东对他们在Flutter的经历的评价:
我们仅使用一半的开发团队就设法创建了相同的功能。 使用相同数量的工程师,我们可以在一个发行版中添加更多功能。

阿里巴巴还指出 ,使用Flutter可以将添加新功能的平均时间从一个月减少到两个星期。


汉密尔顿应用

说起记录。 在汉密尔顿应用程序中,开发人员在发布前夕进行了重大更改,对此稳定性没有任何疑问! 大约三个月内编写的该应用程序已在两个应用程序商店中展示。 此外,Flutter极大地促进了定期添加新功能以激发用户兴趣。

这样就创建了一个成功的移动应用程序。


Flutter使更新小部件与创建和修改应用程序一样快速,容易。 我们经常听到有人担心Flutter将很难跟上平台小部件的更新。 但是,当苹果公司宣布其新款iPhone X的屏幕上有其著名的切口时,Flutter甚至在销售开始之前就设法增加了对该切口的支持。

这不仅适用于iOS。 到Google宣布对I / O 2018进行实质性重新设计的材料设计时 ,Flutter已经收到更新以完全体现新想法。 Flutter的快速自定义功能使这成为可能。

我们会定期收到开发人员的反馈,这些开发人员声称,由于Flutter,他们的工作效率提高了2-3倍,并且整个应用程序更加成功。

风险与局限


没有任何妥协的解决方案,Flutter也不例外。 这是为什么Flutter可能不是特定应用程序的最佳工具的一些原因。

由于Flutter应用程序包含Flutter小部件和它们自己的可视化工具,因此它们比使用平台内置工具的应用程序要大一些。 直到最近,Flutter应用程序的最小大小为6.7MB,但现在大小已减小到4MB 。 我们计划在将来进行进一步的优化。

Flutter最重要的优点之一是在为两个移动平台开发应用程序时都可以使用单个代码库(Flutter也适合为一个平台创建应用程序)。 但是,有些应用程序绑定到特定平台或充当该平台提供的演示的包装。 一个示例是在后台线程中运行以显示通知的应用程序。 这样的应用程序也可以用Flutter编写,但这不会带来特殊的优势。

我们经常被问到Flutter是否会留在市场上。 我们自信地说的原因有很多: 。 首先,在消费者应用程序和内部程序的开发中,谷歌本身都是Flutter的忠实用户,特别是最近发布的Google Ads移动应用程序(以前称为AdWords)是用Flutter编写的。 Google完全支持Flutter,并尽一切努力使其成功。

其次,由于通常为两个不相关的平台开发大型应用程序,因此公司认为风险较小,例如,首先发布iOS应用程序,然后在需要时创建Android应用程序。 使用Flutter,您可以同时发布两个平台的应用程序 。 因此,您不仅可以降低由于其功能而带来的风险,而且可以扩大应用程序的潜在市场。 Android将从中受益匪浅。

还有另一个潜在的问题:Flutter是一个相对较新的框架。 自然,Flutter需要一些时间来创建必要的工具,扩展功能并开发社区。今天的平台具有Flutter尚未实现的功能。同时,Google一直在努力向Flutter添加新功能。

如果您想深入研究Flutter,可以使用文章Flutter的革命性内容以及Flutter为什么使用Dart的文章您还可以查看我们最新的Flutter用户调查的结果。

从哪里开始


如果您决定尝试Flutter,以下是一些有用的提示:

  1. 本指南将帮助您安装Flutter,配置编辑器并制作第一个测试应用程序。
  2. 查看这些Flutter视频
  3. , Android , iOS , React Native Xamarin .
  4. , : Building Layouts in Flutter , Add Interactivity , A Tour of the Flutter Widget Framework ( ).
  5. Flutter , FAQ .
  6. It's All Widgets . , . Flutter-.
  7. Flutter, Flutter Weekly .
  8. Google Codelabs Flutter , , , Flutter Udacity.
  9. .

加入TwitterGitterStack Overflow上的Flutter社区。我建议订阅Flutter Dev邮件列表。另外,您可以找到当地的Flutter聚会或Study Jam,并查看附近是否有可以参加的移动开发黑客马拉松。

结论


因此,Flutter支持高速应用程序开发,这可以提高您的生产率并帮助您创建质量更高的应用程序。这是一个富有表现力,非常灵活和高度可定制的工具集,使开发人员可以完全控制其产品。 Flutter使用一个代码库即可为iOS和Android创建快速,稳定的本机应用程序。

Flutter可为您节省金钱并降低风险。它是免费和开源的。这样,Flutter可以帮助您赚更多的钱。这是可能的,因为您可以同时进入两个市场:Android和iOS应用程序,并在更短的时间内创建更好的应用程序。

开发人员最令人鼓舞的反馈可能是Flutter的移动开发很有趣这太棒了:使用Flutter 的开发人员中有92%表示完全满足他们的需求。不要忘了这项调查是 1.0版发布之前进行的,满意的用户数量正在不断增加!

最后,Flutter面向未来。这是唯一支持反应式视图的本机移动开发工具。这是一种编程范例,可帮助您使用令人难以置信的功能(例如超快速状态重启)创建更好的应用程序。而且,由于Flutter是功能完善的SDK,因此随着新平台的开发,它将在很长一段时间内保持其相关性。

Source: https://habr.com/ru/post/zh-CN433456/


All Articles