<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Huang Codes | Indie Developer Blog</title>
    <link>https://huangcodes.com/</link>
    <description>Simple, privacy-friendly apps for iOS, macOS, Web and AI workflows.</description>
    <language>zh-Hans</language>
    <atom:link href="https://huangcodes.com/feed.xml" rel="self" type="application/rss+xml" />
    <lastBuildDate>Sun, 26 Jul 2026 12:00:00 +0900</lastBuildDate>
    <item>
      <title>从查词到复习：Sumiyomi 3.2 为什么先把数据迁移做稳</title>
      <link>https://huangcodes.com/blog/sumiyomi-review-migration/</link>
      <guid isPermaLink="true">https://huangcodes.com/blog/sumiyomi-review-migration/</guid>
      <pubDate>Sun, 26 Jul 2026 12:00:00 +0900</pubDate>
      <description>加入间隔重复很容易让人只关注卡片动画，真正高风险的却是旧历史、收藏和复习进度能不能安全升级。</description>
    </item>
    <item>
      <title>周报不该制造焦虑：小桃提肛和错事白板怎样总结长期数据</title>
      <link>https://huangcodes.com/blog/quiet-weekly-reports/</link>
      <guid isPermaLink="true">https://huangcodes.com/blog/quiet-weekly-reports/</guid>
      <pubDate>Sun, 26 Jul 2026 11:30:00 +0900</pubDate>
      <description>同样是周报，一个用于帮助坚持，一个用于发现重复模式。共同难点是提供方向，但不把用户变成分数。</description>
    </item>
    <item>
      <title>从记录到预测：WorkHours 与开店先算账如何把数据变成下一步</title>
      <link>https://huangcodes.com/blog/from-records-to-forecasts/</link>
      <guid isPermaLink="true">https://huangcodes.com/blog/from-records-to-forecasts/</guid>
      <pubDate>Sun, 26 Jul 2026 11:00:00 +0900</pubDate>
      <description>工时记录和开店测算看似不同，底层都在回答同一件事：已有数据怎样帮助用户更早看见月底与风险。</description>
    </item>
    <item>
      <title>OCR 之后才是难点：Pinyin Scholar 与票据裁切的可编辑工作流</title>
      <link>https://huangcodes.com/blog/ocr-after-recognition/</link>
      <guid isPermaLink="true">https://huangcodes.com/blog/ocr-after-recognition/</guid>
      <pubDate>Sun, 26 Jul 2026 10:30:00 +0900</pubDate>
      <description>识别出文字或票据只是开始。能校对、重新处理、复制字段并导出到下一环节，结果才真正可用。</description>
    </item>
    <item>
      <title>这些小 App 是怎么实现的：技术栈、实现方式和难点</title>
      <link>https://huangcodes.com/blog/how-my-apps-are-built/</link>
      <guid isPermaLink="true">https://huangcodes.com/blog/how-my-apps-are-built/</guid>
      <pubDate>Thu, 02 Jul 2026 10:00:00 +0900</pubDate>
      <description>拆解 Sumiyomi、Pinyin Scholar、开店先算账、小桃提肛、Hydropace、WorkHours、票据裁切和错事白板背后的技术选择与难点。</description>
    </item>
    <item>
      <title>把个人开发者网站从本地放到阿里云，我踩过的几个点</title>
      <link>https://huangcodes.com/blog/aliyun-static-site-launch/</link>
      <guid isPermaLink="true">https://huangcodes.com/blog/aliyun-static-site-launch/</guid>
      <pubDate>Thu, 02 Jul 2026 09:30:00 +0900</pubDate>
      <description>静态网站上线不难，真正容易漏的是 DNS、HTTPS、部署排除项、缓存和备案这些边角。</description>
    </item>
    <item>
      <title>为什么我的小 App 都尽量做成本地优先</title>
      <link>https://huangcodes.com/blog/local-first-apps/</link>
      <guid isPermaLink="true">https://huangcodes.com/blog/local-first-apps/</guid>
      <pubDate>Thu, 02 Jul 2026 09:00:00 +0900</pubDate>
      <description>本地优先不是技术洁癖，而是为了隐私、可靠、低维护成本和更清楚的产品边界。</description>
    </item>
    <item>
      <title>App Store 上架前，我为什么先把支持页和隐私政策放到官网</title>
      <link>https://huangcodes.com/blog/app-store-support-privacy-pages/</link>
      <guid isPermaLink="true">https://huangcodes.com/blog/app-store-support-privacy-pages/</guid>
      <pubDate>Thu, 02 Jul 2026 08:30:00 +0900</pubDate>
      <description>Support URL 和 Privacy Policy URL 不是临时凑材料，它们是用户和审核员判断产品是否可靠的入口。</description>
    </item>
    <item>
      <title>中文、日文、英文切换时页面为什么会变大变小</title>
      <link>https://huangcodes.com/blog/multilingual-font-stability/</link>
      <guid isPermaLink="true">https://huangcodes.com/blog/multilingual-font-stability/</guid>
      <pubDate>Thu, 02 Jul 2026 08:00:00 +0900</pubDate>
      <description>多语言页面的稳定感不只来自 CSS 尺寸，也来自字体选择、行高、加载策略和内容长度控制。</description>
    </item>
    <item>
      <title>一次把 Sumiyomi 扩到 14 种语言，我学到的事</title>
      <link>https://huangcodes.com/blog/sumiyomi-localization-release/</link>
      <guid isPermaLink="true">https://huangcodes.com/blog/sumiyomi-localization-release/</guid>
      <pubDate>Wed, 01 Jul 2026 12:00:00 +0900</pubDate>
      <description>多语言不是把字符串翻译完就结束，截图、关键词、版本说明和官网同步才是长期维护的难点。</description>
    </item>
    <item>
      <title>小桃提肛：健康同步、智能提醒和一个很克制的训练 app</title>
      <link>https://huangcodes.com/blog/tigang-health-reminders/</link>
      <guid isPermaLink="true">https://huangcodes.com/blog/tigang-health-reminders/</guid>
      <pubDate>Wed, 01 Jul 2026 11:30:00 +0900</pubDate>
      <description>健康类小工具的难点不是堆功能，而是提醒得刚刚好、记录得足够少、隐私边界足够清楚。</description>
    </item>
    <item>
      <title>WorkHours 的首次设置：为什么先让用户看到工资预览</title>
      <link>https://huangcodes.com/blog/workhours-pay-preview-onboarding/</link>
      <guid isPermaLink="true">https://huangcodes.com/blog/workhours-pay-preview-onboarding/</guid>
      <pubDate>Wed, 01 Jul 2026 11:00:00 +0900</pubDate>
      <description>工时工具的第一次打开不能只是填表。先让用户看到它能算什么，配置才有意义。</description>
    </item>
    <item>
      <title>票据裁切：自动识别不是只要裁出来就行</title>
      <link>https://huangcodes.com/blog/receiptcropper-auto-crop-quality/</link>
      <guid isPermaLink="true">https://huangcodes.com/blog/receiptcropper-auto-crop-quality/</guid>
      <pubDate>Wed, 01 Jul 2026 10:30:00 +0900</pubDate>
      <description>自动裁切最难的不是检测出矩形，而是知道这次检测可能错了，并把检查权交回给用户。</description>
    </item>
    <item>
      <title>错事白板的编辑功能：看起来小，其实是在重做数据流</title>
      <link>https://huangcodes.com/blog/mistakelog-edit-flow/</link>
      <guid isPermaLink="true">https://huangcodes.com/blog/mistakelog-edit-flow/</guid>
      <pubDate>Wed, 01 Jul 2026 10:00:00 +0900</pubDate>
      <description>编辑记录不是多一个按钮，而是要保证详情页、草稿、归档和导出看到的是同一份最新数据。</description>
    </item>
    <item>
      <title>为什么我又做了一个 furigana 应用</title>
      <link>https://huangcodes.com/blog/why-i-built-sumiyomi/</link>
      <guid isPermaLink="true">https://huangcodes.com/blog/why-i-built-sumiyomi/</guid>
      <pubDate>Sat, 06 Jun 2026 10:00:00 +0900</pubDate>
      <description>N1 之后我依然每天遇到不认识的汉字。说说我为什么决定自己做 Sumiyomi —— 不联网、不要账号、界面不丑的 furigana 应用。</description>
    </item>
  </channel>
</rss>
