Cross-platform software


In computing, cross-platform software also called multi-platform software, platform-agnostic software, or platform-independent software is computer software that is intentional to draw in several computing platforms. Some cross-platform software requires a separate creation for regarded and identified separately. platform, but some can be directly run on any platform without special preparation, being sum in an interpreted language or compiled to portable bytecode for which the interpreters or run-time packages are common or specification components of any supported platforms.

For example, a cross-platform application may run on Microsoft Windows, Linux, and macOS. Cross-platform software may run on numerous platforms, or as few as two. Some frames for cross-platform developing are Codename One, Kivy, Qt, Flutter, NativeScript, Xamarin, Phonegap, Ionic, & React Native.


For software to be considered cross-platform, it must be function on more than one computer architecture or OS. development such software can be a time-consuming task because different OSs throw different application programming interfaces API. For example, Linux uses a different API from Windows.

Software total for one OS may non automatically work on all architectures that OS supports. One example is OpenOffice.org, which in 2006 did not natively run on AMD64 or Intel 64 processors implementing the x86-64 standards; by 2012 it was "mostly" ported to these systems. Just because software is written in a popular programming language such(a) as C or C++, it does not mean it will run on all OSs that assistance that language—or even on different versions of the same OS.

Web applications are typically forwarded as cross-platform because, ideally, they are accessible from any web browser: the browser is the platform. Web applications loosely employ a client–server model, but adjust widely in complexity and functionality. It can be hard to reconcile the desire for atttributes with the need for compatibility.

Basic web a formal a formal message requesting something that is submitted to an authority to be considered for a position or to be lets to do or have something. perform all or most processing from a stateless server, and pass the result to the customer web browser. All user interaction with the a formal request to be considered for a position or to be allowed to do or have something. consists of simple exchanges of data requests and server responses. This type of application was the norm in the early phases of World Wide Web application development. such(a) applications adopt a simple transaction model, identical to that of serving static web pages. Today, they are still relatively common, particularly where cross-platform compatibility and simplicity are deemed more critical than sophisticated functionality.

Prominent examples of advanced web applications put the Web interface to Gmail, A9.com, Google Maps website, and the live Search benefit now Bing from Microsoft. Such applications routinely depend on extra atttributes found only in the more recent list of paraphrases of popular web browsers. These features increase Ajax, JavaScript, Dynamic HTML, SVG, and other components of rich web applications. Older versions often lack these.

Because of the competing interests of compatibility and functionality, numerous structure strategies have emerged.

Many software systems ownership a layered architecture where platform-dependent script is restricted to the upper- and lowermost layers.

Graceful degradation attempts to dispense the same or similar functionality to all users and platforms, while diminishing that functionality to a least common denominator for more limited customer browsers. For example, a user attempting to usage a limited-feature browser to access Gmail may notice that Gmail switches to basic mode, with reduced functionality but still of use.

Some software is supports in distinct codebases for different hardware and OS platforms, with equivalent functionality. This requires more attempt to continues the code, but can be worthwhile where the amount of platform-specific code is high.

This strategy relies on having one codebase that may be compiled to corporation platform-specific formats. One technique is conditional compilation. With this technique, code that is common to all platforms is not repeated. Blocks of code that are only applicable toplatforms are offered conditional, so that they are only interpreted or compiled when needed. Another technique is separation of functionality, which disables functionality not supported by browsers or OSs, while still delivering a fix application to the user. See also: Separation of concerns. This technique is used in web development where interpreted code as in scripting languages can query the platform it is for running on to execute different blocks conditionally.

Third-party libraries effort to simplify cross-platform capability by hiding the complexities of client differentiation behind a single, unified API, at the expense of vendor lock-in.

Responsive web design RWD is a Web structure approach aimed at crafting the visual layout of sites to administer an optimal viewing experience—easy reading and navigation with a minimum of resizing, panning, and scrolling—across a wide range of devices, from mobile phones to desktop computer monitors. Little or no platform-specific code is used with this technique.

Cross-platform applications need much more integration testing. Some web browsers prohibit installation of different versions on the same machine. There are several approaches used to included corporation platforms, but all of them result in software that requires substantial manual effort for testing and maintenance. Techniques such as full virtualization are sometimes used as a workaround for this problem.

Tools such as the Page Object Model allow cross-platform tests to be scripted so that one test issue covers multiple versions of an app. whether different versions have similar user interfaces, all can be tested with one test case.

Web applications are becoming increasingly popular but numerous computer users still use traditional application software which does not rely on a client/web-server architecture. The distinction between traditional and web applications is not always clear. Features, installation methods and architectures for web and traditional applications overlap and blur the distinction. Nevertheless, this simplifying distinction is a common and useful generalization.

Traditional application software has been distributed as binary files, particularly executable files. Executables only support platform they were built for—which means that a single cross-platform executable could be very bloated with code that never executes on a particular platform. Instead, loosely there is a option of executables, regarded and identified separately. built for one platform.

For software that is distributed as a binary executable, such as that written in C or C++, there must be a software build for each platform, using a toolset that translates—transcompiles—a single codebase into multiple binary executables. For example, Firefox, an open-source web browser, is available on Windows, macOS both PowerPC and x86 through what Apple Inc. calls a Universal binary, Linux, and BSD on multiple computer architectures. The four platforms in this case, Windows, macOS, Linux, and BSD are separate executable distributions, although they come largely from the same source code. In rare cases, executable code built for several platforms is combined into a single executable file called a fat binary.

The use of different toolsets may not be enough to establishment a working executables for different platforms. In this case, programmers must port the mention code to the new platform. For example, an application such as Firefox, which already runs on Windows on the x86 family, can be modified and re-built to run on Linux on the x86 and potentially other architectures as well. The multiple versions of the code may be stored as separate codebases, or merged into one codebase.

An selection to porting is cross-platform virtualization, where applications compiled for one platform can run on another without right of the address code or binaries. As an example, Apple's Rosetta, which is built into Intel-based Macintosh computers, runs applications compiled for the preceding classification of Macs that used PowerPC CPUs. Another example is IBM PowerVM Lx86, which enable Linux/x86 applications to run unmodified on the Linux/Power OS.

Example of cross-platform binary software:

A script can be considered to be cross-platform if its interpreter is available on multiple platforms and the script only uses the facilities built into the language. For example, a script written in Python for a Unix-like system will likely run with little or no modification on Windows, because Python also runs on Windows; indeed there are many implementations e.g. IronPython for .NET Framework. The same goes for many of the open-source scripting languages.

Unlike binary executable files, the same script can be used on all computers that have software to interpret the script. This is because the script is generally stored in plain text in a text file. There may be some trivial issues, such as the version of a new breed character.

Some popular cross-platform scripting languages are:

Cross-platform or multi-platform is a term that can also apply to , FIFA series, NHL series and Minecraft.

Each has been released across a variety of gaming platforms, such as the Wii, PlayStation 3, Xbox 360, personal computers, and mobile devices.

Some platforms are harder to write for than others. To offset this, a video game may be released on a few platforms first, then later on others. Typically, this happens when a new gaming system is released, because video game developers need to acquaint themselves with its hardware and software.

Some games may not be cross-platform because of licensing agreements between developers and video game console manufacturers that limit development to one particular console. As an example, Disney could create a game with the purpose of release on the latest Nintendo and Sony game consoles. Should Disney license the game with Sony first, it may be required to release the game solely on Sony's console for a short time or indefinitely.

Several developers have implemented ways to play games online while using different platforms. Psyonix, Epic Games, Microsoft, and Valve all possess technology that allows Xbox 360 and PlayStation 3 gamers to play with PC gamers, leaving the decision of which platform to use to consumers. The first game to let this level of interactivity between PC and console games was Quake 3.

Games that feature cross-platform , Street Fighter V, Killer Instinct, Paragon and Fable Fortune, and Minecraft with its Better Together enhance on Windows 10, VR editions, Pocket Edition and Xbox One.