Search⌘ K
AI Features

Fundamentals of Cross-Platform Development (I)

Explore the principles and patterns of cross-platform development with Universal JavaScript. Understand how to reuse code effectively while providing platform-specific features using runtime branching. Learn the pros and cons, including impacts on bundle size and security, and discover how bundlers handle dynamic module imports.

When developing for different platforms, the most common problem we face is how can we reuse as much code as possible and, at the same time, provide specialized implementations for details that are platform-specific. We’ll now explore some of the principles and the patterns to use when facing this challenge, such as code branching and module swapping.

Runtime code branching

The most simple and intuitive technique for providing different implementations based on the host platform is to branch our code dynamically. This requires that we have a mechanism to recognize the host platform at runtime and then dynamically switch the implementation with an if...else statement. Some generic approaches involve checking global variables that are available only on Node.js or only on the browser.

For example, we can check ...