<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Aha Edmond</title>
    <link>https://looseyi.github.io/</link>
    <description>Recent content on Aha Edmond</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en</language>
    <lastBuildDate>Sat, 13 Nov 2021 00:00:00 +0000</lastBuildDate><atom:link href="https://looseyi.github.io/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Move Objective-C frameworks for Swift</title>
      <link>https://looseyi.github.io/post/tool/objective-c-framework-for-swift/</link>
      <pubDate>Sat, 13 Nov 2021 00:00:00 +0000</pubDate>
      
      <guid>https://looseyi.github.io/post/tool/objective-c-framework-for-swift/</guid>
      <description>引言 Swift 作为 Objective-C 的替代者，苹果每年都为其投入了大量的资源。随着 Swift ABI 稳定，国内大厂也开始投入人力推广 Swift。诚如苹果所言，他们应该是拥有 Objective-C framework 数</description>
    </item>
    
    <item>
      <title>浅析 cocoapods-binary</title>
      <link>https://looseyi.github.io/post/sourcecode-ios/cocoapods-binary-1/</link>
      <pubDate>Sat, 02 Oct 2021 00:00:00 +0000</pubDate>
      
      <guid>https://looseyi.github.io/post/sourcecode-ios/cocoapods-binary-1/</guid>
      <description>介绍 cocoapods-binary 最早是在 CocoaPods 的 Blog 中发现的：pre-compiling dependencies。虽非官方出品，但却是国内程序员的力作，medium 原版介绍</description>
    </item>
    
    <item>
      <title>9. Xcode 工程文件编辑</title>
      <link>https://looseyi.github.io/post/sourcecode-cocoapods/09-cocoapods-xcodeproj-edit/</link>
      <pubDate>Sun, 08 Aug 2021 00:00:00 +0000</pubDate>
      
      <guid>https://looseyi.github.io/post/sourcecode-cocoapods/09-cocoapods-xcodeproj-edit/</guid>
      <description>本文目录 引子 通过「Xcode 工程文件解析」一文，我们了解到 project.pbxproj 文件的重要性，Xcode 正是通过它来管理项目中的各种源代码、脚本文件、资源文件、</description>
    </item>
    
    <item>
      <title>WWDC21 - 探索 Xcode 项目中构建配置的高级技巧</title>
      <link>https://looseyi.github.io/post/wwdc/wwdc21/wwdc21-session-10210/</link>
      <pubDate>Sun, 20 Jun 2021 00:00:00 +0000</pubDate>
      
      <guid>https://looseyi.github.io/post/wwdc/wwdc21/wwdc21-session-10210/</guid>
      <description>WWDC21 Session 10210 - Explore advanced project configuration in Xcode。由于官方视频资源有问题，可访问 Youtube 链接。 本文知识目录 引言 大多时候我们都关注如何进行高效、高质量的完成任务或技术需</description>
    </item>
    
    <item>
      <title>WWDC21 - 让您的 iPad 与 iPhon 应用程序在 M1 的 Mac 上大放异彩</title>
      <link>https://looseyi.github.io/post/wwdc/wwdc21/wwdc21-session-10056/</link>
      <pubDate>Sun, 20 Jun 2021 00:00:00 +0000</pubDate>
      
      <guid>https://looseyi.github.io/post/wwdc/wwdc21/wwdc21-session-10056/</guid>
      <description>让您的 iPad 与 iPhon 应用程序在 M1 的 Mac 上大放异彩 WWDC21 Session 10056 - Qualities of great iPad and iPhone apps on Macs with M1 主讲人：Nils Beck 本文知识目录 引言 在 2020 年 11 月的发布会上，苹果正式发布了搭</description>
    </item>
    
    <item>
      <title>WWDC21 - Discover concurrency in SwiftUI</title>
      <link>https://looseyi.github.io/post/wwdc/wwdc21/wwdc21-session-10019/</link>
      <pubDate>Fri, 11 Jun 2021 00:00:00 +0000</pubDate>
      
      <guid>https://looseyi.github.io/post/wwdc/wwdc21/wwdc21-session-10019/</guid>
      <description>WWDC21 Session 10019 - Discover concurrency in SwiftUI 本文知识目录 本文属于 WWDC21 中 SwiftUI 与 Concurrency 结合应用的文章。 关于 SwiftUI 可以查看这篇介绍：Introduction to SwiftUI，而 Swift Concurrency 算是今</description>
    </item>
    
    <item>
      <title>8. Xcode 工程文件解析</title>
      <link>https://looseyi.github.io/post/sourcecode-cocoapods/08-cocoapods-xcodeproj/</link>
      <pubDate>Sun, 16 May 2021 00:00:00 +0000</pubDate>
      
      <guid>https://looseyi.github.io/post/sourcecode-cocoapods/08-cocoapods-xcodeproj/</guid>
      <description>引子 在「Molinillo 依赖校验」通过后，CocoaPods 会根据确定的 PodSpec 下载对应的源代码和资源，并为每个 PodSpec 生成对应的 Xcode Target。本文</description>
    </item>
    
    <item>
      <title>7. Molinillo 依赖校验</title>
      <link>https://looseyi.github.io/post/sourcecode-cocoapods/07-cocoapods-molinillo/</link>
      <pubDate>Mon, 08 Mar 2021 00:00:00 +0000</pubDate>
      
      <guid>https://looseyi.github.io/post/sourcecode-cocoapods/07-cocoapods-molinillo/</guid>
      <description>引子 通过「前文」对 CocaPods-Core 的分析，我们大体了解了 Pod 是如何被解析、查询与管理的。有了这些整体概念之后，我们就可以逐步深入 pod install 的各个细节。今天我们就来</description>
    </item>
    
    <item>
      <title>雪球 iOS Widget 从零到壹</title>
      <link>https://looseyi.github.io/post/snowball/snowball-widgets/</link>
      <pubDate>Wed, 13 Jan 2021 00:00:00 +0000</pubDate>
      
      <guid>https://looseyi.github.io/post/snowball/snowball-widgets/</guid>
      <description>本文知识目录 引言 在 2020 的 WWDC 上苹果发布了 WidgetKit 小组件，重新设计后的 Widgets，其展示不再局限于负一屏，而且支持在 macOS 和 iOS 的主屏幕上提供动态信息和个</description>
    </item>
    
    <item>
      <title>6. PodSpec 管理策略</title>
      <link>https://looseyi.github.io/post/sourcecode-cocoapods/06-cocoapods-source/</link>
      <pubDate>Fri, 06 Nov 2020 00:00:00 +0000</pubDate>
      
      <guid>https://looseyi.github.io/post/sourcecode-cocoapods/06-cocoapods-source/</guid>
      <description>本文目录 引子 本文是 Core 的最后一篇，它与另外两篇文章「Podfile 解析逻辑」和「PodSpec 文件分析」共同支撑起 CocoaPods 世界的骨架。CocoaPo</description>
    </item>
    
    <item>
      <title>5. PodSpec 文件分析</title>
      <link>https://looseyi.github.io/post/sourcecode-cocoapods/05-cocoapods-podspec/</link>
      <pubDate>Tue, 13 Oct 2020 00:00:00 +0000</pubDate>
      
      <guid>https://looseyi.github.io/post/sourcecode-cocoapods/05-cocoapods-podspec/</guid>
      <description>引子 在上文 Podfile 解析逻辑 中，我们以 Xcode 工程结构作为切入点介绍了 Podfile 背后对应的数据结构，剖析了 Podfile 文件是如何解析与加载，并最终 &amp;ldquo;入侵&amp;rdq</description>
    </item>
    
    <item>
      <title>4. Podfile 的解析逻辑</title>
      <link>https://looseyi.github.io/post/sourcecode-cocoapods/04-cocoapods-podfile/</link>
      <pubDate>Thu, 17 Sep 2020 00:00:00 +0000</pubDate>
      
      <guid>https://looseyi.github.io/post/sourcecode-cocoapods/04-cocoapods-podfile/</guid>
      <description>引子 在上文 CocoaPods 命令解析 中，我们通过对 CLAide 的源码分析，了解了 CocoaPods 是如何处理 pod 命令，多级命令又是如何组织和嵌套的，并解释了命令行输出所代表的含义。今天</description>
    </item>
    
    <item>
      <title>3. CocoaPods 命令解析 - CLAide</title>
      <link>https://looseyi.github.io/post/sourcecode-cocoapods/03-cocoapods-claide/</link>
      <pubDate>Wed, 02 Sep 2020 00:00:00 +0000</pubDate>
      
      <guid>https://looseyi.github.io/post/sourcecode-cocoapods/03-cocoapods-claide/</guid>
      <description>引子 在上文 整体把握 CocoaPods 核心组件 中，我们通过对 pod install 的流程的介绍，引出 CocoaPods 的各个核心组件的角色分工和其主要作用，希望通过对这些组件的使用和介绍来帮助</description>
    </item>
    
    <item>
      <title>2. 整体把握 CocoaPods 核心组件</title>
      <link>https://looseyi.github.io/post/sourcecode-cocoapods/02-cocoapods-corecomponents/</link>
      <pubDate>Mon, 17 Aug 2020 00:00:00 +0000</pubDate>
      
      <guid>https://looseyi.github.io/post/sourcecode-cocoapods/02-cocoapods-corecomponents/</guid>
      <description>引子 在上文 版本管理工具及 Ruby 工具链环境 中，我们聊到如何统一管理团队小伙伴的 CocoaPods 生产环境及使用到的 Ruby 工具链。今天让我们将目光转到 CocoaPods 身上，一起来聊聊</description>
    </item>
    
    <item>
      <title>WWDC20 - Build SwiftUI views for widgets</title>
      <link>https://looseyi.github.io/post/wwdc/wwdc20/wwdc20-session-10033/</link>
      <pubDate>Sat, 27 Jun 2020 00:00:00 +0000</pubDate>
      
      <guid>https://looseyi.github.io/post/wwdc/wwdc20/wwdc20-session-10033/</guid>
      <description>WWDC20 Session 10033 - Build SwiftUI views for widgets 本文知识目录 本文属于 WWDC20 中 Widgets 系列的文章。Widgets 是使用 SwiftUI 进行开发的，如果您对 SwiftUI 还不是很了解请翻看 Introduction to SwiftUI。如</description>
    </item>
    
    <item>
      <title>WWDC20 - What&#39;s new in SwiftUI</title>
      <link>https://looseyi.github.io/post/wwdc/wwdc20/wwdc20-session-10041/</link>
      <pubDate>Fri, 26 Jun 2020 00:00:00 +0000</pubDate>
      
      <guid>https://looseyi.github.io/post/wwdc/wwdc20/wwdc20-session-10041/</guid>
      <description>WWDC 2020 Session 10041 - What&amp;rsquo;s new in SwiftUI 本文知识目录 对于 iOS 开发而言， WWDC 2019 中推出的 SwiftUI 无疑是最受关注的一项技术，它可以在所有 Apple 平台上构建出色的用户界面。而今年我们迎来</description>
    </item>
    
    <item>
      <title>Cocoa 文档注释与生成工具使用 - Jazzy &#43; SourceKitten</title>
      <link>https://looseyi.github.io/post/tool/cocoa-documentation-2/</link>
      <pubDate>Thu, 18 Jun 2020 00:00:00 +0000</pubDate>
      
      <guid>https://looseyi.github.io/post/tool/cocoa-documentation-2/</guid>
      <description>我们在前文 《Cocoa 代码注释与文档生成》 中详细介绍了如何为 Swift &amp;amp; ObjC 的代码编写符合规范的注释，以及使用 Jazzy 来生成项目文档。 今天我们来尝试一下，如</description>
    </item>
    
    <item>
      <title>📒个人备忘 - 队列、GCD、线程基础</title>
      <link>https://looseyi.github.io/post/notes/01-gcd/</link>
      <pubDate>Tue, 16 Jun 2020 00:00:00 +0000</pubDate>
      
      <guid>https://looseyi.github.io/post/notes/01-gcd/</guid>
      <description>[toc] 引子 本篇内容大多来自网络上的一些文章，希望做一个 📝 和参考，如有出错的地方希望指正。 起因是公司内部的同学在开发中遇到了 FMDB 的一个 Crash，查</description>
    </item>
    
    <item>
      <title>Cocoa 文档注释与生成</title>
      <link>https://looseyi.github.io/post/tool/cocoa-documentation-1/</link>
      <pubDate>Sun, 14 Jun 2020 00:00:00 +0000</pubDate>
      
      <guid>https://looseyi.github.io/post/tool/cocoa-documentation-1/</guid>
      <description>Cocoa 代码注释与文档生成 本文的文档规范部分的内容参考自：NSHipster 的 Swift Documentation 作者 &amp;amp; Nate Cook 本文知识目录 背景 曾经以为好的代码是可以自我解释不需要注</description>
    </item>
    
    <item>
      <title>1. 版本管理工具及 Ruby 工具链环境</title>
      <link>https://looseyi.github.io/post/sourcecode-cocoapods/01-cocoapods-toolchains/</link>
      <pubDate>Wed, 10 Jun 2020 00:00:00 +0000</pubDate>
      
      <guid>https://looseyi.github.io/post/sourcecode-cocoapods/01-cocoapods-toolchains/</guid>
      <description>CocoaPods 历险记这个专题是 Edmond 和冬瓜 是对于 iOS / macOS 工程中版本管理工具 CocoaPods 的实现细节、原理、源码、实践与经验的分享记录，旨在帮助大家能够更加了解这个依赖管理</description>
    </item>
    
    <item>
      <title>浅析 - 微信 MMKV 1.1.1</title>
      <link>https://looseyi.github.io/post/sourcecode-ios/source-code-mmkv/</link>
      <pubDate>Thu, 21 May 2020 00:00:00 +0800</pubDate>
      
      <guid>https://looseyi.github.io/post/sourcecode-ios/source-code-mmkv/</guid>
      <description>介绍 MMKV is an efficient, small, easy-to-use mobile key-value storage framework used in the WeChat application. It&amp;rsquo;s currently available on Android, iOS/macOS, Win32 and POSIX. 作为一个精简易用且性能强悍的全平台 K-V 存储框架，MMKV 有如下特点： 高效： 利用 mmap 直接将文件</description>
    </item>
    
    <item>
      <title>浅析 - CocoaLumberjack 3.6 之 DatabaseLogger</title>
      <link>https://looseyi.github.io/post/sourcecode-ios/source-code-lumberjack-3/</link>
      <pubDate>Sat, 16 May 2020 00:00:00 +0800</pubDate>
      
      <guid>https://looseyi.github.io/post/sourcecode-ios/source-code-lumberjack-3/</guid>
      <description>前言 这是 DDLog 源码阅读的最后一篇。本篇重点介绍 DDLogger 对数据库存储的支持，原理应该和 FileLogger 一样，log 磁盘存储的频率，过期 log 的淘汰策略，以及 log 存储的缓存策</description>
    </item>
    
    <item>
      <title>浅析 - CocoaLumberjack 3.6 之 FileLogger</title>
      <link>https://looseyi.github.io/post/sourcecode-ios/source-code-lumberjack-2/</link>
      <pubDate>Fri, 08 May 2020 23:20:00 +0800</pubDate>
      
      <guid>https://looseyi.github.io/post/sourcecode-ios/source-code-lumberjack-2/</guid>
      <description>DDFileLogger 继续上一篇：CocoaLumberjack 之 DDLog，重点介绍了 lumberjack 的核心管理类 DDLog 以及两个核心协议 DDLogger 和 DDLogFormatter。还涉及</description>
    </item>
    
    <item>
      <title>浅析 - CocoaLumberjack 3.6 之 DDLog</title>
      <link>https://looseyi.github.io/post/sourcecode-ios/source-code-lumberjack-1/</link>
      <pubDate>Mon, 04 May 2020 18:20:00 +0800</pubDate>
      
      <guid>https://looseyi.github.io/post/sourcecode-ios/source-code-lumberjack-1/</guid>
      <description>介绍 CocoaLumberjack is a fast &amp;amp; simple, yet powerful &amp;amp; flexible logging framework for Mac and iOS. 先扯一下 lumberjack 这个单词，对应的就是它的 logo，一位伐木工。 一直不太理解为什么是用这个单词，其他语音中也有日</description>
    </item>
    
    <item>
      <title>The Architecture of SDWebImage v5.6</title>
      <link>https://looseyi.github.io/post/sourcecode-ios/source-code-sdweb-en1/</link>
      <pubDate>Sun, 12 Apr 2020 23:08:12 +1700</pubDate>
      
      <guid>https://looseyi.github.io/post/sourcecode-ios/source-code-sdweb-en1/</guid>
      <description>This article is based on SDWebImage 5.6. Why i write this article, cause i found that SD&amp;rsquo;s API is constantly iterating, and many of the structures are different from earlier versions. Here is to make a record. We will start from the top of the API&amp;rsquo;s level list below, force on the entire framework&amp;rsquo;s data flow. 5.0 Migration Guid It is highly recommended to watch the official migration document, which</description>
    </item>
    
    <item>
      <title>浅析 Cocoapods-Packager 实现</title>
      <link>https://looseyi.github.io/post/sourcecode-ios/cocoapods-packager/</link>
      <pubDate>Sun, 29 Mar 2020 15:10:58 +0800</pubDate>
      
      <guid>https://looseyi.github.io/post/sourcecode-ios/cocoapods-packager/</guid>
      <description>介绍 CocoaPods plugin which allows you to generate a framework or static library from a podspec. This plugin is for CocoaPods developers, who need to distribute their Pods not only via CocoaPods, but also as frameworks or static libraries for people who do not use Pods. 作为 CococaPods 的官方插件之一，CocoaPods Packager 为 Pod</description>
    </item>
    
    <item>
      <title>浅析 RxSwift 5.0 - Subscription</title>
      <link>https://looseyi.github.io/post/sourcecode-ios/source-code-rxswift/</link>
      <pubDate>Mon, 16 Mar 2020 23:10:58 +0800</pubDate>
      
      <guid>https://looseyi.github.io/post/sourcecode-ios/source-code-rxswift/</guid>
      <description>前言 ReactiveX 它是一个与语言无关的编程思想。作为成员框架之一 RxSwift 落地了大部分 ReactiveX 中关于流的操作。官方描述： An API for asynchronous programming with observable streams ReactiveX is a combination of the best ideas from the Observer pattern, the Iterator pattern,</description>
    </item>
    
    <item>
      <title>浅析 SDWebImage 5.5.2 - WebP Plugin</title>
      <link>https://looseyi.github.io/post/sourcecode-ios/source-code-sdweb-2/</link>
      <pubDate>Wed, 11 Mar 2020 23:08:12 +0800</pubDate>
      
      <guid>https://looseyi.github.io/post/sourcecode-ios/source-code-sdweb-2/</guid>
      <description>本文基于 SDWebImage 5.5.2。重读的原因也是由于发现它的 API 在不断迭代，许多结构已经不同与早期版本，同时也是为了做一个记录。整体分析可以查看上一篇文章</description>
    </item>
    
    <item>
      <title>浅析 SDWebImage 5.6</title>
      <link>https://looseyi.github.io/post/sourcecode-ios/source-code-sdweb-1/</link>
      <pubDate>Sat, 22 Feb 2020 23:08:12 +0800</pubDate>
      
      <guid>https://looseyi.github.io/post/sourcecode-ios/source-code-sdweb-1/</guid>
      <description>本文基于 SDWebImage 5.6。重读的原因也是由于发现它的 API 在不断迭代，许多结构已经不同与早期版本，同时也是为了做一个记录。阅读顺序也会依据 API 执行顺序进行</description>
    </item>
    
    <item>
      <title>完善 Cocoapods-Binary 支持 Server 端缓存</title>
      <link>https://looseyi.github.io/post/sourcecode-ios/cocoapods-binary-2/</link>
      <pubDate>Mon, 06 Jan 2020 11:40:06 +2100</pubDate>
      
      <guid>https://looseyi.github.io/post/sourcecode-ios/cocoapods-binary-2/</guid>
      <description>在开始之前，还是明确一下我们的目标，希望通过对 Cocoapods-binary 的改造使其支持 server 端缓存，从而达到 一处编译，处处使用 的 pods lib dependencies。同时会简单</description>
    </item>
    
  </channel>
</rss>
