Flutter 中的状态管理

状态管理是 Flutter 中一个非常火热的话题。随着应用程序规模的逐渐扩大,业务逻辑也随之变得复杂,比如在用户登陆后,应用各个页面的状态都需要得到及时的更新。传统的 UI 和业务逻辑纠缠在一起的做法,使得代码变得复杂冗余,也为各种潜在 bug 埋下了伏笔。因此将状态和业务逻辑分离,统一地对状态进行管理,使得编程实现和应用结构都更加清晰简明。在 Flutter 的官方文档中也对状态管理进行了讨论,列举了 Flutter 中几种常见的状态管理的框架。 继续阅读“Flutter 中的状态管理”

Flutter 开发初探

Flutter 开发初探

Flutter 是谷歌推出的新一代跨平台开发框架,一经推出就凭借媲美原生的性能、广泛的第三方库的支持、良好的跨平台能力等特性,受到了众多开发者的关注,其火热程度甚至超过了之前由 Facebook 推出的 React Native。在过去的两周内,我对 Flutter 进行了学习,了解了一些基础知识,并将我之前做的一个简单的 App 用 Flutter 进行了重写。下面就谈谈我在重写这个简单 App 时的过程及感受。 继续阅读“Flutter 开发初探”

一张图搞定 HTTP2

在看完了《HTTP2基础教程》后,一直想写篇文章来总结下 HTTP2的特性和用法,但是我又不想把书上的内容往博客上照搬一遍,因此迟迟没有动笔。正好看到这么一个 PPT,是谷歌的一位 Web性能优化专家Ilya Grigorik 所做的分享,该 PPT 把 HTTP2的性能、特点等都介绍了一下,内容非常详实具体。我把这个 PPT 做成了一个拼图,贴在了这里(右键图片在新标签页中打开,可以看到更加清晰的大图哦):

SDWebImage 源代码剖析-网络部分

前面两篇博文中,简要对SDWebImage的缓存部分多线程部分进行了分析。建议在阅读本篇内容前先看下缓存策略那篇,以对SDWebImage的基本内容有所了解。在本篇中,我们将对它的网络策略进行分析。我们知道SDWebImage的主要功能就是从远程主机上下载图片,所以前面的几个策略都是为这一目的提供支持的,而网络策略的好坏将直接决定库的性能。不过SDWebImage以GitHub上接近20000的star数向我们证明了它不俗的实力,下面就让我们一起看看吧。 继续阅读“SDWebImage 源代码剖析-网络部分”

SDWebImage 源代码剖析-简介及缓存策略

在上一篇文章中,我们对Masonry 的源代码进行了分析。今天我们将对另外一个在iOS 开发中广泛使用的库的源代码进行分析,这个库就是鼎鼎大名的SDWebImage。下面是我个人对这个库的主要部分和缓存策略部分的代码分析和理解。由于本人才疏学浅,若有错误,请大家及时指出,不吝赐教。(注:由于写这篇博客的时间是17年3月,从那之后SDWebImage又历经了几个新的版本,因此现在的代码与这篇博客中会有所不同。) 继续阅读“SDWebImage 源代码剖析-简介及缓存策略”