全文共2302字,预计学习时长6分钟

图源:unsplash

最近,笔者看到有很多文章把Flutter捧为“下一个流量”,一些人甚至详细解释了Flutter将如何取代ReactNative成为领先的跨平台技术。但在笔者看来,它不会火。关于这个新技术,有以下几个关键的问题。

这是非自然反应

讨论跨平台技术就必须要提到React Native。React Native很受欢迎,很多人相信JavaScript高级开发人员可以创建一流的应用程序。实际上,他们不能。

很多公司拥有JavaScript开发人员,他们会告诉管理层:“是的,我们只用一半的时间就能做到。”但正如前面指出的,他们做不到。原因在于,当你通过了学习曲线后,可以快速启动并运行应用程序的80%,而实际花费的80%的时间将用于调整应用程序以使其在每个独立平台上正确运行。

这是非本地的

Flutter的Skia渲染引擎确保你的应用程序只模仿本地的外观和感觉。它可以编译为本地代码,但它没有使用本地按钮、字段、切换、滚动条、表视图或其他接口或导航元素。苹果和谷歌几乎在每个版本中都对这些界面元素进行了调整和更新。因此,你的应用程序将总是落后。

此外,如果iOS的Flutter中出现一个漏洞,你将不得不等待谷歌来修复。只要有Flutter,iOS就是一个二等公民。

你仍然需要进行两次多数应用程序编写

正如很多人所指出的,Android同时提供Cupertino和Material widgets。这很酷,但它基本上意味着如果你希望你的应用程序看起来是本地的(顺便说一下,这是响应本地允许的),就必须使用匹配工作的正确小部件。这可能意味着要将接口的部分编写两次。

为了维护平台的外观和感觉(在标签栏内导航,而不是在导航栏内的标签栏)你可能还得针对每个平台相应地调整你的应用程序。没错,你可以重用业务逻辑,但这不能完全弥补必须编写、测试和调试用户界面问题以及在两个平台上出现的问题。

图源:unsplash

支持颇少

虽然网上支持Flutter的声音有略微上升的趋势,但它远没有达到iOS或Android上本地应用开发的支持水平。

需要有关Swift、Java、Kotlin或者Cocoa的文章、书籍、视频和课程?还有很多这样的人。需要帮助解决栈溢出?几乎所有你能想到要问的问题都已经被问过并得到了回答。想通过Flutter解决?结果不尽如人意。

有一条评论强调了这一点:但是单是支持问题就很糟糕,尤其是在Android上(对Windows的依赖程度堪比90年代中期和00年代早期的“DLL地狱”)。

Flutter的寿命有待确认

众所周知,谷歌的技术时好时坏。谷歌曾经认为Flutter没有回报,像一个烫手山芋。谷歌推动Flutter,但同时也推动了在Kotlin上编写Jetpack,甚至Kotlin本地通用模块以支持跨平台。

更不用说Apple还在推进他们下一代声明式开发技术的版本:SwiftUI。虽然SwiftUI不允许开发Android应用,但它让开发者可以在所有苹果平台上使用自己的技能,包括iOS、ipadOS、macOS、watchOS和tvOS。

如果这两种技术都能完成预期的任务,并且都显著地减少了开发本地应用程序的时间,那么Flutter还有什么优势呢?

注意语言

Flutter最大的缺点之一是它的实现语言——Dart。

如果你在运行谷歌的web或后端托管环境,Dart也是一种可以使用的语言。这意味着,如果你为了Flutter花时间学习Dart,只有一个好处:你能够使用Flutter。也就是说,如果想成为一名手机开发人员,可能会学习Swift或Kotlin这样的现代语言,而且这两种语言实际上都有很好的就业市场。而Dart并非如此。

此外,Dart缺乏市场渗透意味着如果团队中需要更多Dart开发人员,可能找不到所需人才,这就意味着必须自己栽培人才。最后,在某些情况下,你可能会遇到框架的限制,因此需要下拉框来进行某种本地开发。在这种情况下,你仍然需要学习Swift和Kotlin。

客户不需要它

笔者曾多次将Flutter作为一种可能的解决方案推荐给客户,但客户拒绝了——尤其是喜欢尝试使用内部的JavaScript开发人员。

图源:unsplash

底线:Flutter是一种利基技术

以上所有可能会让你觉得Flutter不是项目的最佳选择。但也没你想象得那么糟糕,你只是需要认识到它的局限性。

在笔者看来,Flutter最适合一个小型内部开发团队,他们需要快速创建一个在外观和设计上基本上不是原生的概念验证应用程序。

举一个儿童游戏或应用程序的例子,它的图形是独特的,而且外观是非本地的。在这种情况下,如果Flutter没有完全模仿iOS和Android,那就无关紧要了。它还可以让你摆脱前文提到的两次编写接口挂钩。对了,还需要一个不介意学习全新平台和语言的团队。

Flutter是一项很酷的技术,它并不会像很多人吹捧的那样会火起来,但也有其价值所在。

一起分享AI学习与发展的干货

欢迎关注全平台AI垂类自媒体 “读芯术”

(添加小编微信:dxsxbb,加入读者圈,一起讨论最新鲜的人工智能科技哦~)

它不会火:为什么Flutter不是下一个流量?相关推荐

  1. Flutter如何实现下拉刷新和上拉加载更多

    效果 下拉刷新 如果实现下拉刷新,必须借助RefreshIndicator,在listview外面包裹一层RefreshIndicator,然后在RefreshIndicator里面实现onRefre ...

  2. Flutter学习笔记 —— 完成一个简单的新闻展示页

    Flutter学习笔记 -- 完成一个简单的新闻展示页 前言 思路分析 案例代码 结束语 上图 前言 刚学Flutter不久,今天我们来看看如何使用 Container & ListView实 ...

  3. Flutter开发之——下拉刷新

    一 概述 本文介绍Flutter中的下拉刷新组件: RefreshIndicator:Material风格的下拉刷新组件 CupertinoSliverRefreshControl: ios风格的下拉 ...

  4. Flutter入门——创建第一个Flutter项目

    Flutter入门--创建第一个Flutter项目 一.创建项目 第一个项目使用Android Studio创建,步骤如下: 先打开Android Studio,会有一个创建新的Flutter应用的选 ...

  5. 人工智能这把火 会让.ai域名成为下一个.com吗?

    从 1985 年世界上第一个 .com 顶级域名诞生开始,这一终端应用服务就依附于计算机,以摧枯拉朽的变革之势,成为互联网浪潮之下掀起的一朵浪花,尽管它不足以承载撼天动地的力量,却始终能长久不衰.时至 ...

  6. 如何使用Flutter+SpringBoot+Mysql开发一个简易的抽奖APP(Android)教学

    如果你需要项目资源,欢迎来到我的个人博客:https://brath.top/2023/02/24/%E3%80%90Flutter&SpringBoot%E3%80%91%E5%A6%82% ...

  7. flutter 日历_Flutter:一个更贴近真实项目的练习

    最近 Flutter 火的一塌糊涂,所以今天给大家推荐一个 Flutter 的练习项目.非常的适合入门级学习 Flutter 的开发者. 为什么这么说呢?因为它包含了完整 UI 设计图,更贴近真实项目 ...

  8. 【Flutter】如何写一个Flutter自动打包成iOS代码模块的脚本

    相信很多使用原生+Flutter的iOS项目都会遇到混合开发的集成问题,也有大神写了一些解决方案,下面就记录一下我的心路历程: 前期准备 开始之前,我先拜读了一些大神的文章(这里只挑出对我帮助最大的) ...

  9. Flutter:尝试撸一个具有惯性跟阻力的旋转控件或用传感器控制其旋转

    来源 一直都想写一个可以转动的Widget,并且可以近似的模拟生活中的惯性跟阻力,因为设计到一些数学公式,作者还去请教了我的高中老师,最后学了点传感器,就直接外加个可选择传感器控制了 效果 实现方法 ...

最新文章

  1. COJ 1170 A Simple Problem
  2. 反问疑问_句子练习大全(反问、疑问、设问、病句等练习)
  3. 想知道吗,如何在Github上精准地找到想要的开源项目?
  4. 线程同步--条件变量
  5. 高效率学习Java编程提升自我
  6. java循环语句_java中循环语句
  7. CALL SYMPUT与CALL SYMPUTX区别
  8. 有关Monkey命令的两个隐藏选项
  9. 【C++】C++中的迭代器
  10. JavaScript中的数组 1
  11. 用“归并”改进“快速排序”
  12. 视频截帧 php,php截取视频指定帧为图片_PHP
  13. MT6763/P23处理器资料介绍
  14. 小米手机adb命令解锁BL_小米10解锁BL刷机卸载自带APP等
  15. OpenModelica中的可视化仿真
  16. 资深老狐一句感叹:白学了,猫猫究竟有什么魔力,一小时等于十年功?
  17. 揭秘郭盛华的真实收入,事实和你想的真不一样
  18. 早期对科学诞生贡献最大的学者:泰勒斯、毕达哥拉斯、亚里士多德和阿基米德。
  19. 手机html编辑器微信,手机微信编辑器,秒书是唯一支持手机的微信编辑器
  20. 快消行业订货系统解决方案

热门文章

  1. git diff 操作
  2. 设计模式之抽象工程模式
  3. Python 基础学习 --入门(了解小常识)
  4. 索引越位:String index out of range: 1
  5. phpnow添加虚拟主机
  6. Netty协议设计与解析
  7. 百度翻译自定义其它语种翻译为中文
  8. 2022年8月10日:使用 ASP.NET Core 为初学者构建 Web 应用程序--使用 ASP.NET Core 创建 Web UI(没看懂需要再看一遍)
  9. Unity3D实现 UI图片拖拽旋转和拖拽移动
  10. 三国志战略版:Daniel_S4蜀骑推荐