从2015年Dart开发者峰会的首次亮相,到目前2.81的稳定版,Flutter跨平台技术被Google发布以来,人气一直居高不下,GitHub关注度一直趋于前列。因为它宣传的一套代码就可以构建适用于移动、web、桌面、和嵌入式平台的精美应用,给开发者们带来了巨大的吸引力。节省了开发成本与时间,那把Flutter用在实际生产环境中,真的比原生更优秀吗?

在我使用Flutter构建移动应用过程中,感觉UI开发效率确实更高一些。Flutter 采用声明式编程,这也就意味着 Flutter 构建的用户界面就是应用的当前状态。熟悉了Flutter的声明式UI写法较传统的xml式布局效率更快。Android目前不是也在大力推进MAD( Modern Android Development:现代安卓开发)里的Compose嘛,这是Android 上 UI 开发方式的重大变革,有人说掌握了Flutter的声明式UI写法就掌握了70%的Compose写法~,其次flutter中万物皆是Widget,系统内置了许多的小组件,但在商业项目中,我们要根据UI的设计稿进行还原,但系统没有怎么办??没关系,没有可以自定义呀!我们可以自定义封装一个个需要的小组件,这样就可以完美还原UI的设计稿(当然别忘了多机型适配。。)


使用Flutter开发项目时,肯定会遇到状态管理:“响应式的编程框架中都会有一个永恒的主题——“状态(State)管理”,无论是在 React/Vue(两者都是支持响应式编程的 Web 开发框架)还是 Flutter 中,他们讨论的问题和解决的思想都是一致的。”—— 《Flutter实战》

可以简单的理解如果一个页面会变化(如后端传入的数据改变),那么这个页面的状态就是可以改变的。系统内置了StatelessWidget(不需要维护状态的场景)和StatefulWidget(需要维护状态,StatefulWidget 类会对应一个 State 类,State表示与其对应的 StatefulWidget 要维护的状态)两种常用的状态组件。如果应用很庞大复杂,使用state来处理页面刷新就显得有些麻烦,这时就可以使用pub.dev(Dart和Flatter应用程序的官方软件包存储库)上的状态管理工具:Get ,Provider,

Bloc,fish_redux等等,这么多管理工具本人使用强烈推荐Get ! ! ! Get也是Pub.dev上排名第一的第三方库哦

Get的三大核心:状态管理,路由管理,依赖注入。Get中有Obx()和Get.Build()两种方式刷新组件,看看官方文档很容易学会。能极大帮助Flutter开发,不仅可以管理状态,还有许多待你发现的其他功能:语言本地化,持久化存储,带参路由传递....(不亏是No.1)

  还有就是网络请求了,Flutter中隆重推荐 Dio,什么?你android开发用惯了Retrofit ?  换!

你肯定会遇到屏幕适配的问题,在此推荐 screenutil

Pub.dev上还有许多的第三方库,真实商业项目开发中你会遇到许多问题,这时就需要你自己去耐心发现了。

总的来说Flutter的开发效率较原生是提升了许多。对企业来说,以往一个应用需要Android和IOS两端工程师开发,现在只需要Flutter工程师即可,节省了成本。而且,Flutter的性能是不输于原生的。“Flutter 与用于构建移动应用程序的其它大多数框架不同,因为 Flutter 既不使用 WebView,也不使用操作系统的原生控件。 相反,Flutter 使用自己的高性能渲染引擎来绘制 Widget(组件)。这样不仅可以保证在 Android 和iOS 上 UI 的一致性,也可以避免对原生控件依赖而带来的限制及高昂的维护成本。Flutter 底层使用 Skia 作为其 2D 渲染引擎,Skia 是 Google的一个 2D 图形处理函数库,包含字型、坐标转换,以及点阵图,它们都有高效能且简洁的表现。Skia 是跨平台的,并提供了非常友好的 API,目前 Google Chrome浏览器和 Android 均采用 Skia 作为其 2D 绘图引擎。”—— 《Flutter开发实战》


最后我想说,技术的最终目的是为了解决问题,或者更好的解决问题,它是用来服务于实际业务环境的。新技术层出不穷,作为开发者,该如何对待老技术、如何看待层出不穷、前途不明的新技术?Flutter与Dart的频繁更新, 移动端 Flutter、KMM、Compose Multiplatform 跨平台技术持续发布更新,想全部掌握是不可能也是不理智的。还在要结合自己的工作业务环境、职业发展,综合考虑,切勿在基本功不扎实的情况下被新出炉的技术牵走,只想追赶时髦的新技术词汇,最后只落个三心二意、囫囵吞枣、走马观花。记住,万丈高楼平地起。跨平台应用复杂后对于原生知识的依赖是逐渐增加的,无论如何,程序员的基本功:数据结构与算法是永不过时的 ~

Flutter —— 为所有屏幕构精美应用相关推荐

  1. Flutter布局锦囊---屏幕顶部提醒

    设计给的效果如下: 拿到设计后,先把整体拆分成几个部分: "提醒页面",显示在屏幕上方的文字提醒页面,不会覆盖原路由页面. "路由导航",使用Flutter的路 ...

  2. flutter 基础之屏幕适配

    随着苹果,Google等大厂不断研发新的设备机型,Android和iOS的设备种类越来越繁多了,有普通的屏幕16:9的,也有最近几年出来的全面屏,水滴屏,刘海屏等,Android的全面屏基本上是18: ...

  3. flutter 获取当前屏幕宽高

    参考一 参考二 1.系统提供的方法 这个方法可以得到当前控件的宽,高 final size =MediaQuery.of(context).size; final width =size.width; ...

  4. flutter 获取设备屏幕大小

    import 'dart:ui'; var s = window.physicalSize;print(s); 转载于:https://www.cnblogs.com/pythonClub/p/105 ...

  5. Flutter中获取监听屏幕方向、锁定屏幕方向

    文章目录 获取当前屏幕的方向 实时监听屏幕方向的改变 锁定屏幕方向 锁定方向,禁止App随着设备的方向改变 锁定启动图的方向 默认效果 Android配置 IOS配置 动态改变Flutter的屏幕方向 ...

  6. Flutter技术与实战(5)

    Flutter进阶 文章目录 Flutter进阶 如何构造炫酷的动画效果 Animation.AnimationController与Listener AnimationWidget与Animatio ...

  7. ZEGO Flutter SDK 助力开发者高效实现跨平台音视频功能

    近日,即构科技SDK新增支持Flutter跨平台移动框架的方式接入,开发者基于ZEGO Flutter SDK可简单高效地实现跨平台音视频的功能. 一. 什么是Flutter Flutter是Goog ...

  8. 字节跳动的多平台绽放秘诀 | Flutter 开发者故事

    字节跳动旗下运营着一系列成功的用户产品.企业应用以及服务,覆盖信息.教育.娱乐等不同领域.随着产品阵容的不断发展,传统的原生双平台开发已经难以满足团队更高效.更灵活.更精美,以及更多样的产品研发需求. ...

  9. 新版 Flutter 中文开发者网站发布

    Develop as One,2021 年 Google 开发者大会 (Google Developer Summit) 于今日顺利举办,包含众多最新 Google 技术产品更新的线上演讲,干货满满. ...

最新文章

  1. min-width、max-width兼容IE6、IE7的解决方法
  2. 【深度学习】何恺明经典之作—2009 CVPR Best Paper | Dark Channel Prior
  3. boost::generator_iterator用法的测试程序
  4. 限免下载!揭秘你不知道的计算机“进化论”
  5. fiddler实现后端接口 mock(不需要修改开发代码)
  6. jstack查看某个进程堆栈信息
  7. VC静态加载DLL和动态加载DLL
  8. PyHook3 的下载与安装
  9. spring aop切面执行顺序
  10. 泰凌微8258入门教程 环境篇②——Telink IDE开发环境搭建
  11. express文件上传中间件Multer详解
  12. 改变this指向的方法
  13. 杭州最新公交线路一览(41-50)
  14. 通过PSAM读CPU卡号流程小结
  15. 如果APP推广月预算只有10万 该如何展开推广?
  16. python -m http.server 搭建一个简易web下载服务器(可用于快速发送大文件)
  17. H.264系列文章(三)——帧内预测
  18. 人工智能入门四件套,你学人工智能避不开的知识点
  19. 2021年危险化学品经营单位主要负责人考试及危险化学品经营单位主要负责人复审模拟考试
  20. CDN: trunk URL couldn't be downloaded

热门文章

  1. 飞思卡尔比赛K60驱动OLED12864显示摄像头采集的赛道图像,完整代码分享
  2. C语言实现排列组合(全排列)
  3. 5G物联网组网架构-网络
  4. 3月刊精彩推荐:2010世界杯,我的Android之旅
  5. instanceof java 报错_【提问】多态问题:instanceof与类型转换
  6. 金融类App上架iOS的经验分享
  7. 机房防雷,以下七点需谨记!
  8. Android实现多张图片合成GIF
  9. 52行c代码实现俄罗斯方块
  10. cad渐开线画法lisp程序_CAD画齿轮的渐开线程序 (LSP)和渐开线齿轮关系