<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>Mikhail Babozhko — Blog</title>
    <link>https://mbwork.info/blog</link>
    <description>Mobile development, ASO, analytics, CI and AI-assisted engineering.</description>
    <language>en</language>
    <item>
      <title>Flutter Pigeon: Wrapping a Native-Only SDK the Safe Way</title>
      <link>https://mbwork.info/blog/flutter-pigeon-native-sdk-bridge</link>
      <guid>https://mbwork.info/blog/flutter-pigeon-native-sdk-bridge</guid>
      <pubDate>Sat, 17 Oct 2026 07:30:00 GMT</pubDate>
      <description>When an SDK ships only for iOS and Android, Flutter Pigeon gives you a typed bridge. Here is how to keep that bridge thin, testable and easy to replace.</description>
    </item>
    <item>
      <title>Localized App Store Screenshots: An ASO Lever That Works</title>
      <link>https://mbwork.info/blog/localized-app-store-screenshots-aso</link>
      <guid>https://mbwork.info/blog/localized-app-store-screenshots-aso</guid>
      <pubDate>Thu, 15 Oct 2026 07:30:00 GMT</pubDate>
      <description>Why localized App Store screenshots moved Mapika's listing more than text metadata, and a simple caption-first method to build them for five languages.</description>
    </item>
    <item>
      <title>A UoPeople Study Schedule That Fits a Full-Time Dev Job</title>
      <link>https://mbwork.info/blog/uopeople-study-schedule-full-time-job</link>
      <guid>https://mbwork.info/blog/uopeople-study-schedule-full-time-job</guid>
      <pubDate>Tue, 13 Oct 2026 07:30:00 GMT</pubDate>
      <description>A UoPeople study schedule that plans each learning week backwards from the Wednesday deadline, so a CS degree fits around a full-time job.</description>
    </item>
    <item>
      <title>Maestro Tests for Flutter: Use Semantics Identifiers</title>
      <link>https://mbwork.info/blog/maestro-flutter-semantics-identifiers</link>
      <guid>https://mbwork.info/blog/maestro-flutter-semantics-identifiers</guid>
      <pubDate>Sun, 11 Oct 2026 07:30:00 GMT</pubDate>
      <description>Why Maestro UI tests for Flutter break when they select widgets by visible text, and how Semantics identifiers give each widget a stable id to tap.</description>
    </item>
    <item>
      <title>Xcode Cloud for Flutter: The ci_post_clone.sh Script</title>
      <link>https://mbwork.info/blog/xcode-cloud-flutter-ci-post-clone</link>
      <guid>https://mbwork.info/blog/xcode-cloud-flutter-ci-post-clone</guid>
      <pubDate>Fri, 09 Oct 2026 07:30:00 GMT</pubDate>
      <description>How to build a Flutter app on Xcode Cloud with one ci_post_clone.sh script, where the file must live, and the mistakes that break the first build.</description>
    </item>
    <item>
      <title>Swapping Ad Providers in Flutter Without Touching the UI</title>
      <link>https://mbwork.info/blog/swap-ad-providers-flutter</link>
      <guid>https://mbwork.info/blog/swap-ad-providers-flutter</guid>
      <pubDate>Thu, 08 Oct 2026 07:30:00 GMT</pubDate>
      <description>How an abstract AdService interface let me replace an ad network in a Flutter app by changing one class and one DI binding, with Cubits and UI left untouched.</description>
    </item>
    <item>
      <title>Offline-First Mobile Sync: Use Triggers, Not Timers</title>
      <link>https://mbwork.info/blog/offline-first-mobile-sync-triggers</link>
      <guid>https://mbwork.info/blog/offline-first-mobile-sync-triggers</guid>
      <pubDate>Thu, 08 Oct 2026 07:30:00 GMT</pubDate>
      <description>A practical pattern for offline-first mobile apps that treats the device as the source of truth and syncs on app open and after key actions, not on a timer.</description>
    </item>
  </channel>
</rss>
