<?xml version="1.0" encoding="UTF-8"?><?xml-stylesheet href="/rss-styles.xsl" type="text/xsl"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>YGJoon 技术博客</title><description>以 Flutter 跨平台与 Android/Kotlin 工程实践为主，持续整理 iOS/SwiftUI 架构、HarmonyOS 适配，以及 Vue/Nuxt 与 NestJS 的具体开发问题。</description><link>https://blog.ygjoon.cn/</link><language>zh-CN</language><lastBuildDate>Tue, 03 Nov 2026 07:20:24 GMT</lastBuildDate><atom:link href="https://blog.ygjoon.cn/rss.xml" rel="self" type="application/rss+xml"/><item><title>KSP 2 与 Kotlin 2.x：旧工程迁移前要核对什么</title><link>https://blog.ygjoon.cn/kt/ksp2-kotlin-2x-migration/</link><guid isPermaLink="true">https://blog.ygjoon.cn/kt/ksp2-kotlin-2x-migration/</guid><description>KSP1 的 Kotlin 1.9 配置不能直接代表 Kotlin 2.x 工程。本文整理 KSP2 实现变化、版本选择、处理器兼容和迁移检查步骤。</description><pubDate>Fri, 30 Oct 2026 00:00:00 GMT</pubDate><category>Kotlin</category><category>KSP</category><category>Kotlin 2</category><category>Android</category></item><item><title>XCTest 异步业务回归：规则边界与并发时序控制</title><link>https://blog.ygjoon.cn/ios/xctest-async-regression/</link><guid isPermaLink="true">https://blog.ygjoon.cn/ios/xctest-async-regression/</guid><description>异步回归要验证规则，也要控制时序。文章演示依赖替换和可控等待如何覆盖成功、失败及并发边界。</description><pubDate>Sat, 17 Oct 2026 07:17:00 GMT</pubDate><category>iOS</category><category>XCTest</category><category>单元测试</category><category>并发</category><category>案例</category></item><item><title>Swift actor 网络客户端设计：共享上下文隔离与请求取消</title><link>https://blog.ygjoon.cn/ios/swift-actor-network-client/</link><guid isPermaLink="true">https://blog.ygjoon.cn/ios/swift-actor-network-client/</guid><description>多个请求共享认证信息或取消状态时，网络客户端会遇到竞态。这里用 actor 管理共享上下文，同时让请求方表达取消意图。</description><pubDate>Fri, 16 Oct 2026 01:14:00 GMT</pubDate><category>iOS</category><category>Swift</category><category>网络</category><category>并发</category><category>案例</category></item><item><title>iOS 工程架构审查：模块边界、安全风险与发布检查</title><link>https://blog.ygjoon.cn/ios/ios-architecture-security-review/</link><guid isPermaLink="true">https://blog.ygjoon.cn/ios/ios-architecture-security-review/</guid><description>发布前的工程审查从模块依赖延伸到凭据、日志与计价边界。文中用匿名化客户端代码说明每项风险从哪里查。</description><pubDate>Tue, 13 Oct 2026 09:14:00 GMT</pubDate><category>iOS</category><category>Swift</category><category>SwiftUI</category><category>项目案例</category><category>代码审查</category></item><item><title>iOS 依赖注入设计：目录数据协议与渐进式替换</title><link>https://blog.ygjoon.cn/ios/ios-directory-data-dependency-injection/</link><guid isPermaLink="true">https://blog.ygjoon.cn/ios/ios-directory-data-dependency-injection/</guid><description>页面要能替换数据源，协议边界就应位于网络实现之外。本文用目录分类和分页加载展示依赖注入的落点。</description><pubDate>Sun, 11 Oct 2026 03:29:00 GMT</pubDate><category>iOS</category><category>Swift</category><category>依赖注入</category><category>架构</category><category>案例</category></item><item><title>iOS 支付回跳对账：待处理记录持久化与服务端确认</title><link>https://blog.ygjoon.cn/ios/ios-payment-callback-reconciliation/</link><guid isPermaLink="true">https://blog.ygjoon.cn/ios/ios-payment-callback-reconciliation/</guid><description>支付 SDK 回调只是一个信号，服务端交易状态才是对账依据。本文将待处理记录持久化，并在应用回到前台时重查。</description><pubDate>Thu, 08 Oct 2026 03:34:00 GMT</pubDate><category>iOS</category><category>支付</category><category>服务端对账</category><category>并发</category><category>案例</category></item><item><title>iOS MapKit 地图选址：请求竞态与镜头状态同步</title><link>https://blog.ygjoon.cn/ios/ios-map-selection-request-races/</link><guid isPermaLink="true">https://blog.ygjoon.cn/ios/ios-map-selection-request-races/</guid><description>地图拖动、区域搜索和定位查询可能乱序返回。文章把镜头状态与候选地址分开保存，再用请求标识丢弃旧结果。</description><pubDate>Thu, 08 Oct 2026 02:38:00 GMT</pubDate><category>iOS</category><category>MapKit</category><category>CoreLocation</category><category>地址选择</category><category>案例</category></item><item><title>Flutter 项目案例（十二）：原生插件与多端配置</title><link>https://blog.ygjoon.cn/flutter/project-cases/flutter-project-case-plugin-multiplatform/</link><guid isPermaLink="true">https://blog.ygjoon.cn/flutter/project-cases/flutter-project-case-plugin-multiplatform/</guid><description>同一个 Flutter 插件要覆盖多个平台时，Dart 接口、原生实现和发布元数据各自放在哪里？示例从目录结构回答这个问题。</description><pubDate>Mon, 05 Oct 2026 05:44:00 GMT</pubDate><category>Flutter</category><category>项目案例</category><category>插件开发</category></item><item><title>HarmonyOS 元服务深链路由：处理 Want 冷热启动与页面栈时序</title><link>https://blog.ygjoon.cn/harmonyos/atomic-service-want-routing/</link><guid isPermaLink="true">https://blog.ygjoon.cn/harmonyos/atomic-service-want-routing/</guid><description>围绕 singleton UIAbility，串起 Want 参数解析、冷启动暂存、热启动 onNewWant 和 NavPathStack 就绪后的安全路由。</description><pubDate>Sat, 03 Oct 2026 03:23:00 GMT</pubDate><category>HarmonyOS</category><category>元服务</category><category>ArkTS</category><category>Want</category><category>深链路由</category></item><item><title>HarmonyOS 元服务卡片：从空生命周期到可更新的数据链路</title><link>https://blog.ygjoon.cn/harmonyos/atomic-service-form-lifecycle/</link><guid isPermaLink="true">https://blog.ygjoon.cn/harmonyos/atomic-service-form-lifecycle/</guid><description>核对 ArkTS 服务卡片从 module.json5 注册、form_config 声明到 FormExtensionAbility 数据绑定与更新的完整链路。</description><pubDate>Wed, 30 Sep 2026 05:29:00 GMT</pubDate><category>HarmonyOS</category><category>元服务</category><category>ArkTS</category><category>服务卡片</category></item><item><title>HarmonyOS 元服务配置核查：atomicService 与 installationFree 的边界</title><link>https://blog.ygjoon.cn/harmonyos/atomic-service-module-config/</link><guid isPermaLink="true">https://blog.ygjoon.cn/harmonyos/atomic-service-module-config/</guid><description>从一个 Stage 工程的配置出发，拆开元服务产物类型、模块免安装能力与交付策略，并给出发布前的核查清单。</description><pubDate>Tue, 29 Sep 2026 04:55:00 GMT</pubDate><category>HarmonyOS</category><category>元服务</category><category>ArkTS</category><category>module.json5</category></item><item><title>SwiftUI 详情页并发加载：请求竞态与导航状态保留</title><link>https://blog.ygjoon.cn/ios/swiftui-detail-concurrent-loading/</link><guid isPermaLink="true">https://blog.ygjoon.cn/ios/swiftui-detail-concurrent-loading/</guid><description>详情区块并发加载后，导航返回时怎样避免重复请求和过期覆盖？示例用请求代次与路由状态处理这两个边界。</description><pubDate>Sun, 27 Sep 2026 04:49:00 GMT</pubDate><category>iOS</category><category>SwiftUI</category><category>并发</category><category>状态管理</category><category>案例</category></item><item><title>iOS Keychain 会话隔离：请求快照与迟到响应处理</title><link>https://blog.ygjoon.cn/ios/ios-keychain-session-isolation/</link><guid isPermaLink="true">https://blog.ygjoon.cn/ios/ios-keychain-session-isolation/</guid><description>切换账号时，棘手的往往不是 Keychain 读写，而是旧请求稍后返回。会话代次和请求快照可阻止迟到数据写入新账号界面。</description><pubDate>Sun, 27 Sep 2026 02:02:00 GMT</pubDate><category>iOS</category><category>Swift</category><category>Keychain</category><category>认证</category><category>案例</category></item><item><title>iOS 图片缓存与对象存储：actor 并发去重和尺寸变体</title><link>https://blog.ygjoon.cn/ios/ios-image-cache-storage-variants/</link><guid isPermaLink="true">https://blog.ygjoon.cn/ios/ios-image-cache-storage-variants/</guid><description>同一图片被多个视图同时请求时，actor 合并下载并缓存解码结果；不同展示尺寸则通过对象存储变体分别获取。</description><pubDate>Sat, 26 Sep 2026 06:36:00 GMT</pubDate><category>iOS</category><category>SwiftUI</category><category>图片加载</category><category>性能优化</category><category>案例</category></item><item><title>iOS Core Location 首页刷新：手动选址优先与位置阈值</title><link>https://blog.ygjoon.cn/ios/ios-location-state-home-refresh/</link><guid isPermaLink="true">https://blog.ygjoon.cn/ios/ios-location-state-home-refresh/</guid><description>手动选址优先于设备定位，小幅位置漂移也不必触发刷新。本文用单飞加载和距离阈值安排附近内容更新。</description><pubDate>Wed, 23 Sep 2026 07:05:00 GMT</pubDate><category>iOS</category><category>CoreLocation</category><category>SwiftUI</category><category>定位</category><category>案例</category></item><item><title>iOS 退款流程设计：金额校验、申请理由与进度状态</title><link>https://blog.ygjoon.cn/ios/ios-refund-flow-and-progress/</link><guid isPermaLink="true">https://blog.ygjoon.cn/ios/ios-refund-flow-and-progress/</guid><description>退款表单展示服务端金额，用户填写理由后提交申请；进度再按订单状态更新。金额、账号和异步响应各有边界。</description><pubDate>Wed, 23 Sep 2026 02:59:00 GMT</pubDate><category>iOS</category><category>SwiftUI</category><category>退款</category><category>订单</category><category>案例</category></item><item><title>iOS 表单请求校验：金额边界与提交条件收敛</title><link>https://blog.ygjoon.cn/ios/ios-request-validation-amount-boundaries/</link><guid isPermaLink="true">https://blog.ygjoon.cn/ios/ios-request-validation-amount-boundaries/</guid><description>金额、地点和时间等字段都齐全，怎样把提交条件集中到一处？本文用纯请求构造器给出一条可测的校验路径。</description><pubDate>Mon, 21 Sep 2026 05:51:00 GMT</pubDate><category>iOS</category><category>Swift</category><category>表单校验</category><category>创建</category><category>案例</category></item><item><title>iOS 订单状态矩阵：后端状态与页面操作映射</title><link>https://blog.ygjoon.cn/ios/ios-order-state-matrix/</link><guid isPermaLink="true">https://blog.ygjoon.cn/ios/ios-order-state-matrix/</guid><description>后端状态码应映射成明确的页面操作。文章对照列表、详情、状态卡和条目卡的入口差异，并给出可读的映射方式。</description><pubDate>Mon, 21 Sep 2026 01:46:00 GMT</pubDate><category>iOS</category><category>Swift</category><category>订单</category><category>状态机</category><category>案例</category></item><item><title>Flutter 项目案例（十一）：退款申请、进度与协商记录</title><link>https://blog.ygjoon.cn/flutter/project-cases/flutter-project-case-refund-progress/</link><guid isPermaLink="true">https://blog.ygjoon.cn/flutter/project-cases/flutter-project-case-refund-progress/</guid><description>退款页会经历金额确认、附件上传、提交和进度跟踪。文章重点处理各阶段的状态保留、重复提交与日志展示。</description><pubDate>Sat, 19 Sep 2026 06:54:00 GMT</pubDate><category>Flutter</category><category>项目案例</category><category>订单售后</category></item><item><title>Flutter 项目案例（十）：搜索防抖与结果竞态</title><link>https://blog.ygjoon.cn/flutter/project-cases/flutter-project-case-search-race/</link><guid isPermaLink="true">https://blog.ygjoon.cn/flutter/project-cases/flutter-project-case-search-race/</guid><description>400ms 防抖只能减少请求次数，无法保证响应顺序。示例用请求代次丢弃迟到结果，并分别处理地图地址和内容搜索。</description><pubDate>Thu, 17 Sep 2026 02:05:00 GMT</pubDate><category>Flutter</category><category>项目案例</category><category>搜索</category></item><item><title>Flutter 项目案例（八）：第三方支付回调与订单状态</title><link>https://blog.ygjoon.cn/flutter/project-cases/flutter-project-case-payment-status/</link><guid isPermaLink="true">https://blog.ygjoon.cn/flutter/project-cases/flutter-project-case-payment-status/</guid><description>第三方 SDK 返回后，订单状态仍要向服务端确认。代码示例串起支付编号、应用回跳和结果查询，并处理重复回调。</description><pubDate>Wed, 16 Sep 2026 07:21:00 GMT</pubDate><category>Flutter</category><category>项目案例</category><category>支付</category></item><item><title>Flutter 项目案例（九）：分页刷新与控制器销毁</title><link>https://blog.ygjoon.cn/flutter/project-cases/flutter-project-case-pagination-lifecycle/</link><guid isPermaLink="true">https://blog.ygjoon.cn/flutter/project-cases/flutter-project-case-pagination-lifecycle/</guid><description>下拉刷新与加载更多可能同时碰上旧请求。本文展示 ListMixin 如何管理请求代次、列表状态和页面销毁后的资源清理。</description><pubDate>Wed, 16 Sep 2026 05:09:00 GMT</pubDate><category>Flutter</category><category>项目案例</category><category>分页列表</category></item><item><title>Flutter 项目案例（七）：订单参数与费用如何汇总</title><link>https://blog.ygjoon.cn/flutter/project-cases/flutter-project-case-order-pricing/</link><guid isPermaLink="true">https://blog.ygjoon.cn/flutter/project-cases/flutter-project-case-order-pricing/</guid><description>请求里哪些字段来自用户选择，哪些金额只能由服务端确认？示例将表单快照、费用展示和最终计价分开处理。</description><pubDate>Tue, 15 Sep 2026 01:48:00 GMT</pubDate><category>Flutter</category><category>项目案例</category><category>订单实战</category></item><item><title>Flutter 项目案例（五）：地图位置选择、搜索结果与地址回传</title><link>https://blog.ygjoon.cn/flutter/project-cases/flutter-project-case-map-selection/</link><guid isPermaLink="true">https://blog.ygjoon.cn/flutter/project-cases/flutter-project-case-map-selection/</guid><description>选择城市、搜索地点或拖动地图后，地址结果都要回到同一份选择状态，再交给后续下单页面。</description><pubDate>Sat, 12 Sep 2026 09:26:00 GMT</pubDate><category>Flutter</category><category>项目案例</category><category>地图位置选择</category></item><item><title>Flutter 项目案例（六）：从详情页进入提交面板</title><link>https://blog.ygjoon.cn/flutter/project-cases/flutter-project-case-detail-to-form/</link><guid isPermaLink="true">https://blog.ygjoon.cn/flutter/project-cases/flutter-project-case-detail-to-form/</guid><description>从详情页进入表单时，已有选择怎样带过去、失败时又该保留什么？本文落到共享状态、时段选择和提交面板的实现。</description><pubDate>Sat, 12 Sep 2026 04:28:00 GMT</pubDate><category>Flutter</category><category>项目案例</category><category>创建流程</category></item><item><title>Flutter 项目案例（四）：首页数据解析、compute 与页面活跃状态</title><link>https://blog.ygjoon.cn/flutter/project-cases/flutter-project-case-home-data-lifecycle/</link><guid isPermaLink="true">https://blog.ygjoon.cn/flutter/project-cases/flutter-project-case-home-data-lifecycle/</guid><description>首页数据先解析再交给卡片；示例将 JSON 转换放到独立 isolate，并在页面不可见时暂停轮播计时器。</description><pubDate>Wed, 09 Sep 2026 04:45:00 GMT</pubDate><category>Flutter</category><category>项目案例</category><category>性能优化</category></item><item><title>Flutter 项目案例（三）：定位请求的生命周期与失败降级</title><link>https://blog.ygjoon.cn/flutter/project-cases/flutter-project-case-location-lifecycle/</link><guid isPermaLink="true">https://blog.ygjoon.cn/flutter/project-cases/flutter-project-case-location-lifecycle/</guid><description>定位页面会遇到权限变化、地图事件和传感器缺失等分支。文中按数据流说明平台回退、区域解析与本地缓存如何衔接。</description><pubDate>Wed, 09 Sep 2026 01:35:00 GMT</pubDate><category>Flutter</category><category>项目案例</category><category>定位</category></item><item><title>SwiftUI 启动流程设计：隐私同意与登录恢复状态</title><link>https://blog.ygjoon.cn/ios/swiftui-launch-and-consent/</link><guid isPermaLink="true">https://blog.ygjoon.cn/ios/swiftui-launch-and-consent/</guid><description>隐私确认、登录恢复和系统回调谁先发生，会影响首屏状态。本文用显式启动状态串起确认、恢复与首页创建。</description><pubDate>Sun, 06 Sep 2026 04:14:00 GMT</pubDate><category>iOS</category><category>SwiftUI</category><category>启动流程</category><category>隐私</category><category>案例</category></item><item><title>Flutter 项目案例（二）：隐私同意、SDK 初始化与登录恢复</title><link>https://blog.ygjoon.cn/flutter/project-cases/flutter-project-case-consent-and-session/</link><guid isPermaLink="true">https://blog.ygjoon.cn/flutter/project-cases/flutter-project-case-consent-and-session/</guid><description>隐私确认之前，第三方 SDK 和登录会话分别应处于什么状态？示例给出初始化顺序，并标出用户拒绝后的处理边界。</description><pubDate>Sat, 05 Sep 2026 07:02:00 GMT</pubDate><category>Flutter</category><category>项目案例</category><category>隐私与登录</category></item><item><title>Flutter 项目案例（一）：从 main() 到首页</title><link>https://blog.ygjoon.cn/flutter/project-cases/flutter-project-case-app-startup/</link><guid isPermaLink="true">https://blog.ygjoon.cn/flutter/project-cases/flutter-project-case-app-startup/</guid><description>应用从 main() 到首页要经过哪些准备？这篇把环境初始化、GetX 注册、隐私确认和首个路由放进同一条启动链路。</description><pubDate>Sat, 05 Sep 2026 02:37:00 GMT</pubDate><category>Flutter</category><category>项目案例</category><category>架构拆解</category></item><item><title>Nuxt 3 服务端渲染实践：路由、数据获取与水合避坑</title><link>https://blog.ygjoon.cn/web/nuxt3-ssr-practice/</link><guid isPermaLink="true">https://blog.ygjoon.cn/web/nuxt3-ssr-practice/</guid><description>useFetch 和 useAsyncData 选哪个？文件路由组织、server/api 写接口，以及服务端水合 mismatch 的三个经典坑。</description><pubDate>Wed, 02 Sep 2026 02:43:00 GMT</pubDate><category>Nuxt</category><category>Vue</category><category>SSR</category><category>前端</category></item><item><title>NestJS 后端入门：Controller、Provider、Module 与依赖注入</title><link>https://blog.ygjoon.cn/web/nestjs-backend-basics/</link><guid isPermaLink="true">https://blog.ygjoon.cn/web/nestjs-backend-basics/</guid><description>沿一条 NestJS 请求链认识 Controller、Provider 与 Module，再看 DTO 和 ValidationPipe 怎样把参数校验放在业务逻辑之前。</description><pubDate>Tue, 01 Sep 2026 05:15:00 GMT</pubDate><category>NestJS</category><category>Node.js</category><category>后端</category></item><item><title>Vue 3 组合式 API 入门：ref 还是 reactive，先把这道选择题做对</title><link>https://blog.ygjoon.cn/web/vue3-composition-api-basics/</link><guid isPermaLink="true">https://blog.ygjoon.cn/web/vue3-composition-api-basics/</guid><description>ref 和 reactive 怎么选？从响应式原理讲起，用计数器、表单、列表三个场景讲透 computed、watch 和生命周期。</description><pubDate>Tue, 01 Sep 2026 02:01:00 GMT</pubDate><category>Vue</category><category>前端</category><category>组合式API</category></item><item><title>Flutter IPP 协议静默打印插件开发指南</title><link>https://blog.ygjoon.cn/flutter/flutter-ipp-silent-printing-plugin/</link><guid isPermaLink="true">https://blog.ygjoon.cn/flutter/flutter-ipp-silent-printing-plugin/</guid><description>基于 IPP 打印协议做企业级静默打印方案：局域网打印机自动发现、打印作业提交与状态轮询，一套插件架构同时适配桌面与移动五端</description><pubDate>Fri, 05 Dec 2025 05:47:06 GMT</pubDate><category>Flutter</category></item><item><title>Flutter 系统权限申请与配置详解</title><link>https://blog.ygjoon.cn/flutter/flutter-system-permissions/</link><guid isPermaLink="true">https://blog.ygjoon.cn/flutter/flutter-system-permissions/</guid><description>用 permission_handler 一套 API 申请相机、定位等系统权限：含权限被拒后的引导话术和跳转设置页处理</description><pubDate>Fri, 05 Dec 2025 02:32:12 GMT</pubDate><category>Flutter</category></item><item><title>Flutter 与设备信息桥接技术详解</title><link>https://blog.ygjoon.cn/flutter/flutter-device-info-bridge/</link><guid isPermaLink="true">https://blog.ygjoon.cn/flutter/flutter-device-info-bridge/</guid><description>机型、系统版本、CPU 内存、网络状态、电池信息一次拿全：插件、MethodChannel、FFI 三种取数方式对比，附设备跑分对比与健康监控做法</description><pubDate>Thu, 04 Dec 2025 10:35:01 GMT</pubDate><category>Flutter</category></item><item><title>Flutter 与文件管理桥接技术详解</title><link>https://blog.ygjoon.cn/flutter/flutter-file-management-bridge/</link><guid isPermaLink="true">https://blog.ygjoon.cn/flutter/flutter-file-management-bridge/</guid><description>Android File API 与 iOS FileManager 双端桥接：内部、外部、缓存目录怎么选，文件浏览搜索预览一条龙，压缩解压与云存储集成的做法</description><pubDate>Thu, 04 Dec 2025 10:26:52 GMT</pubDate><category>Flutter</category></item><item><title>Flutter 与短信电话桥接技术详解</title><link>https://blog.ygjoon.cn/flutter/flutter-sms-and-phone-bridge/</link><guid isPermaLink="true">https://blog.ygjoon.cn/flutter/flutter-sms-and-phone-bridge/</guid><description>短信验证码场景的双端桥接：短信收发与模板管理、通话记录查询、来电监听识别，原生能力一次封装处处复用</description><pubDate>Thu, 04 Dec 2025 10:19:32 GMT</pubDate><category>Flutter</category></item><item><title>Flutter 与联系人管理桥接技术详解</title><link>https://blog.ygjoon.cn/flutter/flutter-contacts-management-bridge/</link><guid isPermaLink="true">https://blog.ygjoon.cn/flutter/flutter-contacts-management-bridge/</guid><description>Android ContactsContract 与 iOS Contacts Framework 双端桥接：联系人增删改查、分组管理、搜索与备份恢复</description><pubDate>Thu, 04 Dec 2025 10:12:25 GMT</pubDate><category>Flutter</category></item><item><title>Flutter 小窗播放桥接技术详解</title><link>https://blog.ygjoon.cn/flutter/flutter-picture-in-picture-bridge/</link><guid isPermaLink="true">https://blog.ygjoon.cn/flutter/flutter-picture-in-picture-bridge/</guid><description>视频悬浮窗的双端原生接法：进入画中画模式、悬浮窗内播放暂停切集，配合播放器插件做出完整的后台小窗体验</description><pubDate>Thu, 04 Dec 2025 09:53:05 GMT</pubDate><category>Flutter</category></item><item><title>Flutter 与定位服务桥接技术详解</title><link>https://blog.ygjoon.cn/flutter/flutter-location-services-bridge/</link><guid isPermaLink="true">https://blog.ygjoon.cn/flutter/flutter-location-services-bridge/</guid><description>Android LocationManager 与 iOS CoreLocation 双端桥接：实时位置追踪、地理围栏、轨迹记录，高精度与低功耗模式的取舍</description><pubDate>Thu, 04 Dec 2025 09:49:04 GMT</pubDate><category>Flutter</category></item><item><title>Flutter 与传感器桥接</title><link>https://blog.ygjoon.cn/flutter/flutter-sensor-bridge/</link><guid isPermaLink="true">https://blog.ygjoon.cn/flutter/flutter-sensor-bridge/</guid><description>以健身追踪应用为引子：加速度计、陀螺仪、磁力计等传感器选型，采样频率与功耗的权衡、低通滤波去噪，再讲传感器融合的实战套路</description><pubDate>Thu, 04 Dec 2025 08:44:25 GMT</pubDate><category>Flutter</category><category>传感器</category><category>加速度计</category><category>陀螺仪</category><category>磁力计</category><category>光线传感器</category></item><item><title>Flutter 与音频视频播放桥接</title><link>https://blog.ygjoon.cn/flutter/flutter-audio-video-playback-bridge/</link><guid isPermaLink="true">https://blog.ygjoon.cn/flutter/flutter-audio-video-playback-bridge/</guid><description>以音乐视频应用为引子：本地与在线媒体播放、播放列表管理、后台播放与音频焦点，MP4/HLS 等格式兼容和双端差异一次讲透</description><pubDate>Thu, 04 Dec 2025 08:36:15 GMT</pubDate><category>Flutter</category><category>音频播放</category><category>视频播放</category><category>媒体控制</category><category>后台播放</category><category>播放器</category></item><item><title>Flutter 与相机和相册桥接</title><link>https://blog.ygjoon.cn/flutter/flutter-camera-and-photo-library-bridge/</link><guid isPermaLink="true">https://blog.ygjoon.cn/flutter/flutter-camera-and-photo-library-bridge/</guid><description>以社交分享应用为引子：camera 拍照录像、image_picker 与 photo_manager 做媒体选择，权限、设备兼容与大图内存全覆盖</description><pubDate>Thu, 04 Dec 2025 08:28:03 GMT</pubDate><category>Flutter</category><category>相机</category><category>相册</category><category>图片处理</category><category>视频处理</category><category>媒体管理</category></item><item><title>Flutter 与 NFC 近场通信桥接</title><link>https://blog.ygjoon.cn/flutter/flutter-nfc-bridge/</link><guid isPermaLink="true">https://blog.ygjoon.cn/flutter/flutter-nfc-bridge/</guid><description>以智能门禁系统为引子：NFC 三种工作模式、NDEF 数据格式与标签选型，flutter_nfc_kit 读卡写卡，以及双端平台差异</description><pubDate>Thu, 04 Dec 2025 08:23:48 GMT</pubDate><category>Flutter</category><category>NFC</category><category>近场通信</category><category>平台桥接</category><category>移动支付</category><category>智能标签</category></item><item><title>Flutter 与蓝牙设备桥接</title><link>https://blog.ygjoon.cn/flutter/flutter-bluetooth-device-bridge/</link><guid isPermaLink="true">https://blog.ygjoon.cn/flutter/flutter-bluetooth-device-bridge/</guid><description>以智能家居项目为引子：经典蓝牙与 BLE 选型，flutter_blue_plus 做设备扫描、连接管理与数据传输，Android 12+ 蓝牙权限别漏</description><pubDate>Thu, 04 Dec 2025 08:20:44 GMT</pubDate><category>Flutter</category><category>蓝牙</category><category>设备通信</category><category>平台桥接</category><category>IoT</category><category>硬件集成</category></item><item><title>Flutter 状态管理-Riverpod 实战指南</title><link>https://blog.ygjoon.cn/flutter/flutter-riverpod-practical-guide/</link><guid isPermaLink="true">https://blog.ygjoon.cn/flutter/flutter-riverpod-practical-guide/</guid><description>Riverpod 落地实战：ProviderScope 初始化、ConsumerWidget 读状态、autoDispose 管资源释放，附常见误区</description><pubDate>Thu, 04 Dec 2025 08:06:01 GMT</pubDate><category>Flutter</category><category>Riverpod</category><category>状态管理</category><category>实战指南</category><category>依赖注入</category><category>响应式编程</category></item><item><title>Flutter 状态管理-综合实战指南</title><link>https://blog.ygjoon.cn/flutter/flutter-state-management-guide/</link><guid isPermaLink="true">https://blog.ygjoon.cn/flutter/flutter-state-management-guide/</guid><description>同一套电商功能用 Provider、BLoC、GetX、Riverpod 各做一遍：对比写法与适用场景，帮你选出最合适的方案</description><pubDate>Thu, 04 Dec 2025 07:59:31 GMT</pubDate><category>Flutter</category><category>状态管理</category><category>Provider</category><category>BLOC</category><category>GetX</category><category>Riverpod</category><category>实战指南</category></item><item><title>Flutter 状态管理-BLOC 实战指南</title><link>https://blog.ygjoon.cn/flutter/flutter-bloc-practical-guide/</link><guid isPermaLink="true">https://blog.ygjoon.cn/flutter/flutter-bloc-practical-guide/</guid><description>跟着一个咖啡店 App 从零搭 BLoC：事件、状态、Bloc 三件套，订单、支付、库存更新全走状态流</description><pubDate>Thu, 04 Dec 2025 07:50:31 GMT</pubDate><category>Flutter</category><category>BLOC</category><category>状态管理</category><category>实战指南</category><category>故事案例</category></item><item><title>Flutter 集成穿山甲 SDK 桥接</title><link>https://blog.ygjoon.cn/flutter/flutter-pangle-sdk-bridge/</link><guid isPermaLink="true">https://blog.ygjoon.cn/flutter/flutter-pangle-sdk-bridge/</guid><description>MethodChannel 手写穿山甲广告桥接：开屏、激励视频、Banner、插屏四种广告位接入与收益数据统计</description><pubDate>Thu, 04 Dec 2025 07:45:37 GMT</pubDate><category>Flutter</category><category>穿山甲SDK</category><category>广告集成</category><category>平台桥接</category><category>收益优化</category></item><item><title>Flutter 跨平台数据同步与状态管理桥接</title><link>https://blog.ygjoon.cn/flutter/flutter-cross-platform-state-sync/</link><guid isPermaLink="true">https://blog.ygjoon.cn/flutter/flutter-cross-platform-state-sync/</guid><description>增量与双向同步策略、离线队列、数据冲突合并规则：Flutter 跨端数据一致性的落地架构</description><pubDate>Thu, 04 Dec 2025 07:38:30 GMT</pubDate><category>Flutter</category><category>数据同步</category><category>状态管理</category><category>跨平台</category><category>冲突解决</category></item><item><title>Flutter 与第三方 SDK 桥接最佳实践</title><link>https://blog.ygjoon.cn/flutter/flutter-third-party-sdk-bridge-practices/</link><guid isPermaLink="true">https://blog.ygjoon.cn/flutter/flutter-third-party-sdk-bridge-practices/</guid><description>统一接口抽象屏蔽各家 SDK 的差异：SDK 工厂统一注册管理、初始化与资源释放的生命周期，再谈错误处理和跨平台兼容的那些坑</description><pubDate>Thu, 04 Dec 2025 07:32:14 GMT</pubDate><category>Flutter</category><category>第三方集成</category><category>平台桥接</category><category>最佳实践</category><category>跨平台</category></item><item><title>Flutter 平台通道高级应用</title><link>https://blog.ygjoon.cn/flutter/flutter-platform-channels-advanced/</link><guid isPermaLink="true">https://blog.ygjoon.cn/flutter/flutter-platform-channels-advanced/</guid><description>手写自定义二进制编解码器压缩通道传输开销，附平台通道性能调优与安全通信的实战做法</description><pubDate>Thu, 04 Dec 2025 07:27:24 GMT</pubDate><category>Flutter</category><category>平台通道</category><category>MethodChannel</category><category>EventChannel</category><category>BasicMessageChannel</category></item><item><title>Flutter FFI 桥接技术</title><link>https://blog.ygjoon.cn/flutter/flutter-ffi-bridge/</link><guid isPermaLink="true">https://blog.ygjoon.cn/flutter/flutter-ffi-bridge/</guid><description>用 dart:ffi 直接调用 C/C++ 原生库：Dart 与 C 类型映射、字符串数组的指针转换、calloc 内存管理，再用 ffigen 自动生成绑定</description><pubDate>Thu, 04 Dec 2025 07:23:02 GMT</pubDate><category>Flutter</category><category>FFI</category><category>C/C++</category><category>原生集成</category><category>性能优化</category></item><item><title>Flutter 与桌面平台桥接</title><link>https://blog.ygjoon.cn/flutter/flutter-desktop-platform-bridge/</link><guid isPermaLink="true">https://blog.ygjoon.cn/flutter/flutter-desktop-platform-bridge/</guid><description>Flutter 落地桌面三端：Windows 热键注册与文件对话框、macOS/Linux 系统 API 调用思路，把移动端代码复用到桌面应用的适配要点</description><pubDate>Thu, 04 Dec 2025 07:20:16 GMT</pubDate><category>Flutter</category><category>桌面平台</category><category>Windows</category><category>macOS</category><category>Linux</category></item><item><title>Flutter 与 Web 平台桥接</title><link>https://blog.ygjoon.cn/flutter/flutter-web-platform-bridge/</link><guid isPermaLink="true">https://blog.ygjoon.cn/flutter/flutter-web-platform-bridge/</guid><description>在网页端双向调用原生脚本：用注解声明外部函数、把 Dart 回调注册给页面用，并聊聊 Web 端渲染的性能取舍</description><pubDate>Thu, 04 Dec 2025 07:16:56 GMT</pubDate><category>Flutter</category><category>Web平台</category><category>JavaScript互操作</category><category>DOM</category></item><item><title>Flutter 与原生平台深度桥接</title><link>https://blog.ygjoon.cn/flutter/flutter-native-platform-bridge/</link><guid isPermaLink="true">https://blog.ygjoon.cn/flutter/flutter-native-platform-bridge/</guid><description>MethodChannel 往深了玩：自定义二进制编解码器压榨通道性能，讲清内存管理与复杂场景的桥接模式，给高性能混合应用打底</description><pubDate>Thu, 04 Dec 2025 07:14:16 GMT</pubDate><category>Flutter</category><category>平台桥接</category><category>平台通道</category><category>性能优化</category></item><item><title>Kotlin/JS 系列文章索引</title><link>https://blog.ygjoon.cn/kt/kotlin-js-series-index/</link><guid isPermaLink="true">https://blog.ygjoon.cn/kt/kotlin-js-series-index/</guid><description>Kotlin/JS 系列学习路线图：基础篇到进阶篇的阅读顺序，每篇的前置知识与关联，照着走不迷路。</description><pubDate>Thu, 04 Dec 2025 07:06:43 GMT</pubDate><category>Kotlin</category><category>JavaScript</category><category>Kotlin/JS</category><category>Kotlin Multiplatform</category><category>系列文章</category><category>索引</category><category>导航</category></item><item><title>Kotlin/JS 实战项目与最佳实践</title><link>https://blog.ygjoon.cn/kt/kotlin-js-project-best-practices/</link><guid isPermaLink="true">https://blog.ygjoon.cn/kt/kotlin-js-project-best-practices/</guid><description>完整 Kotlin/JS 项目实战：任务管理应用的架构设计、用户认证、状态管理，从脚手架到部署的全流程。</description><pubDate>Thu, 04 Dec 2025 07:00:51 GMT</pubDate><category>Kotlin</category><category>JavaScript</category><category>实战项目</category><category>最佳实践</category><category>项目架构</category><category>Android</category></item><item><title>Kotlin/JS 与 Kotlin Multiplatform 协同开发</title><link>https://blog.ygjoon.cn/kt/kotlin-js-kotlin-multiplatform/</link><guid isPermaLink="true">https://blog.ygjoon.cn/kt/kotlin-js-kotlin-multiplatform/</guid><description>KMP 项目里的 Web 端：共享数据模型与业务逻辑、expect/actual 平台实现，Web 与移动端共用一套核心代码。</description><pubDate>Thu, 04 Dec 2025 06:55:39 GMT</pubDate><category>Kotlin</category><category>JavaScript</category><category>Multiplatform</category><category>跨平台</category><category>代码共享</category><category>Android</category></item><item><title>Kotlin/JS 性能优化与调试技巧</title><link>https://blog.ygjoon.cn/kt/kotlin-js-performance-debugging/</link><guid isPermaLink="true">https://blog.ygjoon.cn/kt/kotlin-js-performance-debugging/</guid><description>Kotlin/JS 性能优化：路由级代码分割、动态导入懒加载、协程生命周期防泄漏，配浏览器调试技巧。</description><pubDate>Thu, 04 Dec 2025 06:53:08 GMT</pubDate><category>Kotlin</category><category>JavaScript</category><category>性能优化</category><category>调试</category><category>监控</category><category>Android</category></item><item><title>Kotlin/JS React 集成与组件开发</title><link>https://blog.ygjoon.cn/kt/kotlin-js-react-components/</link><guid isPermaLink="true">https://blog.ygjoon.cn/kt/kotlin-js-react-components/</guid><description>Kotlin/JS 写 React：函数组件 DSL、状态管理、路由集成，类型安全加持下的前端组件开发流程。</description><pubDate>Thu, 04 Dec 2025 06:52:01 GMT</pubDate><category>Kotlin</category><category>JavaScript</category><category>React</category><category>组件开发</category><category>状态管理</category><category>Android</category></item><item><title>Kotlin/JS 模块化与依赖管理</title><link>https://blog.ygjoon.cn/kt/kotlin-js-modules-dependencies/</link><guid isPermaLink="true">https://blog.ygjoon.cn/kt/kotlin-js-modules-dependencies/</guid><description>Kotlin/JS 工程化：Gradle 模块配置、CommonJS/ES 模块选型、npm 包集成与版本管理，大型项目的组织方式。</description><pubDate>Thu, 04 Dec 2025 06:47:15 GMT</pubDate><category>Kotlin</category><category>JavaScript</category><category>模块化</category><category>依赖管理</category><category>Gradle</category><category>Android</category></item><item><title>Kotlin/JS 异步编程与协程</title><link>https://blog.ygjoon.cn/kt/kotlin-js-async-coroutines/</link><guid isPermaLink="true">https://blog.ygjoon.cn/kt/kotlin-js-async-coroutines/</guid><description>Kotlin/JS 异步双轨：协程与 Promise 互转、JS 环境下的调度器配置，统一前后端一致的异步写法。</description><pubDate>Thu, 04 Dec 2025 06:44:44 GMT</pubDate><category>Kotlin</category><category>JavaScript</category><category>异步编程</category><category>协程</category><category>Promise</category><category>Android</category></item><item><title>Kotlin/JS DOM 操作与 Web API 集成</title><link>https://blog.ygjoon.cn/kt/kotlin-js-dom-web-api/</link><guid isPermaLink="true">https://blog.ygjoon.cn/kt/kotlin-js-dom-web-api/</guid><description>Kotlin/JS 操作浏览器：类型安全的 DOM 接口、事件监听与自定义事件、CSS 样式控制，用 Kotlin 写交互式网页。</description><pubDate>Thu, 04 Dec 2025 06:40:11 GMT</pubDate><category>Kotlin</category><category>JavaScript</category><category>DOM</category><category>Web API</category><category>事件处理</category><category>Android</category></item><item><title>Kotlin/JS 与 JavaScript 互操作</title><link>https://blog.ygjoon.cn/kt/kotlin-js-javascript-interop/</link><guid isPermaLink="true">https://blog.ygjoon.cn/kt/kotlin-js-javascript-interop/</guid><description>Kotlin/JS 调用 JS 生态：external 声明外部 API、@JsModule 导入 npm 包、动态类型处理，复用海量第三方库。</description><pubDate>Thu, 04 Dec 2025 06:38:26 GMT</pubDate><category>Kotlin</category><category>JavaScript</category><category>互操作</category><category>第三方集成</category><category>external</category><category>Android</category></item><item><title>Kotlin/JS 基础语法与类型映射</title><link>https://blog.ygjoon.cn/kt/kotlin-js-syntax-type-mapping/</link><guid isPermaLink="true">https://blog.ygjoon.cn/kt/kotlin-js-syntax-type-mapping/</guid><description>Kotlin/JS 类型系统：Kotlin 类型到 JS 类型的映射规则、Any/Unit/Nothing 特殊处理，集合互转的注意事项。</description><pubDate>Thu, 04 Dec 2025 06:36:05 GMT</pubDate><category>Kotlin</category><category>JavaScript</category><category>类型系统</category><category>语法</category><category>Android</category></item><item><title>Kotlin/JS 简介与环境搭建</title><link>https://blog.ygjoon.cn/kt/kotlin-js-intro-setup/</link><guid isPermaLink="true">https://blog.ygjoon.cn/kt/kotlin-js-intro-setup/</guid><description>Kotlin/JS 入门第一课：它是什么、适合什么场景，JDK 与 IDE 安装，跑通第一个 Kotlin 写的网页。</description><pubDate>Thu, 04 Dec 2025 06:34:27 GMT</pubDate><category>Kotlin</category><category>JavaScript</category><category>基础</category><category>环境搭建</category><category>Android</category></item><item><title>Flutter × OpenHarmony 轻量设备：LiteOS 可行性分析</title><link>https://blog.ygjoon.cn/flutter/flutter-openharmony-liteos-evaluation/</link><guid isPermaLink="true">https://blog.ygjoon.cn/flutter/flutter-openharmony-liteos-evaluation/</guid><description>区分 OpenHarmony mini、small 与 standard 系统类型，评估现有 Flutter OHOS 社区工具链在轻量设备上的适用边界。</description><pubDate>Tue, 04 Nov 2025 01:29:53 GMT</pubDate><category>Flutter</category><category>OpenHarmony</category><category>LiteOS</category><category>IoT</category></item><item><title>Flutter 数据：离线同步与一致性实践</title><link>https://blog.ygjoon.cn/flutter/flutter-offline-sync-and-consistency/</link><guid isPermaLink="true">https://blog.ygjoon.cn/flutter/flutter-offline-sync-and-consistency/</guid><description>弱网离线场景的完整打法：Offline-First 架构、hive 与 drift 缓存选型、syncState 状态机与冲突合并策略</description><pubDate>Sun, 02 Nov 2025 02:11:47 GMT</pubDate><category>Flutter</category><category>数据同步</category><category>离线能力</category></item><item><title>Flutter 安全：数据安全与加密实践</title><link>https://blog.ygjoon.cn/flutter/flutter-data-security-and-encryption/</link><guid isPermaLink="true">https://blog.ygjoon.cn/flutter/flutter-data-security-and-encryption/</guid><description>Token 别明文存：flutter_secure_storage 接系统钥匙串，SQLCipher 给数据库加 key，HTTPS 证书校验防中间人</description><pubDate>Thu, 30 Oct 2025 07:40:50 GMT</pubDate><category>Flutter</category><category>安全</category><category>加密</category></item><item><title>Flutter 工程化：CI/CD 自动化发布实践</title><link>https://blog.ygjoon.cn/flutter/flutter-ci-cd-automated-release/</link><guid isPermaLink="true">https://blog.ygjoon.cn/flutter/flutter-ci-cd-automated-release/</guid><description>从工具选型到流水线搭建：GitHub Actions、Jenkins、Codemagic 怎么选，Docker 统一构建环境，Lint、测试、灰度发布串成一条线</description><pubDate>Tue, 28 Oct 2025 05:42:15 GMT</pubDate><category>Flutter</category><category>工程化</category><category>CI/CD</category></item><item><title>Android Kotlin Wear OS 与 Compose 多端协同</title><link>https://blog.ygjoon.cn/kt/android-kotlin-wearos-compose/</link><guid isPermaLink="true">https://blog.ygjoon.cn/kt/android-kotlin-wearos-compose/</guid><description>Wear OS 开发实战：手表端 Compose 布局差异、Tiles 快捷卡片、手机手表数据同步，以及低功耗场景下的取舍。</description><pubDate>Sun, 26 Oct 2025 05:21:45 GMT</pubDate><category>Kotlin</category><category>Compose</category><category>WearOS</category><category>Android</category></item><item><title>Android Kotlin WorkManager 后台任务策略</title><link>https://blog.ygjoon.cn/kt/android-kotlin-workmanager-background-tasks/</link><guid isPermaLink="true">https://blog.ygjoon.cn/kt/android-kotlin-workmanager-background-tasks/</guid><description>WorkManager 后台任务全攻略：约束调度、链式与周期任务、Hilt 注入 Worker，以及国内 ROM 保活这个绕不开的现实问题。</description><pubDate>Thu, 23 Oct 2025 05:11:12 GMT</pubDate><category>Kotlin</category><category>WorkManager</category><category>后台任务</category><category>Android</category></item><item><title>Android Kotlin 安全加固与数据保护</title><link>https://blog.ygjoon.cn/kt/android-kotlin-security-data-protection/</link><guid isPermaLink="true">https://blog.ygjoon.cn/kt/android-kotlin-security-data-protection/</guid><description>Android 安全纵深防御：本地数据加密、证书锁定、代码混淆、Root 检测，没有银弹，每层都得做。</description><pubDate>Sun, 19 Oct 2025 09:57:57 GMT</pubDate><category>Kotlin</category><category>安全</category><category>数据保护</category><category>Android</category></item><item><title>Android Kotlin App Startup 优化策略</title><link>https://blog.ygjoon.cn/kt/android-kotlin-app-startup-optimization/</link><guid isPermaLink="true">https://blog.ygjoon.cn/kt/android-kotlin-app-startup-optimization/</guid><description>用 Macrobenchmark 的 StartupTimingMetric 记录冷启动 TTID 与 TTFD，再从启动 trace 检查主线程初始化、磁盘 I/O 和首屏依赖。</description><pubDate>Sat, 18 Oct 2025 03:23:13 GMT</pubDate><category>Kotlin</category><category>启动优化</category><category>Android</category></item><item><title>Android Kotlin 性能分析与内存调优</title><link>https://blog.ygjoon.cn/kt/android-kotlin-performance-memory-tuning/</link><guid isPermaLink="true">https://blog.ygjoon.cn/kt/android-kotlin-performance-memory-tuning/</guid><description>用 Macrobenchmark、Perfetto 与 Android Studio Profiler 定位启动、掉帧、内存和 ANR 问题，并按设备与场景设定可复现的指标。</description><pubDate>Wed, 15 Oct 2025 03:06:57 GMT</pubDate><category>Kotlin</category><category>性能优化</category><category>调优</category><category>Android</category></item><item><title>Android Kotlin 多模块资源与路由管理</title><link>https://blog.ygjoon.cn/kt/android-kotlin-multimodule-resources-routing/</link><guid isPermaLink="true">https://blog.ygjoon.cn/kt/android-kotlin-multimodule-resources-routing/</guid><description>大型项目多模块拆分实战：资源命名规范防冲突、接口化导航解耦、动态特性模块，以及模块数量的甜蜜点。</description><pubDate>Sat, 11 Oct 2025 01:33:51 GMT</pubDate><category>Kotlin</category><category>多模块</category><category>架构</category><category>Android</category></item><item><title>Android Kotlin 架构组件与多模块协同</title><link>https://blog.ygjoon.cn/kt/android-kotlin-architecture-multimodule/</link><guid isPermaLink="true">https://blog.ygjoon.cn/kt/android-kotlin-architecture-multimodule/</guid><description>Android 架构拼图：ViewModel+UseCase 分层、DataStore+Flow 数据层、WorkManager 后台任务，多模块协同约定。</description><pubDate>Thu, 09 Oct 2025 09:39:05 GMT</pubDate><category>Kotlin</category><category>Android</category><category>架构</category></item><item><title>Android Kotlin Gradle Kotlin DSL 与构建优化</title><link>https://blog.ygjoon.cn/kt/android-kotlin-gradle-dsl-build-optimization/</link><guid isPermaLink="true">https://blog.ygjoon.cn/kt/android-kotlin-gradle-dsl-build-optimization/</guid><description>把 Gradle 脚本换成 Kotlin DSL：类型安全的构建配置、Version Catalog 统一版本、构建逻辑抽模块，附带构建提速的实测手段。</description><pubDate>Wed, 08 Oct 2025 06:33:20 GMT</pubDate><category>Kotlin</category><category>Gradle</category><category>构建</category><category>Android</category></item><item><title>Android Kotlin KSP 编译期代码生成</title><link>https://blog.ygjoon.cn/kt/android-kotlin-ksp-code-generation/</link><guid isPermaLink="true">https://blog.ygjoon.cn/kt/android-kotlin-ksp-code-generation/</guid><description>保留 Kotlin 1.9 与 KSP 1.x 的 Processor 示例和旧项目排查线索；新工程请先阅读 KSP2 与 Kotlin 2.x 更新说明。</description><pubDate>Sat, 04 Oct 2025 10:41:41 GMT</pubDate><category>Kotlin</category><category>KSP</category><category>编译期</category><category>Android</category></item><item><title>Android Kotlin 协程测试与调试技巧</title><link>https://blog.ygjoon.cn/kt/android-kotlin-coroutine-testing-debugging/</link><guid isPermaLink="true">https://blog.ygjoon.cn/kt/android-kotlin-coroutine-testing-debugging/</guid><description>协程测试与排障：runTest 虚拟时间、Turbine 测 Flow、协程调试器看调用栈，解决 flaky 测试和泄漏两大痛点。</description><pubDate>Fri, 03 Oct 2025 10:20:21 GMT</pubDate><category>Kotlin</category><category>协程</category><category>测试</category><category>Android</category></item><item><title>Android Kotlin Flow 高级操作符与背压控制</title><link>https://blog.ygjoon.cn/kt/android-kotlin-flow-operators-backpressure/</link><guid isPermaLink="true">https://blog.ygjoon.cn/kt/android-kotlin-flow-operators-backpressure/</guid><description>Flow 高阶操作符：flatMapLatest 切换搜索、buffer/conflate/collectLatest 背压取舍，回调转 Flow 接入。</description><pubDate>Wed, 01 Oct 2025 02:58:04 GMT</pubDate><category>Kotlin</category><category>Flow</category><category>背压</category><category>Android</category></item><item><title>Flutter 鸿蒙化进阶：OpenHarmony 性能、插件与发布检查</title><link>https://blog.ygjoon.cn/flutter/flutter-openharmony-optimization/</link><guid isPermaLink="true">https://blog.ygjoon.cn/flutter/flutter-openharmony-optimization/</guid><description>基于 OpenHarmony SIG 社区 Flutter 工具链，整理性能测量、插件覆盖、模型配置和 HAP 发布前检查。</description><pubDate>Sun, 28 Sep 2025 07:46:40 GMT</pubDate><category>Flutter</category><category>鸿蒙</category><category>性能优化</category></item><item><title>Flutter 桌面端开发实践指南</title><link>https://blog.ygjoon.cn/flutter/flutter-desktop-development/</link><guid isPermaLink="true">https://blog.ygjoon.cn/flutter/flutter-desktop-development/</guid><description>Windows、macOS、Linux 三端环境搭建，宽屏三栏布局、键盘快捷键与右键菜单适配，附打包发布流程</description><pubDate>Fri, 26 Sep 2025 03:04:29 GMT</pubDate><category>Flutter</category><category>桌面应用</category></item><item><title>Flutter 鸿蒙化：HarmonyOS NEXT 适配指南</title><link>https://blog.ygjoon.cn/flutter/flutter-harmonyos-next-guide/</link><guid isPermaLink="true">https://blog.ygjoon.cn/flutter/flutter-harmonyos-next-guide/</guid><description>梳理 Flutter 适配 HarmonyOS NEXT 的社区方案与架构边界，并标注示意内容和实际适配仓库的区别。</description><pubDate>Sun, 21 Sep 2025 02:04:39 GMT</pubDate><category>Flutter</category><category>HarmonyOS NEXT</category><category>ArkTS</category></item><item><title>Android Kotlin 日志监控与可观测性</title><link>https://blog.ygjoon.cn/kt/android-kotlin-logging-observability/</link><guid isPermaLink="true">https://blog.ygjoon.cn/kt/android-kotlin-logging-observability/</guid><description>移动端可观测性搭建：日志分级与脱敏、崩溃上报、性能指标采集，从本地调试到线上仪表板的完整链路。</description><pubDate>Fri, 19 Sep 2025 04:41:19 GMT</pubDate><category>Kotlin</category><category>可观测性</category><category>日志</category><category>Android</category></item><item><title>Android Kotlin Compose 可访问性与无障碍</title><link>https://blog.ygjoon.cn/kt/android-kotlin-compose-accessibility/</link><guid isPermaLink="true">https://blog.ygjoon.cn/kt/android-kotlin-compose-accessibility/</guid><description>让 Compose 应用通过无障碍验收：语义描述、焦点顺序、动态字体适配、色彩对比度，以及用 TalkBack 真机验证的完整检查清单。</description><pubDate>Thu, 18 Sep 2025 07:09:37 GMT</pubDate><category>Kotlin</category><category>Compose</category><category>无障碍</category><category>Android</category></item><item><title>Android Kotlin Channel 与并发通信模式</title><link>https://blog.ygjoon.cn/kt/android-kotlin-channel-concurrency/</link><guid isPermaLink="true">https://blog.ygjoon.cn/kt/android-kotlin-channel-concurrency/</guid><description>Channel 做事件队列和并发流水线：生产者消费者、背压限流、select 多路复用，配上传队列与 UI 节流两个场景，讲清它和 Flow 的分工。</description><pubDate>Tue, 16 Sep 2025 04:49:43 GMT</pubDate><category>Kotlin</category><category>协程</category><category>并发</category><category>Android</category></item><item><title>Android Kotlin Hilt 依赖注入实战</title><link>https://blog.ygjoon.cn/kt/android-kotlin-hilt-dependency-injection/</link><guid isPermaLink="true">https://blog.ygjoon.cn/kt/android-kotlin-hilt-dependency-injection/</guid><description>Hilt 在 Android 工程里的完整落地：模块划分、自定义作用域、Compose 注入、动态特性模块，以及可测试性带来的分层收益。</description><pubDate>Sun, 14 Sep 2025 05:34:25 GMT</pubDate><category>Kotlin</category><category>Hilt</category><category>DI</category><category>Android</category></item><item><title>Android Kotlin DataStore 配置与迁移</title><link>https://blog.ygjoon.cn/kt/android-kotlin-datastore-migration/</link><guid isPermaLink="true">https://blog.ygjoon.cn/kt/android-kotlin-datastore-migration/</guid><description>DataStore 双形态：Preferences 存键值、Proto 存结构化数据，SharedPreferences 存量数据迁移的完整步骤和回滚预案。</description><pubDate>Wed, 10 Sep 2025 08:38:44 GMT</pubDate><category>Kotlin</category><category>DataStore</category><category>Android</category></item><item><title>Android Kotlin Room 数据库进阶实践</title><link>https://blog.ygjoon.cn/kt/android-kotlin-room-database/</link><guid isPermaLink="true">https://blog.ygjoon.cn/kt/android-kotlin-room-database/</guid><description>Room 进阶：实体关联设计、Migration 迁移测试、Flow 响应式查询，多模块下数据库的归属划分与事务边界。</description><pubDate>Sat, 06 Sep 2025 01:42:26 GMT</pubDate><category>Kotlin</category><category>Room</category><category>数据库</category><category>Android</category></item><item><title>Android Kotlin Compose 动画进阶</title><link>https://blog.ygjoon.cn/kt/android-kotlin-compose-animations/</link><guid isPermaLink="true">https://blog.ygjoon.cn/kt/android-kotlin-compose-animations/</guid><description>Compose 动画进阶：AnimationSpec 选型、多属性过渡、Gesture 衔接 Animatable，spring 的物理感胜过线性 tween。</description><pubDate>Fri, 05 Sep 2025 05:24:11 GMT</pubDate><category>Kotlin</category><category>Compose</category><category>动画</category><category>Android</category></item><item><title>Android Kotlin Compose 导航与深链</title><link>https://blog.ygjoon.cn/kt/android-kotlin-compose-navigation-deep-links/</link><guid isPermaLink="true">https://blog.ygjoon.cn/kt/android-kotlin-compose-navigation-deep-links/</guid><description>Compose Navigation 路由设计与深链打通：参数传递、多返回栈 BottomBar、Manifest 跳转配置，多模块下导航图的拆分策略。</description><pubDate>Mon, 01 Sep 2025 01:15:59 GMT</pubDate><category>Kotlin</category><category>Compose</category><category>Navigation</category><category>Android</category></item><item><title>Android Kotlin Compose Material 3 设计体系</title><link>https://blog.ygjoon.cn/kt/android-kotlin-compose-material3/</link><guid isPermaLink="true">https://blog.ygjoon.cn/kt/android-kotlin-compose-material3/</guid><description>Material 3 主题到动态取色：颜色角色、Typography、Design Token 落地，老项目 XML 与 Compose 混用的过渡方案。</description><pubDate>Fri, 29 Aug 2025 07:05:55 GMT</pubDate><category>Kotlin</category><category>Compose</category><category>Material3</category><category>Android</category></item><item><title>Android Kotlin Flow 数据流与状态管理</title><link>https://blog.ygjoon.cn/kt/android-kotlin-flow-state-management/</link><guid isPermaLink="true">https://blog.ygjoon.cn/kt/android-kotlin-flow-state-management/</guid><description>Flow 在 Android UI 层的标准用法：StateFlow 持有界面状态、SharedFlow 发一次性事件，配冷热流区别和背压节流，一套组合拳。</description><pubDate>Wed, 27 Aug 2025 07:37:29 GMT</pubDate><category>Kotlin</category><category>Flow</category><category>Android</category></item><item><title>Android Kotlin 协程在实际项目中的应用</title><link>https://blog.ygjoon.cn/kt/android-kotlin-coroutines-in-practice/</link><guid isPermaLink="true">https://blog.ygjoon.cn/kt/android-kotlin-coroutines-in-practice/</guid><description>协程在真实项目里的组合用法：Retrofit 并发请求、Room 事务、ViewModel 作用域，互斥锁与限流器解决并发冲突。</description><pubDate>Mon, 25 Aug 2025 01:18:36 GMT</pubDate><category>Kotlin</category><category>协程</category><category>Android</category></item><item><title>Android Kotlin Multiplatform 入门</title><link>https://blog.ygjoon.cn/kt/android-kotlin-multiplatform-intro/</link><guid isPermaLink="true">https://blog.ygjoon.cn/kt/android-kotlin-multiplatform-intro/</guid><description>Kotlin Multiplatform 在 Android 工程的切入点：共享模块结构、网络层复用、发布配置，以及它和 Flutter 各自适合的场景边界。</description><pubDate>Sun, 24 Aug 2025 06:49:06 GMT</pubDate><category>Kotlin</category><category>KMM</category><category>Android</category></item><item><title>Android Kotlin Jetpack Compose 实战指南</title><link>https://blog.ygjoon.cn/kt/android-kotlin-jetpack-compose-guide/</link><guid isPermaLink="true">https://blog.ygjoon.cn/kt/android-kotlin-jetpack-compose-guide/</guid><description>Compose 从入门到上线：remember 状态、Modifier 链、LaunchedEffect 副作用边界，外加重组性能和 UI 测试的关键点。</description><pubDate>Sat, 23 Aug 2025 08:35:04 GMT</pubDate><category>Kotlin</category><category>Compose</category><category>Android</category></item><item><title>Flutter 鸿蒙化概述篇：从愿景到落地</title><link>https://blog.ygjoon.cn/flutter/flutter-harmonyos-overview/</link><guid isPermaLink="true">https://blog.ygjoon.cn/flutter/flutter-harmonyos-overview/</guid><description>项目评估从目标系统、API 与 Flutter 适配分支入手，再核对插件覆盖、构建链和设备验证条件。</description><pubDate>Wed, 20 Aug 2025 08:48:16 GMT</pubDate><category>Flutter</category><category>鸿蒙</category><category>适配指南</category></item><item><title>Flutter 鸿蒙化基础适配：OpenHarmony 社区版工程流程</title><link>https://blog.ygjoon.cn/flutter/flutter-openharmony-basics/</link><guid isPermaLink="true">https://blog.ygjoon.cn/flutter/flutter-openharmony-basics/</guid><description>基于 OpenHarmony SIG Flutter 适配仓整理工程创建、HAP 构建、应用模型边界与插件检查流程。</description><pubDate>Sun, 17 Aug 2025 07:09:42 GMT</pubDate><category>Flutter</category><category>鸿蒙</category><category>适配指南</category></item><item><title>Android Kotlin 协程基础与调度器</title><link>https://blog.ygjoon.cn/kt/android-kotlin-coroutines-dispatchers/</link><guid isPermaLink="true">https://blog.ygjoon.cn/kt/android-kotlin-coroutines-dispatchers/</guid><description>Kotlin 协程地基：launch/async、Dispatcher 线程切换、结构化并发的取消传播，从 Dart async 视角对比理解更顺。</description><pubDate>Thu, 14 Aug 2025 03:59:07 GMT</pubDate><category>Kotlin</category><category>协程</category><category>Android</category></item><item><title>Android Kotlin 面向对象与委托模式</title><link>https://blog.ygjoon.cn/kt/android-kotlin-oop-delegation/</link><guid isPermaLink="true">https://blog.ygjoon.cn/kt/android-kotlin-oop-delegation/</guid><description>Kotlin 面向对象精髓：数据类、密封类状态建模，by 关键字做类委托与属性委托，组件化中的真实用例。</description><pubDate>Tue, 12 Aug 2025 05:32:01 GMT</pubDate><category>Kotlin</category><category>Android</category><category>OOP</category></item><item><title>Android Kotlin 函数式编程与控制流</title><link>https://blog.ygjoon.cn/kt/android-kotlin-functional-control-flow/</link><guid isPermaLink="true">https://blog.ygjoon.cn/kt/android-kotlin-functional-control-flow/</guid><description>Kotlin 函数式写法在业务层的落地：let/run/apply 选型、高阶函数封装 Repository、ViewModel 状态转换，写出更短的业务逻辑。</description><pubDate>Sat, 09 Aug 2025 02:12:30 GMT</pubDate><category>Kotlin</category><category>Android</category><category>函数式</category></item><item><title>Android Kotlin 集合操作与标准库实战</title><link>https://blog.ygjoon.cn/kt/android-kotlin-collections-standard-library/</link><guid isPermaLink="true">https://blog.ygjoon.cn/kt/android-kotlin-collections-standard-library/</guid><description>Kotlin 集合与标准库的高效用法：map/filter 变换、Sequence 惰性求值，列表差分更新与配置合并两个业务案例。</description><pubDate>Tue, 05 Aug 2025 03:34:40 GMT</pubDate><category>Kotlin</category><category>Android</category><category>集合</category></item><item><title>Android Kotlin 数据类型与空安全</title><link>https://blog.ygjoon.cn/kt/android-kotlin-types-null-safety/</link><guid isPermaLink="true">https://blog.ygjoon.cn/kt/android-kotlin-types-null-safety/</guid><description>Kotlin 空安全实战：可空类型与安全调用、let 系列函数选型，Intent 传参、Room 默认值、Retrofit 模型三个高频场景。</description><pubDate>Mon, 04 Aug 2025 03:23:45 GMT</pubDate><category>Kotlin</category><category>Android</category><category>基础</category></item><item><title>Android Kotlin 环境搭建与语法速览</title><link>https://blog.ygjoon.cn/kt/android-kotlin-setup-syntax-overview/</link><guid isPermaLink="true">https://blog.ygjoon.cn/kt/android-kotlin-setup-syntax-overview/</guid><description>先跑通 JDK、Android Studio 与 Kotlin DSL 工程，再用 Dart 和 Kotlin 的语法对照认识变量、空安全及项目结构。</description><pubDate>Fri, 01 Aug 2025 01:19:35 GMT</pubDate><category>Kotlin</category><category>Android</category><category>基础</category></item><item><title>Dart 元编程进阶</title><link>https://blog.ygjoon.cn/dart/dart-metaprogramming/</link><guid isPermaLink="true">https://blog.ygjoon.cn/dart/dart-metaprogramming/</guid><description>进阶玩法：运行时类型操作与动态调用、build.yaml 配置、自定义构建器与注解处理器，把重复代码交给机器去写。</description><pubDate>Thu, 13 Mar 2025 05:37:00 GMT</pubDate><category>Dart</category><category>元编程</category></item><item><title>Flutter混合开发实践</title><link>https://blog.ygjoon.cn/flutter/flutter-add-to-app/</link><guid isPermaLink="true">https://blog.ygjoon.cn/flutter/flutter-add-to-app/</guid><description>把 Flutter module 嵌进原生 App：Android 接 FlutterActivity、iOS 用 podhelper，通道通信与启动性能一并讲</description><pubDate>Sat, 08 Mar 2025 06:06:00 GMT</pubDate><category>Flutter</category><category>混合开发</category><category>原生集成</category></item><item><title>Flutter集成支付SDK</title><link>https://blog.ygjoon.cn/flutter/flutter-payment-sdk/</link><guid isPermaLink="true">https://blog.ygjoon.cn/flutter/flutter-payment-sdk/</guid><description>支付宝 tobias 与微信支付双接入：下单调起支付、客户端回调处理、签名验签，支付链路一次跑通</description><pubDate>Tue, 04 Mar 2025 05:14:00 GMT</pubDate><category>Flutter</category><category>第三方集成</category><category>支付功能</category></item><item><title>Flutter集成Firebase Analytics</title><link>https://blog.ygjoon.cn/flutter/flutter-firebase-analytics/</link><guid isPermaLink="true">https://blog.ygjoon.cn/flutter/flutter-firebase-analytics/</guid><description>google-services.json 配置、logEvent 打自定义事件、自动采集屏幕浏览：Firebase Analytics 接入与事件设计</description><pubDate>Sat, 01 Mar 2025 07:39:00 GMT</pubDate><category>Flutter</category><category>第三方集成</category><category>数据分析</category></item><item><title>Flutter集成社交平台登录</title><link>https://blog.ygjoon.cn/flutter/flutter-social-login/</link><guid isPermaLink="true">https://blog.ygjoon.cn/flutter/flutter-social-login/</guid><description>微信、Facebook、Google 三家登录接入：OAuth 授权码换 token、用户信息拉取，第三方登录一次搞定</description><pubDate>Thu, 27 Feb 2025 02:13:00 GMT</pubDate><category>Flutter</category><category>第三方集成</category><category>社交登录</category></item><item><title>Flutter 使用 Melos 管理多包项目</title><link>https://blog.ygjoon.cn/flutter/flutter-melos-monorepo/</link><guid isPermaLink="true">https://blog.ygjoon.cn/flutter/flutter-melos-monorepo/</guid><description>用 Melos 管理 Flutter 单仓多包：统一安装依赖、一条命令给所有子包跑静态检查和测试，附带版本号联动发布的流程</description><pubDate>Mon, 24 Feb 2025 06:38:16 GMT</pubDate><category>Flutter</category><category>工程化</category></item><item><title>Flutter集成地图服务</title><link>https://blog.ygjoon.cn/flutter/flutter-maps-integration/</link><guid isPermaLink="true">https://blog.ygjoon.cn/flutter/flutter-maps-integration/</guid><description>高德地图与 Google Maps 双接入：Key 配置、地图展示、定位、路径规划，一次配齐地图常用能力</description><pubDate>Sat, 22 Feb 2025 06:04:00 GMT</pubDate><category>Flutter</category><category>第三方集成</category><category>地图服务</category></item><item><title>Flutter 注解详解</title><link>https://blog.ygjoon.cn/flutter/flutter-annotations/</link><guid isPermaLink="true">https://blog.ygjoon.cn/flutter/flutter-annotations/</guid><description>@override、@deprecated 到 required 关键字：内置注解逐个讲清用法，再手写一个自定义注解配合代码生成</description><pubDate>Fri, 21 Feb 2025 04:48:21 GMT</pubDate><category>Flutter</category><category>Dart</category></item><item><title>Flutter 插件开发高级篇</title><link>https://blog.ygjoon.cn/flutter/flutter-plugin-advanced/</link><guid isPermaLink="true">https://blog.ygjoon.cn/flutter/flutter-plugin-advanced/</guid><description>插件写完只是开始：单元与集成测试怎么写，WeakReference 管资源，pub.dev 发布流程与多语言支持</description><pubDate>Thu, 20 Feb 2025 07:47:00 GMT</pubDate><category>Flutter</category><category>插件开发</category></item><item><title>Flutter 自定义注解详解</title><link>https://blog.ygjoon.cn/flutter/flutter-custom-annotations/</link><guid isPermaLink="true">https://blog.ygjoon.cn/flutter/flutter-custom-annotations/</guid><description>用 const 类自定义注解，配合 build_runner 在编译期生成代码：从注解定义到 source_gen 处理器的完整链路</description><pubDate>Thu, 20 Feb 2025 02:24:06 GMT</pubDate><category>Flutter</category><category>Dart</category></item><item><title>Flutter集成Sentry日志收集</title><link>https://blog.ygjoon.cn/flutter/flutter-sentry-logging/</link><guid isPermaLink="true">https://blog.ygjoon.cn/flutter/flutter-sentry-logging/</guid><description>DSN 初始化、captureException 上报崩溃、configureScope 绑定用户信息：Sentry 让线上错误可追踪</description><pubDate>Sun, 16 Feb 2025 02:05:00 GMT</pubDate><category>Flutter</category><category>第三方集成</category><category>日志收集</category></item><item><title>Flutter 插件开发 Android 平台篇</title><link>https://blog.ygjoon.cn/flutter/flutter-plugin-android/</link><guid isPermaLink="true">https://blog.ygjoon.cn/flutter/flutter-plugin-android/</guid><description>Kotlin 与 Java 两种写法实现 MethodChannel 插件，onAttachedToEngine 绑定、引擎解绑时清理，附权限申请处理</description><pubDate>Wed, 12 Feb 2025 03:15:00 GMT</pubDate><category>Flutter</category><category>插件开发</category><category>Android</category></item><item><title>Flutter 插件开发基础篇</title><link>https://blog.ygjoon.cn/flutter/flutter-plugin-basics/</link><guid isPermaLink="true">https://blog.ygjoon.cn/flutter/flutter-plugin-basics/</guid><description>从 flutter create --template=plugin 建项目讲起，理清 Dart 层、原生层、三种通道类型各自的分工</description><pubDate>Sun, 09 Feb 2025 01:57:00 GMT</pubDate><category>Flutter</category><category>插件开发</category></item><item><title>Flutter 插件开发 iOS 平台篇</title><link>https://blog.ygjoon.cn/flutter/flutter-plugin-ios/</link><guid isPermaLink="true">https://blog.ygjoon.cn/flutter/flutter-plugin-ios/</guid><description>Swift 与 Objective-C 两种写法实现 FlutterPlugin，podspec 依赖声明、register 注册通道，附 iOS 内存管理要点</description><pubDate>Wed, 05 Feb 2025 08:37:00 GMT</pubDate><category>Flutter</category><category>插件开发</category><category>iOS</category></item><item><title>Dart 并发编程进阶</title><link>https://blog.ygjoon.cn/dart/dart-concurrency/</link><guid isPermaLink="true">https://blog.ygjoon.cn/dart/dart-concurrency/</guid><description>深入事件循环与事件队列、Zone 的错误隔离，再用生产者-消费者与并行计算两个模式，榨干 Isolate 并发的性能。</description><pubDate>Tue, 04 Feb 2025 08:25:00 GMT</pubDate><category>Dart</category><category>并发编程</category></item><item><title>Flutter 多线程和并发编程</title><link>https://blog.ygjoon.cn/flutter/flutter-concurrency-and-isolates/</link><guid isPermaLink="true">https://blog.ygjoon.cn/flutter/flutter-concurrency-and-isolates/</guid><description>Isolate 不共享内存，用 SendPort/ReceivePort 传消息；耗时计算扔进 Isolate，主线程只管 async/await</description><pubDate>Mon, 03 Feb 2025 02:51:00 GMT</pubDate><category>Flutter</category><category>基础</category></item><item><title>Flutter无障碍开发指南</title><link>https://blog.ygjoon.cn/flutter/flutter-accessibility-guide/</link><guid isPermaLink="true">https://blog.ygjoon.cn/flutter/flutter-accessibility-guide/</guid><description>Semantics 语义标签、焦点管理、MergeSemantics 合并朗读，让 TalkBack 与 VoiceOver 正确播报你的界面</description><pubDate>Fri, 31 Jan 2025 08:15:00 GMT</pubDate><category>Flutter</category><category>无障碍</category><category>可访问性</category></item><item><title>Flutter 依赖注入详解</title><link>https://blog.ygjoon.cn/flutter/flutter-dependency-injection/</link><guid isPermaLink="true">https://blog.ygjoon.cn/flutter/flutter-dependency-injection/</guid><description>构造函数注入、Provider、GetIt 服务定位器三种方式，把对象创建与使用解耦，让代码可测试、易替换</description><pubDate>Mon, 27 Jan 2025 02:06:00 GMT</pubDate><category>Flutter</category><category>基础</category></item><item><title>Flutter 布局约束系统详解</title><link>https://blog.ygjoon.cn/flutter/flutter-layout-constraints/</link><guid isPermaLink="true">https://blog.ygjoon.cn/flutter/flutter-layout-constraints/</guid><description>父传约束、子定大小：BoxConstraints 的紧约束与松约束怎么用，Container、Center 等常见 Widget 的约束行为一次讲透</description><pubDate>Wed, 22 Jan 2025 03:36:00 GMT</pubDate><category>Flutter</category><category>基础</category></item><item><title>Dart 运算符和表达式详解</title><link>https://blog.ygjoon.cn/dart/dart-operators-and-expressions/</link><guid isPermaLink="true">https://blog.ygjoon.cn/dart/dart-operators-and-expressions/</guid><description>三元、??=、as/is 类型测试都是常规操作，重点讲 Dart 独有的级联运算符与空安全 ?.、??，写出更短的链式代码。</description><pubDate>Sat, 18 Jan 2025 10:00:00 GMT</pubDate><category>Dart</category><category>基础</category></item><item><title>Flutter 错误处理和日志管理</title><link>https://blog.ygjoon.cn/flutter/flutter-error-handling-and-logging/</link><guid isPermaLink="true">https://blog.ygjoon.cn/flutter/flutter-error-handling-and-logging/</guid><description>runZonedGuarded 兜住未捕获异常，FlutterError.onError 接住框架报错，分级日志让线上问题可追踪</description><pubDate>Wed, 15 Jan 2025 05:30:00 GMT</pubDate><category>Flutter</category><category>基础</category></item><item><title>Flutter 热重载和热重启机制</title><link>https://blog.ygjoon.cn/flutter/flutter-hot-reload-and-restart/</link><guid isPermaLink="true">https://blog.ygjoon.cn/flutter/flutter-hot-reload-and-restart/</guid><description>热重载只重建 Widget 树、保留状态，适合调 UI；热重启清掉状态重跑 main，改静态变量或全局状态时用它</description><pubDate>Mon, 13 Jan 2025 02:11:00 GMT</pubDate><category>Flutter</category><category>基础</category></item><item><title>Flutter 生命周期管理详解</title><link>https://blog.ygjoon.cn/flutter/flutter-lifecycle-management/</link><guid isPermaLink="true">https://blog.ygjoon.cn/flutter/flutter-lifecycle-management/</guid><description>initState、didChangeDependencies、didUpdateWidget、dispose 各在何时触发：资源在哪一步初始化、哪一步释放</description><pubDate>Fri, 10 Jan 2025 08:58:00 GMT</pubDate><category>Flutter</category><category>基础</category></item><item><title>Dart 控制流语句详解</title><link>https://blog.ygjoon.cn/dart/dart-control-flow/</link><guid isPermaLink="true">https://blog.ygjoon.cn/dart/dart-control-flow/</guid><description>if-else、switch-case、三种 for 循环、while 与 do-while，加上 break 和 continue 跳出规则，控制流一次配齐。</description><pubDate>Thu, 09 Jan 2025 03:00:00 GMT</pubDate><category>Dart</category><category>基础</category></item><item><title>Flutter深色模式适配实践</title><link>https://blog.ygjoon.cn/flutter/flutter-dark-mode/</link><guid isPermaLink="true">https://blog.ygjoon.cn/flutter/flutter-dark-mode/</guid><description>两套 ThemeData 定义明暗配色，ThemeMode.system 跟随系统，ChangeNotifier 管手动切换与持久化</description><pubDate>Wed, 08 Jan 2025 10:00:00 GMT</pubDate><category>Flutter</category><category>主题切换</category><category>深色模式</category></item><item><title>Flutter 设备通信详解</title><link>https://blog.ygjoon.cn/flutter/flutter-device-communication/</link><guid isPermaLink="true">https://blog.ygjoon.cn/flutter/flutter-device-communication/</guid><description>WiFi 连接管理、Socket TCP 长连接、蓝牙扫描配对：Flutter 直连局域网设备与外设的三套通信写法</description><pubDate>Wed, 13 Nov 2024 09:04:39 GMT</pubDate><category>Flutter</category><category>网络</category><category>设备通信</category></item><item><title>Dart 异步编程详解</title><link>https://blog.ygjoon.cn/dart/dart-asynchronous-programming/</link><guid isPermaLink="true">https://blog.ygjoon.cn/dart/dart-asynchronous-programming/</guid><description>Future 链式调用、async/await 的并行写法、Stream 的创建与监听：网络请求与事件流两种异步场景，一篇讲清该用哪套。</description><pubDate>Mon, 11 Nov 2024 09:05:19 GMT</pubDate><category>Dart</category><category>基础</category></item><item><title>Flutter 应用打包发布详解</title><link>https://blog.ygjoon.cn/flutter/flutter-build-and-release/</link><guid isPermaLink="true">https://blog.ygjoon.cn/flutter/flutter-build-and-release/</guid><description>Android：keytool 生成签名，flutter build 打 apk/appbundle；iOS 证书与 Archive 流程走完</description><pubDate>Fri, 08 Nov 2024 05:15:03 GMT</pubDate><category>Flutter</category><category>实战</category></item><item><title>Flutter 实现自定义时间选择器</title><link>https://blog.ygjoon.cn/flutter/flutter-custom-time-picker/</link><guid isPermaLink="true">https://blog.ygjoon.cn/flutter/flutter-custom-time-picker/</guid><description>ListWheelScrollView 做滚轮时间选择器：FixedExtentScrollPhysics 让滚动自动吸附，透视与放大参数调出手感</description><pubDate>Thu, 07 Nov 2024 01:46:29 GMT</pubDate><category>Dart</category><category>Flutter</category></item><item><title>Flutter 性能测试详解</title><link>https://blog.ygjoon.cn/flutter/flutter-performance-testing/</link><guid isPermaLink="true">https://blog.ygjoon.cn/flutter/flutter-performance-testing/</guid><description>flutter_driver 连真机采集 Timeline：traceAction 量启动耗时与列表滚动帧率，TimelineSummary 直接出报告</description><pubDate>Wed, 06 Nov 2024 02:59:23 GMT</pubDate><category>Flutter</category><category>测试</category></item><item><title>Flutter 性能监控：FrameTiming、RSS 与 DevTools 实战</title><link>https://blog.ygjoon.cn/flutter/flutter-performance-monitoring/</link><guid isPermaLink="true">https://blog.ygjoon.cn/flutter/flutter-performance-monitoring/</guid><description>使用 FrameTiming 观察 build、raster 与总帧耗时，配合可取消的内存采样和 DevTools 定位 Flutter 性能问题。</description><pubDate>Tue, 05 Nov 2024 06:31:01 GMT</pubDate><category>Flutter</category><category>性能优化</category></item><item><title>Flutter 包为什么越来越大？用 analyze-size 找出真正占空间的内容</title><link>https://blog.ygjoon.cn/flutter/flutter-app-size-optimization/</link><guid isPermaLink="true">https://blog.ygjoon.cn/flutter/flutter-app-size-optimization/</guid><description>用 Flutter size analysis 拆解 release 包中的 Dart、原生库、资源与字体，再针对实际占比优化。</description><pubDate>Mon, 04 Nov 2024 09:58:00 GMT</pubDate><category>Flutter</category><category>性能优化</category></item><item><title>Flutter SliverAppBar 组件详解</title><link>https://blog.ygjoon.cn/flutter/flutter-sliver-app-bar/</link><guid isPermaLink="true">https://blog.ygjoon.cn/flutter/flutter-sliver-app-bar/</guid><description>pinned 吸顶、floating 下拉即现、snap 松手自动收放：三个开关组合出折叠大图头，FlexibleSpaceBar 配背景图做详情页头部</description><pubDate>Mon, 04 Nov 2024 01:07:00 GMT</pubDate><category>Flutter</category><category>组件</category></item><item><title>Flutter 冷启动优化：哪些初始化不该堵在首帧前</title><link>https://blog.ygjoon.cn/flutter/flutter-startup-optimization/</link><guid isPermaLink="true">https://blog.ygjoon.cn/flutter/flutter-startup-optimization/</guid><description>避免在 build 中重复创建初始化 Future，拆分首帧必需工作，并用设备与构建模式记录冷启动基线。</description><pubDate>Sun, 03 Nov 2024 02:59:24 GMT</pubDate><category>Flutter</category><category>性能优化</category></item><item><title>Flutter SliverGrid 组件详解</title><link>https://blog.ygjoon.cn/flutter/flutter-sliver-grid/</link><guid isPermaLink="true">https://blog.ygjoon.cn/flutter/flutter-sliver-grid/</guid><description>CustomScrollView 里的网格：固定列数与最大格宽两种 delegate，childAspectRatio 控宽高比</description><pubDate>Thu, 31 Oct 2024 02:25:21 GMT</pubDate><category>Flutter</category><category>组件</category></item><item><title>Flutter 内存泄漏怎么查？Timer、Stream、图片缓存与 DevTools</title><link>https://blog.ygjoon.cn/flutter/flutter-memory-optimization/</link><guid isPermaLink="true">https://blog.ygjoon.cn/flutter/flutter-memory-optimization/</guid><description>从 Timer、Stream 和 AnimationController 生命周期入手，配合图片解码尺寸与 DevTools 快照定位 Flutter 内存问题。</description><pubDate>Wed, 30 Oct 2024 03:23:48 GMT</pubDate><category>Flutter</category><category>性能优化</category></item><item><title>Flutter SliverList 组件详解</title><link>https://blog.ygjoon.cn/flutter/flutter-sliver-list/</link><guid isPermaLink="true">https://blog.ygjoon.cn/flutter/flutter-sliver-list/</guid><description>BuilderDelegate 按需创建列表项、ListDelegate 适合固定短列表：keepAlive 与重绘边界参数说清楚</description><pubDate>Tue, 29 Oct 2024 02:56:31 GMT</pubDate><category>Flutter</category><category>组件</category></item><item><title>Flutter CustomScrollView 组件详解</title><link>https://blog.ygjoon.cn/flutter/flutter-custom-scroll-view/</link><guid isPermaLink="true">https://blog.ygjoon.cn/flutter/flutter-custom-scroll-view/</guid><description>slivers 混排 SliverAppBar、SliverList、SliverGrid；普通 Widget 包 SliverToBoxAdapter 塞入</description><pubDate>Mon, 28 Oct 2024 06:20:00 GMT</pubDate><category>Flutter</category><category>组件</category></item><item><title>Flutter 集成极光消息推送</title><link>https://blog.ygjoon.cn/flutter/flutter-third-party-push-notifications/</link><guid isPermaLink="true">https://blog.ygjoon.cn/flutter/flutter-third-party-push-notifications/</guid><description>极光推送（JPush）在 Flutter 里的接法：原生侧配置各手机厂商的推送通道，Dart 侧统一处理通知到达、点击跳转与透传消息</description><pubDate>Sun, 27 Oct 2024 09:18:53 GMT</pubDate><category>Flutter</category><category>消息推送</category></item><item><title>Flutter 动画掉帧排查：RepaintBoundary 到底该不该加</title><link>https://blog.ygjoon.cn/flutter/flutter-animation-performance/</link><guid isPermaLink="true">https://blog.ygjoon.cn/flutter/flutter-animation-performance/</guid><description>用 AnimatedBuilder 缓存静态子树，按需隔离重绘区域，并用 FrameTiming 检查 build、raster 与帧延迟。</description><pubDate>Sat, 26 Oct 2024 05:53:40 GMT</pubDate><category>Flutter</category><category>动画</category><category>性能优化</category></item><item><title>Flutter 渲染优化详解</title><link>https://blog.ygjoon.cn/flutter/flutter-rendering-optimization/</link><guid isPermaLink="true">https://blog.ygjoon.cn/flutter/flutter-rendering-optimization/</guid><description>用 DevTools 定位 Flutter 帧耗时，理解列表默认重绘边界，并按需优化图层与图片尺寸。</description><pubDate>Sat, 26 Oct 2024 02:15:00 GMT</pubDate><category>Flutter</category><category>性能优化</category></item><item><title>Dart 语言中常见的设计模式</title><link>https://blog.ygjoon.cn/dart/dart-design-patterns/</link><guid isPermaLink="true">https://blog.ygjoon.cn/dart/dart-design-patterns/</guid><description>单例、工厂、建造者、适配器、装饰器、观察者、策略七个模式的 Dart 实现，附真实项目案例，讲清每个模式真正的落地场景与取舍。</description><pubDate>Thu, 24 Oct 2024 02:01:47 GMT</pubDate><category>Dart</category><category>设计模式</category><category>Flutter</category></item><item><title>Flutter Riverpod 状态管理详解</title><link>https://blog.ygjoon.cn/flutter/flutter-riverpod-state-management/</link><guid isPermaLink="true">https://blog.ygjoon.cn/flutter/flutter-riverpod-state-management/</guid><description>Provider 的继任者：编译时安全、不依赖 BuildContext 取数，FutureProvider 直接处理异步，ref.watch 订阅更新</description><pubDate>Tue, 22 Oct 2024 02:55:40 GMT</pubDate><category>Flutter</category><category>状态管理</category></item><item><title>Flutter Redux 状态管理详解</title><link>https://blog.ygjoon.cn/flutter/flutter-redux-state-management/</link><guid isPermaLink="true">https://blog.ygjoon.cn/flutter/flutter-redux-state-management/</guid><description>单向数据流那一套：Action 描述意图、Reducer 纯函数产出新状态，Store 集中管理，状态不可变靠 copyWith</description><pubDate>Mon, 21 Oct 2024 03:32:58 GMT</pubDate><category>Flutter</category><category>状态管理</category></item><item><title>Dart 继承和接口详解</title><link>https://blog.ygjoon.cn/dart/dart-inheritance-and-interfaces/</link><guid isPermaLink="true">https://blog.ygjoon.cn/dart/dart-inheritance-and-interfaces/</guid><description>Dart 没有 interface 关键字？用隐式接口与多接口实现玩转接口，再讲清抽象类、构造函数继承与多态的实战分寸。</description><pubDate>Sun, 20 Oct 2024 01:03:41 GMT</pubDate><category>Dart</category><category>基础</category></item><item><title>Flutter SingleChildScrollView 组件详解</title><link>https://blog.ygjoon.cn/flutter/flutter-single-child-scroll-view/</link><guid isPermaLink="true">https://blog.ygjoon.cn/flutter/flutter-single-child-scroll-view/</guid><description>内容超屏就包一层：滚动方向、反向滚动、iOS 回弹 vs Android 夹紧两种 physics，键盘顶起时别被遮住输入框</description><pubDate>Sat, 19 Oct 2024 04:52:53 GMT</pubDate><category>Flutter</category><category>组件</category></item><item><title>Flutter Bloc 状态管理详解</title><link>https://blog.ygjoon.cn/flutter/flutter-bloc-state-management/</link><guid isPermaLink="true">https://blog.ygjoon.cn/flutter/flutter-bloc-state-management/</guid><description>事件驱动那一套：on 注册事件处理器，BlocBuilder、BlocListener、BlocConsumer 三种消费方式各用在哪</description><pubDate>Thu, 17 Oct 2024 05:32:48 GMT</pubDate><category>Flutter</category><category>状态管理</category></item><item><title>简单了解Flutter</title><link>https://blog.ygjoon.cn/flutter/flutter-overview/</link><guid isPermaLink="true">https://blog.ygjoon.cn/flutter/flutter-overview/</guid><description>一套代码跑 iOS/Android/Web/桌面：自绘渲染的三层架构、万物皆 Widget 的组合思想，附 Hello Flutter 上手例子</description><pubDate>Thu, 17 Oct 2024 01:01:05 GMT</pubDate><category>Dart</category><category>Flutter</category></item><item><title>Dart 反射和镜像详解</title><link>https://blog.ygjoon.cn/dart/dart-reflection-and-mirrors/</link><guid isPermaLink="true">https://blog.ygjoon.cn/dart/dart-reflection-and-mirrors/</guid><description>用 mirrors 包在运行时窥探类型信息、动态调用实例与静态方法、读写属性，顺带讲清 Symbol 的用法与反射的性能代价。</description><pubDate>Wed, 16 Oct 2024 01:46:56 GMT</pubDate><category>Dart</category><category>基础</category></item><item><title>Flutter PageView 组件详解</title><link>https://blog.ygjoon.cn/flutter/flutter-page-view/</link><guid isPermaLink="true">https://blog.ygjoon.cn/flutter/flutter-page-view/</guid><description>轮播图、引导页、整页滑动：PageView 配合 PageController 跳页、监听页码，指示器圆点联动一次写完</description><pubDate>Sun, 13 Oct 2024 08:57:36 GMT</pubDate><category>Flutter</category><category>组件</category></item><item><title>Dart 隔离区(Isolate)详解</title><link>https://blog.ygjoon.cn/dart/dart-isolates/</link><guid isPermaLink="true">https://blog.ygjoon.cn/dart/dart-isolates/</guid><description>Isolate 不是线程：讲清创建、SendPort 与 ReceivePort 双向通信、可传递的数据类型，以及耗时计算扔出 UI 线程的最佳实践。</description><pubDate>Sun, 13 Oct 2024 07:10:29 GMT</pubDate><category>Dart</category><category>基础</category></item><item><title>一篇文章让你对 Dart 有初步了解</title><link>https://blog.ygjoon.cn/dart/dart-overview/</link><guid isPermaLink="true">https://blog.ygjoon.cn/dart/dart-overview/</guid><description>从 Google 出品的跨平台语言讲起：装好 SDK，跑通变量、运算符、控制流与函数第一遍，零基础建立 Dart 全貌的入门第一课。</description><pubDate>Sat, 12 Oct 2024 04:14:08 GMT</pubDate><category>Dart</category><category>基础</category></item><item><title>Flutter 实现 Widget 截图并保存到本地</title><link>https://blog.ygjoon.cn/flutter/flutter-widget-screenshot/</link><guid isPermaLink="true">https://blog.ygjoon.cn/flutter/flutter-widget-screenshot/</guid><description>给目标组件包一层截图边界并绑定全局键，一键把任意界面渲染成图片：可调清晰度倍率，支持保存到相册或直接分享</description><pubDate>Fri, 11 Oct 2024 08:40:00 GMT</pubDate><category>Flutter</category><category>截图</category></item><item><title>Dart 代码生成详解</title><link>https://blog.ygjoon.cn/dart/dart-code-generation/</link><guid isPermaLink="true">https://blog.ygjoon.cn/dart/dart-code-generation/</guid><description>手把手配好 build_runner 与 source_gen：一次生成、监听生成、JSON 序列化实战，最后教你写出自己的代码生成器。</description><pubDate>Thu, 10 Oct 2024 06:07:18 GMT</pubDate><category>Dart</category><category>基础</category></item><item><title>Flutter GridView 组件详解</title><link>https://blog.ygjoon.cn/flutter/flutter-grid-view/</link><guid isPermaLink="true">https://blog.ygjoon.cn/flutter/flutter-grid-view/</guid><description>count 定列数、extent 定格子最大宽、builder 懒加载海量格子：三种构造方式对号入座，横竖间距与宽高比一次配好</description><pubDate>Wed, 09 Oct 2024 03:30:00 GMT</pubDate><category>Flutter</category><category>组件</category></item><item><title>Flutter ListView 组件详解</title><link>https://blog.ygjoon.cn/flutter/flutter-list-view/</link><guid isPermaLink="true">https://blog.ygjoon.cn/flutter/flutter-list-view/</guid><description>builder 按需构建长列表、separated 自动加分割线、ListTile 一行搞定图标标题副标题，下拉刷新和无限加载一次配齐</description><pubDate>Tue, 08 Oct 2024 07:23:54 GMT</pubDate><category>Flutter</category><category>组件</category></item><item><title>Flutter 集成测试详解</title><link>https://blog.ygjoon.cn/flutter/flutter-integration-testing/</link><guid isPermaLink="true">https://blog.ygjoon.cn/flutter/flutter-integration-testing/</guid><description>integration_test 包跑真机全链路：从输入账号密码点登录，到接口返回后页面跳转，端到端验证真实流程</description><pubDate>Mon, 07 Oct 2024 09:48:17 GMT</pubDate><category>Flutter</category><category>测试</category></item><item><title>Flutter 实现应用内更新</title><link>https://blog.ygjoon.cn/flutter/flutter-in-app-updates/</link><guid isPermaLink="true">https://blog.ygjoon.cn/flutter/flutter-in-app-updates/</guid><description>PackageInfo 取本地版本号，与服务端配置比对发现新版本后弹更新框；Android 下载 APK 完成应用内升级，iOS 跳转 App Store</description><pubDate>Mon, 07 Oct 2024 09:05:37 GMT</pubDate><category>Flutter</category><category>更新</category></item><item><title>Flutter 测试覆盖率详解</title><link>https://blog.ygjoon.cn/flutter/flutter-test-coverage/</link><guid isPermaLink="true">https://blog.ygjoon.cn/flutter/flutter-test-coverage/</guid><description>flutter test --coverage 收集 lcov 数据，genhtml 生成可视化报告，行覆盖与分支覆盖两个维度看测试盲区</description><pubDate>Sun, 06 Oct 2024 02:43:56 GMT</pubDate><category>Flutter</category><category>测试</category></item><item><title>Dart 类和对象详解</title><link>https://blog.ygjoon.cn/dart/dart-classes-and-objects/</link><guid isPermaLink="true">https://blog.ygjoon.cn/dart/dart-classes-and-objects/</guid><description>默认、命名、初始化列表、工厂四种构造函数逐个拆解，配上私有成员与静态成员，Dart 面向对象这块一次讲透。</description><pubDate>Fri, 04 Oct 2024 09:56:29 GMT</pubDate><category>Dart</category><category>基础</category></item><item><title>Flutter Scaffold 组件详解</title><link>https://blog.ygjoon.cn/flutter/flutter-scaffold-widget/</link><guid isPermaLink="true">https://blog.ygjoon.cn/flutter/flutter-scaffold-widget/</guid><description>AppBar、抽屉、底部导航、悬浮按钮、SnackBar 一套配齐：Scaffold 拼出标准 Material 页面骨架，drawer 打开姿势也讲了</description><pubDate>Thu, 03 Oct 2024 08:37:12 GMT</pubDate><category>Flutter</category><category>组件</category></item><item><title>Flutter 推送通知实现详解</title><link>https://blog.ygjoon.cn/flutter/flutter-push-notifications/</link><guid isPermaLink="true">https://blog.ygjoon.cn/flutter/flutter-push-notifications/</guid><description>FCM 拿 Token、requestPermission 要权限，flutter_local_notifications 做本地提醒：前台展示与点击跳转全覆盖</description><pubDate>Wed, 02 Oct 2024 09:55:00 GMT</pubDate><category>Flutter</category><category>实战</category></item><item><title>Flutter 权限处理详解</title><link>https://blog.ygjoon.cn/flutter/flutter-permission-handling/</link><guid isPermaLink="true">https://blog.ygjoon.cn/flutter/flutter-permission-handling/</guid><description>permission_handler 一行 request() 申请相机定位存储；两端先声明权限，被拒后引导用户去设置页手动开</description><pubDate>Tue, 01 Oct 2024 08:33:16 GMT</pubDate><category>Flutter</category><category>实战</category></item><item><title>Flutter 国际化实现详解</title><link>https://blog.ygjoon.cn/flutter/flutter-localization/</link><guid isPermaLink="true">https://blog.ygjoon.cn/flutter/flutter-localization/</guid><description>intl + flutter_localizations 配好 delegates，ARB 管翻译文案，Locale 切换语言，复数占位符格式一次搞定</description><pubDate>Mon, 30 Sep 2024 07:24:38 GMT</pubDate><category>Flutter</category><category>实战</category></item><item><title>Flutter Stack 组件详解</title><link>https://blog.ygjoon.cn/flutter/flutter-stack-widget/</link><guid isPermaLink="true">https://blog.ygjoon.cn/flutter/flutter-stack-widget/</guid><description>Positioned 按坐标精准叠放、未定位子组件用 alignment 对齐：图片上压文字、角标、悬浮按钮这类叠加布局的标准写法</description><pubDate>Fri, 27 Sep 2024 07:50:23 GMT</pubDate><category>Flutter</category><category>组件</category></item><item><title>Flutter SQLite 数据库详解</title><link>https://blog.ygjoon.cn/flutter/flutter-sqlite-database/</link><guid isPermaLink="true">https://blog.ygjoon.cn/flutter/flutter-sqlite-database/</guid><description>sqflite 单例封装 DatabaseHelper：建表、增删改查、事务、版本升级 onUpgrade，一套本地关系型存储的完整套路</description><pubDate>Fri, 27 Sep 2024 07:38:04 GMT</pubDate><category>Flutter</category><category>存储</category></item><item><title>Flutter WebSocket 实现详解</title><link>https://blog.ygjoon.cn/flutter/flutter-websocket/</link><guid isPermaLink="true">https://blog.ygjoon.cn/flutter/flutter-websocket/</guid><description>封装 WebSocketClient 单例：心跳保活、断线重连、StreamController 广播消息，做出可用的实时通信客户端</description><pubDate>Wed, 25 Sep 2024 03:50:43 GMT</pubDate><category>Flutter</category><category>网络</category></item><item><title>Flutter Container 组件详解</title><link>https://blog.ygjoon.cn/flutter/flutter-container-widget/</link><guid isPermaLink="true">https://blog.ygjoon.cn/flutter/flutter-container-widget/</guid><description>Container 集宽高、内外边距、BoxDecoration 于一身：圆角、边框、阴影一次配齐，顺带避开 decoration 与 color 混用的报错</description><pubDate>Tue, 24 Sep 2024 09:35:45 GMT</pubDate><category>Flutter</category><category>组件</category></item><item><title>Flutter Dio 网络请求详解</title><link>https://blog.ygjoon.cn/flutter/flutter-dio-networking/</link><guid isPermaLink="true">https://blog.ygjoon.cn/flutter/flutter-dio-networking/</guid><description>Dio 落地写法：拦截器统一加 token 与错误处理、BaseOptions 全局配置、文件下载与请求取消的实战代码</description><pubDate>Mon, 23 Sep 2024 02:09:40 GMT</pubDate><category>Flutter</category><category>网络</category></item><item><title>Flutter Row 和 Column 组件详解</title><link>https://blog.ygjoon.cn/flutter/flutter-row-and-column/</link><guid isPermaLink="true">https://blog.ygjoon.cn/flutter/flutter-row-and-column/</guid><description>主轴对齐、交叉轴对齐、mainAxisSize 三组属性吃透横竖布局，顺带避开 Column 里套 ListView 的无限高度报错</description><pubDate>Sat, 21 Sep 2024 10:15:49 GMT</pubDate><category>Flutter</category><category>组件</category></item><item><title>Dart 函数和方法详解</title><link>https://blog.ygjoon.cn/dart/dart-functions-and-methods/</link><guid isPermaLink="true">https://blog.ygjoon.cn/dart/dart-functions-and-methods/</guid><description>从基本语法到必需、可选位置、可选命名、默认值四种参数写法，再到函数作为一等公民的赋值与传递，打牢函数基本功。</description><pubDate>Sat, 21 Sep 2024 03:25:11 GMT</pubDate><category>Dart</category><category>基础</category></item><item><title>Flutter GetX 状态管理详解</title><link>https://blog.ygjoon.cn/flutter/flutter-getx-state-management/</link><guid isPermaLink="true">https://blog.ygjoon.cn/flutter/flutter-getx-state-management/</guid><description>.obs 响应式变量配 Obx 自动刷新，Get.put 与 lazyPut 管依赖注入，顺带把 GetX 的路由跳转也讲了</description><pubDate>Fri, 20 Sep 2024 02:48:03 GMT</pubDate><category>Flutter</category><category>状态管理</category></item><item><title>Dart 变量和数据类型详解</title><link>https://blog.ygjoon.cn/dart/dart-variables-and-types/</link><guid isPermaLink="true">https://blog.ygjoon.cn/dart/dart-variables-and-types/</guid><description>var、显式类型、dynamic 与 Object 如何取舍，final 和 const 有何区别，再过一遍数值、字符串、布尔类型的正确打开方式。</description><pubDate>Tue, 17 Sep 2024 03:37:13 GMT</pubDate><category>Dart</category><category>基础</category></item><item><title>Flutter Provider 状态管理详解</title><link>https://blog.ygjoon.cn/flutter/flutter-provider-state-management/</link><guid isPermaLink="true">https://blog.ygjoon.cn/flutter/flutter-provider-state-management/</guid><description>官方推荐的 InheritedWidget 封装：ChangeNotifierProvider 供数据，Consumer、watch、read 三种取数姿势</description><pubDate>Tue, 17 Sep 2024 03:32:31 GMT</pubDate><category>Flutter</category><category>状态管理</category></item><item><title>Flutter 嵌套路由详解</title><link>https://blog.ygjoon.cn/flutter/flutter-nested-routes/</link><guid isPermaLink="true">https://blog.ygjoon.cn/flutter/flutter-nested-routes/</guid><description>嵌套 Navigator 给底部 Tab 各配独立导航栈：GlobalKey 控制子路由，切换 Tab 不丢页面状态</description><pubDate>Fri, 13 Sep 2024 07:23:14 GMT</pubDate><category>Flutter</category><category>导航</category></item><item><title>Flutter 自定义动画详解</title><link>https://blog.ygjoon.cn/flutter/flutter-custom-animations/</link><guid isPermaLink="true">https://blog.ygjoon.cn/flutter/flutter-custom-animations/</guid><description>内置 Tween 不够用就自己写：在 lerp 里定义插值规则，把颜色、圆角、阴影打包进一个 BoxDecorationTween，动画组件按需定制</description><pubDate>Wed, 11 Sep 2024 07:57:37 GMT</pubDate><category>Flutter</category><category>动画</category></item><item><title>Flutter 路由动画详解</title><link>https://blog.ygjoon.cn/flutter/flutter-route-transitions/</link><guid isPermaLink="true">https://blog.ygjoon.cn/flutter/flutter-route-transitions/</guid><description>PageRouteBuilder 手写转场：淡入、滑动、缩放三种过渡效果，附可复用的 CustomPageRoute 封装</description><pubDate>Tue, 10 Sep 2024 09:34:16 GMT</pubDate><category>Flutter</category><category>导航</category><category>动画</category></item><item><title>Flutter 交错动画详解</title><link>https://blog.ygjoon.cn/flutter/flutter-staggered-animation/</link><guid isPermaLink="true">https://blog.ygjoon.cn/flutter/flutter-staggered-animation/</guid><description>一个 Controller 驱动多个 Tween：用 Interval 给透明度、宽高、圆角各划一段播放时间，元素依次登场做出层次感</description><pubDate>Sat, 07 Sep 2024 03:15:47 GMT</pubDate><category>Flutter</category><category>动画</category></item><item><title>Flutter Hero 动画详解</title><link>https://blog.ygjoon.cn/flutter/flutter-hero-animation/</link><guid isPermaLink="true">https://blog.ygjoon.cn/flutter/flutter-hero-animation/</guid><description>共享元素转场：两端 Hero 用同一个 tag，Navigator 跳转时图片自动从列表飞入详情页，列表到详情的视觉连续性就这么来的</description><pubDate>Tue, 03 Sep 2024 08:09:16 GMT</pubDate><category>Flutter</category><category>动画</category></item><item><title>Flutter 组合动画详解</title><link>https://blog.ygjoon.cn/flutter/flutter-combined-animations/</link><guid isPermaLink="true">https://blog.ygjoon.cn/flutter/flutter-combined-animations/</guid><description>缩放、旋转、位移拼成一套连贯动作：顺序播放用 Interval 排时间轴、并行叠加直接一起跑，复杂动效拆解开来就这么简单</description><pubDate>Sun, 01 Sep 2024 08:25:56 GMT</pubDate><category>Flutter</category><category>动画</category></item><item><title>Flutter 动画曲线详解</title><link>https://blog.ygjoon.cn/flutter/flutter-animation-curves/</link><guid isPermaLink="true">https://blog.ygjoon.cn/flutter/flutter-animation-curves/</guid><description>曲线决定动画的节奏感：easeInOut 缓入缓出、elastic 弹性、bounce 弹跳分别适合什么场景，附常见曲线对照 demo 与自定义曲线写法</description><pubDate>Wed, 28 Aug 2024 06:13:41 GMT</pubDate><category>Flutter</category><category>动画</category></item><item><title>Dart 元数据和注解详解</title><link>https://blog.ygjoon.cn/dart/dart-metadata-and-annotations/</link><guid isPermaLink="true">https://blog.ygjoon.cn/dart/dart-metadata-and-annotations/</guid><description>先吃透 @deprecated、@override 等内置注解，再自定义复杂注解，最后用反射在运行时读取注解信息，元数据三步走。</description><pubDate>Mon, 26 Aug 2024 04:58:36 GMT</pubDate><category>Dart</category><category>基础</category></item><item><title>Dart Stream 和 Future 详解</title><link>https://blog.ygjoon.cn/dart/dart-streams-and-futures/</link><guid isPermaLink="true">https://blog.ygjoon.cn/dart/dart-streams-and-futures/</guid><description>从 Future 的创建与链式操作，到 Stream 的监听、map 与 where 转换、多流组合，异步数据流的一整套打法全在这里。</description><pubDate>Sun, 25 Aug 2024 07:17:04 GMT</pubDate><category>Dart</category><category>基础</category></item><item><title>Dart Mixin 和扩展详解</title><link>https://blog.ygjoon.cn/dart/dart-mixins-and-extensions/</link><guid isPermaLink="true">https://blog.ygjoon.cn/dart/dart-mixins-and-extensions/</guid><description>讲透 Mixin 的声明、on 约束与多混入组合，再教你用扩展方法给现有类加能力：不改源码也能增强 String、List 的实战技巧。</description><pubDate>Fri, 23 Aug 2024 01:51:20 GMT</pubDate><category>Dart</category><category>基础</category></item><item><title>Dart 泛型详解</title><link>https://blog.ygjoon.cn/dart/dart-generics/</link><guid isPermaLink="true">https://blog.ygjoon.cn/dart/dart-generics/</guid><description>从为什么需要泛型讲到单/多类型参数的泛型类、带约束的泛型方法与泛型接口，写出类型安全又可复用的代码。</description><pubDate>Wed, 21 Aug 2024 01:14:52 GMT</pubDate><category>Dart</category><category>基础</category></item><item><title>Flutter Widget 测试详解</title><link>https://blog.ygjoon.cn/flutter/flutter-widget-testing/</link><guid isPermaLink="true">https://blog.ygjoon.cn/flutter/flutter-widget-testing/</guid><description>testWidgets 搭测试环境，pumpWidget 渲染组件，Finder 定位元素、pumpAndSettle 等动画收尾，UI 交互一次测全</description><pubDate>Tue, 20 Aug 2024 06:53:49 GMT</pubDate><category>Flutter</category><category>测试</category></item><item><title>Flutter 单元测试详解</title><link>https://blog.ygjoon.cn/flutter/flutter-unit-testing/</link><guid isPermaLink="true">https://blog.ygjoon.cn/flutter/flutter-unit-testing/</guid><description>group 组织用例、setUp 准备环境，mockito 生成 Mock 隔离外部依赖，纯 Dart 逻辑先测透再往上叠</description><pubDate>Mon, 19 Aug 2024 09:14:43 GMT</pubDate><category>Flutter</category><category>测试</category></item><item><title>Flutter 文件操作详解</title><link>https://blog.ygjoon.cn/flutter/flutter-file-operations/</link><guid isPermaLink="true">https://blog.ygjoon.cn/flutter/flutter-file-operations/</guid><description>path_provider 拿文档目录、临时目录、外部存储：文本读写、二进制读写、复制移动删除，配 try-catch 别让 IO 异常崩了应用</description><pubDate>Sun, 18 Aug 2024 07:17:59 GMT</pubDate><category>Flutter</category><category>存储</category></item><item><title>Flutter 主题切换实现详解</title><link>https://blog.ygjoon.cn/flutter/flutter-theme-switching/</link><guid isPermaLink="true">https://blog.ygjoon.cn/flutter/flutter-theme-switching/</guid><description>ThemeData 定义亮暗两套主题，ThemeMode 切 system/light/dark，ChangeNotifier 触发整树重建</description><pubDate>Wed, 14 Aug 2024 04:10:29 GMT</pubDate><category>Flutter</category><category>实战</category></item><item><title>Flutter SharedPreferences 详解</title><link>https://blog.ygjoon.cn/flutter/flutter-shared-preferences/</link><guid isPermaLink="true">https://blog.ygjoon.cn/flutter/flutter-shared-preferences/</guid><description>键值对小数据就用它：setString/getString 存取、remove 删除，包一层 PreferencesUtil 工具类，全局到处直接调</description><pubDate>Tue, 13 Aug 2024 03:34:46 GMT</pubDate><category>Flutter</category><category>存储</category></item><item><title>Flutter 路由参数传递详解</title><link>https://blog.ygjoon.cn/flutter/flutter-route-parameters/</link><guid isPermaLink="true">https://blog.ygjoon.cn/flutter/flutter-route-parameters/</guid><description>构造函数直传、pushNamed 带 arguments、onGenerateRoute 集中解析：Flutter 页面间传参的三种姿势与取舍</description><pubDate>Mon, 12 Aug 2024 02:38:40 GMT</pubDate><category>Flutter</category><category>导航</category></item><item><title>Flutter 命名路由详解</title><link>https://blog.ygjoon.cn/flutter/flutter-named-routes/</link><guid isPermaLink="true">https://blog.ygjoon.cn/flutter/flutter-named-routes/</guid><description>routes 路由表集中注册、pushNamed 跳转、onUnknownRoute 兜底未知页、清栈返回登录页，一套命名路由组合拳</description><pubDate>Sat, 10 Aug 2024 05:44:59 GMT</pubDate><category>Flutter</category><category>导航</category></item><item><title>Flutter 基础导航详解</title><link>https://blog.ygjoon.cn/flutter/flutter-navigation-basics/</link><guid isPermaLink="true">https://blog.ygjoon.cn/flutter/flutter-navigation-basics/</guid><description>Navigator.push/pop 入门、await 等页面返回值、PageRouteBuilder 手写滑动淡入转场：导航最常用的三板斧</description><pubDate>Thu, 08 Aug 2024 06:13:42 GMT</pubDate><category>Flutter</category><category>导航</category></item><item><title>Flutter 基础动画详解</title><link>https://blog.ygjoon.cn/flutter/flutter-basic-animations/</link><guid isPermaLink="true">https://blog.ygjoon.cn/flutter/flutter-basic-animations/</guid><description>隐式动画与显式动画的分水岭：AnimatedContainer 改属性就自动过渡，AnimationController 给你逐帧控制权</description><pubDate>Tue, 06 Aug 2024 06:10:23 GMT</pubDate><category>Flutter</category><category>动画</category></item><item><title>Dart 库和可见性详解</title><link>https://blog.ygjoon.cn/dart/dart-libraries-and-visibility/</link><guid isPermaLink="true">https://blog.ygjoon.cn/dart/dart-libraries-and-visibility/</guid><description>下划线实现私有成员、import 别名与按需导入组织模块，配合合理的目录结构，把库拆分与可见性控制一次理顺。</description><pubDate>Sat, 03 Aug 2024 07:17:29 GMT</pubDate><category>Dart</category><category>基础</category></item><item><title>Dart 错误处理详解</title><link>https://blog.ygjoon.cn/dart/dart-error-handling/</link><guid isPermaLink="true">https://blog.ygjoon.cn/dart/dart-error-handling/</guid><description>try-catch-finally 的捕获姿势、自定义异常的设计，再到 Future 与 Stream 里异步错误的传播与兜底，异常处理全链路。</description><pubDate>Fri, 02 Aug 2024 04:55:06 GMT</pubDate><category>Dart</category><category>基础</category></item><item><title>Dart 集合类型详解</title><link>https://blog.ygjoon.cn/dart/dart-collections/</link><guid isPermaLink="true">https://blog.ygjoon.cn/dart/dart-collections/</guid><description>List、Set、Map 三大集合的创建与常用操作对照着学，附完整示例，日常数据处理查这一篇就够了。</description><pubDate>Thu, 01 Aug 2024 05:05:54 GMT</pubDate><category>Dart</category><category>基础</category></item><item><title>Flutter路由管理进阶</title><link>https://blog.ygjoon.cn/flutter/flutter-routing-advanced/</link><guid isPermaLink="true">https://blog.ygjoon.cn/flutter/flutter-routing-advanced/</guid><description>NavigatorObserver 监听页面进出、登录拦截未登录跳转、canActivate 前置守卫：路由层的权限与埋点管控</description><pubDate>Sun, 14 Jan 2024 04:28:37 GMT</pubDate><category>Flutter</category><category>路由管理</category><category>最佳实践</category></item><item><title>Git分支管理策略</title><link>https://blog.ygjoon.cn/git/git-branching-strategies/</link><guid isPermaLink="true">https://blog.ygjoon.cn/git/git-branching-strategies/</guid><description>拆解 main、develop、feature、release、hotfix 五种分支的分工与合并规则，走完开发、发布、热修复三套工作流，给出命名和提交规范。</description><pubDate>Tue, 09 Jan 2024 01:48:51 GMT</pubDate><category>Git</category><category>版本控制</category></item><item><title>Git版本控制</title><link>https://blog.ygjoon.cn/git/git-version-control/</link><guid isPermaLink="true">https://blog.ygjoon.cn/git/git-version-control/</guid><description>讲解语义化版本号 MAJOR.MINOR.PATCH 递增规则和 alpha/beta/rc 先行版，对比轻量与附注标签差异，附标签创建、推送、删除命令。</description><pubDate>Sat, 06 Jan 2024 07:21:17 GMT</pubDate><category>Git</category><category>版本控制</category></item><item><title>Flutter集成微信SDK - Fluwx详解</title><link>https://blog.ygjoon.cn/flutter/flutter-fluwx-wechat-sdk/</link><guid isPermaLink="true">https://blog.ygjoon.cn/flutter/flutter-fluwx-wechat-sdk/</guid><description>fluwx 接微信登录、支付与分享：开放平台 AppID 申请、Android/iOS 原生配置、回调处理的完整流程</description><pubDate>Mon, 01 Jan 2024 09:12:45 GMT</pubDate><category>Flutter</category><category>Fluwx</category></item><item><title>git 基础教程</title><link>https://blog.ygjoon.cn/git/git-operations-guide/</link><guid isPermaLink="true">https://blog.ygjoon.cn/git/git-operations-guide/</guid><description>从 git init 建仓讲起，覆盖提交推送拉取日常命令、分支的创建切换与合并、打标签、stash 暂存三类高频操作，每条命令配中文作用说明，照着敲就能上手。</description><pubDate>Sun, 24 Apr 2022 16:00:00 GMT</pubDate><category>Git</category></item></channel></rss>