MJ Stories

Android craftsmanship stories

Cover Image for Minting IDs Before the Server

Offline, you can't wait for a server to hand you an id. The client mints it at creation — a random UUID — so a new entity is addressable immediately, referenceable by the very next offline action. That one move deletes temporary ids and a whole class of reference-rewrite bugs.

Android
androidkmpoffline-firstuuidarchitecture

Series · 3 parts

Offline-First KMP

When your mobile app must work without internet as a standard — not an edge case — picking the right sync layer becomes the most critical architectural decision. Here is how we evaluated the landscape.

  1. 1Choosing an offline-first sync layer for KMP
  2. 2Two writes for every tap
  3. 3Minting IDs Before the Server

More Stories

Cover Image for Your API key is not a secret

Your API key is not a secret

We have been hiding API keys in Android apps for a decade — with BuildConfig tricks, NDK, obfuscation libraries. None of it works. The fix is not better hiding; it is treating the key as a public identifier and proving the app is genuine instead.

Android
androidsecurityplay-integritybffarchitecture
Cover Image for Share iOs string resources with Android

Share iOs string resources with Android

There might be a requirement for mobile string resources to be defined or adjusted by management or copywriters. There also might be a requirement to add localization later by those roles. And on top of that strings should be synced across platforms.

Android
androidresourcessharedpoeditor