Flutter是否是跨平台移动开发最好的框架?是否值得学习?

718 阅读7分钟

在这里插入图片描述

一、什么是Flutter

  • (百度翻译是 振颤;颤动) 小插曲

  • Flutter是Google一个新的用于构建跨平台的手机App的SDK。写一份代码,在Android 和iOS平台上都可以运行。

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

    可以看下其官方介绍的特性

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

二、Flutter和React-Native、Weex这样的动态化框架有什么不同?

WebViews

  • 最早的跨平台方案是基于JaveScript 和 WebView的,像PhoneGap、Cordova、Ionic等。
  • UI通过WebView来显示html代码,系统服务则通过一个中间层桥接到JaveScript中去。

React Native

  • RN不仅桥接系统服务,也将系统UI也桥接到了JaveScript中,这样写出来的UI最终也会渲染成原生的控件。

Flutter

  • Flutter使用Dart语言开发,Dart可以被编译(AOT)成不同平台的本地代码,让Flutter可以直接和平台通讯而不需要一个中间的桥接过程,从而提高了性能。
  • Flutter引擎的C/C ++代码是用Android的NDK编译的,任何Dart代码都是AOT编译成本地代码的,Flutter应用程序依然使用本机指令集运行(不涉及解释器)。因此,Flutter能达到原生应用一样的性能。

三、那Flutter是否值得学习

在这里插入图片描述 从目前行业的产品,以及社区生态来说,React Native 整体还是胜出 Flutter 一筹。毕竟早出来几年,市场占有率和行业积累还是在的。但是长远来看,技术发展也有它的必然规律,Flutter 的技术理念已经领先了 React Native,作为大公司、或者大前端团队的技术储备和技术选型,科技公司要想在未来在行业有一席之地,使用 Flutter 这样的技术,必然也会是一个趋势。

后文

总之Flutter是值得去学习的。 感谢大家关注我,分享Android干货,交流Android技术。

对文章有何见解,或者有何技术问题,都可以在评论区一起留言讨论,都会看的哦~

详细Vx关注公众号:Android老皮

Flutter技术解析与实战,全家桶学习资料(含Flutter进阶学习笔记、入门与实战和完整开发实战详解)

目录

img

第一章 混合工程

            ● Flutter工程体系
​
            ● 混合工程改造实战
​
            ● 混合工程与持续集成
​
            ● 快速完成混合工程搭建
​
            ● 使用混合栈框架开发

img

第二章 能力增强

            ● 基于原生能力的插件扩展
​
            ● 基于外接纹理的同层渲染
​
            ● 多媒体能力扩展实践
​
            ● 富文本能力应用实践

img

第三章 业务架构设计

            ● 应用框架设计实践
​
            ● 轻量级动态化渲染引擎的设计
​
            ● 面向切面编程的设计实践
​
            ● 高性能的动态模板渲染实践

img

第四章 数据统计与性能

            ● 数据统计框架的设计
​
            ● 性能稳定性监控方案的设计
​
            ● 高可用框架的设计与实践
​
            ● 跨端方案性能对比实践

img

第五章 企业级应用实战

            ● 基于Flutter的端结构演进与创新
​
            ● Flutter与FaaS云端一体化架构

img

详细Vx关注公众号:Android老皮

《Flutter进阶学习笔记》

目录

img

img

第一章 为什么 Flutter 是跨平台开发的终极之选

            ● 这是为什么?
​
            ● 跨平台开发
​
            ● 什么是Flutter
​
            ● Flutter特性
​
            ● Flutter 构建应用的工具
​
            ● 使用 Flutter 构建的热门应用
​
            ● 构建 Flutter 应用的成本

img

第二章 在Windows上搭建Flutter开发环境

            ● 使用镜像
​
            ● 系统要求
​
            ● 获取Flutter SDK
​
            ● 编辑器设置
​
            ● Android设置
​
            ● 起步: 配置编辑器
​
            ● 起步: 体验
​
            ● 体验热重载

img

第三章 编写您的第一个 Flutter App

            ● 创建 Flutter app

            ● 使用外部包(package)

            ● 添加一个 有状态的部件(Stateful widget)

            ● 创建一个无限滚动ListView

            ● 添加交互

            ● 导航到新页面

            ● 使用主题更改UI

img

第四章 Flutter开发环境搭建和调试

            ● 开发环境的搭建

            ● 模拟器的安装与调试

            ● 开发环境的搭建

            ● 模拟器的安装与调试

img

第五章 Dart语法篇之基础语法(一)

            ● 简述

            ● Hello Dart

            ● 数据类型

            ● 变量和常量

            ● 集合(List、Set、Map)

            ● 流程控制

            ● 运算符

            ● 异常

            ● 函数

            ● 总结

img

第六章 Dart语法篇之集合的使用与源码解析(二)

            ● List

            ● Set

            ● Map

            ● Queue

            ● LinkedList

            ● HashMap

            ● Map、HashMap、LinkedHashMap、SplayTreeMap区别

            ● 命名构造函数from和of的区别以及使用建议

img

第七章 Dart语法篇之集合操作符函数与源码分析(三)

            ● 简述

            ● Iterable<E>

            ● forEach

            ● map

            ● any

            ● every

            ● where

            ● firstWhere和singleWhere和lastWhere

            ● join

            ● take

            ● takeWhile

            ● skip

            ● skipWhile

            ● follwedBy

            ● expand

            ● reduce

            ● elementAt

img

第八章 Dart语法篇之函数的使用(四)

            ● 简述

            ● 函数参数

            ● 匿名函数(闭包,lambda)

            ● 箭头函数

            ● 局部函数

            ● 顶层函数和静态函数

            ● main函数

            ● Function函数对象

第九章 Dart语法篇之面向对象基础(五)

            ● 简述

            ● 属性访问器(accessor)函数setter和getter

            ● 面向对象中的变量

            ● 构造函数

            ● 抽象方法、抽象类和接口

            ● 类函数

            ● 总结

img

第十章 Dart语法篇之面向对象继承和Mixins(六)

            ● 简述

            ● 类的单继承

            ● 基于Mixins的多继承

            ● 总结

img

第十一章 Dart语法篇之类型系统与泛型(七)

            ● 简述

            ● 可选类型

            ● 接口类型

            ● 泛型

            ● 类型具体化

            ● 总结

img

第十二章 Flutter中的widget

            ● Flutter页面-基础Widget

            ● Widget

            ● StatelessWidget

            ● State生命周期

            ● 基础widget

            ● DefaultTextStyle

            ● FlutterLogo

            ● Icon

            ● Iamge.asset

            ● CircleAvatar

            ● FadeInImage

            ● 按钮

            ● FlatButton

            ● OutlineButton

            ● TextFormField

img

详细Vx关注公众号:Android老皮

《Flutter入门与实战》

目录

img

img

img

img

第一章、Flutter基本功能

            ● 我的第一个 Flutter 应用之旅

            ● 容器的盒子模型

            ● 构建一个常用的页面框架

            ● 设置 App 的主色调与字体

            ● 来一个图文并茂的列表

            ● 给列表增加下拉刷新和上滑加载更多功能

            ● 使用cached_network_image 优化图片加载体验

            ● 仿一个微信价值几个亿的页面

            ● 开发一个常用的登录页面

            ● 封装一个通用的文本输入框

            ● 底部弹窗ModelBottomSheet详解

            ● 利用CustomScrollView实现更有趣的滑动效果

            ● 底部弹窗如何实现多项选择?

img

第二章、Flutter路由管理

            ● App页面路由及路由拦截实现

            ● 路由参数处理

            ● 初识 fluro 路由管理

            ● 使用 fluro 的转场动画提高页面切换体验

            ● 使用自定义转场动画实现个性化页面切换

            ● 此路是我开,此树是我栽。若是没权限,403到来

            ● Flutter 2.0的路由把我搞蒙了

            ● 山路十八弯的2.0路由

img

第三章、Flutter网络请求插件Dio

            ● 初次见面,网络请求王者之dio

            ● 利用 Dio请求删除数据

            ● 使用 Dio的 Patch请求完成详情编辑

            ● 使用 Post 请求增加动态

            ● 一文搞定图片选择及图片上传

            ● 使用 GetIt 同步不同页面间数据

            ● Dio 封装之金屋藏娇

            ● Dio 之拦截器

            ● Dio之戛然而止

            ● 从源码深入了解Dio 的

            ● 小伙子,你买票了吗?

            ● 手写一个持久化的

            ● Dio之文件下载

            ● Dio 篇章总结

img

第四章、Flutter状态管理

            ● 基础原理篇
​
            ● Provider篇
​
            ● Redux篇
​
            ● Mobx篇
​
            ● Getx篇
​
            ● BLOC篇
​
            ● 状态管理系列大汇总

img

第五章、Flutter 动画

            ● 使用 Animation 构建爱心三连动画
​
            ● 让你的组件拥有三维动效
​
            ● 小姐姐渐现效果 ——AnimatedOpacity 使用
​
            ● 使用 AnimatedBuilder分离组件和动画,实现动效复用