主页

  • RunLoop - 同是天涯打工人

    前言 没有困难的工作,只有勇敢的打工人。 概念 如果你经历过这么一种上班状态,有需求需要开发的时候,开发需求,没有需求开发(小概率事件),下班也没有真正意义上的下班,因为群里随时有线上问题需要响应,所以得24小时待命,那当你知道 RunLoop 的机制之后,你可能会觉得很亲切。 RunLoop 是...

  • Flutter - 封装广告页的倒计时圆圈控件

    前言 很多 App 的广告页都会有一个倒计时控件,倒计时结束或者用户点击之后就会进入到 App 的主页。最近在搞一个新的 App,正好需要用到,就顺便封装一个,用的是 Flutter 提供的组件 CircularProgressIndicator,比较简单,需要的同学可以直接拿去用。 使用...

  • SwiftUI 和 UIKit 的相互引用

    前言 一般老项目都是基于 UIKit 的,随着 SwiftUI 越来越成熟,未来的趋势会趋向于使用 SwiftUI 来进行开,所以,项目的逐步迁移至 SwiftUI 也变得有必要起来。这篇文章会展示如何在 UIKit 项目中,接入 SwiftUI。而 SwiftUI...

  • 浅谈KVO

    简介 KVO,Key-Value Observing,键值观察,是一种机制,允许成为其他对象的观察者,当被观察对象的某个被观察的属性发生改变时,注册的观察者便能得到通知。 机制很简单,就比如在某宝买东西,添加了这个东西的价格变化的通知,每次价格发生变化,某宝就会发个通知告诉我,这个机制就类似...

  • Codable保姆级攻略

    前言 Codable 是随 Swift 4.0 推出的,旨在取代现有的 NSCoding 协议,支持结构体、枚举和类,能够将 JSON 这种弱数据类型转换成代码中使用的强数据类型。 Codable 是一个协议,同时兼顾了 Decodable 和 Encodable...

  • Flutte 指北 -> Isolate

    写在黎明破晓前 对于单线程的程序,同一个时间内只会有一段代码在执行,对内存中状态的访问和改变都是独占发生的。 but... 现代的设备基本都是多核的 CPU,为了提高效率,一般都会使用共享内容的线程来并发运行代码。 of course... 内容的共享可能会产生...

  • 解决 CoreText note - Client requested name ".SFUI-Regular" warning

    前言 我们项目中集成了 unity,unity 版本是 2019.4.16,升级了 iOS 15 后,在真机运行的时候,发现了很多 Waring: 有时候在不同系统上面显示的字体不一样,系统的 SFUI 字体会被改成 TimeNewRomanPSMT,也就是非衬线字体改成了衬线字体。...

  • 筛选Swift项目中未使用的类

    前言 这是做项目瘦身的时候翻到的一个好用的工具:perihery。支持 OC,不仅能筛选出未使用的类,而且 struct、protocol、function、property、enum、typealias、associatedType 这些场景中,你没有使用的方法,没有使用的参数都能给你筛选出来。...

  • iOS 11 之后的 Collection View

    前言 本文会介绍 UICollectionView 的一些比较新的特性,包括: - iOS 11 推出的拖拽 drag & drop - iOS 13 推出的组合布局 CompositionalLayout - iOS 13 推出的 DiffableDataSource 主要参考的是 WWDC...

  • firda-ios微信砸壳

    前言 iOS 的砸壳一般三种: - Clutch - dumpedcrypted - frida-ios-dump dumpedcrypted 现在用不了了,Clutch 我没试,就说一下 frida-ios-dump 的砸壳使用吧。 frida-ios-dump 它需要在 Mac...