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

MacOS MenuBar App 开发

2021/6/17 posted in  MacOS

数字媒体压缩

我们日常所使用的媒体文件都经过一定程度的压缩。我们其实都是和这些内容的原始文件的压缩格式在打交道。

Why?

Read more   2021/6/16 posted in  音视频

NAS 个人图书馆

话不多说,直接上料,吃干货。

图书系统: Calibre

NAS + Docker + Calibre Web 镜像 + 个人藏书

思路就是这样:
在 NAS 的 Docker 上跑一个 Calibre Web 项目,这个项目也不需要自己再配置环境安装,有尽心尽力的有心人已经制作了镜像,我们只需要下载镜像跑一个容易就可以了。

然后配置下目录映射,把我的珍藏的图书传输进去,如此大功告成了。

Read more   2021/6/14 posted in  硬件折腾

写作技巧记录

2021/6/4 posted in  技术杂谈

Flutter 状态管理

2021/6/2 posted in  Flutter

Dart Sound null safety


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

Read more   2021/6/2 posted in  Flutter

iOS Crash 百科不全书

2021/5/13 posted in  iOS

iOS 五金店--锁

2021/5/13 posted in  iOS

网络图片框架研究系列--线程安全

2021/5/13 posted in  iOS

网络图片框架研究系列--网络内核

从其框架网络层的结构入手, YYWebImage 获取网络资源使用了一个自定义的 Operation -- YYWebImageOperation

自定义 Operation 可以实现什么样的能力?

YYWebImageOperation 内部实现

内部维护了一个全局网络图片专用线程,每个 Operation 中所有网络相关操作都将在该线程中执行。

Reference

2021/5/13 posted in  iOS

网络图片框架研究系列--缓存策略

2021/5/13 posted in  iOS

网络图片框架研究系列--图片编解码

关于一个网络图片框架支持多少种类型的图片格式比较合适,答案是:任意种。
其实也就是可拓展,需要用到哪种格式的图片编解码就增加一个该格式图片的编解码器组装到框架中使用。

Read more   2021/5/13 posted in  iOS

Apple 开发者实用文档

2021/5/13 posted in  技术网站

基于 YYWebImage 的网络图片加载框架研究

标题为什么说是基于 YYWebImage 的网络图片加载研究,是因为在研究过程中不仅只是分析 YYWebImage 的源码,也会对同类型的库进行横向对比。其中会涉及到 AFNetworking, SDWebImage, FastImageCache 中的一些逻辑。

研究的内容包括:

  1. 图片编解码
  2. 缓存策略
  3. 网络内核
  4. 线程安全
Read more   2021/5/11 posted in  iOS

Python 脚本执行 Git 操作

2021/5/8 posted in  Python

iOS 启动耗时优化

2021/5/8 posted in  iOS

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

iOS 图片加载速率优化

iOS 从磁盘加载一张图片,使用 UIImageVIew 显示在屏幕上,需要经过以下步骤:

  1. 从磁盘拷贝数据到内核缓冲区
  2. 从内核缓冲区复制数据到用户空间
  3. 生成 UIImageView,把图像数据赋值给 UIImageView
  4. 如果图像数据为未解码的 PNG/JPG,解码为位图数据
  5. CATransaction 捕获到 UIImageView layer 树的变化
  6. 主线程 Runloop 提交 CATransaction,开始进行图像渲染
    1. 如果数据没有字节对齐,Core Animation 会再拷贝一份数据,进行字节对齐。
    2. GPU 处理位图数据,进行渲染。
Read more   2021/4/29 posted in  图形图像