← New search

Other meanings of Cross-platform development

Software engineering

Cross-platform development

Cross-platform development is the practice of building software from a shared codebase or shared development model so that it runs on multiple operating systems, device classes, or execution environments. Frameworks such as .NET MAUI, Flutter, React Native, and Qt reduce duplicated work, while still permitting platform-specific code where hardware, interface conventions, or operating-system services differ.12

1 codebase
primary goal
shared implementation across targets
4 layers
common architecture
shared UI, logic, services, and native adapters
3 major targets
typical scope
mobile, desktop, and web
1

Definition and main approaches

Cross-platform development seeks to preserve substantial code and design knowledge across more than one computing platform. The shared material may include business logic, user-interface declarations, tests, build configuration, or all four. A project can therefore be cross-platform even when its final applications contain native components for each target.

Frameworks follow different strategies. Flutter renders much of the interface through its own graphics engine; React Native uses JavaScript or TypeScript with native platform components; and .NET MAUI provides a single project model for Android, iOS, macOS, and Windows.12 Qt supplies libraries and tooling for desktop, embedded, and mobile software, including a cross-platform abstraction layer.3

2

Architecture, tools, and workflow

The most maintainable projects separate portable logic from platform-dependent boundaries. A typical design shares networking, data models, validation, and state management, while adapters isolate notifications, sensors, file systems, authentication, window management, and accessibility behavior.

Development usually involves a framework SDK, language toolchain, package manager, compiler or bundler, and target-specific software-development kits. Continuous integration must build and test each supported target, because a successful shared-code compilation does not prove that permissions, screen behavior, input methods, or native integrations work everywhere. Web targets introduce another model: Progressive Web Apps can combine responsive interfaces, installability, caching, and selected device capabilities through browser standards, but remain constrained by browser support and security policies.4

3

Benefits and trade-offs

The principal benefit is reduced duplication: a shared implementation can shorten feature development, simplify defect fixes, and make behavior more consistent across releases. Smaller teams can also address several markets without maintaining entirely separate applications. Cross-platform frameworks may provide common testing utilities, navigation patterns, dependency management, and deployment workflows.

These gains are not free. A framework can add binary size, startup cost, abstraction overhead, or dependence on a particular vendor and release cycle. A common interface may feel unnatural on one platform, and graphics-heavy or latency-sensitive software may require native rendering or specialized engines. Platform APIs also evolve independently, so developers must monitor operating-system changes, store rules, privacy requirements, and the framework's support matrix. A practical choice weighs duplicated engineering against performance, fidelity, staffing, and long-term maintenance rather than treating “write once” as a guarantee.

4

Lesser-known aspects

The hardest cross-platform problems often occur at the edges rather than in the shared core. Keyboard shortcuts, text input, right-to-left layout, screen readers, background execution, deep links, window resizing, and platform navigation conventions expose differences that a common widget layer may conceal.

“Cross-platform” also describes several portability levels. Source portability means the same source can be compiled for several targets; binary portability means an already-built artifact runs across them; and behavioral portability means users receive substantially equivalent results. These are distinct goals. WebAssembly can extend language and runtime portability inside browsers, but it does not automatically provide native access or identical rendering.5 Embedded devices create another edge case: Qt and similar frameworks may target constrained hardware, where memory budgets, graphics drivers, and long product lifecycles matter more than rapid feature sharing.3

Glossary

Shared codebase
A collection of source code maintained for use on multiple target platforms, sometimes with conditional or platform-specific sections.
Native module
A component implemented with a target platform's own language or APIs and exposed to shared application code.
Platform-specific code
Implementation that depends on a particular operating system, device family, hardware interface, or runtime.
Progressive Web App
A web application designed to provide app-like capabilities such as installation, offline behavior, and responsive interaction through web technologies.

Cross-platform development is a design and engineering strategy, not a promise that every platform will share identical code, appearance, performance, or behavior.