<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Yulin&apos;s Notes</title><description>Notes on programming, engineering practice, and hard-won lessons.</description><link>https://blog.ixiaoxiang.cn/en/</link><language>en-US</language><item><title>Bringing AiDEX X to Loop: From Protocol Analysis to a Swift Plugin</title><link>https://blog.ixiaoxiang.cn/en/posts/device-protocol-to-ios-integration-engineering-reflection/</link><guid isPermaLink="true">https://blog.ixiaoxiang.cn/en/posts/device-protocol-to-ios-integration-engineering-reflection/</guid><description>How I worked from an Android client and a BLE protocol toward a Python reference, a Rust core, the AidexKit Swift driver, and a working LoopWorkspace integration.</description><pubDate>Wed, 29 Jul 2026 00:00:00 GMT</pubDate><category>iOS</category><category>Swift</category><category>Rust</category><category>BLE</category><category>LoopKit</category><category>Engineering Practice</category></item><item><title>From Bridge to Contract: Flutter Host and Vue H5 in Practice</title><link>https://blog.ixiaoxiang.cn/en/posts/flutter-host-contract-sdk-vue-hybrid-development/</link><guid isPermaLink="true">https://blog.ixiaoxiang.cn/en/posts/flutter-host-contract-sdk-vue-hybrid-development/</guid><description>A firsthand account of dividing responsibilities across a Flutter host, a contract SDK, and a Vue web app—and of handling payments, back navigation, lifecycle, startup, and updates along the way.</description><pubDate>Wed, 22 Jul 2026 09:27:40 GMT</pubDate><category>Flutter</category><category>Vue</category><category>Hybrid</category><category>WebView</category><category>SDK</category><category>Engineering Practice</category></item><item><title>Tracking Down a Black Gesture Navigation Bar in Flutter Android</title><link>https://blog.ixiaoxiang.cn/en/posts/flutter-android-gesture-navigation-black-bar-edge-to-edge/</link><guid isPermaLink="true">https://blog.ixiaoxiang.cn/en/posts/flutter-android-gesture-navigation-black-bar-edge-to-edge/</guid><description>A practical investigation into a long-running Flutter Android issue: why common navigation bar fixes work in some projects but not others, and how to reduce the problem to a minimal fix.</description><pubDate>Wed, 15 Jul 2026 00:00:00 GMT</pubDate><category>Flutter</category><category>Android</category><category>Edge-to-Edge</category><category>System UI</category><category>Engineering Practice</category></item><item><title>Rethinking Flutter API Development with OpenAPI and AI</title><link>https://blog.ixiaoxiang.cn/en/posts/openapi-ai-agent-project-code-generation/</link><guid isPermaLink="true">https://blog.ixiaoxiang.cn/en/posts/openapi-ai-agent-project-code-generation/</guid><description>A practical workflow from API definitions and generated code to Repository mapping, using AI to reduce repetitive work and let API integration and UI development move forward in parallel.</description><pubDate>Wed, 15 Jul 2026 00:00:00 GMT</pubDate><category>Flutter</category><category>OpenAPI</category><category>AI Agent</category><category>API</category><category>Engineering Practice</category></item><item><title>Rust Notes: Safety, Performance, and Trade-offs</title><link>https://blog.ixiaoxiang.cn/en/posts/rust-learning-safety-performance-tradeoffs/</link><guid isPermaLink="true">https://blog.ixiaoxiang.cn/en/posts/rust-learning-safety-performance-tradeoffs/</guid><description>A C/C++-oriented look at Rust ownership, zero-cost abstractions, Cargo, and the cost of learning and using the language.</description><pubDate>Sun, 12 Jul 2026 00:00:00 GMT</pubDate><category>Rust</category><category>C++</category><category>Systems Programming</category><category>Learning Notes</category></item><item><title>Design Boundaries for Cross-Platform Native Frameworks on Mobile</title><link>https://blog.ixiaoxiang.cn/en/posts/mobile-native-framework-design/</link><guid isPermaLink="true">https://blog.ixiaoxiang.cn/en/posts/mobile-native-framework-design/</guid><description>A practical look at wrapping a C/C++ business core for iOS, Android, and Flutter, with notes on runtime boundaries, ABI choices, adapters, and release checks.</description><pubDate>Mon, 29 Jun 2026 00:00:00 GMT</pubDate><category>iOS</category><category>Android</category><category>Flutter</category><category>C++</category><category>Framework</category><category>SDK</category><category>Engineering Practice</category></item><item><title>Some Thoughts After Talking With Younger Students About AI, Work, and Choice</title><link>https://blog.ixiaoxiang.cn/en/posts/ai-career-crossroads-reflection/</link><guid isPermaLink="true">https://blog.ixiaoxiang.cn/en/posts/ai-career-crossroads-reflection/</guid><description>When software engineering students stand at the crossroads of graduate school, civil service exams, employment, and AI, what they may need most is not a fixed answer, but the ability to adapt to change.</description><pubDate>Thu, 18 Jun 2026 00:00:00 GMT</pubDate><category>AI</category><category>Software Engineering</category><category>Career Choices</category><category>Personal Reflection</category></item><item><title>Debugging Missing Purchase Events From Flutter Facebook App Events in Android Release Builds</title><link>https://blog.ixiaoxiang.cn/en/posts/flutter-facebook-app-events-release-obfuscation-fix/</link><guid isPermaLink="true">https://blog.ixiaoxiang.cn/en/posts/flutter-facebook-app-events-release-obfuscation-fix/</guid><description>A debugging note for a facebook_app_events issue where debug/profile builds worked, but Android release builds only reported install events and lost purchase/subscription events. The root cause is explained through R8 reachability analysis, dynamic calls, and keep rules.</description><pubDate>Wed, 10 Jun 2026 00:00:00 GMT</pubDate><category>Flutter</category><category>Android</category><category>R8</category><category>ProGuard</category><category>Facebook</category><category>Analytics</category><category>Engineering Practice</category></item><item><title>Core-Variant Architecture: A Practical Pattern for Multiple Apps</title><link>https://blog.ixiaoxiang.cn/en/posts/core-variant-architecture-practice/</link><guid isPermaLink="true">https://blog.ixiaoxiang.cn/en/posts/core-variant-architecture-practice/</guid><description>Move stable business semantics into Core, leave concrete product implementation to Variant, and keep engineering independence while preserving the same business outcome.</description><pubDate>Sat, 06 Jun 2026 00:00:00 GMT</pubDate><category>Flutter</category><category>Architecture</category><category>Multi-Variant</category><category>Engineering Practice</category></item><item><title>Handling Pinned Headers and Inner Scrolling in Flutter NestedScrollView</title><link>https://blog.ixiaoxiang.cn/en/posts/flutter-nested-scroll-pinned-header/</link><guid isPermaLink="true">https://blog.ixiaoxiang.cn/en/posts/flutter-nested-scroll-pinned-header/</guid><description>When a pinned header, PageView, and inner lists appear together, SliverOverlapAbsorber and SliverOverlapInjector should be used to build the correct scrolling relationship.</description><pubDate>Fri, 05 Jun 2026 09:10:00 GMT</pubDate><category>Flutter</category><category>NestedScrollView</category><category>Sliver</category><category>Engineering Notes</category></item></channel></rss>