<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Young · 文章</title>
    <link>https://young027.com/zh/blog/</link>
    <atom:link href="https://young027.com/zh/feed.xml" rel="self" type="application/rss+xml"/>
    <description>Young 的技术文章：iOS 开发、系统架构、性能优化与产品实践。</description>
    <language>zh-CN</language>
    <lastBuildDate>Sun, 23 Aug 2026 00:00:00 GMT</lastBuildDate>
    <item>
      <title>关键帧：让曲线编辑、预览与导出逐帧一致</title>
      <link>https://young027.com/zh/blog/acddfd55/</link>
      <guid isPermaLink="true">https://young027.com/zh/blog/acddfd55/</guid>
      <pubDate>Thu, 01 Dec 2022 00:00:00 GMT</pubDate>
      <dc:creator>Young</dc:creator>
      <description>亲手调整贝塞尔曲线，逐帧观察动画数值，再理解时钟、采样、切割与版本化数据如何共同保证关键帧一致性。</description>
      <category>渲染</category>
      <category>架构设计</category>
      <category>动画</category>
    </item>
    <item>
      <title>滤镜是一张查找表</title>
      <link>https://young027.com/zh/blog/d97400da/</link>
      <guid isPermaLink="true">https://young027.com/zh/blog/d97400da/</guid>
      <pubDate>Tue, 16 Aug 2022 00:00:00 GMT</pubDate>
      <dc:creator>Young</dc:creator>
      <description>从滤镜下载走进逐帧渲染：理解视频管线、帧缓冲、3D LUT，以及为什么草稿应保存特效标识符而不是文件路径。</description>
      <category>Swift</category>
      <category>渲染</category>
      <category>架构设计</category>
    </item>
    <item>
      <title>草稿不是一个文件，而是一张标识符关系图</title>
      <link>https://young027.com/zh/blog/6cae64e1/</link>
      <guid isPermaLink="true">https://young027.com/zh/blog/6cae64e1/</guid>
      <pubDate>Tue, 22 Feb 2022 00:00:00 GMT</pubDate>
      <dc:creator>Young</dc:creator>
      <description>用检查点、内容寻址素材和版本化文档设计云草稿，让崩溃恢复、跨设备续编、冲突与配额都有明确语义。</description>
      <category>Swift</category>
      <category>架构设计</category>
      <category>持久化</category>
    </item>
    <item>
      <title>一份代码、两个地区：五层隔离的设计</title>
      <link>https://young027.com/zh/blog/3ed59fe3/</link>
      <guid isPermaLink="true">https://young027.com/zh/blog/3ed59fe3/</guid>
      <pubDate>Tue, 14 Dec 2021 00:00:00 GMT</pubDate>
      <dc:creator>Young</dc:creator>
      <description>从 Workspace、依赖与 Subspec，到能力注入、配置和单个协议方法，为不同形状的地区差异选择合适的边界。</description>
      <category>Swift</category>
      <category>架构设计</category>
      <category>依赖注入</category>
    </item>
    <item>
      <title>跨团队协作，也像跨进程通信</title>
      <link>https://young027.com/zh/blog/2b2456a1/</link>
      <guid isPermaLink="true">https://young027.com/zh/blog/2b2456a1/</guid>
      <pubDate>Tue, 10 Nov 2020 00:00:00 GMT</pubDate>
      <dc:creator>Young</dc:creator>
      <description>从两个 App 的同步发布 SDK 出发，比较传文件与传标识符，理解小协议、共享事实来源、版本协商和异步回调的价值。</description>
      <category>Swift</category>
      <category>PhotoKit</category>
      <category>架构设计</category>
    </item>
    <item>
      <title>WWDC 2019 一年后：把 Property Wrapper 用到生产里</title>
      <link>https://young027.com/zh/blog/09db3ee0/</link>
      <guid isPermaLink="true">https://young027.com/zh/blog/09db3ee0/</guid>
      <pubDate>Tue, 16 Jun 2020 00:00:00 GMT</pubDate>
      <dc:creator>Young</dc:creator>
      <description>用一个类型安全的属性包装器集中地区品牌差异，让业务代码不再反复判断当前 Target，同时明确数值、行为与模块边界。</description>
      <category>Swift</category>
      <category>架构设计</category>
    </item>
    <item>
      <title>为协同 Web 编辑器设计原生桥接协议</title>
      <link>https://young027.com/zh/blog/4939586e/</link>
      <guid isPermaLink="true">https://young027.com/zh/blog/4939586e/</guid>
      <pubDate>Mon, 10 Feb 2020 00:00:00 GMT</pubDate>
      <dc:creator>Young</dc:creator>
      <description>在 iOS SDK、WebKit 编辑器与实时协同引擎之间，建立类型明确、异步可控、能够恢复的协议边界。</description>
      <category>Swift</category>
      <category>WebKit</category>
      <category>架构设计</category>
    </item>
    <item>
      <title>文档 SDK 为什么选择 Swinject</title>
      <link>https://young027.com/zh/blog/228847f0/</link>
      <guid isPermaLink="true">https://young027.com/zh/blog/228847f0/</guid>
      <pubDate>Mon, 20 Jan 2020 00:00:00 GMT</pubDate>
      <dc:creator>Young</dc:creator>
      <description>把依赖组装留在系统边界，让 Host、账号和文档会话分别拥有自己的生命周期，离线与测试也成为可明确组合的运行环境。</description>
      <category>Swift</category>
      <category>依赖注入</category>
      <category>架构设计</category>
    </item>
    <item>
      <title>为什么我们从 IGListKit 回到 UICollectionView</title>
      <link>https://young027.com/zh/blog/242a6725/</link>
      <guid isPermaLink="true">https://young027.com/zh/blog/242a6725/</guid>
      <pubDate>Thu, 02 Jan 2020 00:00:00 GMT</pubDate>
      <dc:creator>Young</dc:creator>
      <description>iOS 13 的 Diffable Data Source 与 Compositional Layout 改变了抽象边界：如何保留列表模块化，同时减少不再需要的适配层。</description>
      <category>Swift</category>
      <category>UIKit</category>
      <category>架构设计</category>
    </item>
    <item>
      <title>用 ReSwift 收拢复杂文档列表的数据流</title>
      <link>https://young027.com/zh/blog/4b4dc9e9/</link>
      <guid isPermaLink="true">https://young027.com/zh/blog/4b4dc9e9/</guid>
      <pubDate>Tue, 01 Oct 2019 00:00:00 GMT</pubDate>
      <dc:creator>Young</dc:creator>
      <description>让筛选、元数据更新、缓存与网络共享一份权威状态，通过 Action、Reducer 和 Middleware 拒绝过期结果，明确状态归属。</description>
      <category>Swift</category>
      <category>状态管理</category>
      <category>架构设计</category>
    </item>
    <item>
      <title>一个页面、两个 Table View、三种加载任务</title>
      <link>https://young027.com/zh/blog/ea757f4b/</link>
      <guid isPermaLink="true">https://young027.com/zh/blog/ea757f4b/</guid>
      <pubDate>Tue, 06 Aug 2019 00:00:00 GMT</pubDate>
      <dc:creator>Young</dc:creator>
      <description>从 Banner 与内容列表的滚动交接出发，明确手势归属、惯性交接和刷新、运营位、分页之间的优先级。</description>
      <category>Swift</category>
      <category>UIKit</category>
    </item>
    <item>
      <title>用 Swift OptionSet 建模可组合的文档权限</title>
      <link>https://young027.com/zh/blog/57c0fc5b/</link>
      <guid isPermaLink="true">https://young027.com/zh/blog/57c0fc5b/</guid>
      <pubDate>Fri, 02 Aug 2019 00:00:00 GMT</pubDate>
      <dc:creator>Young</dc:creator>
      <description>将读取、编辑和链接分享拆成能力集合，再统一处理文件夹继承、显式限制与账号策略，避免角色组合不断膨胀。</description>
      <category>Swift</category>
      <category>架构设计</category>
    </item>
    <item>
      <title>实现一个 LRU 缓存</title>
      <link>https://young027.com/zh/blog/53774d2d/</link>
      <guid isPermaLink="true">https://young027.com/zh/blog/53774d2d/</guid>
      <pubDate>Thu, 21 Mar 2019 00:00:00 GMT</pubDate>
      <dc:creator>Young</dc:creator>
      <description>用双向链表维护访问顺序，用哈希表定位节点，理解 LRU 淘汰策略及其 C++ 实现。</description>
      <category>算法</category>
    </item>
    <item>
      <title>沿着一次 GET 请求读懂 AFNetworking 3.x</title>
      <link>https://young027.com/zh/blog/df7486d3/</link>
      <guid isPermaLink="true">https://young027.com/zh/blog/df7486d3/</guid>
      <pubDate>Tue, 19 Mar 2019 00:00:00 GMT</pubDate>
      <dc:creator>Young</dc:creator>
      <description>以 AFNetworking 3.2.1 为例，追踪请求序列化、Task 与代理的协作，并区分回调队列、连接数与业务并发限制。</description>
      <category>Objective-C</category>
      <category>网络</category>
      <category>架构设计</category>
    </item>
    <item>
      <title>Objective-C 的 Category 与 Class Extension</title>
      <link>https://young027.com/zh/blog/67f1730e/</link>
      <guid isPermaLink="true">https://young027.com/zh/blog/67f1730e/</guid>
      <pubDate>Sun, 20 Jan 2019 00:00:00 GMT</pubDate>
      <dc:creator>Young</dc:creator>
      <description>Category 在运行时扩展行为，Class Extension 参与类本身的编译。理解两者的生命周期、存储能力和使用边界。</description>
      <category>Objective-C</category>
      <category>运行时</category>
    </item>
    <item>
      <title>从零实现 UITableView 的 Cell 复用</title>
      <link>https://young027.com/zh/blog/1898b14b/</link>
      <guid isPermaLink="true">https://young027.com/zh/blog/1898b14b/</guid>
      <pubDate>Sat, 20 Oct 2018 00:00:00 GMT</pubDate>
      <dc:creator>Young</dc:creator>
      <description>从一千行数据和一个小小的可视窗口出发，用 Swift 重建复用池，理解异步图片错位与状态残留的根源。</description>
      <category>Swift</category>
      <category>UIKit</category>
    </item>
    <item>
      <title>理解 Objective-C Runtime：从消息发送到消息转发</title>
      <link>https://young027.com/zh/blog/0b13af02/</link>
      <guid isPermaLink="true">https://young027.com/zh/blog/0b13af02/</guid>
      <pubDate>Fri, 05 Oct 2018 00:00:00 GMT</pubDate>
      <dc:creator>Young</dc:creator>
      <description>从 isa、类与元类出发，串起 SEL、IMP、方法缓存和消息转发，理解 Objective-C 语法背后的运行机制。</description>
      <category>Objective-C</category>
      <category>运行时</category>
    </item>
  </channel>
</rss>
