CINXE.COM

Cross-platform software - Wikipedia

<!DOCTYPE html> <html class="client-nojs vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-sticky-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-feature-night-mode-enabled skin-theme-clientpref-day vector-toc-available" lang="en" dir="ltr"> <head> <meta charset="UTF-8"> <title>Cross-platform software - Wikipedia</title> <script>(function(){var className="client-js vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-sticky-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-feature-night-mode-enabled skin-theme-clientpref-day vector-toc-available";var cookie=document.cookie.match(/(?:^|; )enwikimwclientpreferences=([^;]+)/);if(cookie){cookie[1].split('%2C').forEach(function(pref){className=className.replace(new RegExp('(^| )'+pref.replace(/-clientpref-\w+$|[^\w-]+/g,'')+'-clientpref-\\w+( |$)'),'$1'+pref+'$2');});}document.documentElement.className=className;}());RLCONF={"wgBreakFrames":false,"wgSeparatorTransformTable":["",""],"wgDigitTransformTable":["",""],"wgDefaultDateFormat":"dmy", "wgMonthNames":["","January","February","March","April","May","June","July","August","September","October","November","December"],"wgRequestId":"e459f226-bcc5-49b2-a06a-c7e074fb1a98","wgCanonicalNamespace":"","wgCanonicalSpecialPageName":false,"wgNamespaceNumber":0,"wgPageName":"Cross-platform_software","wgTitle":"Cross-platform software","wgCurRevisionId":1259062949,"wgRevisionId":1259062949,"wgArticleId":81193,"wgIsArticle":true,"wgIsRedirect":false,"wgAction":"view","wgUserName":null,"wgUserGroups":["*"],"wgCategories":["Articles with short description","Short description matches Wikidata","Wikipedia articles needing clarification from July 2018","Cross-platform software","Computing platforms","Interoperability"],"wgPageViewLanguage":"en","wgPageContentLanguage":"en","wgPageContentModel":"wikitext","wgRelevantPageName":"Cross-platform_software","wgRelevantArticleId":81193,"wgIsProbablyEditable":true,"wgRelevantPageIsProbablyEditable":true,"wgRestrictionEdit":[],"wgRestrictionMove":[ ],"wgRedirectedFrom":"Cross-platform","wgNoticeProject":"wikipedia","wgCiteReferencePreviewsActive":false,"wgFlaggedRevsParams":{"tags":{"status":{"levels":1}}},"wgMediaViewerOnClick":true,"wgMediaViewerEnabledByDefault":true,"wgPopupsFlags":0,"wgVisualEditor":{"pageLanguageCode":"en","pageLanguageDir":"ltr","pageVariantFallbacks":"en"},"wgMFDisplayWikibaseDescriptions":{"search":true,"watchlist":true,"tagline":false,"nearby":true},"wgWMESchemaEditAttemptStepOversample":false,"wgWMEPageLength":40000,"wgInternalRedirectTargetUrl":"/wiki/Cross-platform_software","wgRelatedArticlesCompat":[],"wgEditSubmitButtonLabelPublish":true,"wgULSPosition":"interlanguage","wgULSisCompactLinksEnabled":false,"wgVector2022LanguageInHeader":true,"wgULSisLanguageSelectorEmpty":false,"wgWikibaseItemId":"Q174666","wgCheckUserClientHintsHeadersJsApi":["brands","architecture","bitness","fullVersionList","mobile","model","platform","platformVersion"],"GEHomepageSuggestedEditsEnableTopics":true, "wgGETopicsMatchModeEnabled":false,"wgGEStructuredTaskRejectionReasonTextInputEnabled":false,"wgGELevelingUpEnabledForUser":false};RLSTATE={"ext.globalCssJs.user.styles":"ready","site.styles":"ready","user.styles":"ready","ext.globalCssJs.user":"ready","user":"ready","user.options":"loading","ext.cite.styles":"ready","skins.vector.search.codex.styles":"ready","skins.vector.styles":"ready","skins.vector.icons":"ready","ext.wikimediamessages.styles":"ready","ext.visualEditor.desktopArticleTarget.noscript":"ready","ext.uls.interlanguage":"ready","wikibase.client.init":"ready","ext.wikimediaBadges":"ready"};RLPAGEMODULES=["mediawiki.action.view.redirect","ext.cite.ux-enhancements","site","mediawiki.page.ready","mediawiki.toc","skins.vector.js","ext.centralNotice.geoIP","ext.centralNotice.startUp","ext.gadget.ReferenceTooltips","ext.gadget.switcher","ext.urlShortener.toolbar","ext.centralauth.centralautologin","ext.popups","ext.visualEditor.desktopArticleTarget.init", "ext.visualEditor.targetLoader","ext.echo.centralauth","ext.eventLogging","ext.wikimediaEvents","ext.navigationTiming","ext.uls.interface","ext.cx.eventlogging.campaigns","ext.cx.uls.quick.actions","wikibase.client.vector-2022","ext.checkUser.clientHints","ext.growthExperiments.SuggestedEditSession","wikibase.sidebar.tracking"];</script> <script>(RLQ=window.RLQ||[]).push(function(){mw.loader.impl(function(){return["user.options@12s5i",function($,jQuery,require,module){mw.user.tokens.set({"patrolToken":"+\\","watchToken":"+\\","csrfToken":"+\\"}); }];});});</script> <link rel="stylesheet" href="/w/load.php?lang=en&amp;modules=ext.cite.styles%7Cext.uls.interlanguage%7Cext.visualEditor.desktopArticleTarget.noscript%7Cext.wikimediaBadges%7Cext.wikimediamessages.styles%7Cskins.vector.icons%2Cstyles%7Cskins.vector.search.codex.styles%7Cwikibase.client.init&amp;only=styles&amp;skin=vector-2022"> <script async="" src="/w/load.php?lang=en&amp;modules=startup&amp;only=scripts&amp;raw=1&amp;skin=vector-2022"></script> <meta name="ResourceLoaderDynamicStyles" content=""> <link rel="stylesheet" href="/w/load.php?lang=en&amp;modules=site.styles&amp;only=styles&amp;skin=vector-2022"> <meta name="generator" content="MediaWiki 1.44.0-wmf.5"> <meta name="referrer" content="origin"> <meta name="referrer" content="origin-when-cross-origin"> <meta name="robots" content="max-image-preview:standard"> <meta name="format-detection" content="telephone=no"> <meta name="viewport" content="width=1120"> <meta property="og:title" content="Cross-platform software - Wikipedia"> <meta property="og:type" content="website"> <link rel="alternate" media="only screen and (max-width: 640px)" href="//en.m.wikipedia.org/wiki/Cross-platform_software"> <link rel="alternate" type="application/x-wiki" title="Edit this page" href="/w/index.php?title=Cross-platform_software&amp;action=edit"> <link rel="apple-touch-icon" href="/static/apple-touch/wikipedia.png"> <link rel="icon" href="/static/favicon/wikipedia.ico"> <link rel="search" type="application/opensearchdescription+xml" href="/w/rest.php/v1/search" title="Wikipedia (en)"> <link rel="EditURI" type="application/rsd+xml" href="//en.wikipedia.org/w/api.php?action=rsd"> <link rel="canonical" href="https://en.wikipedia.org/wiki/Cross-platform_software"> <link rel="license" href="https://creativecommons.org/licenses/by-sa/4.0/deed.en"> <link rel="alternate" type="application/atom+xml" title="Wikipedia Atom feed" href="/w/index.php?title=Special:RecentChanges&amp;feed=atom"> <link rel="dns-prefetch" href="//meta.wikimedia.org" /> <link rel="dns-prefetch" href="//login.wikimedia.org"> </head> <body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject mw-editable page-Cross-platform_software rootpage-Cross-platform_software skin-vector-2022 action-view"><a class="mw-jump-link" href="#bodyContent">Jump to content</a> <div class="vector-header-container"> <header class="vector-header mw-header"> <div class="vector-header-start"> <nav class="vector-main-menu-landmark" aria-label="Site"> <div id="vector-main-menu-dropdown" class="vector-dropdown vector-main-menu-dropdown vector-button-flush-left vector-button-flush-right" > <input type="checkbox" id="vector-main-menu-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-main-menu-dropdown" class="vector-dropdown-checkbox " aria-label="Main menu" > <label id="vector-main-menu-dropdown-label" for="vector-main-menu-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-menu mw-ui-icon-wikimedia-menu"></span> <span class="vector-dropdown-label-text">Main menu</span> </label> <div class="vector-dropdown-content"> <div id="vector-main-menu-unpinned-container" class="vector-unpinned-container"> <div id="vector-main-menu" class="vector-main-menu vector-pinnable-element"> <div class="vector-pinnable-header vector-main-menu-pinnable-header vector-pinnable-header-unpinned" data-feature-name="main-menu-pinned" data-pinnable-element-id="vector-main-menu" data-pinned-container-id="vector-main-menu-pinned-container" data-unpinned-container-id="vector-main-menu-unpinned-container" > <div class="vector-pinnable-header-label">Main menu</div> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-main-menu.pin">move to sidebar</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-main-menu.unpin">hide</button> </div> <div id="p-navigation" class="vector-menu mw-portlet mw-portlet-navigation" > <div class="vector-menu-heading"> Navigation </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="n-mainpage-description" class="mw-list-item"><a href="/wiki/Main_Page" title="Visit the main page [z]" accesskey="z"><span>Main page</span></a></li><li id="n-contents" class="mw-list-item"><a href="/wiki/Wikipedia:Contents" title="Guides to browsing Wikipedia"><span>Contents</span></a></li><li id="n-currentevents" class="mw-list-item"><a href="/wiki/Portal:Current_events" title="Articles related to current events"><span>Current events</span></a></li><li id="n-randompage" class="mw-list-item"><a href="/wiki/Special:Random" title="Visit a randomly selected article [x]" accesskey="x"><span>Random article</span></a></li><li id="n-aboutsite" class="mw-list-item"><a href="/wiki/Wikipedia:About" title="Learn about Wikipedia and how it works"><span>About Wikipedia</span></a></li><li id="n-contactpage" class="mw-list-item"><a href="//en.wikipedia.org/wiki/Wikipedia:Contact_us" title="How to contact Wikipedia"><span>Contact us</span></a></li> </ul> </div> </div> <div id="p-interaction" class="vector-menu mw-portlet mw-portlet-interaction" > <div class="vector-menu-heading"> Contribute </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="n-help" class="mw-list-item"><a href="/wiki/Help:Contents" title="Guidance on how to use and edit Wikipedia"><span>Help</span></a></li><li id="n-introduction" class="mw-list-item"><a href="/wiki/Help:Introduction" title="Learn how to edit Wikipedia"><span>Learn to edit</span></a></li><li id="n-portal" class="mw-list-item"><a href="/wiki/Wikipedia:Community_portal" title="The hub for editors"><span>Community portal</span></a></li><li id="n-recentchanges" class="mw-list-item"><a href="/wiki/Special:RecentChanges" title="A list of recent changes to Wikipedia [r]" accesskey="r"><span>Recent changes</span></a></li><li id="n-upload" class="mw-list-item"><a href="/wiki/Wikipedia:File_upload_wizard" title="Add images or other media for use on Wikipedia"><span>Upload file</span></a></li> </ul> </div> </div> </div> </div> </div> </div> </nav> <a href="/wiki/Main_Page" class="mw-logo"> <img class="mw-logo-icon" src="/static/images/icons/wikipedia.png" alt="" aria-hidden="true" height="50" width="50"> <span class="mw-logo-container skin-invert"> <img class="mw-logo-wordmark" alt="Wikipedia" src="/static/images/mobile/copyright/wikipedia-wordmark-en.svg" style="width: 7.5em; height: 1.125em;"> <img class="mw-logo-tagline" alt="The Free Encyclopedia" src="/static/images/mobile/copyright/wikipedia-tagline-en.svg" width="117" height="13" style="width: 7.3125em; height: 0.8125em;"> </span> </a> </div> <div class="vector-header-end"> <div id="p-search" role="search" class="vector-search-box-vue vector-search-box-collapses vector-search-box-show-thumbnail vector-search-box-auto-expand-width vector-search-box"> <a href="/wiki/Special:Search" class="cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only search-toggle" title="Search Wikipedia [f]" accesskey="f"><span class="vector-icon mw-ui-icon-search mw-ui-icon-wikimedia-search"></span> <span>Search</span> </a> <div class="vector-typeahead-search-container"> <div class="cdx-typeahead-search cdx-typeahead-search--show-thumbnail cdx-typeahead-search--auto-expand-width"> <form action="/w/index.php" id="searchform" class="cdx-search-input cdx-search-input--has-end-button"> <div id="simpleSearch" class="cdx-search-input__input-wrapper" data-search-loc="header-moved"> <div class="cdx-text-input cdx-text-input--has-start-icon"> <input class="cdx-text-input__input" type="search" name="search" placeholder="Search Wikipedia" aria-label="Search Wikipedia" autocapitalize="sentences" title="Search Wikipedia [f]" accesskey="f" id="searchInput" > <span class="cdx-text-input__icon cdx-text-input__start-icon"></span> </div> <input type="hidden" name="title" value="Special:Search"> </div> <button class="cdx-button cdx-search-input__end-button">Search</button> </form> </div> </div> </div> <nav class="vector-user-links vector-user-links-wide" aria-label="Personal tools"> <div class="vector-user-links-main"> <div id="p-vector-user-menu-preferences" class="vector-menu mw-portlet emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> <div id="p-vector-user-menu-userpage" class="vector-menu mw-portlet emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> <nav class="vector-appearance-landmark" aria-label="Appearance"> <div id="vector-appearance-dropdown" class="vector-dropdown " title="Change the appearance of the page&#039;s font size, width, and color" > <input type="checkbox" id="vector-appearance-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-appearance-dropdown" class="vector-dropdown-checkbox " aria-label="Appearance" > <label id="vector-appearance-dropdown-label" for="vector-appearance-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-appearance mw-ui-icon-wikimedia-appearance"></span> <span class="vector-dropdown-label-text">Appearance</span> </label> <div class="vector-dropdown-content"> <div id="vector-appearance-unpinned-container" class="vector-unpinned-container"> </div> </div> </div> </nav> <div id="p-vector-user-menu-notifications" class="vector-menu mw-portlet emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> <div id="p-vector-user-menu-overflow" class="vector-menu mw-portlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="pt-sitesupport-2" class="user-links-collapsible-item mw-list-item user-links-collapsible-item"><a data-mw="interface" href="https://donate.wikimedia.org/wiki/Special:FundraiserRedirector?utm_source=donate&amp;utm_medium=sidebar&amp;utm_campaign=C13_en.wikipedia.org&amp;uselang=en" class=""><span>Donate</span></a> </li> <li id="pt-createaccount-2" class="user-links-collapsible-item mw-list-item user-links-collapsible-item"><a data-mw="interface" href="/w/index.php?title=Special:CreateAccount&amp;returnto=Cross-platform+software" title="You are encouraged to create an account and log in; however, it is not mandatory" class=""><span>Create account</span></a> </li> <li id="pt-login-2" class="user-links-collapsible-item mw-list-item user-links-collapsible-item"><a data-mw="interface" href="/w/index.php?title=Special:UserLogin&amp;returnto=Cross-platform+software" title="You&#039;re encouraged to log in; however, it&#039;s not mandatory. [o]" accesskey="o" class=""><span>Log in</span></a> </li> </ul> </div> </div> </div> <div id="vector-user-links-dropdown" class="vector-dropdown vector-user-menu vector-button-flush-right vector-user-menu-logged-out" title="Log in and more options" > <input type="checkbox" id="vector-user-links-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-user-links-dropdown" class="vector-dropdown-checkbox " aria-label="Personal tools" > <label id="vector-user-links-dropdown-label" for="vector-user-links-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-ellipsis mw-ui-icon-wikimedia-ellipsis"></span> <span class="vector-dropdown-label-text">Personal tools</span> </label> <div class="vector-dropdown-content"> <div id="p-personal" class="vector-menu mw-portlet mw-portlet-personal user-links-collapsible-item" title="User menu" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="pt-sitesupport" class="user-links-collapsible-item mw-list-item"><a href="https://donate.wikimedia.org/wiki/Special:FundraiserRedirector?utm_source=donate&amp;utm_medium=sidebar&amp;utm_campaign=C13_en.wikipedia.org&amp;uselang=en"><span>Donate</span></a></li><li id="pt-createaccount" class="user-links-collapsible-item mw-list-item"><a href="/w/index.php?title=Special:CreateAccount&amp;returnto=Cross-platform+software" title="You are encouraged to create an account and log in; however, it is not mandatory"><span class="vector-icon mw-ui-icon-userAdd mw-ui-icon-wikimedia-userAdd"></span> <span>Create account</span></a></li><li id="pt-login" class="user-links-collapsible-item mw-list-item"><a href="/w/index.php?title=Special:UserLogin&amp;returnto=Cross-platform+software" title="You&#039;re encouraged to log in; however, it&#039;s not mandatory. [o]" accesskey="o"><span class="vector-icon mw-ui-icon-logIn mw-ui-icon-wikimedia-logIn"></span> <span>Log in</span></a></li> </ul> </div> </div> <div id="p-user-menu-anon-editor" class="vector-menu mw-portlet mw-portlet-user-menu-anon-editor" > <div class="vector-menu-heading"> Pages for logged out editors <a href="/wiki/Help:Introduction" aria-label="Learn more about editing"><span>learn more</span></a> </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="pt-anoncontribs" class="mw-list-item"><a href="/wiki/Special:MyContributions" title="A list of edits made from this IP address [y]" accesskey="y"><span>Contributions</span></a></li><li id="pt-anontalk" class="mw-list-item"><a href="/wiki/Special:MyTalk" title="Discussion about edits from this IP address [n]" accesskey="n"><span>Talk</span></a></li> </ul> </div> </div> </div> </div> </nav> </div> </header> </div> <div class="mw-page-container"> <div class="mw-page-container-inner"> <div class="vector-sitenotice-container"> <div id="siteNotice"><!-- CentralNotice --></div> </div> <div class="vector-column-start"> <div class="vector-main-menu-container"> <div id="mw-navigation"> <nav id="mw-panel" class="vector-main-menu-landmark" aria-label="Site"> <div id="vector-main-menu-pinned-container" class="vector-pinned-container"> </div> </nav> </div> </div> <div class="vector-sticky-pinned-container"> <nav id="mw-panel-toc" aria-label="Contents" data-event-name="ui.sidebar-toc" class="mw-table-of-contents-container vector-toc-landmark"> <div id="vector-toc-pinned-container" class="vector-pinned-container"> <div id="vector-toc" class="vector-toc vector-pinnable-element"> <div class="vector-pinnable-header vector-toc-pinnable-header vector-pinnable-header-pinned" data-feature-name="toc-pinned" data-pinnable-element-id="vector-toc" > <h2 class="vector-pinnable-header-label">Contents</h2> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-toc.pin">move to sidebar</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-toc.unpin">hide</button> </div> <ul class="vector-toc-contents" id="mw-panel-toc-list"> <li id="toc-mw-content-text" class="vector-toc-list-item vector-toc-level-1"> <a href="#" class="vector-toc-link"> <div class="vector-toc-text">(Top)</div> </a> </li> <li id="toc-Platforms" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Platforms"> <div class="vector-toc-text"> <span class="vector-toc-numb">1</span> <span>Platforms</span> </div> </a> <button aria-controls="toc-Platforms-sublist" class="cdx-button cdx-button--weight-quiet cdx-button--icon-only vector-toc-toggle"> <span class="vector-icon mw-ui-icon-wikimedia-expand"></span> <span>Toggle Platforms subsection</span> </button> <ul id="toc-Platforms-sublist" class="vector-toc-list"> <li id="toc-Hardware" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Hardware"> <div class="vector-toc-text"> <span class="vector-toc-numb">1.1</span> <span>Hardware</span> </div> </a> <ul id="toc-Hardware-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Software" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Software"> <div class="vector-toc-text"> <span class="vector-toc-numb">1.2</span> <span>Software</span> </div> </a> <ul id="toc-Software-sublist" class="vector-toc-list"> <li id="toc-Java" class="vector-toc-list-item vector-toc-level-3"> <a class="vector-toc-link" href="#Java"> <div class="vector-toc-text"> <span class="vector-toc-numb">1.2.1</span> <span>Java</span> </div> </a> <ul id="toc-Java-sublist" class="vector-toc-list"> </ul> </li> </ul> </li> </ul> </li> <li id="toc-Implementation" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Implementation"> <div class="vector-toc-text"> <span class="vector-toc-numb">2</span> <span>Implementation</span> </div> </a> <button aria-controls="toc-Implementation-sublist" class="cdx-button cdx-button--weight-quiet cdx-button--icon-only vector-toc-toggle"> <span class="vector-icon mw-ui-icon-wikimedia-expand"></span> <span>Toggle Implementation subsection</span> </button> <ul id="toc-Implementation-sublist" class="vector-toc-list"> <li id="toc-Web_applications" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Web_applications"> <div class="vector-toc-text"> <span class="vector-toc-numb">2.1</span> <span>Web applications</span> </div> </a> <ul id="toc-Web_applications-sublist" class="vector-toc-list"> <li id="toc-Design" class="vector-toc-list-item vector-toc-level-3"> <a class="vector-toc-link" href="#Design"> <div class="vector-toc-text"> <span class="vector-toc-numb">2.1.1</span> <span>Design</span> </div> </a> <ul id="toc-Design-sublist" class="vector-toc-list"> <li id="toc-Graceful_degradation" class="vector-toc-list-item vector-toc-level-4"> <a class="vector-toc-link" href="#Graceful_degradation"> <div class="vector-toc-text"> <span class="vector-toc-numb">2.1.1.1</span> <span>Graceful degradation</span> </div> </a> <ul id="toc-Graceful_degradation-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Multiple_codebases" class="vector-toc-list-item vector-toc-level-4"> <a class="vector-toc-link" href="#Multiple_codebases"> <div class="vector-toc-text"> <span class="vector-toc-numb">2.1.1.2</span> <span>Multiple codebases</span> </div> </a> <ul id="toc-Multiple_codebases-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Single_codebase" class="vector-toc-list-item vector-toc-level-4"> <a class="vector-toc-link" href="#Single_codebase"> <div class="vector-toc-text"> <span class="vector-toc-numb">2.1.1.3</span> <span>Single codebase</span> </div> </a> <ul id="toc-Single_codebase-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Third-party_libraries" class="vector-toc-list-item vector-toc-level-4"> <a class="vector-toc-link" href="#Third-party_libraries"> <div class="vector-toc-text"> <span class="vector-toc-numb">2.1.1.4</span> <span>Third-party libraries</span> </div> </a> <ul id="toc-Third-party_libraries-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Responsive_web_design" class="vector-toc-list-item vector-toc-level-4"> <a class="vector-toc-link" href="#Responsive_web_design"> <div class="vector-toc-text"> <span class="vector-toc-numb">2.1.1.5</span> <span>Responsive web design</span> </div> </a> <ul id="toc-Responsive_web_design-sublist" class="vector-toc-list"> </ul> </li> </ul> </li> <li id="toc-Testing" class="vector-toc-list-item vector-toc-level-3"> <a class="vector-toc-link" href="#Testing"> <div class="vector-toc-text"> <span class="vector-toc-numb">2.1.2</span> <span>Testing</span> </div> </a> <ul id="toc-Testing-sublist" class="vector-toc-list"> </ul> </li> </ul> </li> <li id="toc-Traditional_applications" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Traditional_applications"> <div class="vector-toc-text"> <span class="vector-toc-numb">2.2</span> <span>Traditional applications</span> </div> </a> <ul id="toc-Traditional_applications-sublist" class="vector-toc-list"> <li id="toc-Binary_software" class="vector-toc-list-item vector-toc-level-3"> <a class="vector-toc-link" href="#Binary_software"> <div class="vector-toc-text"> <span class="vector-toc-numb">2.2.1</span> <span>Binary software</span> </div> </a> <ul id="toc-Binary_software-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Scripts_and_interpreted_languages" class="vector-toc-list-item vector-toc-level-3"> <a class="vector-toc-link" href="#Scripts_and_interpreted_languages"> <div class="vector-toc-text"> <span class="vector-toc-numb">2.2.2</span> <span>Scripts and interpreted languages</span> </div> </a> <ul id="toc-Scripts_and_interpreted_languages-sublist" class="vector-toc-list"> </ul> </li> </ul> </li> <li id="toc-Video_games" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Video_games"> <div class="vector-toc-text"> <span class="vector-toc-numb">2.3</span> <span>Video games</span> </div> </a> <ul id="toc-Video_games-sublist" class="vector-toc-list"> <li id="toc-Cross-platform_play" class="vector-toc-list-item vector-toc-level-3"> <a class="vector-toc-link" href="#Cross-platform_play"> <div class="vector-toc-text"> <span class="vector-toc-numb">2.3.1</span> <span>Cross-platform play</span> </div> </a> <ul id="toc-Cross-platform_play-sublist" class="vector-toc-list"> </ul> </li> </ul> </li> </ul> </li> <li id="toc-Programming" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Programming"> <div class="vector-toc-text"> <span class="vector-toc-numb">3</span> <span>Programming</span> </div> </a> <button aria-controls="toc-Programming-sublist" class="cdx-button cdx-button--weight-quiet cdx-button--icon-only vector-toc-toggle"> <span class="vector-icon mw-ui-icon-wikimedia-expand"></span> <span>Toggle Programming subsection</span> </button> <ul id="toc-Programming-sublist" class="vector-toc-list"> <li id="toc-Approaches" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Approaches"> <div class="vector-toc-text"> <span class="vector-toc-numb">3.1</span> <span>Approaches</span> </div> </a> <ul id="toc-Approaches-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Toolkits_and_environments" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Toolkits_and_environments"> <div class="vector-toc-text"> <span class="vector-toc-numb">3.2</span> <span>Toolkits and environments</span> </div> </a> <ul id="toc-Toolkits_and_environments-sublist" class="vector-toc-list"> </ul> </li> </ul> </li> <li id="toc-Challenges" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Challenges"> <div class="vector-toc-text"> <span class="vector-toc-numb">4</span> <span>Challenges</span> </div> </a> <ul id="toc-Challenges-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-See_also" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#See_also"> <div class="vector-toc-text"> <span class="vector-toc-numb">5</span> <span>See also</span> </div> </a> <ul id="toc-See_also-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-References" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#References"> <div class="vector-toc-text"> <span class="vector-toc-numb">6</span> <span>References</span> </div> </a> <ul id="toc-References-sublist" class="vector-toc-list"> </ul> </li> </ul> </div> </div> </nav> </div> </div> <div class="mw-content-container"> <main id="content" class="mw-body"> <header class="mw-body-header vector-page-titlebar"> <nav aria-label="Contents" class="vector-toc-landmark"> <div id="vector-page-titlebar-toc" class="vector-dropdown vector-page-titlebar-toc vector-button-flush-left" > <input type="checkbox" id="vector-page-titlebar-toc-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-page-titlebar-toc" class="vector-dropdown-checkbox " aria-label="Toggle the table of contents" > <label id="vector-page-titlebar-toc-label" for="vector-page-titlebar-toc-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-listBullet mw-ui-icon-wikimedia-listBullet"></span> <span class="vector-dropdown-label-text">Toggle the table of contents</span> </label> <div class="vector-dropdown-content"> <div id="vector-page-titlebar-toc-unpinned-container" class="vector-unpinned-container"> </div> </div> </div> </nav> <h1 id="firstHeading" class="firstHeading mw-first-heading"><span class="mw-page-title-main">Cross-platform software</span></h1> <div id="p-lang-btn" class="vector-dropdown mw-portlet mw-portlet-lang" > <input type="checkbox" id="p-lang-btn-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-p-lang-btn" class="vector-dropdown-checkbox mw-interlanguage-selector" aria-label="Go to an article in another language. Available in 53 languages" > <label id="p-lang-btn-label" for="p-lang-btn-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--action-progressive mw-portlet-lang-heading-53" aria-hidden="true" ><span class="vector-icon mw-ui-icon-language-progressive mw-ui-icon-wikimedia-language-progressive"></span> <span class="vector-dropdown-label-text">53 languages</span> </label> <div class="vector-dropdown-content"> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li class="interlanguage-link interwiki-af mw-list-item"><a href="https://af.wikipedia.org/wiki/Kruisplatform" title="Kruisplatform – Afrikaans" lang="af" hreflang="af" data-title="Kruisplatform" data-language-autonym="Afrikaans" data-language-local-name="Afrikaans" class="interlanguage-link-target"><span>Afrikaans</span></a></li><li class="interlanguage-link interwiki-ar mw-list-item"><a href="https://ar.wikipedia.org/wiki/%D9%85%D8%AA%D8%B9%D8%AF%D8%AF_%D8%A7%D9%84%D9%85%D9%86%D8%B5%D8%A7%D8%AA" title="متعدد المنصات – Arabic" lang="ar" hreflang="ar" data-title="متعدد المنصات" data-language-autonym="العربية" data-language-local-name="Arabic" class="interlanguage-link-target"><span>العربية</span></a></li><li class="interlanguage-link interwiki-ast mw-list-item"><a href="https://ast.wikipedia.org/wiki/Multiplataforma" title="Multiplataforma – Asturian" lang="ast" hreflang="ast" data-title="Multiplataforma" data-language-autonym="Asturianu" data-language-local-name="Asturian" class="interlanguage-link-target"><span>Asturianu</span></a></li><li class="interlanguage-link interwiki-az mw-list-item"><a href="https://az.wikipedia.org/wiki/Kross_platform_proqram_t%C9%99minat%C4%B1" title="Kross platform proqram təminatı – Azerbaijani" lang="az" hreflang="az" data-title="Kross platform proqram təminatı" data-language-autonym="Azərbaycanca" data-language-local-name="Azerbaijani" class="interlanguage-link-target"><span>Azərbaycanca</span></a></li><li class="interlanguage-link interwiki-be mw-list-item"><a href="https://be.wikipedia.org/wiki/%D0%9A%D1%80%D0%BE%D1%81%D0%BF%D0%BB%D0%B0%D1%82%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D0%B2%D0%B0%D0%B5_%D0%BF%D1%80%D0%B0%D0%B3%D1%80%D0%B0%D0%BC%D0%BD%D0%B0%D0%B5_%D0%B7%D0%B0%D0%B1%D0%B5%D1%81%D0%BF%D1%8F%D1%87%D1%8D%D0%BD%D0%BD%D0%B5" title="Кросплатформавае праграмнае забеспячэнне – Belarusian" lang="be" hreflang="be" data-title="Кросплатформавае праграмнае забеспячэнне" data-language-autonym="Беларуская" data-language-local-name="Belarusian" class="interlanguage-link-target"><span>Беларуская</span></a></li><li class="interlanguage-link interwiki-bg mw-list-item"><a href="https://bg.wikipedia.org/wiki/%D0%9C%D0%B5%D0%B6%D0%B4%D1%83%D0%BF%D0%BB%D0%B0%D1%82%D1%84%D0%BE%D1%80%D0%BC%D0%B5%D0%BD_%D1%81%D0%BE%D1%84%D1%82%D1%83%D0%B5%D1%80" title="Междуплатформен софтуер – Bulgarian" lang="bg" hreflang="bg" data-title="Междуплатформен софтуер" data-language-autonym="Български" data-language-local-name="Bulgarian" class="interlanguage-link-target"><span>Български</span></a></li><li class="interlanguage-link interwiki-ca mw-list-item"><a href="https://ca.wikipedia.org/wiki/Multiplataforma" title="Multiplataforma – Catalan" lang="ca" hreflang="ca" data-title="Multiplataforma" data-language-autonym="Català" data-language-local-name="Catalan" class="interlanguage-link-target"><span>Català</span></a></li><li class="interlanguage-link interwiki-cs mw-list-item"><a href="https://cs.wikipedia.org/wiki/Multiplatformn%C3%AD_software" title="Multiplatformní software – Czech" lang="cs" hreflang="cs" data-title="Multiplatformní software" data-language-autonym="Čeština" data-language-local-name="Czech" class="interlanguage-link-target"><span>Čeština</span></a></li><li class="interlanguage-link interwiki-da mw-list-item"><a href="https://da.wikipedia.org/wiki/Platformsuafh%C3%A6ngighed" title="Platformsuafhængighed – Danish" lang="da" hreflang="da" data-title="Platformsuafhængighed" data-language-autonym="Dansk" data-language-local-name="Danish" class="interlanguage-link-target"><span>Dansk</span></a></li><li class="interlanguage-link interwiki-de mw-list-item"><a href="https://de.wikipedia.org/wiki/Plattformunabh%C3%A4ngigkeit" title="Plattformunabhängigkeit – German" lang="de" hreflang="de" data-title="Plattformunabhängigkeit" data-language-autonym="Deutsch" data-language-local-name="German" class="interlanguage-link-target"><span>Deutsch</span></a></li><li class="interlanguage-link interwiki-el mw-list-item"><a href="https://el.wikipedia.org/wiki/%CE%9B%CE%BF%CE%B3%CE%B9%CF%83%CE%BC%CE%B9%CE%BA%CF%8C_%CE%B1%CE%BD%CE%B5%CE%BE%CE%AC%CF%81%CF%84%CE%B7%CF%84%CE%BF_%CF%80%CE%BB%CE%B1%CF%84%CF%86%CF%8C%CF%81%CE%BC%CE%B1%CF%82" title="Λογισμικό ανεξάρτητο πλατφόρμας – Greek" lang="el" hreflang="el" data-title="Λογισμικό ανεξάρτητο πλατφόρμας" data-language-autonym="Ελληνικά" data-language-local-name="Greek" class="interlanguage-link-target"><span>Ελληνικά</span></a></li><li class="interlanguage-link interwiki-es mw-list-item"><a href="https://es.wikipedia.org/wiki/Multiplataforma" title="Multiplataforma – Spanish" lang="es" hreflang="es" data-title="Multiplataforma" data-language-autonym="Español" data-language-local-name="Spanish" class="interlanguage-link-target"><span>Español</span></a></li><li class="interlanguage-link interwiki-eo mw-list-item"><a href="https://eo.wikipedia.org/wiki/Plursistema" title="Plursistema – Esperanto" lang="eo" hreflang="eo" data-title="Plursistema" data-language-autonym="Esperanto" data-language-local-name="Esperanto" class="interlanguage-link-target"><span>Esperanto</span></a></li><li class="interlanguage-link interwiki-eu mw-list-item"><a href="https://eu.wikipedia.org/wiki/Multiplataforma" title="Multiplataforma – Basque" lang="eu" hreflang="eu" data-title="Multiplataforma" data-language-autonym="Euskara" data-language-local-name="Basque" class="interlanguage-link-target"><span>Euskara</span></a></li><li class="interlanguage-link interwiki-fa mw-list-item"><a href="https://fa.wikipedia.org/wiki/%D9%86%D8%B1%D9%85%E2%80%8C%D8%A7%D9%81%D8%B2%D8%A7%D8%B1_%DA%86%D9%86%D8%AF%D8%B3%DA%A9%D9%88%DB%8C%DB%8C" title="نرم‌افزار چندسکویی – Persian" lang="fa" hreflang="fa" data-title="نرم‌افزار چندسکویی" data-language-autonym="فارسی" data-language-local-name="Persian" class="interlanguage-link-target"><span>فارسی</span></a></li><li class="interlanguage-link interwiki-fr mw-list-item"><a href="https://fr.wikipedia.org/wiki/Logiciel_multiplateforme" title="Logiciel multiplateforme – French" lang="fr" hreflang="fr" data-title="Logiciel multiplateforme" data-language-autonym="Français" data-language-local-name="French" class="interlanguage-link-target"><span>Français</span></a></li><li class="interlanguage-link interwiki-gl mw-list-item"><a href="https://gl.wikipedia.org/wiki/Multiplataforma" title="Multiplataforma – Galician" lang="gl" hreflang="gl" data-title="Multiplataforma" data-language-autonym="Galego" data-language-local-name="Galician" class="interlanguage-link-target"><span>Galego</span></a></li><li class="interlanguage-link interwiki-ko mw-list-item"><a href="https://ko.wikipedia.org/wiki/%ED%81%AC%EB%A1%9C%EC%8A%A4_%ED%94%8C%EB%9E%AB%ED%8F%BC" title="크로스 플랫폼 – Korean" lang="ko" hreflang="ko" data-title="크로스 플랫폼" data-language-autonym="한국어" data-language-local-name="Korean" class="interlanguage-link-target"><span>한국어</span></a></li><li class="interlanguage-link interwiki-hr mw-list-item"><a href="https://hr.wikipedia.org/wiki/Vi%C5%A1eplatformski" title="Višeplatformski – Croatian" lang="hr" hreflang="hr" data-title="Višeplatformski" data-language-autonym="Hrvatski" data-language-local-name="Croatian" class="interlanguage-link-target"><span>Hrvatski</span></a></li><li class="interlanguage-link interwiki-io mw-list-item"><a href="https://io.wikipedia.org/wiki/Plur-sistemeso" title="Plur-sistemeso – Ido" lang="io" hreflang="io" data-title="Plur-sistemeso" data-language-autonym="Ido" data-language-local-name="Ido" class="interlanguage-link-target"><span>Ido</span></a></li><li class="interlanguage-link interwiki-id mw-list-item"><a href="https://id.wikipedia.org/wiki/Lintas_anjungan" title="Lintas anjungan – Indonesian" lang="id" hreflang="id" data-title="Lintas anjungan" data-language-autonym="Bahasa Indonesia" data-language-local-name="Indonesian" class="interlanguage-link-target"><span>Bahasa Indonesia</span></a></li><li class="interlanguage-link interwiki-it mw-list-item"><a href="https://it.wikipedia.org/wiki/Multipiattaforma" title="Multipiattaforma – Italian" lang="it" hreflang="it" data-title="Multipiattaforma" data-language-autonym="Italiano" data-language-local-name="Italian" class="interlanguage-link-target"><span>Italiano</span></a></li><li class="interlanguage-link interwiki-he mw-list-item"><a href="https://he.wikipedia.org/wiki/%D7%97%D7%95%D7%A6%D7%94-%D7%A4%D7%9C%D7%98%D7%A4%D7%95%D7%A8%D7%9E%D7%95%D7%AA" title="חוצה-פלטפורמות – Hebrew" lang="he" hreflang="he" data-title="חוצה-פלטפורמות" data-language-autonym="עברית" data-language-local-name="Hebrew" class="interlanguage-link-target"><span>עברית</span></a></li><li class="interlanguage-link interwiki-jv mw-list-item"><a href="https://jv.wikipedia.org/wiki/Lintas_platform" title="Lintas platform – Javanese" lang="jv" hreflang="jv" data-title="Lintas platform" data-language-autonym="Jawa" data-language-local-name="Javanese" class="interlanguage-link-target"><span>Jawa</span></a></li><li class="interlanguage-link interwiki-lv mw-list-item"><a href="https://lv.wikipedia.org/wiki/Vair%C4%81kplatformu_programmat%C5%ABra" title="Vairākplatformu programmatūra – Latvian" lang="lv" hreflang="lv" data-title="Vairākplatformu programmatūra" data-language-autonym="Latviešu" data-language-local-name="Latvian" class="interlanguage-link-target"><span>Latviešu</span></a></li><li class="interlanguage-link interwiki-lb mw-list-item"><a href="https://lb.wikipedia.org/wiki/Plattformonofh%C3%A4ngeg_Software" title="Plattformonofhängeg Software – Luxembourgish" lang="lb" hreflang="lb" data-title="Plattformonofhängeg Software" data-language-autonym="Lëtzebuergesch" data-language-local-name="Luxembourgish" class="interlanguage-link-target"><span>Lëtzebuergesch</span></a></li><li class="interlanguage-link interwiki-hu mw-list-item"><a href="https://hu.wikipedia.org/wiki/Platformf%C3%BCggetlens%C3%A9g" title="Platformfüggetlenség – Hungarian" lang="hu" hreflang="hu" data-title="Platformfüggetlenség" data-language-autonym="Magyar" data-language-local-name="Hungarian" class="interlanguage-link-target"><span>Magyar</span></a></li><li class="interlanguage-link interwiki-ml mw-list-item"><a href="https://ml.wikipedia.org/wiki/%E0%B4%95%E0%B5%8D%E0%B4%B0%E0%B5%8B%E0%B4%B8%E0%B5%8D-%E0%B4%AA%E0%B5%8D%E0%B4%B2%E0%B4%BE%E0%B4%B1%E0%B5%8D%E0%B4%B1%E0%B5%8D%E0%B4%AB%E0%B5%8B%E0%B4%82_%E0%B4%B8%E0%B5%8B%E0%B4%AB%E0%B5%8D%E0%B4%B1%E0%B5%8D%E0%B4%B1%E0%B5%8D%E0%B4%B5%E0%B5%86%E0%B4%AF%E0%B5%BC" title="ക്രോസ്-പ്ലാറ്റ്ഫോം സോഫ്റ്റ്വെയർ – Malayalam" lang="ml" hreflang="ml" data-title="ക്രോസ്-പ്ലാറ്റ്ഫോം സോഫ്റ്റ്വെയർ" data-language-autonym="മലയാളം" data-language-local-name="Malayalam" class="interlanguage-link-target"><span>മലയാളം</span></a></li><li class="interlanguage-link interwiki-ms mw-list-item"><a href="https://ms.wikipedia.org/wiki/Rentas-pelantar" title="Rentas-pelantar – Malay" lang="ms" hreflang="ms" data-title="Rentas-pelantar" data-language-autonym="Bahasa Melayu" data-language-local-name="Malay" class="interlanguage-link-target"><span>Bahasa Melayu</span></a></li><li class="interlanguage-link interwiki-my mw-list-item"><a href="https://my.wikipedia.org/wiki/Cross_platform" title="Cross platform – Burmese" lang="my" hreflang="my" data-title="Cross platform" data-language-autonym="မြန်မာဘာသာ" data-language-local-name="Burmese" class="interlanguage-link-target"><span>မြန်မာဘာသာ</span></a></li><li class="interlanguage-link interwiki-nl mw-list-item"><a href="https://nl.wikipedia.org/wiki/Platform-onafhankelijke_software" title="Platform-onafhankelijke software – Dutch" lang="nl" hreflang="nl" data-title="Platform-onafhankelijke software" data-language-autonym="Nederlands" data-language-local-name="Dutch" class="interlanguage-link-target"><span>Nederlands</span></a></li><li class="interlanguage-link interwiki-ja mw-list-item"><a href="https://ja.wikipedia.org/wiki/%E3%82%AF%E3%83%AD%E3%82%B9%E3%83%97%E3%83%A9%E3%83%83%E3%83%88%E3%83%95%E3%82%A9%E3%83%BC%E3%83%A0" title="クロスプラットフォーム – Japanese" lang="ja" hreflang="ja" data-title="クロスプラットフォーム" data-language-autonym="日本語" data-language-local-name="Japanese" class="interlanguage-link-target"><span>日本語</span></a></li><li class="interlanguage-link interwiki-no mw-list-item"><a href="https://no.wikipedia.org/wiki/Multiplattform" title="Multiplattform – Norwegian Bokmål" lang="nb" hreflang="nb" data-title="Multiplattform" data-language-autonym="Norsk bokmål" data-language-local-name="Norwegian Bokmål" class="interlanguage-link-target"><span>Norsk bokmål</span></a></li><li class="interlanguage-link interwiki-uz mw-list-item"><a href="https://uz.wikipedia.org/wiki/Kross-platformali_dastur" title="Kross-platformali dastur – Uzbek" lang="uz" hreflang="uz" data-title="Kross-platformali dastur" data-language-autonym="Oʻzbekcha / ўзбекча" data-language-local-name="Uzbek" class="interlanguage-link-target"><span>Oʻzbekcha / ўзбекча</span></a></li><li class="interlanguage-link interwiki-pl mw-list-item"><a href="https://pl.wikipedia.org/wiki/Wieloplatformowo%C5%9B%C4%87" title="Wieloplatformowość – Polish" lang="pl" hreflang="pl" data-title="Wieloplatformowość" data-language-autonym="Polski" data-language-local-name="Polish" class="interlanguage-link-target"><span>Polski</span></a></li><li class="interlanguage-link interwiki-pt mw-list-item"><a href="https://pt.wikipedia.org/wiki/Multiplataforma" title="Multiplataforma – Portuguese" lang="pt" hreflang="pt" data-title="Multiplataforma" data-language-autonym="Português" data-language-local-name="Portuguese" class="interlanguage-link-target"><span>Português</span></a></li><li class="interlanguage-link interwiki-ro mw-list-item"><a href="https://ro.wikipedia.org/wiki/Multiplatform%C4%83" title="Multiplatformă – Romanian" lang="ro" hreflang="ro" data-title="Multiplatformă" data-language-autonym="Română" data-language-local-name="Romanian" class="interlanguage-link-target"><span>Română</span></a></li><li class="interlanguage-link interwiki-qu mw-list-item"><a href="https://qu.wikipedia.org/wiki/Chimpa-patapata_llamp%27ukaq" title="Chimpa-patapata llamp&#039;ukaq – Quechua" lang="qu" hreflang="qu" data-title="Chimpa-patapata llamp&#039;ukaq" data-language-autonym="Runa Simi" data-language-local-name="Quechua" class="interlanguage-link-target"><span>Runa Simi</span></a></li><li class="interlanguage-link interwiki-ru mw-list-item"><a href="https://ru.wikipedia.org/wiki/%D0%9A%D1%80%D0%BE%D1%81%D1%81%D0%BF%D0%BB%D0%B0%D1%82%D1%84%D0%BE%D1%80%D0%BC%D0%B5%D0%BD%D0%BD%D0%BE%D1%81%D1%82%D1%8C" title="Кроссплатформенность – Russian" lang="ru" hreflang="ru" data-title="Кроссплатформенность" data-language-autonym="Русский" data-language-local-name="Russian" class="interlanguage-link-target"><span>Русский</span></a></li><li class="interlanguage-link interwiki-sq mw-list-item"><a href="https://sq.wikipedia.org/wiki/Nd%C3%ABr-platformik" title="Ndër-platformik – Albanian" lang="sq" hreflang="sq" data-title="Ndër-platformik" data-language-autonym="Shqip" data-language-local-name="Albanian" class="interlanguage-link-target"><span>Shqip</span></a></li><li class="interlanguage-link interwiki-simple mw-list-item"><a href="https://simple.wikipedia.org/wiki/Cross-platform" title="Cross-platform – Simple English" lang="en-simple" hreflang="en-simple" data-title="Cross-platform" data-language-autonym="Simple English" data-language-local-name="Simple English" class="interlanguage-link-target"><span>Simple English</span></a></li><li class="interlanguage-link interwiki-sk mw-list-item"><a href="https://sk.wikipedia.org/wiki/Multiplatformov%C3%BD_softv%C3%A9r" title="Multiplatformový softvér – Slovak" lang="sk" hreflang="sk" data-title="Multiplatformový softvér" data-language-autonym="Slovenčina" data-language-local-name="Slovak" class="interlanguage-link-target"><span>Slovenčina</span></a></li><li class="interlanguage-link interwiki-ckb mw-list-item"><a href="https://ckb.wikipedia.org/wiki/%D9%86%DB%95%D8%B1%D9%85%D8%A7%D9%85%DB%8E%D8%B1%DB%8C_%D8%B3%DB%95%DA%A9%DB%86%D8%A8%DA%95" title="نەرمامێری سەکۆبڕ – Central Kurdish" lang="ckb" hreflang="ckb" data-title="نەرمامێری سەکۆبڕ" data-language-autonym="کوردی" data-language-local-name="Central Kurdish" class="interlanguage-link-target"><span>کوردی</span></a></li><li class="interlanguage-link interwiki-fi mw-list-item"><a href="https://fi.wikipedia.org/wiki/Alustariippumattomuus" title="Alustariippumattomuus – Finnish" lang="fi" hreflang="fi" data-title="Alustariippumattomuus" data-language-autonym="Suomi" data-language-local-name="Finnish" class="interlanguage-link-target"><span>Suomi</span></a></li><li class="interlanguage-link interwiki-sv mw-list-item"><a href="https://sv.wikipedia.org/wiki/Multiplattform" title="Multiplattform – Swedish" lang="sv" hreflang="sv" data-title="Multiplattform" data-language-autonym="Svenska" data-language-local-name="Swedish" class="interlanguage-link-target"><span>Svenska</span></a></li><li class="interlanguage-link interwiki-ta mw-list-item"><a href="https://ta.wikipedia.org/wiki/%E0%AE%AA%E0%AE%A9%E0%AF%8D%E0%AE%A9%E0%AE%BF%E0%AE%AF%E0%AE%95%E0%AF%8D%E0%AE%95%E0%AF%81%E0%AE%A4%E0%AE%B3%E0%AE%AE%E0%AF%8D" title="பன்னியக்குதளம் – Tamil" lang="ta" hreflang="ta" data-title="பன்னியக்குதளம்" data-language-autonym="தமிழ்" data-language-local-name="Tamil" class="interlanguage-link-target"><span>தமிழ்</span></a></li><li class="interlanguage-link interwiki-th mw-list-item"><a href="https://th.wikipedia.org/wiki/%E0%B8%82%E0%B9%89%E0%B8%B2%E0%B8%A1%E0%B9%81%E0%B8%9E%E0%B8%A5%E0%B8%95%E0%B8%9F%E0%B8%AD%E0%B8%A3%E0%B9%8C%E0%B8%A1" title="ข้ามแพลตฟอร์ม – Thai" lang="th" hreflang="th" data-title="ข้ามแพลตฟอร์ม" data-language-autonym="ไทย" data-language-local-name="Thai" class="interlanguage-link-target"><span>ไทย</span></a></li><li class="interlanguage-link interwiki-tr mw-list-item"><a href="https://tr.wikipedia.org/wiki/%C3%87apraz_platform_yaz%C4%B1l%C4%B1m%C4%B1" title="Çapraz platform yazılımı – Turkish" lang="tr" hreflang="tr" data-title="Çapraz platform yazılımı" data-language-autonym="Türkçe" data-language-local-name="Turkish" class="interlanguage-link-target"><span>Türkçe</span></a></li><li class="interlanguage-link interwiki-uk mw-list-item"><a href="https://uk.wikipedia.org/wiki/%D0%91%D0%B0%D0%B3%D0%B0%D1%82%D0%BE%D0%BF%D0%BB%D0%B0%D1%82%D1%84%D0%BE%D1%80%D0%BC%D0%BD%D1%96%D1%81%D1%82%D1%8C" title="Багатоплатформність – Ukrainian" lang="uk" hreflang="uk" data-title="Багатоплатформність" data-language-autonym="Українська" data-language-local-name="Ukrainian" class="interlanguage-link-target"><span>Українська</span></a></li><li class="interlanguage-link interwiki-ur mw-list-item"><a href="https://ur.wikipedia.org/wiki/%DA%A9%D8%B1%D8%A7%D8%B3_%D9%BE%D9%84%DB%8C%D9%B9_%D9%81%D8%A7%D8%B1%D9%85" title="کراس پلیٹ فارم – Urdu" lang="ur" hreflang="ur" data-title="کراس پلیٹ فارم" data-language-autonym="اردو" data-language-local-name="Urdu" class="interlanguage-link-target"><span>اردو</span></a></li><li class="interlanguage-link interwiki-vi mw-list-item"><a href="https://vi.wikipedia.org/wiki/%C4%90a_n%E1%BB%81n_t%E1%BA%A3ng" title="Đa nền tảng – Vietnamese" lang="vi" hreflang="vi" data-title="Đa nền tảng" data-language-autonym="Tiếng Việt" data-language-local-name="Vietnamese" class="interlanguage-link-target"><span>Tiếng Việt</span></a></li><li class="interlanguage-link interwiki-zh-yue mw-list-item"><a href="https://zh-yue.wikipedia.org/wiki/%E8%B7%A8%E5%B9%B3%E5%8F%B0%E8%BB%9F%E4%BB%B6" title="跨平台軟件 – Cantonese" lang="yue" hreflang="yue" data-title="跨平台軟件" data-language-autonym="粵語" data-language-local-name="Cantonese" class="interlanguage-link-target"><span>粵語</span></a></li><li class="interlanguage-link interwiki-zh mw-list-item"><a href="https://zh.wikipedia.org/wiki/%E8%B7%A8%E5%B9%B3%E8%87%BA" title="跨平臺 – Chinese" lang="zh" hreflang="zh" data-title="跨平臺" data-language-autonym="中文" data-language-local-name="Chinese" class="interlanguage-link-target"><span>中文</span></a></li> </ul> <div class="after-portlet after-portlet-lang"><span class="wb-langlinks-edit wb-langlinks-link"><a href="https://www.wikidata.org/wiki/Special:EntityPage/Q174666#sitelinks-wikipedia" title="Edit interlanguage links" class="wbc-editpage">Edit links</a></span></div> </div> </div> </div> </header> <div class="vector-page-toolbar"> <div class="vector-page-toolbar-container"> <div id="left-navigation"> <nav aria-label="Namespaces"> <div id="p-associated-pages" class="vector-menu vector-menu-tabs mw-portlet mw-portlet-associated-pages" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="ca-nstab-main" class="selected vector-tab-noicon mw-list-item"><a href="/wiki/Cross-platform_software" title="View the content page [c]" accesskey="c"><span>Article</span></a></li><li id="ca-talk" class="vector-tab-noicon mw-list-item"><a href="/wiki/Talk:Cross-platform_software" rel="discussion" title="Discuss improvements to the content page [t]" accesskey="t"><span>Talk</span></a></li> </ul> </div> </div> <div id="vector-variants-dropdown" class="vector-dropdown emptyPortlet" > <input type="checkbox" id="vector-variants-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-variants-dropdown" class="vector-dropdown-checkbox " aria-label="Change language variant" > <label id="vector-variants-dropdown-label" for="vector-variants-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet" aria-hidden="true" ><span class="vector-dropdown-label-text">English</span> </label> <div class="vector-dropdown-content"> <div id="p-variants" class="vector-menu mw-portlet mw-portlet-variants emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> </div> </div> </nav> </div> <div id="right-navigation" class="vector-collapsible"> <nav aria-label="Views"> <div id="p-views" class="vector-menu vector-menu-tabs mw-portlet mw-portlet-views" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="ca-view" class="selected vector-tab-noicon mw-list-item"><a href="/wiki/Cross-platform_software"><span>Read</span></a></li><li id="ca-edit" class="vector-tab-noicon mw-list-item"><a href="/w/index.php?title=Cross-platform_software&amp;action=edit" title="Edit this page [e]" accesskey="e"><span>Edit</span></a></li><li id="ca-history" class="vector-tab-noicon mw-list-item"><a href="/w/index.php?title=Cross-platform_software&amp;action=history" title="Past revisions of this page [h]" accesskey="h"><span>View history</span></a></li> </ul> </div> </div> </nav> <nav class="vector-page-tools-landmark" aria-label="Page tools"> <div id="vector-page-tools-dropdown" class="vector-dropdown vector-page-tools-dropdown" > <input type="checkbox" id="vector-page-tools-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-page-tools-dropdown" class="vector-dropdown-checkbox " aria-label="Tools" > <label id="vector-page-tools-dropdown-label" for="vector-page-tools-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet" aria-hidden="true" ><span class="vector-dropdown-label-text">Tools</span> </label> <div class="vector-dropdown-content"> <div id="vector-page-tools-unpinned-container" class="vector-unpinned-container"> <div id="vector-page-tools" class="vector-page-tools vector-pinnable-element"> <div class="vector-pinnable-header vector-page-tools-pinnable-header vector-pinnable-header-unpinned" data-feature-name="page-tools-pinned" data-pinnable-element-id="vector-page-tools" data-pinned-container-id="vector-page-tools-pinned-container" data-unpinned-container-id="vector-page-tools-unpinned-container" > <div class="vector-pinnable-header-label">Tools</div> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-page-tools.pin">move to sidebar</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-page-tools.unpin">hide</button> </div> <div id="p-cactions" class="vector-menu mw-portlet mw-portlet-cactions emptyPortlet vector-has-collapsible-items" title="More options" > <div class="vector-menu-heading"> Actions </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="ca-more-view" class="selected vector-more-collapsible-item mw-list-item"><a href="/wiki/Cross-platform_software"><span>Read</span></a></li><li id="ca-more-edit" class="vector-more-collapsible-item mw-list-item"><a href="/w/index.php?title=Cross-platform_software&amp;action=edit" title="Edit this page [e]" accesskey="e"><span>Edit</span></a></li><li id="ca-more-history" class="vector-more-collapsible-item mw-list-item"><a href="/w/index.php?title=Cross-platform_software&amp;action=history"><span>View history</span></a></li> </ul> </div> </div> <div id="p-tb" class="vector-menu mw-portlet mw-portlet-tb" > <div class="vector-menu-heading"> General </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="t-whatlinkshere" class="mw-list-item"><a href="/wiki/Special:WhatLinksHere/Cross-platform_software" title="List of all English Wikipedia pages containing links to this page [j]" accesskey="j"><span>What links here</span></a></li><li id="t-recentchangeslinked" class="mw-list-item"><a href="/wiki/Special:RecentChangesLinked/Cross-platform_software" rel="nofollow" title="Recent changes in pages linked from this page [k]" accesskey="k"><span>Related changes</span></a></li><li id="t-upload" class="mw-list-item"><a href="/wiki/Wikipedia:File_Upload_Wizard" title="Upload files [u]" accesskey="u"><span>Upload file</span></a></li><li id="t-specialpages" class="mw-list-item"><a href="/wiki/Special:SpecialPages" title="A list of all special pages [q]" accesskey="q"><span>Special pages</span></a></li><li id="t-permalink" class="mw-list-item"><a href="/w/index.php?title=Cross-platform_software&amp;oldid=1259062949" title="Permanent link to this revision of this page"><span>Permanent link</span></a></li><li id="t-info" class="mw-list-item"><a href="/w/index.php?title=Cross-platform_software&amp;action=info" title="More information about this page"><span>Page information</span></a></li><li id="t-cite" class="mw-list-item"><a href="/w/index.php?title=Special:CiteThisPage&amp;page=Cross-platform_software&amp;id=1259062949&amp;wpFormIdentifier=titleform" title="Information on how to cite this page"><span>Cite this page</span></a></li><li id="t-urlshortener" class="mw-list-item"><a href="/w/index.php?title=Special:UrlShortener&amp;url=https%3A%2F%2Fen.wikipedia.org%2Fwiki%2FCross-platform_software"><span>Get shortened URL</span></a></li><li id="t-urlshortener-qrcode" class="mw-list-item"><a href="/w/index.php?title=Special:QrCode&amp;url=https%3A%2F%2Fen.wikipedia.org%2Fwiki%2FCross-platform_software"><span>Download QR code</span></a></li> </ul> </div> </div> <div id="p-coll-print_export" class="vector-menu mw-portlet mw-portlet-coll-print_export" > <div class="vector-menu-heading"> Print/export </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="coll-download-as-rl" class="mw-list-item"><a href="/w/index.php?title=Special:DownloadAsPdf&amp;page=Cross-platform_software&amp;action=show-download-screen" title="Download this page as a PDF file"><span>Download as PDF</span></a></li><li id="t-print" class="mw-list-item"><a href="/w/index.php?title=Cross-platform_software&amp;printable=yes" title="Printable version of this page [p]" accesskey="p"><span>Printable version</span></a></li> </ul> </div> </div> <div id="p-wikibase-otherprojects" class="vector-menu mw-portlet mw-portlet-wikibase-otherprojects" > <div class="vector-menu-heading"> In other projects </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li class="wb-otherproject-link wb-otherproject-commons mw-list-item"><a href="https://commons.wikimedia.org/wiki/Category:Cross-platform_software" hreflang="en"><span>Wikimedia Commons</span></a></li><li id="t-wikibase" class="wb-otherproject-link wb-otherproject-wikibase-dataitem mw-list-item"><a href="https://www.wikidata.org/wiki/Special:EntityPage/Q174666" title="Structured data on this page hosted by Wikidata [g]" accesskey="g"><span>Wikidata item</span></a></li> </ul> </div> </div> </div> </div> </div> </div> </nav> </div> </div> </div> <div class="vector-column-end"> <div class="vector-sticky-pinned-container"> <nav class="vector-page-tools-landmark" aria-label="Page tools"> <div id="vector-page-tools-pinned-container" class="vector-pinned-container"> </div> </nav> <nav class="vector-appearance-landmark" aria-label="Appearance"> <div id="vector-appearance-pinned-container" class="vector-pinned-container"> <div id="vector-appearance" class="vector-appearance vector-pinnable-element"> <div class="vector-pinnable-header vector-appearance-pinnable-header vector-pinnable-header-pinned" data-feature-name="appearance-pinned" data-pinnable-element-id="vector-appearance" data-pinned-container-id="vector-appearance-pinned-container" data-unpinned-container-id="vector-appearance-unpinned-container" > <div class="vector-pinnable-header-label">Appearance</div> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-appearance.pin">move to sidebar</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-appearance.unpin">hide</button> </div> </div> </div> </nav> </div> </div> <div id="bodyContent" class="vector-body" aria-labelledby="firstHeading" data-mw-ve-target-container> <div class="vector-body-before-content"> <div class="mw-indicators"> </div> <div id="siteSub" class="noprint">From Wikipedia, the free encyclopedia</div> </div> <div id="contentSub"><div id="mw-content-subtitle"><span class="mw-redirectedfrom">(Redirected from <a href="/w/index.php?title=Cross-platform&amp;redirect=no" class="mw-redirect" title="Cross-platform">Cross-platform</a>)</span></div></div> <div id="mw-content-text" class="mw-body-content"><div class="mw-content-ltr mw-parser-output" lang="en" dir="ltr"><div class="shortdescription nomobile noexcerpt noprint searchaux" style="display:none">Computer software implemented on multiple computing platforms</div> <style data-mw-deduplicate="TemplateStyles:r1236090951">.mw-parser-output .hatnote{font-style:italic}.mw-parser-output div.hatnote{padding-left:1.6em;margin-bottom:0.5em}.mw-parser-output .hatnote i{font-style:normal}.mw-parser-output .hatnote+link+.hatnote{margin-top:-0.5em}@media print{body.ns-0 .mw-parser-output .hatnote{display:none!important}}</style><div role="note" class="hatnote navigation-not-searchable">"Cross-platform" redirects here. For the railway station interchange, see <a href="/wiki/Cross-platform_interchange" title="Cross-platform interchange">cross-platform interchange</a>. For the video game term, see <a href="/wiki/Cross-platform_play" title="Cross-platform play">cross-platform play</a>.</div> <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1236090951"><div role="note" class="hatnote navigation-not-searchable">"Multi-platform" redirects here. For the mode of storytelling in television, see <a href="/wiki/Multi-platform_television" title="Multi-platform television">multi-platform television</a>.</div> <p>In <a href="/wiki/Computing" title="Computing">computing</a>, <b>cross-platform software</b> (also called <b>multi-platform software</b>, <b>platform-agnostic software</b>, or <b>platform-independent software</b>) is <a href="/wiki/Computer_software" class="mw-redirect" title="Computer software">computer software</a> that is designed to work in several <a href="/wiki/Computing_platform" title="Computing platform">computing platforms</a>.<sup id="cite_ref-Sun-Web-00_1-0" class="reference"><a href="#cite_note-Sun-Web-00-1"><span class="cite-bracket">&#91;</span>1<span class="cite-bracket">&#93;</span></a></sup> Some cross-platform software requires a separate build for each platform, but some can be directly run on any platform without special preparation, being written in an <a href="/wiki/Interpreted_language" class="mw-redirect" title="Interpreted language">interpreted language</a> or compiled to portable <a href="/wiki/Bytecode" title="Bytecode">bytecode</a> for which the <a href="/wiki/Interpreter_(computing)" title="Interpreter (computing)">interpreters</a> or run-time packages are common or standard components of all supported platforms.<sup id="cite_ref-pcmag_cross_platform_2-0" class="reference"><a href="#cite_note-pcmag_cross_platform-2"><span class="cite-bracket">&#91;</span>2<span class="cite-bracket">&#93;</span></a></sup> </p><p>For example, a cross-platform <a href="/wiki/Application_software" title="Application software">application</a> may run on <a href="/wiki/Linux" title="Linux">Linux</a>, <a href="/wiki/MacOS" title="MacOS">macOS</a> and <a href="/wiki/Microsoft_Windows" title="Microsoft Windows">Microsoft Windows</a>. Cross-platform software may run on many platforms, or as few as two. Some frameworks for cross-platform development are <a href="/wiki/Codename_One" title="Codename One">Codename One</a>, ArkUI-X, <a href="/wiki/Kivy_(framework)" title="Kivy (framework)">Kivy</a>, <a href="/wiki/Qt_(software)" title="Qt (software)">Qt</a>, <a href="/wiki/GTK" title="GTK">GTK</a>, <a href="/wiki/Flutter_(software)" title="Flutter (software)">Flutter</a>, <a href="/wiki/NativeScript" title="NativeScript">NativeScript</a>, <a href="/wiki/Xamarin" title="Xamarin">Xamarin</a>, <a href="/wiki/Apache_Cordova" title="Apache Cordova">Apache Cordova</a>, <a href="/wiki/Ionic_(mobile_app_framework)" title="Ionic (mobile app framework)">Ionic</a>, and <a href="/wiki/React_Native" title="React Native">React Native</a>.<sup id="cite_ref-3" class="reference"><a href="#cite_note-3"><span class="cite-bracket">&#91;</span>3<span class="cite-bracket">&#93;</span></a></sup> </p> <meta property="mw:PageProp/toc" /> <div class="mw-heading mw-heading2"><h2 id="Platforms">Platforms</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Cross-platform_software&amp;action=edit&amp;section=1" title="Edit section: Platforms"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1236090951"><div role="note" class="hatnote navigation-not-searchable">Main article: <a href="/wiki/Computing_platform" title="Computing platform">Computing platform</a></div> <p><i>Platform</i> can refer to the type of processor (CPU) or other hardware on which an <a href="/wiki/Operating_system" title="Operating system">operating system</a> (OS) or <a href="/wiki/Application_software" title="Application software">application</a> runs, the type of OS, or a combination of the two.<sup id="cite_ref-The_Linux_Information_Project_4-0" class="reference"><a href="#cite_note-The_Linux_Information_Project-4"><span class="cite-bracket">&#91;</span>4<span class="cite-bracket">&#93;</span></a></sup> An example of a common platform is <a href="/wiki/Android_(operating_system)" title="Android (operating system)">Android</a> which runs on the <a href="/wiki/ARM_architecture_family" title="ARM architecture family">ARM architecture family</a>. Other well-known platforms are <a href="/wiki/Linux" title="Linux">Linux</a>/<a href="/wiki/Unix" title="Unix">Unix</a>, <a href="/wiki/MacOS" title="MacOS">macOS</a> and <a href="/wiki/Microsoft_Windows" title="Microsoft Windows">Windows</a>, these are all cross-platform.<sup id="cite_ref-The_Linux_Information_Project_4-1" class="reference"><a href="#cite_note-The_Linux_Information_Project-4"><span class="cite-bracket">&#91;</span>4<span class="cite-bracket">&#93;</span></a></sup> Applications can be written to depend on the features of a particular platform—either the hardware, OS, or <a href="/wiki/Virtual_machine" title="Virtual machine">virtual machine</a> (VM) it runs on. For example, the <a href="/wiki/Java_(software_platform)" title="Java (software platform)">Java platform</a> is a common VM platform which runs on many OSs and hardware types. </p> <div class="mw-heading mw-heading3"><h3 id="Hardware">Hardware <span class="anchor" id="Hardware_platforms"></span></h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Cross-platform_software&amp;action=edit&amp;section=2" title="Edit section: Hardware"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>A hardware platform can refer to an <a href="/wiki/Instruction_set_architecture" title="Instruction set architecture">instruction set architecture</a>. For example: ARM or the x86 architecture. These machines can run different operating systems. </p><p>Smartphones and tablets generally run ARM architecture, these often run Android or iOS and other <a href="/wiki/Mobile_operating_system" title="Mobile operating system">mobile operating systems</a>. </p> <div class="mw-heading mw-heading3"><h3 id="Software">Software <span class="anchor" id="Software_platforms"></span></h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Cross-platform_software&amp;action=edit&amp;section=3" title="Edit section: Software"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>A <a href="/wiki/Software_platform" class="mw-redirect" title="Software platform">software platform</a> can be either an <a href="/wiki/Operating_system" title="Operating system">operating system</a> (OS) or <a href="/wiki/Programming_environment" class="mw-redirect" title="Programming environment">programming environment</a>, though more commonly it is a combination of both. An exception is <a href="/wiki/Java_(programming_language)" title="Java (programming language)">Java</a>, which uses an OS-independent <a href="/wiki/Virtual_machine" title="Virtual machine">virtual machine</a> (VM) to execute <a href="/wiki/Java_bytecode" title="Java bytecode">Java bytecode</a>. Some software platforms are: </p> <ul><li><a href="/wiki/Android_(operating_system)" title="Android (operating system)">Android</a> (ARM64)</li> <li><a href="/wiki/ChromeOS" title="ChromeOS">ChromeOS</a> (ARM32, ARM64, IA-32, x86-64)</li> <li><a href="/wiki/Common_Language_Infrastructure" title="Common Language Infrastructure">Common Language Infrastructure</a> (CLI) by <a href="/wiki/Microsoft" title="Microsoft">Microsoft</a>, implemented in: <ul><li>The legacy <a href="/wiki/.NET_Framework" title=".NET Framework">.NET Framework</a> that works only on Microsoft Windows.</li> <li>The newer <a href="/wiki/.NET" title=".NET">.NET</a> framework (simply called ".NET") that works across Microsoft Windows, macOS, and Linux.</li> <li>Other implementations such as <a href="/wiki/Mono_(software)" title="Mono (software)">Mono</a> (formerly by <a href="/wiki/Novell" title="Novell">Novell</a> and <a href="/wiki/Xamarin" title="Xamarin">Xamarin</a><sup id="cite_ref-Mono_by_Xamarin_5-0" class="reference"><a href="#cite_note-Mono_by_Xamarin-5"><span class="cite-bracket">&#91;</span>5<span class="cite-bracket">&#93;</span></a></sup>)</li></ul></li> <li><a href="/wiki/HarmonyOS" title="HarmonyOS">HarmonyOS</a> (ARM64, RISC-V, x86, x64, and LoongArch)</li> <li><a href="/wiki/IOS" title="IOS">iOS</a> ((ARMv8-A))</li> <li><a href="/wiki/IPadOS" title="IPadOS">iPadOS</a> (ARMv8-A)</li> <li><a href="/wiki/Java_(programming_language)" title="Java (programming language)">Java</a></li> <li><a href="/wiki/Linux" title="Linux">Linux</a> (&#160;Alpha, ARC, ARM, C-Sky, Hexagon, LoongArch, m68k, Microblaze, MIPS, Nios II, OpenRISC, PA-RISC, PowerPC, RISC-V, s390, SuperH, SPARC, x86, Xtensa)</li> <li><a href="/wiki/MacOS" title="MacOS">macOS</a> x86, ARM (Apple silicon)</li> <li><a href="/wiki/Microsoft_Windows" title="Microsoft Windows">Microsoft Windows</a> (IA-32, x86-64, ARM, ARM64)</li> <li><a href="/wiki/PlayStation_4" title="PlayStation 4">PlayStation 4</a> (x86), PlayStation 3 (PowerPC) and <a href="/wiki/PlayStation_Vita" title="PlayStation Vita">PlayStation Vita</a> (ARM)</li> <li><a href="/wiki/Oracle_Solaris" title="Oracle Solaris">Solaris</a> (SPARC, x86)</li> <li><a href="/wiki/SPARC" title="SPARC">SPARC</a></li> <li><a href="/wiki/Unix" title="Unix">Unix</a> (many platforms since 1969)</li> <li><a href="/wiki/Web_browser" title="Web browser">Web browsers</a> – mostly compatible with each other, running <a href="/wiki/JavaScript" title="JavaScript">JavaScript</a> web-apps</li> <li><a href="/wiki/Xbox" title="Xbox">Xbox</a></li></ul> <dl><dt>Minor, historical</dt></dl> <ul><li>AmigaOS (m68k), <a href="/wiki/AmigaOS_4" title="AmigaOS 4">AmigaOS 4</a> (PowerPC), <a href="/wiki/AROS" class="mw-redirect" title="AROS">AROS</a> (x86, PowerPC, m68k), MorphOS (PowerPC)</li> <li><a href="/wiki/Atari_TOS" title="Atari TOS">Atari TOS</a>, <a href="/wiki/MiNT" title="MiNT">MiNT</a></li> <li><a href="/wiki/Berkeley_Software_Distribution" title="Berkeley Software Distribution">BSD</a> (many platforms; see NetBSDnet,<sup class="noprint Inline-Template" style="margin-left:0.1em; white-space:nowrap;">&#91;<i><a href="/wiki/Wikipedia:Please_clarify" title="Wikipedia:Please clarify"><span title="(July 2018)">clarification needed</span></a></i>&#93;</sup> for example)</li> <li><a href="/wiki/DOS" title="DOS">DOS</a>-type systems on the x86: <a href="/wiki/MS-DOS" title="MS-DOS">MS-DOS</a>, <a href="/wiki/IBM_PC_DOS" title="IBM PC DOS">PC DOS</a>, <a href="/wiki/DR-DOS" title="DR-DOS">DR-DOS</a>, <a href="/wiki/FreeDOS" title="FreeDOS">FreeDOS</a></li> <li><a href="/wiki/OS/2" title="OS/2">OS/2</a>, <a href="/wiki/EComStation" title="EComStation">eComStation</a></li> <li><a href="/wiki/BeOS" title="BeOS">BeOS</a> (PowerPC, x86)</li></ul> <div class="mw-heading mw-heading4"><h4 id="Java">Java <span class="anchor" id="Java_platform"></span></h4><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Cross-platform_software&amp;action=edit&amp;section=4" title="Edit section: Java"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1236090951"><div role="note" class="hatnote navigation-not-searchable">Main article: <a href="/wiki/Java_(software_platform)" title="Java (software platform)">Java (software platform)</a></div> <p>The <a href="/wiki/Java_(programming_language)" title="Java (programming language)">Java language</a> is typically compiled to run on a VM that is part of the Java platform. The <a href="/wiki/Java_virtual_machine" title="Java virtual machine">Java virtual machine</a> (Java VM, JVM) is a CPU implemented in software, which runs all Java code. This enables the same code to run on all systems that implement a JVM. Java software can be executed by a hardware-based <a href="/wiki/Java_processor" title="Java processor">Java processor</a>. This is used mostly in embedded systems. </p><p>Java code running in the JVM has access to OS-related services, like disk <a href="/wiki/Input/output" title="Input/output">input/output</a> (I/O) and network access, if the appropriate privileges are granted. The JVM makes the system calls on behalf of the Java application. This lets users to decide the appropriate protection level, depending on an <a href="/wiki/Access-control_list" title="Access-control list">access-control list</a> (ACL). For example, disk and network access is usually enabled for desktop applications, but not for browser-based <a href="/wiki/Applet" title="Applet">applets</a>. The <a href="/wiki/Java_Native_Interface" title="Java Native Interface">Java Native Interface</a> (JNI) can also be used to access OS-specific functions, with a loss of portability. </p><p>Currently, Java Standard Edition software can run on Microsoft Windows, macOS, several Unix-like OSs, and several <a href="/wiki/Real-time_operating_system" title="Real-time operating system">real-time operating systems</a> for embedded devices. For mobile applications, browser plugins are used for Windows and Mac based devices, and Android has built-in support for Java. There are also subsets of Java, such as <a href="/wiki/Java_Card" title="Java Card">Java Card</a> or <a href="/wiki/Java_Platform,_Micro_Edition" title="Java Platform, Micro Edition">Java Platform, Micro Edition</a>, designed for resource-constrained devices. </p> <div class="mw-heading mw-heading2"><h2 id="Implementation">Implementation <span class="anchor" id="Implementations"></span></h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Cross-platform_software&amp;action=edit&amp;section=5" title="Edit section: Implementation"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>For software to be considered cross-platform, it must function on more than one <a href="/wiki/Computer_architecture" title="Computer architecture">computer architecture</a> or OS. Developing such software can be a time-consuming task because different OSs have different <a href="/wiki/API" title="API">application programming interfaces</a> (API). </p><p>Software written for one OS may not automatically work on all architectures that OS supports. Just because software is written in a popular <a href="/wiki/Programming_language" title="Programming language">programming language</a> such as <a href="/wiki/C_(programming_language)" title="C (programming language)">C</a> or <a href="/wiki/C%2B%2B14" title="C++14">C++</a>, it does not mean it will run on all OSs that support that language—or even on different versions of the same OS. </p> <div class="mw-heading mw-heading3"><h3 id="Web_applications">Web applications</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Cross-platform_software&amp;action=edit&amp;section=6" title="Edit section: Web applications"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p><a href="/wiki/Web_application" title="Web application">Web applications</a> are typically described as cross-platform because, ideally, they are accessible from any <a href="/wiki/Web_browser" title="Web browser">web browser</a>: the browser is the platform. Web applications generally employ a <a href="/wiki/Client%E2%80%93server_model" title="Client–server model">client–server model</a>, but vary widely in complexity and functionality. It can be hard to reconcile the desire for features with the need for compatibility. </p><p>Basic web applications perform all or most processing from a <a href="/wiki/Stateless_server" class="mw-redirect" title="Stateless server">stateless server</a>, and pass the result to the client web browser. All user interaction with the application consists of simple exchanges of data requests and server responses. This type of application was the norm in the early phases of <a href="/wiki/World_Wide_Web" title="World Wide Web">World Wide Web</a> application development. Such applications follow a simple <a href="/wiki/Transaction_processing" title="Transaction processing">transaction</a> model, identical to that of serving <a href="/wiki/Static_web_page" title="Static web page">static web pages</a>. Today, they are still relatively common, especially where cross-platform compatibility and simplicity are deemed more critical than advanced functionality. </p><p>Prominent examples of advanced web applications include the Web interface to <a href="/wiki/Gmail" title="Gmail">Gmail</a> and <a href="/wiki/Google_Maps" title="Google Maps">Google Maps</a>. Such applications routinely depend on additional features found only in the more recent versions of popular web browsers. These features include <a href="/wiki/Ajax_(programming)" title="Ajax (programming)">Ajax</a>, <a href="/wiki/JavaScript" title="JavaScript">JavaScript</a>, <a href="/wiki/Dynamic_HTML" title="Dynamic HTML">Dynamic HTML</a>, <a href="/wiki/SVG" title="SVG">SVG</a>, and other components of <a href="/wiki/Rich_web_applications" class="mw-redirect" title="Rich web applications">rich web applications</a>. </p> <div class="mw-heading mw-heading4"><h4 id="Design">Design <span class="anchor" id="Design_strategies"></span></h4><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Cross-platform_software&amp;action=edit&amp;section=7" title="Edit section: Design"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Because of the competing interests of compatibility and functionality, numerous design strategies have emerged. </p><p>Many software systems use a layered architecture where platform-dependent code is restricted to the upper- and lowermost layers. </p> <div class="mw-heading mw-heading5"><h5 id="Graceful_degradation">Graceful degradation</h5><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Cross-platform_software&amp;action=edit&amp;section=8" title="Edit section: Graceful degradation"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Graceful degradation attempts to provide the same or similar functionality to all users and platforms, while diminishing that functionality to a least common denominator for more limited client browsers. For example, a user attempting to use a limited-feature browser to access Gmail may notice that Gmail switches to basic mode, with reduced functionality but still of use. </p> <div class="mw-heading mw-heading5"><h5 id="Multiple_codebases">Multiple codebases</h5><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Cross-platform_software&amp;action=edit&amp;section=9" title="Edit section: Multiple codebases"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Some software is maintained in distinct codebases for different (hardware and OS) platforms, with equivalent functionality. This requires more effort to maintain the code, but can be worthwhile where the amount of platform-specific code is high. </p> <div class="mw-heading mw-heading5"><h5 id="Single_codebase">Single codebase</h5><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Cross-platform_software&amp;action=edit&amp;section=10" title="Edit section: Single codebase"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>This strategy relies on having one codebase that may be compiled to multiple platform-specific formats. One technique is <a href="/wiki/Conditional_compilation" title="Conditional compilation">conditional compilation</a>. With this technique, code that is common to all platforms is not repeated. Blocks of code that are only relevant to certain platforms are made conditional, so that they are only <a href="/wiki/Interpreter_(computer_science)" class="mw-redirect" title="Interpreter (computer science)">interpreted</a> or <a href="/wiki/Compiler" title="Compiler">compiled</a> when needed. Another technique is separation of functionality, which disables functionality not supported by browsers or OSs, while still delivering a complete application to the user. (See also: <a href="/wiki/Separation_of_concerns" title="Separation of concerns">Separation of concerns</a>.) This technique is used in web development where interpreted code (as in scripting languages) can query the platform it is running on to execute different blocks conditionally.<sup id="cite_ref-6" class="reference"><a href="#cite_note-6"><span class="cite-bracket">&#91;</span>6<span class="cite-bracket">&#93;</span></a></sup> </p> <div class="mw-heading mw-heading5"><h5 id="Third-party_libraries">Third-party libraries</h5><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Cross-platform_software&amp;action=edit&amp;section=11" title="Edit section: Third-party libraries"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Third-party libraries attempt to simplify cross-platform capability by hiding the complexities of client differentiation behind a single, unified API, at the expense of <a href="/wiki/Vendor_lock-in" title="Vendor lock-in">vendor lock-in</a>. </p> <div class="mw-heading mw-heading5"><h5 id="Responsive_web_design">Responsive web design</h5><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Cross-platform_software&amp;action=edit&amp;section=12" title="Edit section: Responsive web design"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p><a href="/wiki/Responsive_web_design" title="Responsive web design">Responsive web design</a> (RWD) is a Web design approach aimed at crafting the visual layout of sites to provide 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. </p> <div class="mw-heading mw-heading4"><h4 id="Testing">Testing <span class="anchor" id="Testing_strategies"></span></h4><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Cross-platform_software&amp;action=edit&amp;section=13" title="Edit section: Testing"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Cross-platform applications need much more <a href="/wiki/Integration_testing" title="Integration testing">integration testing</a>. Some web browsers prohibit installation of different versions on the same machine. There are several approaches used to target multiple platforms, but all of them result in software that requires substantial manual effort for testing and maintenance.<sup id="cite_ref-7" class="reference"><a href="#cite_note-7"><span class="cite-bracket">&#91;</span>7<span class="cite-bracket">&#93;</span></a></sup> Techniques such as <a href="/wiki/Full_virtualization" class="mw-redirect" title="Full virtualization">full virtualization</a> are sometimes used as a workaround for this problem. </p><p>Tools such as the Page Object Model allow cross-platform tests to be scripted so that one test case covers multiple versions of an app. If different versions have similar user interfaces, all can be tested with one test case. </p> <div class="mw-heading mw-heading3"><h3 id="Traditional_applications">Traditional applications</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Cross-platform_software&amp;action=edit&amp;section=14" title="Edit section: Traditional applications"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Web applications are becoming increasingly popular but many 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. </p> <div class="mw-heading mw-heading4"><h4 id="Binary_software">Binary software</h4><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Cross-platform_software&amp;action=edit&amp;section=15" title="Edit section: Binary software"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Traditional application software has been distributed as binary files, especially <a href="/wiki/Executable_file" class="mw-redirect" title="Executable file">executable files</a>. Executables only support the 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, generally there is a selection of executables, each built for one platform. </p><p>For software that is distributed as a binary executable, such as that written in C or C++, there must be a <a href="/wiki/Software_build" title="Software build">software build</a> for each platform, using a toolset that translates—transcompiles—a single codebase into multiple binary executables. For example, <a href="/wiki/Firefox" title="Firefox">Firefox</a>, an open-source web browser, is available on Windows, macOS (both <a href="/wiki/PowerPC" title="PowerPC">PowerPC</a> and x86 through what <a href="/wiki/Apple_Inc." title="Apple Inc.">Apple Inc.</a> calls a <a href="/wiki/Universal_binary" title="Universal binary">Universal binary</a>), 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 <a href="/wiki/Source_code" title="Source code">source code</a>. In rare cases, executable code built for several platforms is combined into a single executable file called a <a href="/wiki/Fat_binary" title="Fat binary">fat binary</a>. </p><p>The use of different toolsets may not be enough to build a working executables for different platforms. In this case, programmers must <i><a href="/wiki/Porting" title="Porting">port</a></i> the source 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. </p><p>An alternative to porting is <i><a href="/wiki/Cross-platform_virtualization" title="Cross-platform virtualization">cross-platform virtualization</a></i>, where applications compiled for one platform can run on another without modification of the source code or binaries. As an example, Apple's <a href="/wiki/Rosetta_(software)" title="Rosetta (software)">Rosetta</a>, which is built into <a href="/wiki/Intel" title="Intel">Intel</a>-based Macintosh computers, runs applications compiled for the previous generation of Macs that used PowerPC CPUs. Another example is IBM <a href="/wiki/Lx86" class="mw-redirect" title="Lx86">PowerVM Lx86</a>, which allows Linux/x86 applications to run unmodified on the Linux/Power OS. </p><p>Example of cross-platform binary software: </p> <ul><li>The <a href="/wiki/LibreOffice" title="LibreOffice">LibreOffice</a> office suite is built for Microsoft Windows, macOS, Linux, <a href="/wiki/FreeBSD" title="FreeBSD">FreeBSD</a>, <a href="/wiki/NetBSD" title="NetBSD">NetBSD</a>, <a href="/wiki/OpenBSD" title="OpenBSD">OpenBSD</a>, <a href="/wiki/Android_(operating_system)" title="Android (operating system)">Android</a>, <a href="/wiki/IOS" title="IOS">iOS</a>, <a href="/wiki/IPadOS" title="IPadOS">iPadOS</a>, <a href="/wiki/ChromeOS" title="ChromeOS">ChromeOS</a>, web-based <a href="/wiki/Collabora_Online" title="Collabora Online">Collabora Online</a> and many others.<sup id="cite_ref-8" class="reference"><a href="#cite_note-8"><span class="cite-bracket">&#91;</span>8<span class="cite-bracket">&#93;</span></a></sup><sup id="cite_ref-:1_9-0" class="reference"><a href="#cite_note-:1-9"><span class="cite-bracket">&#91;</span>9<span class="cite-bracket">&#93;</span></a></sup> Many of these are supported on several hardware platforms with processor architectures including <a href="/wiki/IA-32" title="IA-32">IA-32</a>, <a href="/wiki/X86-64" title="X86-64">x86-64</a>, <a href="/wiki/ARM_architecture_family" title="ARM architecture family">ARM</a> (ARMel, ARMhf, ARM64), <a href="/wiki/MIPS_architecture_processors" title="MIPS architecture processors">MIPS</a>, <a href="/wiki/Mipsel" class="mw-redirect" title="Mipsel">MIPSel</a>, <a href="/wiki/PowerPC" title="PowerPC">PowerPC</a>, <a href="/wiki/Ppc64" title="Ppc64">ppc64le</a>, and S390x[9]<sup id="cite_ref-10" class="reference"><a href="#cite_note-10"><span class="cite-bracket">&#91;</span>10<span class="cite-bracket">&#93;</span></a></sup></li></ul> <div class="mw-heading mw-heading4"><h4 id="Scripts_and_interpreted_languages">Scripts and interpreted languages</h4><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Cross-platform_software&amp;action=edit&amp;section=16" title="Edit section: Scripts and interpreted languages"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>A script can be considered to be cross-platform if its <a href="/wiki/Interpreter_(computing)" title="Interpreter (computing)">interpreter</a> is available on multiple platforms and the script only uses the facilities built into the language. For example, a script written in <a href="/wiki/Python_(programming_language)" title="Python (programming language)">Python</a> for a <a href="/wiki/Unix-like" title="Unix-like">Unix-like</a> system will likely run with little or no modification on Windows, because Python also runs on Windows; indeed there are many implementations (e.g. <a href="/wiki/IronPython" title="IronPython">IronPython</a> for <a href="/wiki/.NET_Framework" title=".NET Framework">.NET Framework</a>). The same goes for many of the <a href="/wiki/Open-source_software" title="Open-source software">open-source</a> <a href="/wiki/Scripting_languages" class="mw-redirect" title="Scripting languages">scripting languages</a>. </p><p>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 <a href="/wiki/Plain_text" title="Plain text">plain text</a> in a <a href="/wiki/Text_file" title="Text file">text file</a>. There may be some trivial issues, such as the representation of a <a href="/wiki/Newline" title="Newline">new line character</a>. </p><p>Some popular cross-platform scripting languages are: </p> <ul><li><a href="/wiki/Bash_(Unix_shell)" title="Bash (Unix shell)">bash</a> – A <a href="/wiki/Unix_shell" title="Unix shell">Unix shell</a> commonly run on Linux and other modern Unix-like systems, as well as on Windows via the <a href="/wiki/Cygwin" title="Cygwin">Cygwin</a> <a href="/wiki/POSIX" title="POSIX">POSIX</a> compatibility layer, <a href="/wiki/Git" title="Git">Git</a> for Windows, or the <a href="/wiki/Windows_Subsystem_for_Linux" title="Windows Subsystem for Linux">Windows Subsystem for Linux</a>.</li> <li><a href="/wiki/Perl" title="Perl">Perl</a> – First released in 1987. Used for <a href="/wiki/Common_Gateway_Interface" title="Common Gateway Interface">CGI</a> programming, small <a href="/wiki/System_administration" class="mw-redirect" title="System administration">system administration</a> tasks, and more.</li> <li><a href="/wiki/PHP" title="PHP">PHP</a> – Mostly used for web applications.</li> <li><a href="/wiki/Python_(programming_language)" title="Python (programming language)">Python</a> – A language which focuses on <a href="/wiki/Rapid_application_development" title="Rapid application development">rapid application development</a> and ease of writing, instead of run-time efficiency.</li> <li><a href="/wiki/Ruby_(programming_language)" title="Ruby (programming language)">Ruby</a> – An object-oriented language which aims to be easy to read. Can also be used on the web through <a href="/wiki/Ruby_on_Rails" title="Ruby on Rails">Ruby on Rails</a>.</li> <li><a href="/wiki/Tcl" title="Tcl">Tcl</a> – A dynamic programming language, suitable for a wide range of uses, including web and desktop applications, networking, administration, testing and many more.</li></ul> <div class="mw-heading mw-heading3"><h3 id="Video_games">Video games</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Cross-platform_software&amp;action=edit&amp;section=17" title="Edit section: Video games"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Cross-platform or multi-platform is a term that can also apply to <a href="/wiki/Video_game" title="Video game">video games</a> released on a range of <a href="/wiki/Video_game_console" title="Video game console">video game consoles</a>. Examples of cross-platform games include: <i><a href="/wiki/Miner_2049er" title="Miner 2049er">Miner 2049er</a></i>, <i><a href="/wiki/Tomb_Raider:_Legend" title="Tomb Raider: Legend">Tomb Raider: Legend</a></i>, <i><a href="/wiki/FIFA_(video_game_series)" title="FIFA (video game series)">FIFA series</a></i>, <i><a href="/wiki/NHL_series" class="mw-redirect" title="NHL series">NHL series</a></i> and <i><a href="/wiki/Minecraft" title="Minecraft">Minecraft</a></i>. </p><p>Each has been released across a variety of gaming platforms, such as the <a href="/wiki/Wii" title="Wii">Wii</a>, <a href="/wiki/PlayStation_3" title="PlayStation 3">PlayStation 3</a>, <a href="/wiki/Xbox_360" title="Xbox 360">Xbox 360</a>, <a href="/wiki/Personal_computer" title="Personal computer">personal computers</a>, and <a href="/wiki/Mobile_devices" class="mw-redirect" title="Mobile devices">mobile devices</a>. </p><p>Some platforms are harder to write for than others, requiring more time to develop the video game to the same standard. 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 <a href="/wiki/Video_game_developer" title="Video game developer">video game developers</a> need to acquaint themselves with its hardware and software. </p><p>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, <a href="/wiki/Disney" class="mw-redirect" title="Disney">Disney</a> could create a game with the intention of release on the latest <a href="/wiki/Nintendo" title="Nintendo">Nintendo</a> and <a href="/wiki/Sony" title="Sony">Sony</a> 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 <a href="/wiki/Console_exclusivity" class="mw-redirect" title="Console exclusivity">or indefinitely</a>. </p> <div class="mw-heading mw-heading4"><h4 id="Cross-platform_play">Cross-platform play</h4><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Cross-platform_software&amp;action=edit&amp;section=18" title="Edit section: Cross-platform play"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1236090951"><div role="note" class="hatnote navigation-not-searchable">Main articles: <a href="/wiki/Cross-platform_play" title="Cross-platform play">Cross-platform play</a> and <a href="/wiki/List_of_video_games_that_support_cross-platform_play" title="List of video games that support cross-platform play">List of video games that support cross-platform play</a></div> <p>Several developers have implemented ways to play games online while using different platforms. <a href="/wiki/Psyonix" title="Psyonix">Psyonix</a>, <a href="/wiki/Epic_Games" title="Epic Games">Epic Games</a>, <a href="/wiki/Microsoft" title="Microsoft">Microsoft</a>, and <a href="/wiki/Valve_Corporation" title="Valve Corporation">Valve</a> 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 allow this level of interactivity between PC and console games (Dreamcast with specially produced keyboard and mouse) was <i><a href="/wiki/Quake_3" class="mw-redirect" title="Quake 3">Quake 3</a></i>.<sup id="cite_ref-11" class="reference"><a href="#cite_note-11"><span class="cite-bracket">&#91;</span>11<span class="cite-bracket">&#93;</span></a></sup><sup id="cite_ref-12" class="reference"><a href="#cite_note-12"><span class="cite-bracket">&#91;</span>12<span class="cite-bracket">&#93;</span></a></sup> </p><p>Games that feature cross-platform <a href="/wiki/Online_play" class="mw-redirect" title="Online play">online play</a> include <i><a href="/wiki/Rocket_League" title="Rocket League">Rocket League</a></i>, <i><a href="/wiki/Final_Fantasy_XIV:_A_Realm_Reborn" class="mw-redirect" title="Final Fantasy XIV: A Realm Reborn">Final Fantasy XIV</a></i>, <i><a href="/wiki/Street_Fighter_V" title="Street Fighter V">Street Fighter V</a></i>, <i><a href="/wiki/Killer_Instinct_(2013_video_game)" title="Killer Instinct (2013 video game)">Killer Instinct</a></i>, <i><a href="/wiki/Paragon_(video_game)" title="Paragon (video game)">Paragon</a></i> and <i><a href="/wiki/Fable_Fortune" title="Fable Fortune">Fable Fortune</a>,</i> and <i><a href="/wiki/Minecraft" title="Minecraft">Minecraft</a></i> with its Better Together update on <a href="/wiki/Windows_10" title="Windows 10">Windows 10</a>, VR editions, <a href="/wiki/Minecraft_-_Pocket_Edition" class="mw-redirect" title="Minecraft - Pocket Edition">Pocket Edition</a> and <a href="/wiki/Xbox_One" title="Xbox One">Xbox One</a>. </p> <div class="mw-heading mw-heading2"><h2 id="Programming">Programming <span class="anchor" id="Cross-platform_programming"></span></h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Cross-platform_software&amp;action=edit&amp;section=19" title="Edit section: Programming"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Cross-platform programming is the practice of deliberately writing software to work on more than one platform. </p> <div class="mw-heading mw-heading3"><h3 id="Approaches">Approaches <span class="anchor" id="Approaches_to_cross-platform_programming"></span></h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Cross-platform_software&amp;action=edit&amp;section=20" title="Edit section: Approaches"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>There are different ways to write a cross-platform application. One approach is to create multiple versions of the same software in different <i>source trees</i>—in other words, the Microsoft Windows version of an application might have one set of source code files and the <a href="/wiki/Apple_Macintosh" class="mw-redirect" title="Apple Macintosh">Macintosh</a> version another, while a <a href="/wiki/Free_and_open-source_software" title="Free and open-source software">FOSS</a> <a href="/wiki/*nix" class="mw-redirect" title="*nix">*nix</a> system might have a third. While this is straightforward, compared to developing for only one platform it can cost much more to pay a larger team or release products more slowly. It can also result in more bugs to be tracked and fixed. </p><p>Another approach is to use software that hides the differences between the platforms. This <a href="/wiki/Abstraction_layer" title="Abstraction layer">abstraction layer</a> insulates the application from the platform. Such applications are <i>platform agnostic</i>. Applications that run on the JVM are built this way. </p><p>Some applications mix various methods of cross-platform programming to create the final application. An example is the Firefox web browser, which uses abstraction to build some of the lower-level components, with separate source subtrees for implementing platform-specific features (like the GUI), and the implementation of more than one scripting language to ease <a href="/wiki/Software_portability" title="Software portability">software portability</a>. Firefox implements <a href="/wiki/XUL" title="XUL">XUL</a>, <a href="/wiki/CSS" title="CSS">CSS</a> and JavaScript for extending the browser, in addition to classic <a href="/wiki/Netscape" title="Netscape">Netscape</a>-style browser plugins. Much of the browser itself is written in XUL, CSS, and JavaScript. </p> <div class="mw-heading mw-heading3"><h3 id="Toolkits_and_environments">Toolkits and environments<span class="anchor" id="Cross-platform_programming_toolkits_and_environments"></span></h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Cross-platform_software&amp;action=edit&amp;section=21" title="Edit section: Toolkits and environments"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>There are many tools<sup id="cite_ref-TheGUIToolkit_13-0" class="reference"><a href="#cite_note-TheGUIToolkit-13"><span class="cite-bracket">&#91;</span>13<span class="cite-bracket">&#93;</span></a></sup><sup id="cite_ref-PlatformIndependentFAQ_14-0" class="reference"><a href="#cite_note-PlatformIndependentFAQ-14"><span class="cite-bracket">&#91;</span>14<span class="cite-bracket">&#93;</span></a></sup> available to help the process of cross-platform programming: </p> <ul><li><a href="/w/index.php?title=8th_(language)&amp;action=edit&amp;redlink=1" class="new" title="8th (language) (page does not exist)">8th</a>: a development language which utilizes <a href="/wiki/Juce" class="mw-redirect" title="Juce">Juce</a> as its GUI layer. It currently supports Android, iOS, Windows, macOS, Linux and Raspberry Pi.</li> <li><a href="/w/index.php?title=Anant_computing&amp;action=edit&amp;redlink=1" class="new" title="Anant computing (page does not exist)">Anant Computing</a>: A mobile application platform that works in all Indian languages, including their keyboards, and also supports AppWallet and native performance in all OSs.</li> <li><a href="/w/index.php?title=AppearIQ&amp;action=edit&amp;redlink=1" class="new" title="AppearIQ (page does not exist)">AppearIQ</a>: 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.</li> <li><a href="/w/index.php?title=Boden_(software)&amp;action=edit&amp;redlink=1" class="new" title="Boden (software) (page does not exist)">Boden</a>: a UI framework written in C++.</li> <li><a href="/wiki/Cairo_(graphics)" title="Cairo (graphics)">Cairo</a>: a <a href="/wiki/Free_software" title="Free software">free software</a> 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.</li> <li><a href="/wiki/Cocos2d" title="Cocos2d">Cocos2d</a>: an open-source toolkit and game engine for developing 2D and simple 3D cross-platform games and applications.</li> <li><a href="/wiki/Codename_One" title="Codename One">Codename One</a>: an open-source Write Once Run Anywhere (WORA) framework for Java and Kotlin developers.</li> <li><a href="/wiki/Delphi_(programming_language)" class="mw-redirect" title="Delphi (programming language)">Delphi</a>: an IDE which uses a Pascal-based language for development. It supports Android, iOS, Windows, macOS, Linux.</li> <li><a href="/w/index.php?title=Ecere_SDK&amp;action=edit&amp;redlink=1" class="new" title="Ecere SDK (page does not exist)">Ecere SDK</a>: 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&#160;<span class="noprint metadata ill"><small>&#91;<a href="https://www.wikidata.org/wiki/Special:EntityPage/Q131308722" class="extiw" title="d:Special:EntityPage/Q131308722">Wikidata</a>&#93;</small></span> (WebAssembly).</li> <li><a href="/wiki/Eclipse_IDE" class="mw-redirect" title="Eclipse IDE">Eclipse</a>: 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++.</li> <li><a href="/wiki/FLTK" title="FLTK">FLTK</a>: an open-source toolkit, but more lightweight because it restricts itself to the GUI.</li> <li><a href="/wiki/Flutter_(software)" title="Flutter (software)">Flutter</a>: A cross-platform UI framework for Android and iOS developed by <a href="/wiki/Google" title="Google">Google</a>.</li> <li><a href="/wiki/FpGUI" title="FpGUI">fpGUI</a>: An open-source widget toolkit that is completely implemented in Object Pascal. It currently supports Linux, Windows and a bit of Windows CE.</li> <li><a href="/wiki/GeneXus" title="GeneXus">GeneXus</a>: A Windows rapid software development solution for cross-platform application creation and deployment based on <a href="/wiki/Knowledge_representation" class="mw-redirect" title="Knowledge representation">knowledge representation</a> and supporting <a href="/wiki/C_Sharp_(programming_language)" title="C Sharp (programming language)">C#</a>, <a href="/wiki/COBOL" title="COBOL">COBOL</a>, <a href="/wiki/Java_(programming_language)" title="Java (programming language)">Java</a> including Android and BlackBerry smart devices, <a href="/wiki/Objective-C" title="Objective-C">Objective-C</a> for <a href="/wiki/Apple_Inc." title="Apple Inc.">Apple</a> mobile devices, <a href="/wiki/IBM_RPG" title="IBM RPG">RPG</a>, <a href="/wiki/Ruby_(programming_language)" title="Ruby (programming language)">Ruby</a>, <a href="/wiki/Visual_Basic" title="Visual Basic">Visual Basic</a>, and <a href="/wiki/Visual_FoxPro" title="Visual FoxPro">Visual FoxPro</a>.</li> <li><a href="/wiki/GLBasic" title="GLBasic">GLBasic</a>: 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).</li> <li><a href="/wiki/Godot_(game_engine)" title="Godot (game engine)">Godot</a>: an SDK which uses Godot Engine.</li> <li><a href="/wiki/GTK" title="GTK">GTK</a>+: An open-source widget toolkit for Unix-like systems with X11 and Microsoft Windows.</li> <li><a href="/wiki/Haxe" title="Haxe">Haxe</a>: An open-source language.</li> <li><a href="/wiki/Juce" class="mw-redirect" title="Juce">Juce</a>: An application framework written in C++, used to write native software on numerous systems (Microsoft Windows, POSIX, macOS), with no change to the code.</li> <li><a href="/wiki/Kivy_(framework)" title="Kivy (framework)">Kivy</a>: an open-source cross-platform UI framework written in <a href="/wiki/Python_(programming_language)" title="Python (programming language)">Python</a>. It supports <a href="/wiki/Android_(operating_system)" title="Android (operating system)">Android</a>, <a href="/wiki/IOS" title="IOS">iOS</a>, <a href="/wiki/Linux" title="Linux">Linux</a>, <a href="/wiki/MacOS" title="MacOS">OS X</a>, <a href="/wiki/Microsoft_Windows" title="Microsoft Windows">Windows</a> and <a href="/wiki/Raspberry_Pi" title="Raspberry Pi">Raspberry Pi</a>.</li> <li><a href="/w/index.php?title=LEADTOOLS&amp;action=edit&amp;redlink=1" class="new" title="LEADTOOLS (page does not exist)">LEADTOOLS</a>: Cross-platform SDK libraries to integrate recognition, document, medical, imaging, and multimedia technologies into Windows, iOS, macOS, Android, Linux and web applications.<sup id="cite_ref-15" class="reference"><a href="#cite_note-15"><span class="cite-bracket">&#91;</span>15<span class="cite-bracket">&#93;</span></a></sup></li> <li><a href="/wiki/LiveCode" title="LiveCode">LiveCode</a>: a commercial cross-platform rapid application development language inspired by HyperTalk.</li> <li><a href="/wiki/Lazarus_(IDE)" class="mw-redirect" title="Lazarus (IDE)">Lazarus</a>: 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.</li> <li><a href="/wiki/Max_(software)" title="Max (software)">Max/MSP</a>: A <a href="/wiki/Visual_programming_language" title="Visual programming language">visual programming language</a> 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</li> <li><a href="/wiki/Mendix" title="Mendix">Mendix</a>: a cloud-based low-code application development platform.</li> <li><a href="/wiki/MonoCross" title="MonoCross">MonoCross</a>: an open-source <a href="/wiki/Model%E2%80%93view%E2%80%93controller" title="Model–view–controller">model–view–controller</a> design pattern where the model and controller are cross-platform but the view is platform-specific.<sup id="cite_ref-16" class="reference"><a href="#cite_note-16"><span class="cite-bracket">&#91;</span>16<span class="cite-bracket">&#93;</span></a></sup></li> <li><a href="/wiki/Mono_(software)" title="Mono (software)">Mono</a>: An open-source cross-platform version of <a href="/wiki/Microsoft_.NET" class="mw-redirect" title="Microsoft .NET">Microsoft .NET</a> (a framework for applications and programming languages)</li> <li><a href="/wiki/MoSync" title="MoSync">MoSync</a>: an open-source SDK for mobile platform app development in the C++ family.</li> <li><a href="/wiki/Mozilla_application_framework" title="Mozilla application framework">Mozilla application framework</a>: an open-source platform for building macOS, Windows and Linux applications.</li> <li><a href="/wiki/OpenGL" title="OpenGL">OpenGL</a>: a 3D graphics library.</li> <li><a href="/wiki/Pixel_Game_Maker_MV" title="Pixel Game Maker MV">Pixel Game Maker MV</a>: A proprietary 2D game development software for Windows for developing Windows and <a href="/wiki/Nintendo_Switch" title="Nintendo Switch">Nintendo Switch</a> games.</li> <li><a href="/wiki/PureBasic" title="PureBasic">PureBasic</a>: a proprietary language and IDE for building macOS, Windows and Linux applications.</li> <li><a rel="nofollow" class="external text" href="https://renative.org">ReNative</a>: 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.</li> <li><a href="/wiki/Qt_(software)" title="Qt (software)">Qt</a>: an application framework and <a href="/wiki/Widget_toolkit" title="Widget toolkit">widget toolkit</a> for <a href="/wiki/Unix-like" title="Unix-like">Unix-like</a> systems with <a href="/wiki/X11" class="mw-redirect" title="X11">X11</a>, Microsoft Windows, macOS, and other systems—available under both proprietary and <a href="/wiki/Open-source_license" title="Open-source license">open-source licenses</a>.</li> <li><a href="/wiki/Simple_and_Fast_Multimedia_Library" title="Simple and Fast Multimedia Library">Simple and Fast Multimedia Library</a>: A multimedia C++ <a href="/wiki/Application_programming_interface" class="mw-redirect" title="Application programming interface">API</a> that provides low and high level access to graphics, input, audio, etc.</li> <li><a href="/wiki/Simple_DirectMedia_Layer" title="Simple DirectMedia Layer">Simple DirectMedia Layer</a>: an open-source multimedia library written in C that creates an abstraction over various platforms' graphics, sound, and input <a href="/wiki/Application_programming_interface" class="mw-redirect" title="Application programming interface">APIs</a>. It runs on OSs including Linux, Windows and macOS and is aimed at games and multimedia applications.</li> <li><a href="/wiki/Smartface" class="mw-redirect" title="Smartface">Smartface</a>: a native app development tool to create mobile applications for Android and iOS, using <a href="/wiki/WYSIWYG" title="WYSIWYG">WYSIWYG</a> design editor with JavaScript code editor.</li> <li><a href="/wiki/Tcl" title="Tcl">Tcl</a>/<a href="/wiki/Tk_(software)" title="Tk (software)">Tk</a></li> <li><a href="/wiki/Appcelerator_Titanium" class="mw-redirect" title="Appcelerator Titanium">Titanium Mobile</a>: open source cross-platform framework for Android and iOS development.</li> <li><a href="/wiki/Ultimate%2B%2B" title="Ultimate++">U++</a>: a C++ GUI framework for performance. It includes a set of libraries (GUI, SQL, etc..), and IDE. It supports Windows, macOS and Linux.</li> <li><a href="/wiki/Unity_(game_engine)" title="Unity (game engine)">Unity</a>: Another cross-platform SDK which uses Unity Engine.</li> <li><a href="/wiki/Uno_Platform" title="Uno Platform">Uno Platform</a>: Windows, macOS, iOS, Android, WebAssembly and Linux using C#.</li> <li><a href="/wiki/Unreal_Engine" title="Unreal Engine">Unreal</a>: A cross-platform SDK which uses Unreal Engine.</li> <li><a href="/wiki/V-Play_Engine" class="mw-redirect" title="V-Play Engine">V-Play Engine</a>: V-Play is a cross-platform development SDK based on the popular Qt framework. V-Play apps and games are created within Qt Creator.</li> <li><a href="/wiki/WaveMaker" title="WaveMaker">WaveMaker</a>: A low-code development tool to create responsive web and hybrid mobile (Android &amp; iOS) applications.</li> <li><a href="/w/index.php?title=WinDev&amp;action=edit&amp;redlink=1" class="new" title="WinDev (page does not exist)">WinDev</a>: an Integrated Development Environment for Windows, Linux, .Net and Java, and web browers. Optimized for business and industrial applications.</li> <li><a href="/wiki/WxWidgets" title="WxWidgets">wxWidgets</a>: an open-source widget toolkit that is also an <a href="/wiki/Application_framework" title="Application framework">application framework</a>.<sup id="cite_ref-wxwidgets_17-0" class="reference"><a href="#cite_note-wxwidgets-17"><span class="cite-bracket">&#91;</span>17<span class="cite-bracket">&#93;</span></a></sup> It runs on <a href="/wiki/Unix-like" title="Unix-like">Unix-like</a> systems with <a href="/wiki/X11" class="mw-redirect" title="X11">X11</a>, Microsoft Windows and macOS.</li> <li><a href="/wiki/Xojo" title="Xojo">Xojo</a>: 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.</li></ul> <div class="mw-heading mw-heading2"><h2 id="Challenges">Challenges <span class="anchor" id="Challenges_to_cross-platform_development"></span></h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Cross-platform_software&amp;action=edit&amp;section=22" title="Edit section: Challenges"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>There are many challenges when developing cross-platform software. </p> <ul><li>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 <a href="/wiki/Sun_Microsystems" title="Sun Microsystems">Sun Microsystems</a>' "<a href="/wiki/Write_once,_run_anywhere" title="Write once, run anywhere">write once, run anywhere</a>" marketing slogan.</li> <li>Developers are often restricted to using the <a href="/wiki/Lowest_common_denominator_(computers)" class="mw-redirect" title="Lowest common denominator (computers)">lowest common denominator</a> 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.</li> <li>Different platforms often have different user interface conventions, which cross-platform applications do not always accommodate. For example, applications developed for macOS and <a href="/wiki/GNOME" title="GNOME">GNOME</a> are supposed to place the most important button on the right-hand side of a window or dialog, whereas Microsoft Windows and <a href="/wiki/KDE" title="KDE">KDE</a> 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 <a href="/wiki/Data_loss" title="Data loss">data loss</a>, such as in a <a href="/wiki/Dialog_box" title="Dialog box">dialog box</a> confirming whether to save or discard changes.</li> <li>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 <a href="/wiki/Just-in-time_compilation" title="Just-in-time compilation">just-in-time compilation</a>; but some computational overhead may be unavoidable.</li> <li>Different platforms require the use of native package formats such as <a href="/wiki/RPM_Package_Manager" title="RPM Package Manager">RPM</a> and <a href="/wiki/Windows_Installer" title="Windows Installer">MSI</a>. Multi-platform installers such as <a href="/wiki/InstallAnywhere" class="mw-redirect" title="InstallAnywhere">InstallAnywhere</a> address this need.</li> <li>Cross-platform execution environments may suffer cross-platform security flaws, creating a fertile environment for cross-platform malware.<sup id="cite_ref-18" class="reference"><a href="#cite_note-18"><span class="cite-bracket">&#91;</span>18<span class="cite-bracket">&#93;</span></a></sup></li></ul> <div class="mw-heading mw-heading2"><h2 id="See_also">See also</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Cross-platform_software&amp;action=edit&amp;section=23" title="Edit section: See also"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <ul><li><a href="/wiki/Cross-platform_play" title="Cross-platform play">Cross-platform play</a></li> <li><a href="/wiki/Hardware-agnostic" class="mw-redirect" title="Hardware-agnostic">Hardware-agnostic</a></li> <li><a href="/wiki/Software_portability" title="Software portability">Software portability</a></li> <li><a href="/wiki/List_of_video_games_that_support_cross-platform_play" title="List of video games that support cross-platform play">List of video games that support cross-platform play</a></li> <li><a href="/wiki/List_of_widget_toolkits" title="List of widget toolkits">List of widget toolkits</a></li> <li><a href="/wiki/Hardware_virtualization" title="Hardware virtualization">Hardware virtualization</a></li> <li><a href="/wiki/Java_(software_platform)" title="Java (software platform)">Java (software platform)</a></li> <li><a href="/wiki/Language_binding" title="Language binding">Language binding</a></li> <li><a href="/wiki/Source-to-source_compiler" title="Source-to-source compiler">Source-to-source compiler</a></li> <li><a href="/wiki/Binary-code_compatibility" title="Binary-code compatibility">Binary-code compatibility</a></li> <li><a href="/wiki/Xamarin" title="Xamarin">Xamarin</a></li> <li><a href="/wiki/Comparison_of_user_features_of_messaging_platforms" title="Comparison of user features of messaging platforms">Comparison of user features of messaging platforms</a></li> <li><a href="/wiki/Mobile_development_framework" title="Mobile development framework">Mobile development frameworks</a>, many of which are cross-platform.</li></ul> <div class="mw-heading mw-heading2"><h2 id="References">References</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Cross-platform_software&amp;action=edit&amp;section=24" title="Edit section: References"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <style data-mw-deduplicate="TemplateStyles:r1239543626">.mw-parser-output .reflist{margin-bottom:0.5em;list-style-type:decimal}@media screen{.mw-parser-output .reflist{font-size:90%}}.mw-parser-output .reflist .references{font-size:100%;margin-bottom:0;list-style-type:inherit}.mw-parser-output .reflist-columns-2{column-width:30em}.mw-parser-output .reflist-columns-3{column-width:25em}.mw-parser-output .reflist-columns{margin-top:0.3em}.mw-parser-output .reflist-columns ol{margin-top:0}.mw-parser-output .reflist-columns li{page-break-inside:avoid;break-inside:avoid-column}.mw-parser-output .reflist-upper-alpha{list-style-type:upper-alpha}.mw-parser-output .reflist-upper-roman{list-style-type:upper-roman}.mw-parser-output .reflist-lower-alpha{list-style-type:lower-alpha}.mw-parser-output .reflist-lower-greek{list-style-type:lower-greek}.mw-parser-output .reflist-lower-roman{list-style-type:lower-roman}</style><div class="reflist"> <div class="mw-references-wrap mw-references-columns"><ol class="references"> <li id="cite_note-Sun-Web-00-1"><span class="mw-cite-backlink"><b><a href="#cite_ref-Sun-Web-00_1-0">^</a></b></span> <span class="reference-text"><style data-mw-deduplicate="TemplateStyles:r1238218222">.mw-parser-output cite.citation{font-style:inherit;word-wrap:break-word}.mw-parser-output .citation q{quotes:"\"""\"""'""'"}.mw-parser-output .citation:target{background-color:rgba(0,127,255,0.133)}.mw-parser-output .id-lock-free.id-lock-free a{background:url("//upload.wikimedia.org/wikipedia/commons/6/65/Lock-green.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-limited.id-lock-limited a,.mw-parser-output .id-lock-registration.id-lock-registration a{background:url("//upload.wikimedia.org/wikipedia/commons/d/d6/Lock-gray-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-subscription.id-lock-subscription a{background:url("//upload.wikimedia.org/wikipedia/commons/a/aa/Lock-red-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .cs1-ws-icon a{background:url("//upload.wikimedia.org/wikipedia/commons/4/4c/Wikisource-logo.svg")right 0.1em center/12px no-repeat}body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-free a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-limited a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-registration a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-subscription a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .cs1-ws-icon a{background-size:contain;padding:0 1em 0 0}.mw-parser-output .cs1-code{color:inherit;background:inherit;border:none;padding:inherit}.mw-parser-output .cs1-hidden-error{display:none;color:var(--color-error,#d33)}.mw-parser-output .cs1-visible-error{color:var(--color-error,#d33)}.mw-parser-output .cs1-maint{display:none;color:#085;margin-left:0.3em}.mw-parser-output .cs1-kern-left{padding-left:0.2em}.mw-parser-output .cs1-kern-right{padding-right:0.2em}.mw-parser-output .citation .mw-selflink{font-weight:inherit}@media screen{.mw-parser-output .cs1-format{font-size:95%}html.skin-theme-clientpref-night .mw-parser-output .cs1-maint{color:#18911f}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .cs1-maint{color:#18911f}}</style><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://web.archive.org/web/20120213051244/http://java.sun.com/products/jlf/ed1/dg/higq.htm">"Design Guidelines: Glossary"</a>. java.sun.com. Archived from <a rel="nofollow" class="external text" href="http://java.sun.com/products/jlf/ed1/dg/higq.htm">the original</a> on 2012-02-13<span class="reference-accessdate">. Retrieved <span class="nowrap">2011-10-19</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rft.genre=unknown&amp;rft.btitle=Design+Guidelines%3A+Glossary&amp;rft.pub=java.sun.com&amp;rft_id=http%3A%2F%2Fjava.sun.com%2Fproducts%2Fjlf%2Fed1%2Fdg%2Fhigq.htm&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3ACross-platform+software" class="Z3988"></span></span> </li> <li id="cite_note-pcmag_cross_platform-2"><span class="mw-cite-backlink"><b><a href="#cite_ref-pcmag_cross_platform_2-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.sdd-technology.com/news/definition-of-cross-platform">"SDD Technology blog: Definition of cross platform"</a>. SDD Technology<span class="reference-accessdate">. Retrieved <span class="nowrap">2020-10-18</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rft.genre=unknown&amp;rft.btitle=SDD+Technology+blog%3A+Definition+of+cross+platform&amp;rft.pub=SDD+Technology&amp;rft_id=https%3A%2F%2Fwww.sdd-technology.com%2Fnews%2Fdefinition-of-cross-platform&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3ACross-platform+software" class="Z3988"></span></span> </li> <li id="cite_note-3"><span class="mw-cite-backlink"><b><a href="#cite_ref-3">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFLee_P_Richardson2016" class="citation web cs1">Lee P Richardson (2016-02-16). <a rel="nofollow" class="external text" href="https://www.codeproject.com/articles/1079101/xamarin-vs-ionic-a-mobile-cross-platform-shootout">"Xamarin vs Ionic: A Mobile, Cross Platform, Shootout"</a>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rft.genre=unknown&amp;rft.btitle=Xamarin+vs+Ionic%3A+A+Mobile%2C+Cross+Platform%2C+Shootout&amp;rft.date=2016-02-16&amp;rft.au=Lee+P+Richardson&amp;rft_id=https%3A%2F%2Fwww.codeproject.com%2Farticles%2F1079101%2Fxamarin-vs-ionic-a-mobile-cross-platform-shootout&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3ACross-platform+software" class="Z3988"></span></span> </li> <li id="cite_note-The_Linux_Information_Project-4"><span class="mw-cite-backlink">^ <a href="#cite_ref-The_Linux_Information_Project_4-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-The_Linux_Information_Project_4-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://www.linfo.org/platform.html">"Platform Definition"</a>. The Linux Information Project<span class="reference-accessdate">. Retrieved <span class="nowrap">2014-03-27</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rft.genre=unknown&amp;rft.btitle=Platform+Definition&amp;rft.pub=The+Linux+Information+Project&amp;rft_id=http%3A%2F%2Fwww.linfo.org%2Fplatform.html&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3ACross-platform+software" class="Z3988"></span></span> </li> <li id="cite_note-Mono_by_Xamarin-5"><span class="mw-cite-backlink"><b><a href="#cite_ref-Mono_by_Xamarin_5-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://www.mono-project.com/docs/about-mono/">"About Mono"</a>. mono-project.com<span class="reference-accessdate">. Retrieved <span class="nowrap">2015-12-17</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rft.genre=unknown&amp;rft.btitle=About+Mono&amp;rft.pub=mono-project.com&amp;rft_id=http%3A%2F%2Fwww.mono-project.com%2Fdocs%2Fabout-mono%2F&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3ACross-platform+software" class="Z3988"></span></span> </li> <li id="cite_note-6"><span class="mw-cite-backlink"><b><a href="#cite_ref-6">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFCorti2011" class="citation journal cs1">Corti, Sascha P. (October 2011). <a rel="nofollow" class="external text" href="http://msdn.microsoft.com/en-us/magazine/hh475813.aspx">"Browser and Feature Detection"</a>. <i>MSDN Magazine</i><span class="reference-accessdate">. Retrieved <span class="nowrap">28 January</span> 2014</span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.genre=article&amp;rft.jtitle=MSDN+Magazine&amp;rft.atitle=Browser+and+Feature+Detection&amp;rft.date=2011-10&amp;rft.aulast=Corti&amp;rft.aufirst=Sascha+P.&amp;rft_id=http%3A%2F%2Fmsdn.microsoft.com%2Fen-us%2Fmagazine%2Fhh475813.aspx&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3ACross-platform+software" class="Z3988"></span></span> </li> <li id="cite_note-7"><span class="mw-cite-backlink"><b><a href="#cite_ref-7">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFChoudhary2014" class="citation book cs1">Choudhary, S.R. (2014). "Cross-platform testing and maintenance of web and mobile applications". <a rel="nofollow" class="external text" href="https://repository.gatech.edu/server/api/core/bitstreams/c283fd1a-551d-4b0e-a7da-7add80df2328/content"><i>Companion Proceedings of the 36th International Conference on Software Engineering</i></a>. pp.&#160;642–645. <a href="/wiki/Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1145%2F2591062.2591097">10.1145/2591062.2591097</a>. <a href="/wiki/Hdl_(identifier)" class="mw-redirect" title="Hdl (identifier)">hdl</a>:<span class="id-lock-free" title="Freely accessible"><a rel="nofollow" class="external text" href="https://hdl.handle.net/1853%2F53588">1853/53588</a></span>. <a href="/wiki/ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a>&#160;<a href="/wiki/Special:BookSources/9781450327688" title="Special:BookSources/9781450327688"><bdi>9781450327688</bdi></a>. <a href="/wiki/S2CID_(identifier)" class="mw-redirect" title="S2CID (identifier)">S2CID</a>&#160;<a rel="nofollow" class="external text" href="https://api.semanticscholar.org/CorpusID:1903037">1903037</a>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rft.genre=bookitem&amp;rft.atitle=Cross-platform+testing+and+maintenance+of+web+and+mobile+applications&amp;rft.btitle=Companion+Proceedings+of+the+36th+International+Conference+on+Software+Engineering&amp;rft.pages=642-645&amp;rft.date=2014&amp;rft_id=info%3Ahdl%2F1853%2F53588&amp;rft_id=https%3A%2F%2Fapi.semanticscholar.org%2FCorpusID%3A1903037%23id-name%3DS2CID&amp;rft_id=info%3Adoi%2F10.1145%2F2591062.2591097&amp;rft.isbn=9781450327688&amp;rft.aulast=Choudhary&amp;rft.aufirst=S.R.&amp;rft_id=https%3A%2F%2Frepository.gatech.edu%2Fserver%2Fapi%2Fcore%2Fbitstreams%2Fc283fd1a-551d-4b0e-a7da-7add80df2328%2Fcontent&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3ACross-platform+software" class="Z3988"></span></span> </li> <li id="cite_note-8"><span class="mw-cite-backlink"><b><a href="#cite_ref-8">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFMehrotra2020" class="citation news cs1">Mehrotra, Pranob (2020-12-01). <a rel="nofollow" class="external text" href="https://www.xda-developers.com/collabora-office-suite-gets-layout-android-tablets-chromebooks/">"Collabora Office suite gets a new layout for Android tablets and Chromebooks"</a>. <i>XDA-Developers</i><span class="reference-accessdate">. Retrieved <span class="nowrap">2021-01-15</span></span>. <q>Collabora Office is a popular open-source alternative to the Microsoft Office suite. It's based on LibreOffice, and it's available on a variety of platforms, including Windows, Linux, iOS, and Android. This year in July, a major update for the office suite brought support for Chrome OS devices.</q></cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.genre=article&amp;rft.jtitle=XDA-Developers&amp;rft.atitle=Collabora+Office+suite+gets+a+new+layout+for+Android+tablets+and+Chromebooks&amp;rft.date=2020-12-01&amp;rft.aulast=Mehrotra&amp;rft.aufirst=Pranob&amp;rft_id=https%3A%2F%2Fwww.xda-developers.com%2Fcollabora-office-suite-gets-layout-android-tablets-chromebooks%2F&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3ACross-platform+software" class="Z3988"></span></span> </li> <li id="cite_note-:1-9"><span class="mw-cite-backlink"><b><a href="#cite_ref-:1_9-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation news cs1"><a rel="nofollow" class="external text" href="https://adfinis.com/en/blog/collabora-office-on-ios-and-android-just-got-better/">"Collabora Office on iOS and Android Just got Better!"</a>. <i>Adfinis</i>. 2020-12-15<span class="reference-accessdate">. Retrieved <span class="nowrap">2021-01-15</span></span>. <q>...touch optimized interfaces: one for tablets and one for phone screens. ...(iOS, iPadOS, Chromebooks, Android).</q></cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.genre=article&amp;rft.jtitle=Adfinis&amp;rft.atitle=Collabora+Office+on+iOS+and+Android+Just+got+Better%21&amp;rft.date=2020-12-15&amp;rft_id=https%3A%2F%2Fadfinis.com%2Fen%2Fblog%2Fcollabora-office-on-ios-and-android-just-got-better%2F&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3ACross-platform+software" class="Z3988"></span></span> </li> <li id="cite_note-10"><span class="mw-cite-backlink"><b><a href="#cite_ref-10">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation news cs1"><a rel="nofollow" class="external text" href="https://www.muylinux.com/2021/03/26/nextcloud-ubuntu-appliance-collabora-online-raspberry-pi/">"Nextcloud Ubuntu Appliance adds Collabora Online to Raspberry Pi image"</a>. <i>MuyLinux</i>. 2021-03-26<span class="reference-accessdate">. Retrieved <span class="nowrap">2021-03-30</span></span>. <q>the first viable self-hosted web office solution for the popular Raspberry Pi 4 platform</q></cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.genre=article&amp;rft.jtitle=MuyLinux&amp;rft.atitle=Nextcloud+Ubuntu+Appliance+adds+Collabora+Online+to+Raspberry+Pi+image&amp;rft.date=2021-03-26&amp;rft_id=https%3A%2F%2Fwww.muylinux.com%2F2021%2F03%2F26%2Fnextcloud-ubuntu-appliance-collabora-online-raspberry-pi%2F&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3ACross-platform+software" class="Z3988"></span></span> </li> <li id="cite_note-11"><span class="mw-cite-backlink"><b><a href="#cite_ref-11">^</a></b></span> <span class="reference-text">Cribba. <a rel="nofollow" class="external text" href="https://www.giantbomb.com/quake-iii-arena/3030-3874/">Quake III Arena</a>, <i>Giant Bombcast</i>, February 15, 2013.</span> </li> <li id="cite_note-12"><span class="mw-cite-backlink"><b><a href="#cite_ref-12">^</a></b></span> <span class="reference-text"><a rel="nofollow" class="external text" href="http://www.thedreamcastjunkyard.co.uk/2017/08/a-closer-look-at-dreamcast-internet.html">A Closer Look At The Dreamcast Internet Starter Kit</a></span> </li> <li id="cite_note-TheGUIToolkit-13"><span class="mw-cite-backlink"><b><a href="#cite_ref-TheGUIToolkit_13-0">^</a></b></span> <span class="reference-text"><a rel="nofollow" class="external text" href="https://web.archive.org/web/20091026132520/http://geocities.com/SiliconValley/Vista/7184/guitool.html">The GUI Toolkit, Framework Page</a></span> </li> <li id="cite_note-PlatformIndependentFAQ-14"><span class="mw-cite-backlink"><b><a href="#cite_ref-PlatformIndependentFAQ_14-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://web.archive.org/web/20080816180726/http://www.zeta.org.au/~rosko/pigui.htm">"Platform Independent FAQ"</a>. Archived from <a rel="nofollow" class="external text" href="http://www.zeta.org.au/~rosko/pigui.htm">the original</a> on 2008-08-16<span class="reference-accessdate">. Retrieved <span class="nowrap">2009-04-25</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rft.genre=unknown&amp;rft.btitle=Platform+Independent+FAQ&amp;rft_id=http%3A%2F%2Fwww.zeta.org.au%2F~rosko%2Fpigui.htm&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3ACross-platform+software" class="Z3988"></span></span> </li> <li id="cite_note-15"><span class="mw-cite-backlink"><b><a href="#cite_ref-15">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.leadtools.com/sdk/cross-platform">"Cross-Platform SDK Libraries for Recognition, Document, Medical, Imaging, and Multimedia"</a>. <i>www.leadtools.com</i><span class="reference-accessdate">. Retrieved <span class="nowrap">2021-03-03</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.genre=unknown&amp;rft.jtitle=www.leadtools.com&amp;rft.atitle=Cross-Platform+SDK+Libraries+for+Recognition%2C+Document%2C+Medical%2C+Imaging%2C+and+Multimedia&amp;rft_id=https%3A%2F%2Fwww.leadtools.com%2Fsdk%2Fcross-platform&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3ACross-platform+software" class="Z3988"></span></span> </li> <li id="cite_note-16"><span class="mw-cite-backlink"><b><a href="#cite_ref-16">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://headworks.io/blog/12-benefits-of-Xamarin-Cross-platform-app-development">"12 benefits of Xamarin Cross-platform app development"</a>. <i>HeadWorks</i>. 15 Mar 2019.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.genre=unknown&amp;rft.jtitle=HeadWorks&amp;rft.atitle=12+benefits+of+Xamarin+Cross-platform+app+development&amp;rft.date=2019-03-15&amp;rft_id=https%3A%2F%2Fheadworks.io%2Fblog%2F12-benefits-of-Xamarin-Cross-platform-app-development&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3ACross-platform+software" class="Z3988"></span></span> </li> <li id="cite_note-wxwidgets-17"><span class="mw-cite-backlink"><b><a href="#cite_ref-wxwidgets_17-0">^</a></b></span> <span class="reference-text"><a rel="nofollow" class="external text" href="http://wxwidgets.org/">WxWidgets Description</a></span> </li> <li id="cite_note-18"><span class="mw-cite-backlink"><b><a href="#cite_ref-18">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFWarren2020" class="citation web cs1">Warren, Tom (2020-01-14). <a rel="nofollow" class="external text" href="https://www.theverge.com/2020/1/14/21065122/microsoft-windows-7-end-of-support-lifecycle-millions-pcs">"Microsoft bids farewell to Windows 7 and the millions of PCs that still run it"</a>. <i>The Verge</i><span class="reference-accessdate">. Retrieved <span class="nowrap">2020-02-06</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.genre=unknown&amp;rft.jtitle=The+Verge&amp;rft.atitle=Microsoft+bids+farewell+to+Windows+7+and+the+millions+of+PCs+that+still+run+it&amp;rft.date=2020-01-14&amp;rft.aulast=Warren&amp;rft.aufirst=Tom&amp;rft_id=https%3A%2F%2Fwww.theverge.com%2F2020%2F1%2F14%2F21065122%2Fmicrosoft-windows-7-end-of-support-lifecycle-millions-pcs&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3ACross-platform+software" class="Z3988"></span></span> </li> </ol></div></div> <!-- NewPP limit report Parsed by mw‐web.codfw.main‐5c59558b9d‐s4z62 Cached time: 20241130212330 Cache expiry: 2592000 Reduced expiry: false Complications: [vary‐revision‐sha1, show‐toc] CPU time usage: 0.326 seconds Real time usage: 0.506 seconds Preprocessor visited node count: 1459/1000000 Post‐expand include size: 27905/2097152 bytes Template argument size: 1092/2097152 bytes Highest expansion depth: 12/100 Expensive parser function count: 11/500 Unstrip recursion depth: 1/20 Unstrip post‐expand size: 53316/5000000 bytes Lua time usage: 0.174/10.000 seconds Lua memory usage: 6242567/52428800 bytes Number of Wikibase entities loaded: 0/400 --> <!-- Transclusion expansion time report (%,ms,calls,template) 100.00% 369.643 1 -total 44.37% 164.000 1 Template:Reflist 30.74% 113.643 9 Template:Cite_web 17.81% 65.848 1 Template:Short_description 14.74% 54.485 1 Template:Wdrl 10.80% 39.916 2 Template:Pagetype 8.93% 33.020 1 Template:Clarify 8.33% 30.800 2 Template:Redirect 7.75% 28.635 1 Template:Fix-span 5.41% 19.982 2 Template:Category_handler --> <!-- Saved in parser cache with key enwiki:pcache:81193:|#|:idhash:canonical and timestamp 20241130212330 and revision id 1259062949. Rendering was triggered because: page-view --> </div><!--esi <esi:include src="/esitest-fa8a495983347898/content" /> --><noscript><img src="https://login.wikimedia.org/wiki/Special:CentralAutoLogin/start?type=1x1&amp;useformat=desktop" alt="" width="1" height="1" style="border: none; position: absolute;"></noscript> <div class="printfooter" data-nosnippet="">Retrieved from "<a dir="ltr" href="https://en.wikipedia.org/w/index.php?title=Cross-platform_software&amp;oldid=1259062949">https://en.wikipedia.org/w/index.php?title=Cross-platform_software&amp;oldid=1259062949</a>"</div></div> <div id="catlinks" class="catlinks" data-mw="interface"><div id="mw-normal-catlinks" class="mw-normal-catlinks"><a href="/wiki/Help:Category" title="Help:Category">Categories</a>: <ul><li><a href="/wiki/Category:Cross-platform_software" title="Category:Cross-platform software">Cross-platform software</a></li><li><a href="/wiki/Category:Computing_platforms" title="Category:Computing platforms">Computing platforms</a></li><li><a href="/wiki/Category:Interoperability" title="Category:Interoperability">Interoperability</a></li></ul></div><div id="mw-hidden-catlinks" class="mw-hidden-catlinks mw-hidden-cats-hidden">Hidden categories: <ul><li><a href="/wiki/Category:Articles_with_short_description" title="Category:Articles with short description">Articles with short description</a></li><li><a href="/wiki/Category:Short_description_matches_Wikidata" title="Category:Short description matches Wikidata">Short description matches Wikidata</a></li><li><a href="/wiki/Category:Wikipedia_articles_needing_clarification_from_July_2018" title="Category:Wikipedia articles needing clarification from July 2018">Wikipedia articles needing clarification from July 2018</a></li></ul></div></div> </div> </main> </div> <div class="mw-footer-container"> <footer id="footer" class="mw-footer" > <ul id="footer-info"> <li id="footer-info-lastmod"> This page was last edited on 23 November 2024, at 04:14<span class="anonymous-show">&#160;(UTC)</span>.</li> <li id="footer-info-copyright">Text is available under the <a href="/wiki/Wikipedia:Text_of_the_Creative_Commons_Attribution-ShareAlike_4.0_International_License" title="Wikipedia:Text of the Creative Commons Attribution-ShareAlike 4.0 International License">Creative Commons Attribution-ShareAlike 4.0 License</a>; additional terms may apply. By using this site, you agree to the <a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Terms_of_Use" class="extiw" title="foundation:Special:MyLanguage/Policy:Terms of Use">Terms of Use</a> and <a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Privacy_policy" class="extiw" title="foundation:Special:MyLanguage/Policy:Privacy policy">Privacy Policy</a>. Wikipedia® is a registered trademark of the <a rel="nofollow" class="external text" href="https://wikimediafoundation.org/">Wikimedia Foundation, Inc.</a>, a non-profit organization.</li> </ul> <ul id="footer-places"> <li id="footer-places-privacy"><a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Privacy_policy">Privacy policy</a></li> <li id="footer-places-about"><a href="/wiki/Wikipedia:About">About Wikipedia</a></li> <li id="footer-places-disclaimers"><a href="/wiki/Wikipedia:General_disclaimer">Disclaimers</a></li> <li id="footer-places-contact"><a href="//en.wikipedia.org/wiki/Wikipedia:Contact_us">Contact Wikipedia</a></li> <li id="footer-places-wm-codeofconduct"><a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Universal_Code_of_Conduct">Code of Conduct</a></li> <li id="footer-places-developers"><a href="https://developer.wikimedia.org">Developers</a></li> <li id="footer-places-statslink"><a href="https://stats.wikimedia.org/#/en.wikipedia.org">Statistics</a></li> <li id="footer-places-cookiestatement"><a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Cookie_statement">Cookie statement</a></li> <li id="footer-places-mobileview"><a href="//en.m.wikipedia.org/w/index.php?title=Cross-platform_software&amp;mobileaction=toggle_view_mobile" class="noprint stopMobileRedirectToggle">Mobile view</a></li> </ul> <ul id="footer-icons" class="noprint"> <li id="footer-copyrightico"><a href="https://wikimediafoundation.org/" class="cdx-button cdx-button--fake-button cdx-button--size-large cdx-button--fake-button--enabled"><img src="/static/images/footer/wikimedia-button.svg" width="84" height="29" alt="Wikimedia Foundation" loading="lazy"></a></li> <li id="footer-poweredbyico"><a href="https://www.mediawiki.org/" class="cdx-button cdx-button--fake-button cdx-button--size-large cdx-button--fake-button--enabled"><img src="/w/resources/assets/poweredby_mediawiki.svg" alt="Powered by MediaWiki" width="88" height="31" loading="lazy"></a></li> </ul> </footer> </div> </div> </div> <div class="vector-settings" id="p-dock-bottom"> <ul></ul> </div><script>(RLQ=window.RLQ||[]).push(function(){mw.config.set({"wgHostname":"mw-web.codfw.main-5c59558b9d-vn4mb","wgBackendResponseTime":161,"wgPageParseReport":{"limitreport":{"cputime":"0.326","walltime":"0.506","ppvisitednodes":{"value":1459,"limit":1000000},"postexpandincludesize":{"value":27905,"limit":2097152},"templateargumentsize":{"value":1092,"limit":2097152},"expansiondepth":{"value":12,"limit":100},"expensivefunctioncount":{"value":11,"limit":500},"unstrip-depth":{"value":1,"limit":20},"unstrip-size":{"value":53316,"limit":5000000},"entityaccesscount":{"value":0,"limit":400},"timingprofile":["100.00% 369.643 1 -total"," 44.37% 164.000 1 Template:Reflist"," 30.74% 113.643 9 Template:Cite_web"," 17.81% 65.848 1 Template:Short_description"," 14.74% 54.485 1 Template:Wdrl"," 10.80% 39.916 2 Template:Pagetype"," 8.93% 33.020 1 Template:Clarify"," 8.33% 30.800 2 Template:Redirect"," 7.75% 28.635 1 Template:Fix-span"," 5.41% 19.982 2 Template:Category_handler"]},"scribunto":{"limitreport-timeusage":{"value":"0.174","limit":"10.000"},"limitreport-memusage":{"value":6242567,"limit":52428800}},"cachereport":{"origin":"mw-web.codfw.main-5c59558b9d-s4z62","timestamp":"20241130212330","ttl":2592000,"transientcontent":false}}});});</script> <script type="application/ld+json">{"@context":"https:\/\/schema.org","@type":"Article","name":"Cross-platform software","url":"https:\/\/en.wikipedia.org\/wiki\/Cross-platform_software","sameAs":"http:\/\/www.wikidata.org\/entity\/Q174666","mainEntity":"http:\/\/www.wikidata.org\/entity\/Q174666","author":{"@type":"Organization","name":"Contributors to Wikimedia projects"},"publisher":{"@type":"Organization","name":"Wikimedia Foundation, Inc.","logo":{"@type":"ImageObject","url":"https:\/\/www.wikimedia.org\/static\/images\/wmf-hor-googpub.png"}},"datePublished":"2002-09-06T08:50:48Z","dateModified":"2024-11-23T04:14:00Z","headline":"computer software implemented on multiple computing platforms"}</script> </body> </html>

Pages: 1 2 3 4 5 6 7 8 9 10