dart
文章平均质量分 78
二蛋和他的大花
喜欢电脑,喜欢创新。
展开
-
跟我学企业级flutter项目:简化框架demo参考
最近很多人在问我,没有一个不错的demo,不会如何做单工程模式,如何封装网络请求,如何去做网络持久化。那么今天我将demo分享出来。现阶段还无法把我构建的flutter快速开发框架开源出来。暂时用简化demo来展示。...原创 2022-07-01 11:07:40 · 551 阅读 · 1 评论 -
跟我学企业级flutter项目:如何重新定制cached_network_image的缓存管理与Dio网络请求
flutter中需要展示网络图片时候,不建议使用flutter原本Image.network(),建议最好还是采用cached_network_image这个三方库。那么我今天就按照它来展开说明,我再做企业级项目时如何重新定制cached_network_image。由于我的项目网络请求采用Dio库,所以我希望我的图片库也采用Dio来网络请求,也是为了方便请求日志打印(在做APM监控时候可以看到网络请求状态,方便定位问题)。准备好mime_converter类,由于cached_network_image中原创 2022-06-01 11:09:45 · 1028 阅读 · 0 评论 -
跟我学企业级flutter项目:如何将你的项目简单并且快速屏幕自适应
你的flutter在小屏幕手机上出现文字丢失了么?你的flutter应用在小屏幕手机上排版出错了么?你的flutter应用在大屏幕手机上布局错乱了么?你在用flutter_screenutil做屏幕自适应么?今天我来给大家介绍一款简单不侵入代码的自适应。如果你有如下需求:1. 旧的flutter想快速屏幕适应各种手机2. 页面代码中不想增加关于适配屏幕的代码原创 2022-05-16 16:20:52 · 447 阅读 · 2 评论 -
深入浅出 Flutter Framework 之 BuildOwner
OverviewBuildOwner在 Element 状态管理上起到重要作用:在 UI 更新过程中跟踪、管理需要 rebuild 的 Element (「dirty elements」); 在有「dirty elements」时,及时通知引擎,以便在下一帧安排上对「dirty elements」的 rebuild,从而去刷新 UI; 管理处于 "inactive" 状态的 Element。这是我们遇到的第一个 Owner,后面还有PipeOwner。整棵「Element Tree」共转载 2022-05-10 14:23:49 · 248 阅读 · 0 评论 -
跟我学flutter:细细品Widget(五)Element
Widget是描述一个UI元素的配置数据,Element才真正代表屏幕显示元素原创 2022-05-09 16:35:43 · 298 阅读 · 0 评论 -
跟我学flutter:细细品Widget(四)Widget 渲染过程 与 RenderObjectWidget
前言StatelessWidget 和 StatefulWidget 只是用来组装控件的容器,并不负责组件最后的布局和绘制。在 Flutter 中,布局和绘制工作实际上是在 Widget 的另一个子类 RenderObjectWidget 内完成的。RenderObjectWidget为RenderObjectElement提供配置信息。RenderObjectElement包装了RenderObject,RenderObject为应用程序提供真正的渲染。源码abstract class Rend原创 2022-05-05 15:48:29 · 1255 阅读 · 0 评论 -
跟我学企业级flutter项目:flutter模块化,单工程架构模式构思与实践
在原生Android开发的时候,我们经常会用到ARouter,来设计我们项目的整体架构。因为ARouter会帮助我们实现模块化的思想,那么在Flutter中如何去构建模块化的架构呢?再深入一点,如何去运行一个单一模块,不去跑整体项目呢?本篇文章将会带你学习Flutter版本下的单工程架构模式。原创 2022-04-26 17:06:10 · 2818 阅读 · 7 评论 -
跟我学flutter:细细品Widget(一)Widget&Element初识
前言Everything’s a widget!WidgetFlutter 中 Widget是一个“描述一个UI元素的配置信息”,Widget就是接受元素,而不是真是绘制的显示元素。类比原生的Android开发,Widget更像是负责UI配置的xml文件,而非负责绘制组件的View。 当一个Widget状态发生变化时,Widget就会重新调用build()函数来返回控件的描述,过程中Flutter框架会与之前的Widget进行比较,确保实现渲染树中最小的变动来保证性能和稳定性。换句话说,当Widge原创 2022-04-22 16:49:01 · 1564 阅读 · 0 评论 -
跟我学flutter:Flutter雷达图表(一)如何使用kg_charts
本节主要讲如何使用kg_charts中的雷达图表,来绘制一个雷达图,下一章节则会对如何绘制一个可点击雷达图表进行详细说明。最近我在开发有关雷达图表的的业务,但的确在线上找不到可以快速集成的雷达图表,找到一篇文章(Flutter雷达图package)但不是很好定制化我们的业务,但其中的代码有比较好的借鉴。然后我借鉴了部分代码,进行了kg_charts的开发。原创 2022-04-21 11:03:50 · 1571 阅读 · 0 评论 -
跟我学flutter:在国内如何发布自己的Plugin 或者 Package
前言平时在做flutter Plugin或者 Package的时候,如果觉得自己做的还不错,想要分享到PUB库上如何操作?虽然官方已经告诉我们如何操作,但是呢由于一些特殊的原因,采用官方的方式并不能上传到PUB库上,今天就跟着我学习一下如何上传pub库吧。准备开始开始前需要你已经有一个已经开发好的库来进行提交了。比如我的这个如图红色箭头表示的是必须要存在的两个文件,如果没有的话,需要添加你的开源协议。编写你的README文档。开源协议和README我就不做介绍了,咱们来看看yaml文件需要什么原创 2022-04-20 15:44:25 · 2190 阅读 · 0 评论 -
跟我学flutter:我们来举个例子通俗易懂讲解异步(一)ioslate
前言Dart是单线程的,Dart提供了Isolate,isolate提供了多线程的能力。但作为多线程能力的,却内存不能共享。但同样的内存不能共享,那么就不存在锁竞争问题。举个例子来展示作用如果一段代码执行事件很长,flutter如何开发。基本页面代码(一段代码)ElevatedButton( child: Text("登录"), onPressed: () { 执行运行代码(); }原创 2022-03-29 21:28:50 · 2114 阅读 · 0 评论 -
跟我学flutter:我们来举个例子通俗易懂讲解dart 中的 mixin
与java&kotlin不同的是,dart中有一个特殊的关键字mixin(mix-in),用这个关键字的类被其他类(包含)的时候,其他类就拥有了该类的方法。这样代码不通过继承(extend)就可以重用。原创 2022-03-24 16:20:24 · 2586 阅读 · 0 评论