目前学习开发flutter已经有快1年的时间了,大大小小也做了七七八八个项目。项目从大到小都有,之前公司开发的项目都以小项目为主所以基本上学会flutter的控件以及布局也就基本解决问题。有大一点的项目也能在通过大量代码累计的情况下处理完成。相对于现在公司做的境外电商项目框架来说真的只能说差的不是一点半点。
那么我简单分析一下两个公司项目框架的区别吧。
1.框架区别:之前公司项目基本没有框架而言,简单的就用了MVC当中的M(数据模型)和C(页面或者路由),大量的代码累计到了C当中,网络请求和业务逻辑、视图布局的代码都累计其中,这样到了后期修改就会存在大量的问题,也很不方便。而现在公司项目采用了MVVM框架结构,我们将网络请求和业务逻辑全部都移动到了VM(ViewModel)当中,这样避免了C当中的代码累计过多。
2.状态管理:之前公司的项目不大的情况下,很多页面也不复杂,所以状态管理全部采用setState来处理页面更新,这样的情况下就会导致页面刷新上面的性能消耗过多,不管是一个列表的更新还是一个text文字的更新都setState处理无疑导致整页从新绘制真的很没有必要。现在公司采用了provider+StreamController来处理状态管理,这样有效的实现了页面局部更新和避免了过多的无效重绘从而实现复杂页面的性能提升。
3.布局区别:之前公司的时候最常用的就是ListView+Gridview来处理页面布局,复杂点的就嵌套使用但是有时候也嵌套不出复杂的页面。现在公司大多页面都比较复杂多变的情况下基本采用CustomScrollView+Nestedscrollview来实现自定义滚动布局,大大简化了布局的难度。布局的好坏决定着一个页面代码的数量与性能,只有把基础打得牢靠才有后面更上一层楼的处理。
4.封装区别:之前的公司很多页面有相同的显示模块和基本雷同的模块都没有做基础封装,导致很多页面用到相同的模块都是复制到其他页面去使用,这样真的导致后期维护很麻烦,如果改动起来也是要挨着挨着去找来修改。现在公司项目则将大多公共模块进行了有效的封装,这样避免大量垃圾代码的同时也方便后期维护。
5.业务处理:之前公司的接口不够规范也没办法在网络请求后做一定的业务处理,这样就形成了每个页面都要写自己的前期业务逻辑处理,比如code=401等等的逻辑。而现在公司项目将接口规范化在拿到网络请求后先做了一层业务处理逻辑,这样更加有效的实现了所有页面显示数据前的逻辑处理。
6.开发工具插件:之前公司项目里面没有使用同步image的插件(FlutterImgSync),导致一有图片文件变动都需要手动去pubspec.yaml手动添加,如果图片量少还好,一旦多了,真的是欲哭无泪啊。所以古人一直说工欲善其事,必先利其器。一定要学会将一些无用耗时的工作想办法自动化处理掉。同样的道理也适用于开发工具的快捷键上,以前不是很重视快捷键问题,后来被同事影响,然后发现真香!
大体以上就主要是以上flutter开发快1年后,项目经验累计到的很多可用之处吧。当然和很多大神相比,真的只是渣渣啦,我一直想走技术路线,但是发现自己深入学习不下去,真的有点看不懂。感觉还是适合做一个什么都会点的人吧,这样避免迅速被淘汰。自己也发现是进不了大厂的命,所以要做一个实用与更多小公司的发开,什么都会开发。毕竟学渣的命~我还是快分享这一年学习积累资料 吧,避免水贴。
⚠️原文地址在Github上面保存更全面一些,不定时会更新
⚠️
⚠️关于学习Flutter的积累,欢迎点击前往⚠️
⚠️日常学习Swift开发的积累,欢迎点击前往⚠️
⚠️日常学习PHP的积累,欢迎点击前往⚠️
日常学习Flutter开发的积累
<div align=center>------------------基础知识-----------------</div>
基础知识 | 学习内容 | 网址 | 系列 |
---|---|---|---|
Flutter中文网 | 官方学习网址,入门学习 | 点击前往 | |
flutter环境搭建mac版 | 1.系统环境要求 2.下载flutter 3.配置环境变量 4.检查环境 5.搭建环境常见问题整理 |
点击前往 | |
flutter基础-看完这篇就可以撸app了 | a. layout结构 b. navBar c. tabbar和列表组件的使用 d. http请求JSON数据,并渲染到列表 e. 组件之间的通信 f. 路由(带参数路由) |
点击前往 | |
Flutter学习之入门和体验 | 1.Flutter架构 2.Flutter环境搭建 3.创建第一个Flutter程序 4.编写第一个应用 |
点击前往 | 真丶深红骑士的系列 |
Flutter学习之Dart语法特性 | 1.Dart环境 2.Dart一些概念 3.Dart语法 |
点击前往 | 真丶深红骑士的系列 |
Flutter学习之认知基础组件 | 1.Widget简介 2.Flutter页面 3.Flutter布局 4.实践 |
点击前往 | 真丶深红骑士的系列 |
Flutter学习之布局、交互、动画 | 1.布局 2.交互 3.动画 |
点击前往 | 真丶深红骑士的系列 |
Flutter学习之事件循环机制、数据库、网络请求 | 1.Dart中的异步任务消息循环机制 2.Dart中的异步支持 3.文件操作 4.sqflite数据库 5.网络请求操作 6.JSON |
点击前往 | 真丶深红骑士的系列 |
Flutter完整开发实战详解(一、Dart语言和Flutter基础) | 1.环境搭建 2.Dart语言下的Flutter 3.Flutter Widget 4.Flutter 布局 5.Flutter 页面 |
点击前往 | 恋猫de小郭 |
Flutter 完整开发实战详解(二、快速实战篇) | 1.基础控件 2.数据模块 3.其他功能 |
点击前往 | 恋猫de小郭 |
Flutter完整开发实战详解(三、 打包与填坑篇) | 1.打包 2.细节 3.问题处理 |
点击前往 | 恋猫de小郭 |
Flutter完整开发实战详解(四、 Redux、主题、国际化) | 1.Redux 2.主题 3.国际化 |
点击前往 | 恋猫de小郭 |
Flutter 完整开发实战详解(五、深入探索) | 1.WidgetsFlutterBinding 2.InheritedWidget 3.内存 4.线程 5.热更新 |
点击前往 | 恋猫de小郭 |
Flutter 完整开发实战详解(六、 深入Widget原理) | 针对描述一下 Widget 中的一些有意思的原理 | 点击前往 | 恋猫de小郭 |
Flutter 完整开发实战详解(七、 深入布局原理) | 1.单子元素布局 2.多子元素布局 3.多子元素滑动布局 |
点击前往 | 恋猫de小郭 |
Flutter完整开发实战详解(八、 实用技巧与填坑) | 主要讲述 Flutter 开发过程中的实用技巧,让你少走弯路少掉坑,全篇属于很干的干货总结,以实用为主,算是在深入原理过程中穿插的实用篇章。 | 点击前往 | 恋猫de小郭 |
Flutter完整开发实战详解(九、 深入绘制原理) | 本篇主要深入了解 Widget 中绘制相关的原理,探索 Flutter 里的 RenderObject 最后是如何走完屏幕上的最后一步,结尾再通过实际例子理解如何设计一个 Flutter 的自定义绘制。 | 点击前往 | 恋猫de小郭 |
Flutter完整开发实战详解(十、 深入图片加载流程) | 本篇主要深入了解 Flutter 中图片加载的流程,剥析图片流程中有意思的片段,结尾再实现 Flutter 实现本地图片缓存的支持。 | 点击前往 | 恋猫de小郭 |
Flutter完整开发实战详解(十一、全面深入理解Stream) | 一、Stream 由浅入深 二、StreamBuilder 三、rxdart |
点击前往 | 恋猫de小郭 |
Flutter完整开发实战详解(十二、全面深入理解状态管理设计) | 一、scoped_model 二、BloC 三、flutter_redux 四、fish_redux |
点击前往 | 恋猫de小郭 |
Flutter完整开发实战详解(十三、全面深入触摸和滑动原理) | 1、事件流程 2、事件竞争 |
点击前往 | 恋猫de小郭 |
Flutter开发之Dart语法基础 | Dart是谷歌在 2011 年推出的编程语言,是一种结构化Web编程语言,允许用户通过Chromium中所整合的虚拟机(Dart VM)直接运行Dart 语言编写的程序,免去了单独编译的步骤 | 点击前往 | RunTitan的系列 |
Flutter开发之Dart的数据类型01 | numbers(数字) strings(字符串) booleans(布尔) lists (也被称之为 arrays) maps runes (用于在字符串中表示Unicode字符) symbols |
点击前往 | RunTitan的系列 |
Flutter开发之Dart的数据类型02 | numbers(数字) strings(字符串) booleans(布尔) lists (也被称之为 arrays) maps runes (用于在字符串中表示Unicode字符) symbols |
点击前往 | RunTitan的系列 |
Flutter之基础Widget | Widget是Flutter开发中的主要组成部分, 是Flutter的基础, Flutter的核心设计思想便是: 一切皆Widget | 点击前往 | RunTitan的系列 |
Flutter之布局类Widget | 在Flutter中,根据Widget是否需要包含子节点将Widget分为了三类,分别对应三种Element | 点击前往 | RunTitan的系列 |
Flutter之容器类Widget | 1.填充类容器Padding 2.布局限制类容器 3.ConstrainedBox、SizeBox 4.装饰类容器DecoratedBox 5.变换类容器Transform 6.组合容器Container 7.导航类容器Scaffold、TabBar、AppBar等 |
点击前往 | RunTitan的系列 |
Flutter之基础Widget之TextField | 主要介绍TextField | 点击前往 | RunTitan的系列 |
Flutter中App的主题和导航 | MaterialApp | 点击前往 | RunTitan的系列 |
Flutter基础篇(1)-- 跨平台开发框架和工具集锦 | 1.为什么需要跨平台? 2.跨平台框架的发展历史 3.其他相关热门开发技术? |
点击前往 | AWeiLoveAndroid基础篇 |
Flutter基础篇(2)-- 老司机用一篇博客带你快速熟悉Dart语法 | 1.注释 2.关键字 3.变量和常量 4.特殊数据类型 5.运算符 6.控制流程语句 7.异常 |
点击前往 | AWeiLoveAndroid基础篇 |
Flutter基础篇(3)-- Flutter基础全面详解 | 点击前往 | AWeiLoveAndroid基础篇 | |
Flutter基础篇(4)-- Flutter填坑全面总结 | 开发当中遇到的问题总结 | 点击前往 | AWeiLoveAndroid基础篇 |
Flutter基础篇(5)-- Flutter代码模板,解放双手,提高开发效率必备 | 1.使用说明 2.导入方式 3.支持的快捷键如下 4.部分使用示范图(以AS做示范) 5.关于代码模板的自定义方式 |
点击前往 | AWeiLoveAndroid基础篇 |
Flutter基础篇(6)-- 水平和垂直布局详解 | 点击前往 | AWeiLoveAndroid基础篇 | |
Flutter基础篇(7)-- Flutter更新错误全面解决方案(图文+视频讲解) | 1.使用Git下载flutter版本的3种方式 2.遇到的问题 |
点击前往 | AWeiLoveAndroid基础篇 |
从0开始写一个基于Flutter的开源中国客户端(1)——Flutter简介及开发环境搭建 | 1.Flutter简介 2.Flutter开发环境搭建 |
点击前往 | yuxiyu |
从0开始写一个基于Flutter的开源中国客户端(2)——Dart语法基础 | 1.Dart语言的特性 2.Dart语法简介 |
点击前往 | yuxiyu |
从0开始写一个基于Flutter的开源中国客户端(3)——初识Flutter & 常用的Widgets | 1.一个最简单的Flutter App 2.Flutter项目结构 3.Flutter App是怎样的App 4.Flutter常用Widgets |
点击前往 | yuxiyu |
从0开始写一个基于Flutter的开源中国客户端(4)——Flutter布局基础 | 1.包含单个子Widget的布局容器 2.包含多个子Widget的布局容器 |
点击前往 | yuxiyu |
从0开始写一个基于Flutter的开源中国客户端(5)——App整体布局框架搭建 | App整体布局框架搭建 | 点击前往 | yuxiyu |
从0开始写一个基于Flutter的开源中国客户端(6)——各个静态页面的实现 | 1.侧滑菜单页面的实现 2.资讯列表页面的实现 3.动弹列表页面的实现 4.“发现”页面的实现 5.“我的”页面的实现 |
点击前往 | yuxiyu |
从0开始写一个基于Flutter的开源中国客户端(7)——App网络请求和数据存储 | 1.Flutter中的网络请求 2.Flutter中的数据存储 3.从网络加载资讯列表并显示 4.保存登录后的用户数据 |
点击前往 | yuxiyu |
从0开始写一个基于Flutter的开源中国客户端(8)——插件的使用 | 1.搜索插件包 2.使用flutter_webview_plugin插件 3.使用event_bus插件 4.使用image_picker插件 |
点击前往 | yuxiyu |
Flutter 的生命周期 | 1.widget的生命周期 2.App的生命周期 |
点击前往 | 小德_Kurt |
Flutter Dart语法(1):extends 、 implements 、 with的用法与区别 | 1.继承(extends) 2.混合 mixins (with) 3.接口实现(implements) |
点击前往 | 小德_Kurt |
Flutter 深入理解BuildContext | 1.什么是Navigator,MaterialApp做了什么 2.BuildContext 3.of(context)方法 |
点击前往 | Vadaski |
Dart 什么是Stream | 1.什么是Stream 2.如何使用Stream 3.Stream的种类 |
点击前往 | Vadaski |
状态管理探索篇——Scoped Model(一) | 1.添加依赖 2.创建Model 3.将Model放入顶层 4.在子页面中获取Model |
点击前往 | Vadaski |
状态管理探索篇——Redux(二) | 1.添加依赖 2.创建State 3.创建action 4.创建reducer 5.创建store 6.将Store放入顶层 7.在子页面中获取Store中的state 8.发出action |
点击前往 | Vadaski |
状态管理探索篇——BLoC(三) | 1.创建BLoC 2.创建BLoC实例 3.在页面中使用StreamBuilder |
点击前往 | Vadaski |
状态管理拓展篇——RxDart(四) | 1.可观察对象——Observable 2.增强版StreamController——Subject |
点击前往 | Vadaski |
Flutter 状态管理指南篇——Provider | 1.What's the problem 2.What is Provider 3.How to do 4.You also need to know 5.Tips |
点击前往 | Vadaski |
Flutter之旅:Dart的基础语法 | 1.Dart中常见数据类型一览 2.Dart中的变量与常量 3.运算符 4.Dart中的函数 5.Dart 流程控制 |
点击前往 | 张风捷特烈 |
Flutter之旅:从源码赏析Dart面向对象 | 1.面向对象的条件 2.从Size一族开始说起 3.Dart中的接口与枚举 4.自定义向量类Vector2 |
点击前往 | 张风捷特烈 |
Flutter之旅:Dart语法扫尾-包访问-泛型--异常-异步-mixin | 1.其他常用符号与关键字 2.库的使用和可见性 3.泛型 4.异步操作简介 5.异常处理 6.Dart中的多继承 |
点击前往 | 张风捷特烈 |
Flutter之旅:认识Widget(源码级) | 1.Widget的第一印象 2.Widget的状态 3.从Icon源码看StatelessWidget组件 4.从Checkbox看StatefulWidget组件 |
点击前往 | 张风捷特烈 |
Flutter小课堂-Image篇 | 1.Image的简单认识 2.Image的属性表现 |
点击前往 | 张风捷特烈 |
Flutter自定义组件-MultiShower | 1.先说需求 2.MultiShower的使用 3.组件的实现 4.全类展示 |
点击前往 | 张风捷特烈 |
Flutter小课堂:Text知多少 | 1.简单使用 2.Text的style属性 3.Text的其他属性 4.TextSpan |
点击前往 | 张风捷特烈 |
Flutter手势交互+自定义绘板组件v0.01 | 1.从RaisedButton看事件交互 2.GestureDetector事件处理 3.手绘板 v0.01 |
点击前往 | 张风捷特烈 |
Flutter动画之粒子精讲 | 1.何为动画 2.粒子动画 3.粒子束 |
点击前往 | 张风捷特烈 |
Flutter 动画之 Animation | 1.前言 2.Flutter动画基本使用 3.让动画更有动感:CurveTween 4.动画的监听和动画序列 |
点击前往 | 张风捷特烈 |
Flutter动画之自定义动画组件-FlutterLayout | 1.前言 2.AnimatedWidget与AnimatedBuilder 3.组件之所为组件 4.升级FlutterLayout的功能 5.增加运动曲线 |
点击前往 | 张风捷特烈 |
Flutter必备-StatefulWidget的打开方式 | 1.前言 2.从Slider开始说起 3.如何正确打开Slider 4.这样的优势 5.组件间的组合 6.状态的魅力 7.关于修改 8.关于监听 9.复用的灵活 10.小结 |
点击前往 | 张风捷特烈 |
Flutter必备-Flex布局完全解读 | 1.前言 2.Flex的属性一览 3.轴向:direction:Axis 4.主轴方向:mainAxisAlignment:MainAxisAlignment 5.交叉轴方向:crossAxisAlignment:CrossAxisAlignment 6.主轴尺寸:mainAxisSize 7.文字方向:textDirection:TextDirection 8.竖直方向排序:verticalDirection:VerticalDirection 9.基线对齐方式:textBaseline:TextBaseline 10.用Flex布局写个小例子 |
点击前往 | 张风捷特烈 |
Flutter从静态界面到抽取封装 | 1.微信条目的静态布局 2.微信条目的封装 3.掘金简介的静态界面 4.对静态组件的封装 5.仿淘宝商品item |
点击前往 | 张风捷特烈 |
Flutter必备-Dart中的异步与文件操作全面解析 | 1.同步 2.从读取文件开始看异步 3.Dart中的Stream流 4.Dart的文件系统 |
点击前往 | 张风捷特烈 |
Flutter 基础篇 - 网络访问 | 1.巧妇难为无米之炊 2.Json的解析 3.网络请求包dio的使用 |
点击前往 | 张风捷特烈 |
Flutter 数据&状态篇 - setState | 1.静态界面的实现 2.状态的更新 3.网络请求包dio的使用 |
点击前往 | 张风捷特烈 |
Flutter 数据&状态篇 - redux | 1.初始项目的Redux化 2.redux优势 3.对昨天TodoList的改造 |
点击前往 | 张风捷特烈 |
Flutter 自组篇- 蛛网图+绘制+动画实践 | 1.静态蛛网图 2.动画效果 3.组件封装 |
点击前往 | 张风捷特烈 |
Flutter 自组篇- 圆形进度条 | 1.准备阶段 2.绘制 3.使用 |
点击前往 | 张风捷特烈 |
Flutter 基础篇 - ListView的使用 | 1.ListView 的基本使用 2.ListView进阶使用 3.ListView滑动控制器(上拉刷新和下拉更新) 4.physics属性 |
点击前往 | 张风捷特烈 |
Flutter 插件篇 - 从自定义插件开始说起 | 1.Flutter插件创建与结构简析 2.第一个插件代码分析 3.获取缓存文件夹 4.其他工程引用插件 |
点击前往 | 张风捷特烈 |
Flutter 基础篇 - 聊聊那些弹框 | 1.搭个场子再说 2.对话框:SimpleDialog 3.对话框:AlertDialog 4.对话框:CupertinoAlertDialog 5.瞎玩一下 6.对话框中的StatefulWidget 7.底部弹框:SnackBar 8.底部抽屉:BottomSheet 9.日历选表:showDatePicker 10.选择表:CupertinoPicker 11.日期选卡:CupertinoPicker 12.日期选卡:CupertinoPicker |
点击前往 | 张风捷特烈 |
Flutter 插件篇 - 认识MethodChannel | 1.从吐司弹框开始说起(Android端/Java) 2.从吐司弹框开始说起(iOS端/Swift) 3.Flutter视角看MethodChannel 4.Android视角看MethodChannel 5.信息发送追踪 |
点击前往 | 张风捷特烈 |
Flutter 自组篇- Flutter中四十行代码能做什么? | 1.TreeWidget的思路 2.TextTreeWidget的封装 |
点击前往 | 张风捷特烈 |
Flutter 数据&状态篇 - InheritedWidget | 1.现在来模拟一下这个情景 2.第一个解决方案:InheritedWidget |
点击前往 | 张风捷特烈 |
Flutter 福利篇 - Hero转场组件共享 — 附赠-路由动画工具类 | 1.起始页:OriginPage 2.目标页:TargetPage 3.关于createRectTween属性 4.福利时间:路由动画工具 |
点击前往 | 张风捷特烈 |
Flutter 技能篇 - debug 看程序启动 | 1.debug基本操作 2.多断点的使用及其他 |
点击前往 | 张风捷特烈 |
Flutter 技能篇 - ui.Image加载探索 | 1.如何使用Canvas绘制图片 2.从ImageProvider获取及Image 3.保存网络图片的缩略图 4.网络图片的加载及缓存文件的有效期 |
点击前往 | 张风捷特烈 |
Flutter漫谈篇- StatelessWidget Or StatefulWidget | 1.描述统一形式化 2.StatelessWidget : f(x) = 2 3.StatefulWidget : g(x) = 2x 4.如何抉择 5.StatefulWidget得天独厚的优势 6.滥用StatefulWidget-机智如你 |
点击前往 | 张风捷特烈 |
Flutter趣玩篇- 出神入化的Align | 1.Align的源码 | 点击前往 | 张风捷特烈 |
Flutter趣玩篇- 出神入化的Align+动画 | 1.代码实现 2.简单封装 |
点击前往 | 张风捷特烈 |
Flutter-技能篇 - 使用Provider前你应了解Consumer | 1.一把梭 2.Consumer来帮忙 3.Consumer做了什么 |
点击前往 | 张风捷特烈 |
Flutter 状态篇 - 主题色切换+国际化 三连 | 1.provoder实现主题切换和国际化:provider: ^03.1.0+1 2.redux实现主题切换和国际化:flutter_redux: ^0.5.3 3.BLoC实现主题切换和国际化:flutter_bloc: ^0.22.1 |
点击前往 | 张风捷特烈 |
-------------- | ------------- | - | ------------- |
Flutter试用报告 | 1.Flutter 为何使用Dart开发语言 2.Flutter的UI系统 3.Flutter与Native的交融 |
点击前往 | |
Flutter调试技巧总结——高效开发的秘密 | 我将自己遇到的错误类型归 语法和代码错误 、 运行时错误 和 逻辑错误 三大类,同时还从官方文档总结了 界面调试 的技巧,分享给大家。 | 点击前往 | |
使用Flutter来完成Uplabs上炫酷的交互 | 1.What is Flutter? 2.What is Uplabs? 3.How to implement ? 4.Join in Flutter-UI-Challenges |
点击前往 | |
Flutter 44集免费基础视频教程 | 1-Flutter基础视频教程 2-Flutter 20课小实例练习 |
点击前往 | |
我看完掘金上的227篇文章,总结出一份 Flutter 入门教程 | 1.Flutter 简介 2.为什么原生应用开发者需要关注 Flutter 3.Flutter 英文官网 4.Flutter 安装(Windows) 5.Flutter 安装(Mac) 6.Google 跨平台方案 Flutter 从入门到实战 7.Flutter 布局详解 8.Flutter 布局(一)- Container详解 9.Flutter 布局(二)- Padding、Align、Center详解 10.Flutter 布局(三)- FittedBox、AspectRatio、ConstrainedBox详解 11.Flutter Widgets: Image 12.Flutter Widgets: Text 13.浅尝 Flutter 中的 http 请求 |
点击前往 | |
flutter-study | 1.Flutter 布局 2.Flutter 动画 3.现有项目中集成Flutter 4.Flutter Plugin开发流程 |
点击前往 | |
还在写iOS?是时候学一下Flutter了 | 1.Widget与UIView 2.如何对Widget布局 3.如何从布局中添加或者删除一个组件 4.如何设置Widget 动画 5.如何绘制到屏幕上 6.widget的透明度在 7.如何实现自定义widget 8.导航 |
点击前往 | RiverLi |
Flutter布局详解,必知必会 | 1.线性布局Row和Column 2.弹性布局Flex 3.流式布局Wrap、Flow 4.层叠布局Stack、Positioned |
点击前往 | 升级之路 |
用Flutter构建漂亮的UI界面 - 基础组件篇 | 1.前言 2.基础组件 3.布局实战 4.总结 |
点击前往 | 小石头若海 |
Flutter框架分析(三)-- Widget,Element和RenderObject | 1.Widget 2.Element 3.RenderObject |
点击前往 | |
-------------- | ------------- | - | ------------- |
Flutter 状态管理之 Provider | 1.单个 Provider 的情况 2.使用 MultiProvider 管理多个共享数据类 |
点击前往 | mclzone |
八种 Flutter 状态管理-深入评论 | 1.setState 2.Function callback 3.Delegate 4.Sigslot 5.pkg:scoped_model 6.pkg:provide 7.flutter-provide 8.RxDart, Fish-Redux |
点击前往 | mclzone |
Flutter - 使用Provider实现状态管理 | 1.搭建App的架构 2.使用Provider管理state 3.和业务逻辑通信 4.创建核心业务逻辑 .... |
点击前往 | 小红星闪啊闪 |
Flutter状态管理provider的使用和封装 | 1.provider 2.ChangeNotifierProvider 3.FutureProvider 4.StreamProvider 5.ValueListenableProvider 6.ValueListenableProvider 7.MultiProvider 8.ProxyProvider |
点击前往 | 艾维码 |
Flutter Provider状态管理-Consumer | 1.引包 2.采用最简单的计数器代码来整合provider 3.Cosumer |
点击前往 | autonomousjack |
Flutter Provider状态管理 - Selector | 1.counter_provider.dart 2.my_page.dart |
点击前往 | autonomousjack |
Flutter局部刷新 | 1.通过provider刷新 2.StreamBuilder实现局部刷新 |
点击前往 | autonomousjack |
<div align=center>------------------基础控件------------------</div>
基础细节 | 备注信息 | 网址 | 分类 |
---|---|---|---|
Flutter Decoration背景设定(边框、圆角、阴影、形状、渐变、背景图像等) | 点击前往 | 【圆】 | |
Flutter 图片、圆形头像、圆角图片....各种形状 | 点击前往 | 【圆】 | |
Flutter 圆形/圆角头像 | 点击前往 | 【圆】 | |
Flutter中的圆角和圆形效果 | 点击前往 | 【圆】 | |
Flutter 裁剪布局之 ClipRect、ClipRRect、ClipOval、ClipPath、CustomClipper | 点击前往 | 【圆】 | |
Flutter - 图片加载 | 点击前往 | 【图片】 | |
Flutter - 加载网络图片的几种方式 | 点击前往 | 【图片】 | |
Flutter Image 本地&网络图片、圆形图片、CachedNetworkImage Widget 和 FadeInImage Widget | 点击前往 | 【图片】 | |
Flutter 中的图文混排与原理解析 | 点击前往 | 【图片】 | |
根据一个完整项目学习Flutter—1、使用主题共享颜色和字体样式(ThemeData) | 点击前往 | 【框架】 | |
Flutter:Theme | 点击前往 | 【框架】 | |
Flutter进阶—路由和导航 | 点击前往 | 【框架】 | |
Flutter路由跳转及参数传递 | 点击前往 | 【框架】 | |
Flutter学习之路由传参 | 点击前往 | 【框架】 | |
flutter之使用自定义字体库 | 点击前往 | 【框架】 | |
flutter json解析相关 for json_serializable | 点击前往 | 【框架】 | |
Flutter dio结合json_serializable请求数据并解析Demo | 点击前往 | 【框架】 | |
Flutter(二十一)——dio库 | 点击前往 | 【框架】 | |
Flutter入门进阶之旅(十七)Flutter dio网络请求 | 点击前往 | 【框架】 | |
flutter 生命周期 | 点击前往 | 【框架】 | |
Flutter自定义渐变色AppBar | 点击前往 | 【框架】 | |
Flutter在Ios中实现极光推送 | 点击前往 | 【框架】 | |
Flutter国际化的三种方式-->intl | 点击前往 | 【框架】 | |
Flutter - International 国际化,Localization 本地化, 使用Intl | 点击前往 | 【框架】 | |
Flutter学习笔记1-Widgets划分 | 点击前往 | 【控件】 | |
Flutter之MaterialApp使用详解 | 点击前往 | 【控件】 | |
Flutter-WillPopScope-双击返回与界面退出提示 | 点击前往 | 【控件】 | |
Flutter基础Widget之按钮(RaisedButton、FlatButton、OutlineButton,IconButton) | 点击前往 | 【控件】 | |
Flutter - 自定义Dialog | 点击前往 | 【控件】 | |
Flutter 控件之 文本和基本的容器 | 点击前往 | 【控件】 | |
Flutter文本输入框TextField属性(InputDecoration、textInputAction、inputFormatters等等)详解 | 点击前往 | 【控件】 | |
Flutter中TextField使用 | 点击前往 | 【控件】 | |
Flutter花式玩转TextField,写一个验证码输入框超简单! | 点击前往 | 【控件】 | |
flutter控件之---------TextField | 点击前往 | 【控件】 | |
Flutter:修改TextField的高度,以及无边框圆角 | 点击前往 | 【控件】 | |
Flutter控制某个TextField获取焦点及失去焦点 | 点击前往 | 【控件】 | |
Flutter上拉抽屉实现 | 点击前往 | 【控件】 | |
Flutter 控件-Drawer使用 | 点击前往 | 【控件】 | |
Flutter 手动控制drawer(抽屉)打开关闭 | 点击前往 | 【控件】 | |
Flutter 入门之 ListTile 使用指南 | 点击前往 | 【控件】 | |
Flutter Checkbox(复选框) | 点击前往 | 【控件】 | |
Flutter Checkbox CheckboxListTile | 点击前往 | 【控件】 | |
Flutter网格型布局 - GridView篇 | 点击前往 | 【控件】 | |
Flutter 基础组件之 Stack | 点击前往 | 【控件】 | |
Flutter Widget - Positioned; | 点击前往 | 【控件】 | |
Flutter 超实用简单菜单弹出框 PopupMenuButton | 点击前往 | 【控件】 | |
Flutter DropdownButton简单使用及魔改源码 | 点击前往 | 【控件】 | |
Flutter TabBar、TabBarView的使用 | 点击前往 | 【控件】 | |
Flutter: Wrap 、Chip、CircleAvatar实现 流式搜索记录布局 | 点击前往 | 【控件】 | |
Flutter 布局控件完结篇 | 点击前往 | 【控件】 | |
Flutter跨平台移动端开发丨SingleChildScrollView、ListView、GridView、CustomScrollView、ScrollController | 点击前往 | 【控件】 | |
在Flutter中创建有意思的滚动效果 - Sliver系列 | 点击前往 | 【控件】 | |
Flutter - 循序渐进 Sliver | 点击前往 | 【控件】 | |
Flutter:Slivers大家族,让滑动视图的组合变得很简单! | 点击前往 | 【控件】 | |
Flutter SliverAppBar全解析,你要的效果都在这了! | 点击前往 | 【控件】 | |
SliverAppBar,CustomScrollView,NestedScrollView的使用 | 点击前往 | 【控件】 | |
flutter控件----NestedScrollView+TabBar+TabBarView实现折叠顶部布局 | 点击前往 | 【控件】 | |
Flutter 扩展NestedScrollView (一)Pinned头引起的bug解决 | 点击前往 | 【控件】 | |
Flutter 扩展NestedScrollView (二)列表滚动同步解决 | 点击前往 | 【控件】 | |
Flutter 扩展NestedScrollView (三)下拉刷新的解决 | 点击前往 | 【控件】 | |
Flutter 69: 图解基本 Stepper 步进器 | 点击前往 | 【控件】 | |
Flutter系列之UI篇:文本显示——RichText | 点击前往 | 【控件】 | |
flutter组件 RefreshIndicator,Opacity,ClipOval,ClipRRect | 点击前往 | 【控件】 | |
你知道吗,Flutter内置了10多种show | 点击前往 | 【控件】 | |
在 Flutter 中使用 WebView | 点击前往 | 【WebView】 | |
Flutter插件之webview_flutter简要使用说明 | 点击前往 | 【WebView】 | |
Flutter WebView与JS交互简易指南 | 点击前往 | 【WebView】 | |
一次 Flutter WebView 性能优化 | 点击前往 | 【WebView】 | |
深入理解Flutter多线程 | 点击前往 | 【常识】 | |
Flutter 深入浅出Key | 点击前往 | 【常识】 | |
Flutter相关函数记录 | 点击前往 | 【常识】 | |
Flutter倒计时定时器(一) | 点击前往 | 【常识】 | |
flutter发送短信 打电话 打开链接 打开其他APP | 点击前往 | 【常识】 | |
Flutter更新showDialog中的内容 | 点击前往 | 【常识】 | |
Flutter DateTime日期转换 | 点击前往 | 【常识】 | |
Flutter知识点: Notification | 解决方案1: 参考Flutter知识点: InheritedWidget 解决方案2:Notification,子节点状态变更,发送通知上报。 |
点击前往 | 【常识】 |
容器类Widget-约束盒子ConstrainedBox和SizedBox容器 | 点击前往 | 【常识】 | |
flutter 中监听滑动事件 | 点击前往 | 【常识】 | |
flutter控件Flexible和 Expanded的区别 | 点击前往 | 【常识】 | |
初学Flutter基础:关于InheritedWidget的理解 | 点击前往 | 【常识】 | |
说说Flutter中的RepaintBoundary | 点击前往 | 【常识】 | |
Flutter的四种运行模式:Debug、Release、Profile和test | 点击前往 | 【常识】 | |
Flutter 入门指北(Part 10)之手势处理和动画 | 点击前往 | 【动画】 | |
Flutter知识点: Animation | 点击前往 | 【动画】 | |
Flutter 动画之 AnimationController | 点击前往 | 【动画】 | |
【译】Flutter进阶:在应用中实现 Hero(飞行) 动画 | 点击前往 | 【动画】 | |
Flutter Hero动画 | 点击前往 | 【动画】 | |
Flutter中的动画 | 点击前往 | 【动画】 | |
flutter SlideTransition实现平移动画 | 点击前往 | 【动画】 | |
Flutter 44: 图解矩阵变换 Transform 类 (一) | 点击前往 | 【动画】 | |
AnimatedCrossFade | 点击前往 | 【动画】 | |
Flutter “孔雀开屏”的动画效果 | 点击前往 | 【动画】 | |
A Deep Dive into the Flutter Animations package | 点击前往 | 【动画】 | |
Exploring Google Maps in Flutter | 【互联网】 | 点击前往 | 【地图】 |
Flutter - Google map widget plugin example. | 【互联网】 | 点击前往 | 【地图】 |
Flutter – Google Maps, Markers and Polygons | 【互联网】 | 点击前往 | 【地图】 |
Flutter - Google map plugin. | 【互联网】 | 点击前往 | 【地图】 |
Flutter - How can draw route on google map between markers. | 【互联网】 | 点击前往 | 【地图】 |
Building Places & Location Search with Map View Using Flutter 1.0 | 【互联网】 | 点击前往 | 【地图】 |
Automatic Json Serializing in Flutter Using Json Annotation | 【互联网】 | 点击前往 | 【地图】 |
Flutter 实战进阶 | 【互联网】 | 点击前往 | |
深入理解Flutter Platform Channel | 点击前往 | 【原生】 | |
Flutter项目调用安卓原生代码 | 点击前往 | 【原生】 | |
Flutter调用iOS原生方法 | 点击前往 | 【原生】 | |
Flutter实战:手把手教你写Flutter Plugin | 点击前往 | 【拓展】 | |
告别手写,自动生成Flutter/Dart实体类 | 点击前往 | 【拓展】 |
<div align=center>------------------项目实战------------------</div>
项目实战 | 备注信息 | 网址 |
---|---|---|
Flutter 性能优化实践 总结 | 👍👍👍👍👍 | 点击前往 |
Flutter 性能优化 Tips | 点击前往 | |
Flutter性能优化实践 —— UI篇 | 点击前往 | |
Flutter实战详解--高仿好奇心日报 | 点击前往 | |
Flutter知乎App实践:UI+Json+Utils | 点击前往 | |
Flutter 仿滴滴出行App | 点击前往 | |
基于Google Flutter的WanAndroid客户端 | 点击前往 | |
Flutter实战之实现一个简单的新闻阅读器 | 点击前往 | |
还不会用Flutter?仿网易云音乐项目(已开源) | 点击前往 | |
Flutter之撸一个漂亮的登录界面的总结 | 点击前往 | |
Flutter交互实战-即刻App探索页下拉&拖拽效果 | 点击前往 | |
请收下我的 20 个 Flutter 开源项目 | 👍👍👍👍👍 | 点击前往 |
Flutter 实战:撸半个知乎日报~ThemeListPage | 点击前往 | |
Flutter-评分控件(Rating Bar)的制作 | 点击前往 | |
日更的FlutterDemo合集,今天你fu了吗 | 👍👍👍👍👍 | 点击前往 |
Flutter 实战:正真意义上的无限循环轮播器 | 点击前往 | |
使用Flutter开发一款电影APP | 点击前往 | |
Flutter开发-仿携程项目 | 点击前往 | |
产品级Flutter开源项目FunAndroid(WanAndroid客户端),Provider的最佳实践.DarkMode、多色彩主题、国际化、切换字体、优美动画 | 点击前往 | |
Flutter仿网易云音乐:播放界面 | 点击前往 | |
Flutter实战 : 从 0 搭建「网易云音乐」APP(一、创建项目、添加插件、通用代码) | 点击前往 | |
Flutter实战 : 从 0 搭建「网易云音乐」APP(二、Splash Page、登录页、发现页) | 点击前往 | |
Flutter实战 : 从 0 搭建「网易云音乐」APP(三、每日推荐、推荐歌单) | 点击前往 | |
Flutter实战 : 从 0 搭建「网易云音乐」APP(四、排行榜、播放页面) | 点击前往 | |
Flutter实战 : 从 0 搭建「网易云音乐」APP(五、播放功能逻辑) | 点击前往 | |
Flutter实战 : 从 0 搭建「网易云音乐」APP(六、歌词(一)) | 点击前往 | |
Flutter实战 : 从 0 搭建「网易云音乐」APP(七、歌词(二)) | 点击前往 | |
Flutter实战 :从 0 搭建「网易云音乐」APP(八、我的页面) | 点击前往 | |
NeteaseCloudMusic | 高仿最新版的网易云音乐,接口使用Binaryify大佬的 - NeteaseCloudMusicApi | 点击前往 |
flutter-netease-music | flutter music player application (仿网易云音乐) | 点击前往 |
flutter-go | 由阿里巴巴前端技术团队开发的Flutter 开发者帮助 APP,包含 flutter 常用 140+ 组件的demo 演示与中文文档,是学习Flutter开发的必备手册。 | 点击前往 |
GSYGithubAppFlutter | 👍👍👍👍👍 | 点击前往 |
flutter-examples | 包含Flutter的常见的学习示例。 | 点击前往 |
flutter-osc | 基于Google Flutter的开源中国客户端,支持Android和iOS。 | 点击前往 |
FlutterDouBan | Flutter豆瓣客户端,Awesome Flutter Project,全网最100%还原豆瓣客户端。主要功能包括首页、书影音、小组、市集及个人中心,一个不拉。 | 点击前往 |
zhihu-flutter | 一个高仿知乎的Flutter应用,支持黑色主题切换。 | 点击前往 |
flutter_shuqi | 高仿书旗小说客户端,所有功能都是用Dart写的,iOS和Android的代码复用率达到了100%。 | 点击前往 |
Morec | 这是一个非常精美的 Flutter 版电影客户端,利用豆瓣现有的 Api,打造了一个完整的电影展示 App。细节十分完善,是一个经过完整设计的产品而非 Demo。 | 点击前往 |
flutter_boss | 一个仿Boss直聘的Flutter应用。 | 点击前往 |
awesome-flutter-cn | 一个很棒的Flutter学习资源,官方教程,插件,工具,文章,App,视频教程等的资源列表 | 点击前往 |
gsy_github_app_flutter | 跨平台的开源Github客户端App,更好的体验,更丰富的功能,旨在更好的日常管理和维护个人Github,提供更好更方便的驾车体验Σ( ̄。 ̄ノ)ノ。 | 点击前往 |
Flutter - Playing local, network and youtube videos with video player plugin. | 点击前往 | |
Flutter 玩转微信——通讯录 | 点击前往 | |
两个半月的业余时间用Flutter做了个app-技术篇 | 点击前往 | |
编写一个非常精美的Flutter Todo-List项目 | 点击前往 | |
Flutter开发实战 高仿微信(1)首页 | 点击前往 | |
Flutter 10天高仿大厂App及小技巧积累总结 | 点击前往 | |
【Flutter应用】Flutter精仿抖音开源 | 点击前往 | |
Flutter仿微博客户端, 包含首页、视频、发现、消息(仿微博聊界面)及个人中心模块 | 点击前往 | |
Flutter实现启动页、闪屏广告页、引导页 | 点击前往 | |
Flutter异常监测与上报 | 点击前往 |
<div align=center>------------------三方插件------------------</div>
三方库 | 备注信息 | 网址 |
---|---|---|
Dart Packages | 查询三方库 | 点击前往 |
Flutter超全开源框架、项目和学习资料汇总 | 👍👍👍👍👍 | 点击前往 |
很棒的列表,精选了最好的Flutter库,工具,教程,文章等。 | 👍👍👍👍👍 | 点击前往 |
Flutter部分插件 后续持续更新~点 | 点击前往 | |
Flutter 一些常用库 | 点击前往 | |
Flutter常用插件 | 点击前往 | |
2019 Joyy Flutter 总结 | 点击前往 | |
hive(hive_generator) | 数据存储 | 点击前往 |
json_annotation(json_serializable) | 数据解析 | 点击前往 |
dio | 网络库 | 点击前往 |
dio_flutter_transformer | compute 解析 | 点击前往 |
common_utils | Dart 常用工具类库 | 点击前往 |
flustars | 常用工具类库 | 点击前往 |
provider | 状态管理 | 点击前往 |
retrofit(retrofit_generator) | dio 适配器 | 点击前往 |
logger | 日志 | 点击前往 |
webview_flutter | webiew | 点击前往 |
flutter_html | 简单html显示 | 点击前往 |
jaguar_flutter_asset | localWebService | 点击前往 |
intl(intl_translation) | 国际化 | 点击前往 |
jpush_flutter | 极光推送 | 点击前往 |
decimal | 金额 | 点击前往 |
package_info | 版本信息 | 点击前往 |
fluro | 路由框架 | 点击前往 |
cached_network_image | 图片缓存 | 点击前往 |
stream_transform | Stream添加常见变换运算符的扩展方法。 | 点击前往 |
path_provider | Flutter插件,用于查找文件系统上的常用位置。支持iOS和Android。 | 点击前往 |
oktoast | Toast插件 | 点击前往 |
fluttertoast | Toast插件 | 点击前往 |
flutter_easyloading | Toast插件 | 点击前往 |
flutter_swiper | 轮播图 | 点击前往 |
pull_to_refresh | 刷新 | 点击前往 |
shimmer | 骨架屏 | 点击前往 |
flutter_picker | 自定义数据生成选择器 | 点击前往 |
badges | 角标 | 点击前往 |
flutter_rating_bar | 评分 | 点击前往 |
marquee | 跑马灯 | 点击前往 |
photo_view | 查看大图 | 点击前往 |
flutter_widgets | 分类联动 | 点击前往 |
flutter_gifimage | gif图 | 点击前往 |
shared_preferences | 数据存储 | 点击前往 |
flutter_spinkit | 转圈插件 | 点击前往 |
fluwx | 微信插件 | 点击前往 |
flutter_qq | QQ插件 | 点击前往 |
stripe_payment | stripe支付插件 | 点击前往 |
share | 支持分享的flutter插件。 | 点击前往 |
flutter_umeng_analytics | 友盟的分享和统计库。 | 点击前往 |
flutter_alipay | 调用支付宝进行支付的功能,兼容android和iOS。 | 点击前往 |
image_picker | 选择相册照相机图片插件 | 点击前往 |
flutter_datetime_picker | 日期选择插件 | 点击前往 |
url_launcher | 打开网址插件 | 点击前往 |
location | 定位插件 | 点击前往 |
google_maps_webservice | Google地图查询插件 | 点击前往 |
google_maps_flutter | Google地图插件 | 点击前往 |
amap_base | 高德地图Flutter插件【废弃】 | 点击前往 |
amap_map_fluttify | 最新的高德地图Flutter插件 | 点击前往 |
extended_image | Image扩展组件 | 点击前往 |
permission_handler | 权限处理 | 点击前往 |
cookie_jar | Cookie 管理 | 点击前往 |
dio_cookie_manager | dio cookie 工具 | 点击前往 |
flutter_screenutil | 屏幕适配 | 点击前往 |
extended_nested_scroll_view | 自定义NestedScrollView | 点击前往 |
lpinyin | Dart汉字转拼音库 | 点击前往 |
AzListView | 城市列表,索引&悬停效果 | 点击前往 |
flutter_villains | 页面切换动画的库 | 点击前往 |
flutter_advanced_networkimage | 图像缓存加载和缩放控制库 | 点击前往 |
flutter_svg | 加载svg图像 | 点击前往 |
zoomable_image | 支持图像查看和手势缩放操作功能的图片库 | 点击前往 |
carousel_slider | 通过手势划动来切换图像组件,并且此库还支持自动播放图像 | 点击前往 |
camera | 用于获取Android和iOS系统相机的信息,支持预览相机馈送和捕捉图像,同时支持录制视频。 | 点击前往 |
event_bus | 使用Dart流进行解耦应用程序的简单事件总线的库,和Android中的事件总线机制类似,内部使用了广播机制。 | 点击前往 |
video_player | 官方维护的视频播放插件。 | 点击前往 |
qr_flutter | 用于二维码的Flutter库,可通过Widget或自定义Paint进行简单快速的QR码渲染。 | 点击前往 |
barcode_scan | 于扫描2D条形码和QRCodes的Flutter插件。 | 点击前往 |
charts_flutter | 通用的图表库组件,提供基本的柱状图,折线图,饼图等。 | 点击前往 |
flutter_circular_chart | 轻松创建的动画圆形图控件的库。 | 点击前往 |
flutter_sticky_header | Flutter实现的粘性标头。(A Flutter implementation of sticky headers with a sliver as a child.) | 点击前往 |
sticky_headers | 使您可以将标题放置在可滚动内容上,该内容在滚动内容时将粘贴在容器的顶部。 | 点击前往 |
flui | 开箱即用的高质量 Flutter UI 组件 | 点击前往 |
flutter-p2p-engine | Flutter视频/直播APP省流量&加速神器. | 点击前往 |
youtube_player | A flutter plugin to play Youtube Videos without API Key in range of Quality(144p, 240p,360p,480p,720p and 1080p). | 点击前往 |
youtube_player_flutter | Flutter plugin for playing or streaming YouTube videos inline using the official iFrame Player API. Supports both Android and iOS platforms. | 点击前往 |
flare_splash_screen | Facilitator for having a Splash screen with a Flare animation until some work has been done for the initialization of the app(骨架屏) | 点击前往 |
ff_annotation_route | 通过注解快速完成路由映射. | 点击前往 |
firebase_auth | A Flutter plugin to use the Firebase Authentication API. | 点击前往 |
firebase_analytics | A Flutter plugin to use the Google Analytics for Firebase API. | 点击前往 |
firebase_dynamic_links | A Flutter plugin to use the Google Dynamic Links for Firebase API. | 点击前往 |
FRefresh | 刷新控件(在过去一段时间中,我们已经先后向社区开放了 5 实用精美的 Widget ( FSuper 、 FButton 、 FSwitch 、 FRadio 、 FFloat ),帮助开发者们更易构建出赏心悦目的应用。) | 点击前往 |
flutter_custom_calendar | Flutter的一个日历控件 | 点击前往 |
<div align=center>------------------面试总结------------------</div>
面试题总结 | 时间 | 地址 | |
---|---|---|---|
老许,你要转Flutter不要?只要你开金口,面试题现在就给你送来 | 2020.01.01 | 点击前往 | |
Flutter 面试知识点集锦 | 2019.05.14 | 点击前往 | |
Flutter 一些面试可能会问基础知识 | 点击前往 | ||
Flutter 金九银十招聘季,这些面试题祝你一臂之力 | 2019.10.14 | 点击前往 | |
可以算是Flutter面试凉凉经吧 | 2019.02.16 | 点击前往 | 面试题 |
Android-Flutter面经 | 2020.04.24 | 点击前往 | 面试题 |