Fundamentals of cross-platform development
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 will 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 dynamically branch our code. 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 the existence of the window
global variable. Let's modify our say-hello.js
module to use this technique...