Archive

2024

Swift Macro 实践,封装 OSLog

Xcode15后,debug控制台提供了非常有用的日志输入,其中包括了可直接定位到代码行的功能。本文的实践让我们自己的日志库可以实现类似的功能。


优化app启动

从启动框架到启动时长的优化治理的一些经验思考。


WebView 调试

页面重载机制


2023

卡顿、内存、wakeup监控 - 3

app异常退出,wakeup监控


卡顿、内存、wakeup监控 - 2

小全的内存监控


卡顿、内存、wakeup监控 - 1

拿来主义的卡顿监控


iOS全栈页面,无侵入页面开屏监控


优化build时长

优化过程中碰到的二进制问题,swift framework问题如何解决;一些最佳实践


iOS黑(灰)白化实现方案

一个简单的首页黑屏技术方案的研究


2022

iOS 应用的证书是怎么校验的

从重签名的改造中学到更多一点


iOS 应用内存调试与优化

内存增长类型,大对象,泄露,oom如何监控治理


Module的发展历史

代码构件引入的方式变迁,工程使用方式变化,针对swift混编的module处理。


Gitlab 一行配置

通过一行简单的配置即可接入CI


2021

从代码管理的角度看看Jira工具

咱们就是说,jira有啥好用的


Swift 的 Array 和 Dictionary 源码欣赏,和创建一个线程安全的 Array 和 Dictionary

Array 源码, 线程安全, Collection, ExpressibleByDictionaryLiteral, RangeReplaceableCollection 等协议


使用Swift编写脚本

oss 项目借鉴, 脚本生成代码, 脚本下载依赖, 脚本放到 /usr/bin..


归纳总结一下最近常用的命令行

Jekyll, Git, Convert mov to mp4, imagemagick, compression, HostName


在 M1 电脑上运行,调试项目和打包ipa

项目运行, xcframework, PackageApplication, 打包 ipa 给 M1


2020

在 M1 电脑上安装命令行

brew, Cocoapods...


Stroyboard Tips

约束优先级(键盘处理), Content 适应, StackView, ScrollView, Table-Cell, Segue, Container View


记录一次 WebView 迁移的过程

协议制定, Storybaord 修改, 类修改


Xcode update

UIButton, XCFramework


Apple App Site Association

博客发布模拟, 多应用共用


Terminal

FileMode, Mov->Mp4, Image compression and convert...


Swift 中的锁和线程安全

再次认识一下各种锁, 线程理解, 场景解析


那些年写过的 Demo +~

内存测试, DispatchSemaphore, Enum, String


那些年写过的 Demo~

Animaiton, Storyboard, Framework, Quene, Leak...


BaseUI

关于 Theme 动态切换的一些研究


2019

AutoFill

Password, Name, Phone, Address, Email, 2FACode ...


iWatch

介绍, 界面, Icon, 独立App


FeatureControl

权限管理


UI automated testing.

Frame, UIViewAutoresizing, NSLayoutAnchor, Flexbox, SwiftUI, FlutterUI, VFL


Router

方案比较, 新项目, 想法


多 Target 工程

配置, 资源 (图片, 字符串), Code, Build


Textview 相关

加载 html, 事件响应


重回 Layout

Frame, UIViewAutoresizing, NSLayoutAnchor, Flexbox, SwiftUI, FlutterUI, VFL


Textfield +

错误UI, 可输入字符, 最大字符, 正则匹配等


深度使用 HTML

图片缓存, 数据传输, UI适配等~


Swift 中 高级枚举使用,模式匹配

Swift GG 关于模式匹配的资料, 实践枚举和模式匹配的开发


Flutter 嵌入原生的一些坑

运行错误或者白屏


Swift 开发必备 tips 阅读笔记 三 最后一篇

Swift与开发环境及一些实践


Swift 开发必备 tips 阅读笔记 第二篇

从Objective-C/C到Swift


Flutter 技术分享 - 深入

State Manage 五大方案, 打包和自动化, 与原生项目互嵌


Flutter 技术分享 - 了解

跨平台开发方案介绍, Flutter, Dart, Widget, Stream


Flutter 《四》 项目

一个 flutter 项目的文件框架, 基于 bloc 页面设计, 模型代码


Flutter 《三》常用组件 & Week Video

官方 Widget 介绍, Week Video 特殊用途的 Widget


Flutter 《二》项目 Demo 运行,Dart 语言简单学习

列表, 页面跳转, 请求数据 Demo, Dart 语法


Flutter 《一》 安装和配置,QA

macOS 配置 Flutter 环境, 一些值得注意的 QA


Swift 开发必备 tips 阅读笔记 第一篇

Swift新元素


app 公共弹窗的控制

HUD, Alert, Sheet, 权限申请弹窗, 消息页面跳转等


华容道搜索算法实现

通用协议, 路径查询, 多叉树节点, 比特位的使用, 优化


2018

18系列-年度总结


18系列-博客总结

各种架构, 设计, 优化, 响应编程, 函数式, Codable, Reacnative, 编译速度, SSH, sh 命令, swiftlint, TestFlight


18系列-三方库,学习项目,开发工具

Rx, Texture等三方, 项目基础扩展必备, 一些好的项目总结, 开发工具总结


使用 Sourcery 进行模板编程(meta编程)

ObjectMapper 自动生成 model 解析代码, 为一些类生成相同的代码, 继续填坑


客户端的 动态界面 如何实现

动态组件化方案, Tangram, JASONETTE ?


项目中 Hybrid 部分的设计

交互方式选择, 通用 API, 基础&全面 API, cookie, scheme, itunes 白名单


LeetCode 上的算法题 (两数之和,链表数字相加,最长不重复子字符串,两个数组的中位数,最长回文字符串)

时间/空间 复杂度, 链表, 后缀二叉树, 中位数算法, 回文算法


RxSwift 的 MVVM 框架理解使用

适用于 RxSwift 的 各个框架, 常用框架的分析, “架构什么的都是浮云”


TableView 的终极优化:滑动,布局,事件,更新

图片和视图优化, 数据处理优化, 自动布局和异步加载 Texture (ASDK), 复杂 table 和人性化 UI, cell 事件哪里响应, 数据如何保证同步更新


客户端的外部调试:JS 调试,应用互调调试,抓包和代理调试

App web 调试, Other web 调试, Universal Links 和 App scheme 配置和测试, Charles https 抓包 和 代码中设置 https Proxy


Swift 函数式编程(2)

Swift 中的高阶函数探究和使用


Swift 函数式编程(1)

《函数式 Swift》书籍学习, 函数式编程介绍, 实现, 应用, NSMutableAttributeString 封装函数式


局域网/公网 发布ipa (类似蒲公英,fir 等)

借用 github存储 manifest.plist; Build/xx.app 脚本导出 ipa; 借用博客在局域网发布...


Swift组件化方案探究和实践(二)项目框架设计与标准制定

项目架构设计和组件化准备


Swift组件化方案探究和实践

介绍几大组件化方案, 使用 Target-Action 设计的的 CTMdeiator 拆分工程


RxSwift(响应式编程) 使用和项目优化

使用, 框架 (MVVM, Reactor), 生态, 内存泄露检查等


Swift基础中需要注意的点

列举了基础点, 重点介绍注意点


Swift中的 let,var,optional(可选值的)性能比较

测试性能


Texture(ASDK)自定义 Node 和 优化 Tab 框架

自定义 ASDisplayNode, 拆分复杂的 Node 为简单的 Node 组件等


Texture(ASDK)的理解和使用

主要是使用方面:包含详细的使用方法, UI 类 (ASTableCellNode, ASScollNode), 布局 (FlexBox布局), 优化 (ASImageNode, 对接本地 Kingfisher 图片下载) 等


Fastlane,App配置和部署的利器

fastlane是为iOS和Android应用程序自动执行beta部署和发布的最简单方法. 🚀它处理所有繁琐的任务, 例如生成屏幕截图, 处理代码签名和发布应用程序.


Swift项目多处调用分享的设计方案

使用协议清晰明了的设计分享


Swift项目中合适的打点方案

动态hook打点?重写控件?手动打点?


使用WebDriverAgent学习其他app布局,自动化测试

通过脚本化启动 WebDriverAgent, 使用ATX自动化测试, 自动微信跳一跳等


swift下封装转场动画,三方库解决方案

TabBar, 异形 NavigationBar, 特殊界面的跳转方案


通过swizzleMethod无痕处理NavItem的点击范围

方便的扩大按钮的点击范围, 将文件放入工程即可


iOS 的 Bug 分析和解决

IDE 调试, 测试设备崩溃日志, dsym 分析, apple crash report, 代码获取 crash 日志上传


项目优化-瘦身

图片, 库, 代码, 项目设置, 多方面优化项目


2017总结-iOS OC - 编码规范

2017系列


胡​适​1​9​3​2​年​演​讲​-大学毕业后的几条路

2016系列


新的征程

吐故纳新, 继往开来