Flutter Package 开发和发布

Package 的意义,可以支持开发者向 Flutter 和 Dart 生态贡献能力。

Packages
Dart package 最低要求是包含一个 pubspec.yaml 文件。此外,一个 package 可以包含依赖关系 (在 pubspec.yaml 文件里声明)、 Dart 库、应用、资源、测试、图片和例子等。 pub.dev 上列出了很多 package,由 Google 工程师和 Flutter 和 Dart 社区的开发者开发和发布,你可以用在自己的应用里。

Plugins
插件 (plugin package) 是一种特别的 package,特别指那些帮助你获得原生平台特性的 package。插件可以为 Android (使用 Kotlin 或 Java 语言)、 iOS (使用 Swift 或 Objective-C 语言)、Web、macOS、Windows、Linux 平台,或其任意组合的平台编写。比如:某个插件可以为 Flutter 应用提供使用原生平台的摄像头的功能

Read more   2021/7/1 posted in  Flutter

Flutter 状态管理

2021/6/2 posted in  Flutter

Dart Sound null safety


使用可选值类型,提示需要升级 Dart 版本..

Read more   2021/6/2 posted in  Flutter

Flutter 研习系列四

自定义组件

实现自定义组件的方式有三种:

  1. 组合其他组件
  2. 自绘
  3. 实现 RenderObject
Read more   2021/5/6 posted in  Flutter

Flutter 自定义组件

实现自定义组件的方式有三种:

  1. 组合其他组件
  2. 自绘
  3. 实现 RenderObject
Read more   2021/5/6 posted in  Flutter

Flutter 研习系列三

理论

布局类型 布局 Widget 备注
线性布局 Row, Column
弹性布局 Flex, Expanded
流式布局 Wrap, Flow
层叠布局 Stack, Positioned
Read more   2021/4/18 posted in  Flutter

理解 Flutter 的布局

布局开发中的规则

  1. 上层 widget 向下层 widget 传递约束条件
  2. 下层 widget 向上层 widget 传递大小信息
  3. 上层 widget 决定下层 widget 的位置
Read more   2021/4/18 posted in  Flutter

Flutter 容器类组件

先说一个意外发现的小技巧,在写flutter布局的时候使用 const 可以避免一些不必要的频繁刷新。

  1. 当我们调用 setState() 后,Flutter 会调用 build 方法,并且 rebuild 其中的每一个组件,避免全部重新构建的方法就是用 const。
  2. 如果一个组件更新频繁(比如动画),用 const 后可以减少垃圾回收。
Read more   2021/4/18 posted in  Flutter

Flutter 布局(流式,层叠)

首先什么是流式布局,我们把超出屏幕显示范围会自动折行的布局称为流式布局。在 Flutter 中有 Widget WrapFlow

Read more   2021/4/18 posted in  Flutter

Flutter 布局(线性,弹性)

布局相关的内容需要好好练习才能慢慢掌握,其实也是踩踩坑,锻炼锻炼手指的肌肉记忆。对于一位纯 iOS 的工程师来说,前端中各种布局都是先进的理论。iOSer掌握的都是:原始的Frame布局(为了性能或者动画应该还有不少公司在用),“先进的” 约束布局 AutoLayout,可能还有一个稍微旧一点的 AutoResizing 这些都是好多年前出来的方案了。也是因为客户端需要兼容老系统的原因,老的布局方式总是不能够立马替换掉,没有像前端一样快速的技术演进之后就可以投入使用。

Read more   2021/4/18 posted in  Flutter

Flutter 研习系列二

完成一个大于(hello world)的项目
flutter包管理
路由管理
调试技巧
资源管理
异常捕获

创建项目的话首先分析 flutter 创建的默认 Demo 中的结构,一遍理解下来有两个点的理解需要记录下:

Read more   2021/4/11 posted in  Flutter

Flutter State 生命周期

生命周期真的是开发过程中极其需要了解的基本知识,掌握了一个框架的生命周期后才能更加顺利地写出理想的逻辑。

Read more   2021/4/11 posted in  Flutter

Flutter Widget

Widget类继承自DiagnosticableTreeDiagnosticableTree 即“诊断树”,主要作用是提供调试信息。

Widget 的 canUpdate(...) 是一个静态方法,它主要用于在Widget树重新build时复用旧的widget,其实具体来说,应该是:是否用新的Widget对象去更新旧UI树上所对应的Element对象的配置;通过其源码我们可以看到,只要newWidget与oldWidget的runtimeTypekey 同时相等时就会用newWidget去更新Element对象的配置,否则就会创建新的Element。

Read more   2021/4/11 posted in  Flutter

Flutter 资源管理

Flutter 包管理

Flutter项目默认的配置文件是pubspec.yaml

Read more   2021/4/11 posted in  Flutter

Flutter 路由

简单路由定义:

class NewRoute extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text("New route"),
      ),
      body: Center(
        child: Text("This is new route"),
      ),
    );
  }
}
Read more   2021/4/5 posted in  Flutter

Dart 异步函数

Future

Future与JavaScript中的Promise非常相似,表示一个异步操作的最终完成(或失败)及其结果值的表示。简单来说,它就是用于处理异步操作的,异步处理成功了就执行成功的操作,异步处理失败了就捕获错误或者停止后续操作。一个Future只会对应一个结果,要么成功,要么失败。

Read more   2021/4/5 posted in  Flutter

Flutter 开发环境搭建遇到的问题

主要遇到的问题其实是安卓开发环境的搭建,因为原先不熟悉安卓开发环境,配置的时候出现了一下问题这里记录下。

Read more   2021/4/5 posted in  Flutter

快速了解 Dart

Dart Playground
Dart 语法精讲

对于已经熟知了某一门编程语言的开发人员来说,快速了解一门语言的方式就是通过类比的形式学习一门新语言的不同点从而掌握这门新的语言。

Dart 的语言结合了 Java 和 JavaScript 的语法特点,这两者都是非常流行常见的语言,所以 Dart 的语言会看起来比较得亲切。

而我作为一位 iOS 临时工,这次了解 Dart 就从 Objective-C 和部分 Swift 的角度进行类比学习吧。

Read more   2021/3/30 posted in  Flutter

Flutter 学习资源

Flutter 官方文档: flutter.dev/docs

DartPad实验室

知乎专栏

Flutter 掘金标签: juejin.im/tag/Flutter

Flutter github 地址: github.com/flutter/flu…

Flutter 中文网: flutterchina.club

Flutter入门实战-老孟-电子书

Flutter实战-电子书

开发规范

学习Flutter,你需要了解的Dart 编码规范
https://juejin.cn/post/6844903904719667213

Flutter Go 代码开发规范 0.1.0 版
https://github.com/alibaba/flutter-go/blob/master/Flutter_Go%20%E4%BB%A3%E7%A0%81%E5%BC%80%E5%8F%91%E8%A7%84%E8%8C%83.md

优秀Demo

https://github.com/o1298098/Flutter-Movie

https://github.com/iampawan/FlutterStackOverflowApp

https://github.com/kalismeras61/foodapp

https://github.com/Mayandev/morec

https://github.com/JideGuru/FlutterTravel

https://github.com/TheAlphamerc/flutter_ecommerce_app

例子App集合

https://github.com/nisrulz/flutter-examples

https://github.com/iampawan/FlutterExampleApps

https://github.com/tortuvshin/open-source-flutter-apps

https://github.com/brianegan/flutter_architecture_samples

https://github.com/OpenFlutter/Flutter-Notebook

高仿app

知乎- Flutter 高仿版 UI

https://github.com/xujiyou/zhihu-flutter

高仿书旗小说 Flutter 版

https://github.com/huanxsd/flutter_shuqi

Flutter开发一个豆瓣App

https://github.com/kaina404/FlutterDouBan

flutter的仿微博客户端

https://github.com/huangruiLearn/flutter_hrlweibo

基于Google Flutter的开源中国客户端

https://github.com/yubo725/flutter-osc

Flutter淘宝App

https://github.com/GanZhiXiong/GZXTaoBaoAppFlutter

开源Github客户端App

https://github.com/CarGuo/gsy_github_app_flutter

Flutter版 WanAndroid App

https://github.com/Sky24n/flutter_wanandroid

简单 Flutter 独立学习项目

https://github.com/CarGuo/gsy_flutter_demo

https://github.com/phoenixsky/fun_android_flutter

目前各种主流状态管理演示Demo

300+组件收录 Flutter之旅(https://github.com/toly1994328/FlutterUnit)

淘宝FlutterGo

博客文章专栏

Flutter 完整实战实战系列文章专栏

Flutter 番外的世界系列文章专栏

Flutter 完整开发实战详解 Gitbook 预览下载

控件篇:

推荐一篇让人相见恨晚的flutter布局规则

2021/2/22 posted in  Flutter

Flutter Plugin 开发

创建

创建一个名为 tuya_camera 的plugin

flutter create --org com.tuya --template=plugin tuya_camera
Read more   2020/12/29 posted in  Flutter