(ARM64)
Android
(ARM32, ARM64, IA-32, x86-64)
ChromeOS
Common Language Infrastructure
.NET Framework
(ARM64, RISC-V, x86, x64, and LoongArch)
HarmonyOS
((ARMv8-A))
iOS
(ARMv8-A)
iPadOS
Java
( Alpha, ARC, ARM, C-Sky, Hexagon, IA-64, LoongArch, m68k, Microblaze, MIPS, Nios II, OpenRISC, PA-RISC, PowerPC, RISC-V, s390, SuperH, SPARC, x86, Xtensa)
Linux
x86, ARM (Apple silicon)
macOS
(IA-32, x86-64, ARM, ARM64)
Microsoft Windows
(SPARC, x86)
Solaris
SPARC
(many platforms since 1969)
Unix
Xbox
The office suite is built for Microsoft Windows, macOS, Linux, FreeBSD, NetBSD, OpenBSD, Android, iOS, iPadOS, ChromeOS, web-based Collabora Online and many others.[8][9] Many of these are supported on several hardware platforms with processor architectures including IA-32, x86-64, ARM (ARMel, ARMhf, ARM64), MIPS, MIPSel, PowerPC, ppc64le, and S390x[9][10]
LibreOffice
: a development language which utilizes Juce as its GUI layer. It currently supports Android, iOS, Windows, macOS, Linux and Raspberry Pi.
8th
: A mobile application platform that works in all Indian languages, including their keyboards, and also supports AppWallet and native performance in all OSs.
Anant Computing
: a framework that supports the workflow of app development and deployment in an enterprise environment. Natively developed containers present hardware features of the mobile devices or tablets through an API to HTML5 code thus facilitating the development of mobile apps that run on different platforms.
AppearIQ
: a UI framework written in C++.
Boden
: a free software library used to provide a vector graphics-based, device-independent API. It is designed to provide primitives for 2-dimensional drawing across a number of different backends. Cairo is written in C and has bindings for many programming languages.
Cairo
: an open-source toolkit and game engine for developing 2D and simple 3D cross-platform games and applications.
Cocos2d
: an open-source Write Once Run Anywhere (WORA) framework for Java and Kotlin developers.
Codename One
: an IDE which uses a Pascal-based language for development. It supports Android, iOS, Windows, macOS, Linux.
Delphi
: a GUI and 2D/3D graphics toolkit and IDE, written in eC and with support for additional languages such as C and Python. It supports Linux, FreeBSD, Windows, Android, macOS and the Web through Emscripten or Binaryen (WebAssembly).
Ecere SDK
: an open-source development environment. Implemented in Java with a configurable architecture which supports many tools for software development. Add-ons are available for several languages, including Java and C++.
Eclipse
: an open-source toolkit, but more lightweight because it restricts itself to the GUI.
FLTK
: An open-source widget toolkit that is completely implemented in Object Pascal. It currently supports Linux, Windows and a bit of Windows CE.
fpGUI
: A Windows rapid software development solution for cross-platform application creation and deployment based on knowledge representation and supporting C#, COBOL, Java including Android and BlackBerry smart devices, Objective-C for Apple mobile devices, RPG, Ruby, Visual Basic, and Visual FoxPro.
GeneXus
: A BASIC dialect and compiler that generates C++ code. It includes cross compilers for many platforms and supports numerous platform (Windows, Mac, Linux, Android, iOS and some exotic handhelds).
GLBasic
: an SDK which uses Godot Engine.
Godot
+: An open-source widget toolkit for Unix-like systems with X11 and Microsoft Windows.
GTK
: An open-source language.
Haxe
: An application framework written in C++, used to write native software on numerous systems (Microsoft Windows, POSIX, macOS), with no change to the code.
Juce
: Cross-platform SDK libraries to integrate recognition, document, medical, imaging, and multimedia technologies into Windows, iOS, macOS, Android, Linux and web applications.[14]
LEADTOOLS
: a commercial cross-platform rapid application development language inspired by HyperTalk.
LiveCode
: A programming environment for the FreePascal Compiler. It supports the creation of self-standing graphical and console applications and runs on Linux, MacOSX, iOS, Android, WinCE, Windows and WEB.
Lazarus
: A visual programming language that encapsulates platform-independent code with a platform-specific runtime environment into applications for macOS and Windows A cross-platform Android runtime. It allows unmodified Android apps to run natively on iOS and macOS
Max/MSP
: a cloud-based low-code application development platform.
Mendix
: an open-source model–view–controller design pattern where the model and controller are cross-platform but the view is platform-specific.[15]
MonoCross
: An open-source cross-platform version of Microsoft .NET (a framework for applications and programming languages)
Mono
: an open-source SDK for mobile platform app development in the C++ family.
MoSync
: an open-source platform for building macOS, Windows and Linux applications.
Mozilla application framework
: a 3D graphics library.
OpenGL
: A proprietary 2D game development software for Windows for developing Windows and Nintendo Switch games.
Pixel Game Maker MV
: a proprietary language and IDE for building macOS, Windows and Linux applications.
PureBasic
: The universal development SDK to build multi-platform projects with React Native. Includes latest iOS, tvOS, Android, Android TV, Web, Tizen TV, Tizen Watch, LG webOS, macOS/OSX, Windows, KaiOS, Firefox OS and Firefox TV platforms.
ReNative
: an application framework and widget toolkit for Unix-like systems with X11, Microsoft Windows, macOS, and other systems—available under both proprietary and open-source licenses.
Qt
: A multimedia C++ API that provides low and high level access to graphics, input, audio, etc.
Simple and Fast Multimedia Library
: an open-source multimedia library written in C that creates an abstraction over various platforms' graphics, sound, and input APIs. It runs on OSs including Linux, Windows and macOS and is aimed at games and multimedia applications.
Simple DirectMedia Layer
: a native app development tool to create mobile applications for Android and iOS, using WYSIWYG design editor with JavaScript code editor.
Smartface
: open source cross-platform framework for Android and iOS development.
Titanium Mobile
: a C++ GUI framework for performance. It includes a set of libraries (GUI, SQL, etc..), and IDE. It supports Windows, macOS and Linux.
U++
: Another cross-platform SDK which uses Unity Engine.
Unity
: Windows, macOS, iOS, Android, WebAssembly and Linux using C#.
Uno Platform
: A cross-platform SDK which uses Unreal Engine.
Unreal
: V-Play is a cross-platform development SDK based on the popular Qt framework. V-Play apps and games are created within Qt Creator.
V-Play Engine
: A low-code development tool to create responsive web and hybrid mobile (Android & iOS) applications.
WaveMaker
: an Integrated Development Environment for Windows, Linux, .Net and Java, and web browers. Optimized for business and industrial applications.
WinDev
: an open-source widget toolkit that is also an application framework.[16] It runs on Unix-like systems with X11, Microsoft Windows and macOS.
wxWidgets
: a RAD IDE that uses an object-oriented programming language to compile desktop, web and iOS apps. Xojo supports natively compiling to Windows, macOS, iOS and Linux, and can also create compiled web apps that are able to be run as standalone servers or through CGI.
Xojo
Testing cross-platform applications may be considerably more complicated, since different platforms can exhibit slightly different behaviors or subtle bugs. This problem has led some developers to deride cross-platform development as "write once, debug everywhere", a take on ' "write once, run anywhere" marketing slogan.
Sun Microsystems
Developers are often restricted to using the subset of features which are available on all platforms. This may hinder the application's performance or prohibit developers from using the most advanced features of each platform.
lowest common denominator
Different platforms often have different user interface conventions, which cross-platform applications do not always accommodate. For example, applications developed for macOS and are supposed to place the most important button on the right-hand side of a window or dialog, whereas Microsoft Windows and KDE have the opposite convention. Though many of these differences are subtle, a cross-platform application which does not conform to these conventions may feel clunky or alien to the user. When working quickly, such opposing conventions may even result in data loss, such as in a dialog box confirming whether to save or discard changes.
GNOME
Scripting languages and VM bytecode must be translated into native executable code each time they are used, imposing a performance penalty. This penalty can be alleviated using techniques like ; but some computational overhead may be unavoidable.
just-in-time compilation
Different platforms require the use of native package formats such as and MSI. Multi-platform installers such as InstallAnywhere address this need.
RPM
Cross-platform execution environments may suffer cross-platform security flaws, creating a fertile environment for cross-platform malware.
[17]
There are many challenges when developing cross-platform software.
Cross-platform play
Hardware-agnostic
Software portability
List of video games that support cross-platform play
List of widget toolkits
Hardware virtualization
Java (software platform)
Language binding
Transcompiler
Binary-code compatibility
Xamarin
Comparison of user features of messaging platforms
many of which are cross-platform.