Mobile Computing · Cluster
Cross-Platform Development
Shared code and platform fidelity.
- 01 The Portable Core Boundary: What Shared Code Must Not Reference Portability follows from the set of symbols a module names rather than the language it is written in, so a shared core is built by inverting platform dependencies at the edge.
- 02 Retained Native Widgets or an Owned Render Tree Two architectures dominate cross-platform mobile UI: delegating drawing to the platform widget toolkit, or owning the render tree and painting it. Each fixes a different kind of fidelity and breaks the other.
- 03 Marshalling Across the Language Boundary Every call between shared code and platform code crosses a runtime boundary with a serialisation step, a scheduler hop, and a lifetime problem. The cost is dominated by crossings, not by bytes.
- 04 Shared State Without a Shared Heap Two platform runtimes cannot hold the same objects, so cross-platform state lives in an external store with subscription and persistence semantics that the framework must define itself.
- 05 Text Metrics and Line Breaking Across Two Font Stacks The same string occupies different space on two platforms because measurement, shaping, and fallback differ. Shared layout must pick one authority for metrics or accept divergence.
- 06 Back Navigation When the Two Platforms Disagree Android has a system back action with predictive gestures; iOS has an edge swipe owned by the navigation controller. Reconciling them means modelling history in the shared core and restoring it after process death.
- 07 Bridging One Semantics Tree to Two Accessibility APIs A shared widget description must be projected into two different accessibility object models. The projection is lossy in both directions, and the losses are what make a screen unusable rather than merely imperfect.
- 08 Wrapping a Native SDK Behind a Shared Interface Third-party SDKs ship as binaries with their own threading, error, and lifecycle models. A plugin boundary has to normalise all three, and the normalisation is where most integration defects originate.
- 09 One Description, Two Design Languages Material and Apple design languages differ in elevation, corner treatment, motion, and safe-area insets. A shared description has to keep semantics while letting the visual layer diverge per platform.
- 10 Shipping Shared Code Outside the Release Cycle Delivering the shared layer as a replaceable bundle decouples it from the native shell, which turns every release into a matrix of shell and bundle versions and every rollback into a data-compatibility problem.