Software napříč platformami - Cross-platform software

V oblasti výpočetní techniky je software pro různé platformy (také software pro více platforem nebo software nezávislý na platformě ) počítačový software, který je navržen tak, aby fungoval na několika výpočetních platformách. Některý software napříč platformami vyžaduje samostatné sestavení pro každou platformu, ale některé lze spustit přímo na jakékoli platformě bez zvláštní přípravy, jsou napsány v tlumočeném jazyce nebo zkompilovány do přenosného bajtkódu, pro který jsou tlumočníky nebo běhové balíčky běžné nebo standardní komponenty všech podporovaných platforem.

Například, cross-platform aplikace může běžet na Microsoft Windows , Linux a MacOS . Software napříč platformami může běžet na mnoha platformách nebo jen na dvou. Některé rámce pro vývoj napříč platformami jsou Codename One , Kivy , Qt , Flutter , NativeScript , Xamarin , Phonegap , Ionic a React Native .

Platformy

Platforma může odkazovat na typ procesoru (CPU) nebo jiného hardwaru, na kterém běží operační systém (OS) nebo aplikace , typ OS nebo jejich kombinaci. Příkladem běžné platformy je operační systém Microsoft Windows běžící na architektuře x86 . Dalšími známými desktopovými platformami jsou Linux / Unix a macOS -obě jsou samy o sobě multiplatformní. Existuje však mnoho zařízení, jako jsou smartphony, které jsou také platformami. Aplikace lze zapisovat v závislosti na funkcích konkrétní platformy - hardwaru, operačního systému nebo virtuálního počítače (VM), na kterém běží. Například platforma Java je běžná platforma virtuálních počítačů, která běží na mnoha operačních systémech a typech hardwaru.

Hardware

Hardwarová platforma může odkazovat na architekturu sady instrukcí . Například: architektura x86 a její varianty jako IA-32 a x86-64 . Tyto počítače často používají jednu verzi systému Microsoft Windows, i když mohou používat i jiné operační systémy, včetně Linuxu, OpenBSD , NetBSD , macOS a FreeBSD .

The 32-bit ARM architektury (a novější 64-bit verze) je společné na smartphony a tabletové počítače , který běží Android, iOS a další mobilní operační systémy .

Software

Softwarová platforma může být buď OS nebo programovací prostředí , i když častěji se jedná o kombinaci obojího. Výjimkou je Java , která ke spouštění bytecode Java používá virtuální počítač nezávislý na operačním systému . Příklady softwarových platforem jsou:

Drobné/historické

Jáva

Jazyk Java je obvykle kompilován pro běh na virtuálním počítači, který je součástí platformy Java. Java VM ( JVM ) je procesor implementovaný v softwaru, který spouští veškerý kód Java. To umožňuje spuštění stejného kódu na všech systémech, které implementují JVM. Software Java lze spouštět pomocí hardwarového procesoru Java . To se používá většinou ve vestavěných systémech.

Kód Java spuštěný v JVM má přístup ke službám souvisejícím s OS, jako jsou I/O disku a přístup k síti, pokud jsou udělena příslušná oprávnění. JVM provádí volání systému jménem aplikace Java. To umožňuje uživatelům rozhodnout o vhodné úrovni ochrany v závislosti na seznamu ACL . Například přístup k disku a síti je obvykle povolen pro desktopové aplikace, ale ne pro aplety založené na prohlížeči . K přístupu k funkcím specifickým pro OS lze také použít rozhraní Java Native Interface (JNI) se ztrátou přenositelnosti.

V současné době lze software Java Standard Edition provozovat na operačních systémech Microsoft Windows, macOS, několika unixových operačních systémech a několika operačních systémech v reálném čase pro integrovaná zařízení. Pro mobilní aplikace se používají doplňky prohlížeče pro zařízení se systémem Windows a Mac a Android má vestavěnou podporu pro Javu. Existují také podmnožiny Javy, například Java Card nebo Java Platform, Micro Edition , určené pro zařízení omezená zdroji.

Implementace

Aby byl software považován za multiplatformní, musí fungovat na více než jedné počítačové architektuře nebo operačním systému. Vývoj takového softwaru může být časově náročný úkol, protože různé operační systémy mají různá rozhraní pro programování aplikací (API). Linux například používá jiné API než Windows.

Software napsaný pro jeden OS nemusí automaticky fungovat na všech architekturách, které OS podporuje. Jedním z příkladů je OpenOffice.org , který v roce 2006 neběžel nativně na procesorech AMD64 nebo Intel 64 implementujících standardy x86-64; do roku 2012 byl „většinou“ portován do těchto systémů. Jen proto, že je software napsán v populárním programovacím jazyce, jako je C nebo C ++ , neznamená to, že poběží na všech operačních systémech, které tento jazyk podporují - nebo dokonce na různých verzích stejného operačního systému.

Webové aplikace

Webové aplikace jsou obvykle popisovány jako multiplatformní, protože v ideálním případě jsou přístupné z jakéhokoli webového prohlížeče : prohlížeč je platforma. Webové aplikace obecně využívají model klient -server , ale velmi se liší složitostí a funkčností. Může být těžké sladit touhu po funkcích s potřebou kompatibility.

Základní webové aplikace provádějí veškeré nebo většinu zpracování ze serveru bez státní příslušnosti a předávají výsledek klientskému webovému prohlížeči. Veškerá interakce uživatele s aplikací spočívá v jednoduché výměně datových požadavků a odpovědí serveru. Tento typ aplikace byl standardem v raných fázích vývoje aplikace World Wide Web . Takové aplikace se řídí jednoduchým transakčním modelem, který je identický s obsluhou statických webových stránek . Dnes jsou stále relativně běžné, zejména tam, kde kompatibilita a jednoduchost mezi platformami jsou považovány za důležitější než pokročilé funkce.

Mezi prominentní příklady pokročilých webových aplikací patří webové rozhraní pro Gmail , A9.com , web Google Maps a služba Live Search (nyní Bing ) od společnosti Microsoft. Takové aplikace běžně závisí na dalších funkcích, které se nacházejí pouze v novějších verzích populárních webových prohlížečů. Mezi tyto funkce patří Ajax , JavaScript , Dynamic HTML , SVG a další součásti bohatých webových aplikací . Tyto starší verze často postrádají.

Design

Kvůli konkurenčním zájmům o kompatibilitu a funkčnost se objevilo mnoho návrhových strategií.

Mnoho softwarových systémů používá vrstvenou architekturu, kde je kód závislý na platformě omezen na horní a nejnižší vrstvu.

Půvabná degradace

Půvabná degradace se pokouší poskytnout stejnou nebo podobnou funkcionalitu všem uživatelům a platformám, přičemž tuto funkci zmenšuje na nejméně společného jmenovatele pro omezenější klientské prohlížeče. Například uživatel, který se pokouší použít pro přístup ke službě Gmail prohlížeč s omezenými funkcemi, si může všimnout, že se Gmail přepíná do základního režimu se sníženou funkčností, ale stále se používá.

Více základen kódů

Některý software je udržován v odlišných kódových základnách pro různé (hardwarové a OS) platformy s ekvivalentními funkcemi. To vyžaduje větší úsilí k udržení kódu, ale může to být užitečné tam, kde je množství kódu specifického pro platformu vysoké.

Jedna kódová základna

Tato strategie se opírá o jednu základnu kódů, kterou lze kompilovat do více formátů specifických pro platformu. Jednou z technik je podmíněná kompilace . S touto technikou se kód, který je společný pro všechny platformy, neopakuje. Bloky kódu, které jsou relevantní pouze pro určité platformy, jsou podmíněné, takže jsou interpretovány nebo kompilovány pouze v případě potřeby. Další technikou je oddělení funkcí, které zakáže funkce, které nejsou podporovány prohlížeči nebo operačními systémy, a přitom uživateli dodají kompletní aplikaci. (Viz také: Oddělení problémů .) Tato technika se používá ve vývoji webu, kde interpretovaný kód (jako ve skriptovacích jazycích) může dotazovat platformu, na které běží, a podmíněně spouštět různé bloky.

Knihovny třetích stran

Knihovny třetích stran se pokoušejí zjednodušit možnosti napříč platformami tím, že skrývají složitost diferenciace klientů za jediné, jednotné API, na úkor uzamčení dodavatele .

Citlivý webový design

Responzivní webový design (RWD) je přístup k webovému designu, jehož cílem je vytvořit vizuální rozvržení webů tak, aby poskytovalo optimální zážitek ze sledování - snadné čtení a navigaci s minimem změny velikosti, posouvání a posouvání - napříč širokou škálou zařízení, z mobilních zařízení. telefonů na monitory stolních počítačů. S touto technikou se používá malý nebo žádný kód pro konkrétní platformu.

Testování

Aplikace napříč platformami vyžadují mnohem více testování integrace . Některé webové prohlížeče zakazují instalaci různých verzí na stejný počítač. K cílení na více platforem se používá několik přístupů, ale všechny vedou k softwaru, který vyžaduje značné manuální úsilí pro testování a údržbu. Jako řešení tohoto problému se někdy používají techniky, jako je plná virtualizace .

Nástroje, jako je Page Object Model, umožňují skriptování testů napříč platformami, takže jeden testovací případ pokrývá více verzí aplikace. Pokud mají různé verze podobná uživatelská rozhraní, lze všechny testovat pomocí jednoho testovacího případu.

Tradiční aplikace

Webové aplikace jsou stále oblíbenější, ale mnoho uživatelů počítačů stále používá tradiční aplikační software, který nespoléhá na architekturu klient/web-server. Rozdíl mezi tradičními a webovými aplikacemi není vždy jasný. Funkce, způsoby instalace a architektury pro webové a tradiční aplikace se překrývají a stírají rozdíl. Toto zjednodušující rozlišení je však běžnou a užitečnou generalizací.

Binární software

Tradiční aplikační software byl distribuován jako binární soubory, zejména spustitelné soubory . Spustitelné soubory podporují pouze platformu, pro kterou byly vytvořeny-což znamená, že jeden spustitelný soubor mezi platformami by mohl být velmi nafouknutý kódem, který se na konkrétní platformě nikdy nespustí. Místo toho obecně existuje výběr spustitelných souborů, každý vytvořený pro jednu platformu.

U softwaru, který je distribuován jako binární spustitelný soubor, například napsaný v jazyce C nebo C ++, musí existovat softwarové sestavení pro každou platformu pomocí sady nástrojů, která převádí - transcompiles - jednu kódovou základnu na více binárních spustitelných souborů. Například Firefox , webový prohlížeč s otevřeným zdrojovým kódem, je k dispozici pro Windows, macOS ( PowerPC i x86 prostřednictvím toho, co Apple Inc. nazývá Universal binární ), Linux a BSD na více počítačových architekturách. Čtyři platformy (v tomto případě Windows, macOS, Linux a BSD) jsou samostatné spustitelné distribuce, ačkoli pocházejí převážně ze stejného zdrojového kódu .

Použití různých sad nástrojů nemusí stačit k vytvoření fungujících spustitelných souborů pro různé platformy. V takovém případě musí programátoři přenést zdrojový kód na novou platformu. Například aplikaci, jako je Firefox, která již běží na Windows v rodině x86, lze upravit a znovu sestavit tak, aby běžela na Linuxu také na x86 (a potenciálně jiných architekturách). Více verzí kódu může být uloženo jako samostatné kódové základny nebo sloučeno do jedné kódové základny.

Alternativou k portování je virtualizace napříč platformami , kde aplikace kompilované pro jednu platformu mohou běžet na jiné bez úpravy zdrojového kódu nebo binárních souborů. Například Rosetta společnosti Apple , která je integrována do počítačů Macintosh na bázi Intel , spouští aplikace zkompilované pro předchozí generaci počítačů Mac, která používala procesory PowerPC. Dalším příkladem je IBM PowerVM Lx86 , který umožňuje, aby aplikace Linux/x86 běhaly v systému Linux/Power OS bez úprav .

Příklad multiplatformního binárního softwaru:

  • LibreOffice kancelářský balík je postaven pro Microsoft Windows, MacOS, mnoho distribucí Linuxu, FreeBSD , NettBSD , OpenBSD , Android, iOS a Chrome OS, web-based Collabora Online a mnoho dalších. Mnoho z nich je podporováno na několika hardwarových platformách s procesorovými architekturami včetně IA-32 , x86-64 a ARM .

Skripty a interpretované jazyky

Skript lze považovat za multiplatformní, pokud je jeho tlumočník k dispozici na více platformách a skript používá pouze zařízení integrovaná do jazyka. Například skript napsaný v Pythonu pro unixový systém se pravděpodobně spustí s malou nebo žádnou úpravou v systému Windows, protože Python také běží v systému Windows; skutečně existuje mnoho implementací (např. IronPython pro .NET Framework ). Totéž platí pro mnoho skriptovacích jazyků s otevřeným zdrojovým kódem .

Na rozdíl od binárních spustitelných souborů lze stejný skript použít na všech počítačích, které mají software k interpretaci skriptu. Důvodem je, že skript je obecně uložen ve formátu prostého textu v textovém souboru . Může dojít k některým triviálním problémům, jako je například reprezentace nové řádkové postavy .

Některé populární skriptovací jazyky pro různé platformy jsou:

  • bash - Unixový shell běžně běží na Linuxu a dalších moderních unixových systémech, stejně jako na Windows prostřednictvím vrstvy kompatibility Cygwin POSIX .
  • Perl - poprvé vydán v roce 1987. Používá se pro programování CGI , malé úlohy správy systému a další.
  • PHP - Většinou se používá pro webové aplikace.
  • Python -jazyk, který se místo efektivity běhu zaměřuje na rychlý vývoj aplikací a snadné psaní.
  • Ruby -Objektově orientovaný jazyk, jehož cílem je snadné čtení. Lze také použít na webu prostřednictvím Ruby on Rails .
  • Tcl - dynamický programovací jazyk, vhodný pro širokou škálu použití, včetně webových a desktopových aplikací, sítí, správy, testování a mnoha dalších.

Videohry

Cross-platform nebo multi-platform je termín, který může také platit pro videohry vydané na řadě videoherních konzolí . Mezi příklady multiplatformních her patří: Miner 2049er , Tomb Raider: Legend , série FIFA , NHL a Minecraft .

Každá z nich byla vydána na různých herních platformách, jako jsou Wii , PlayStation 3 , Xbox 360 , osobní počítače a mobilní zařízení .

Pro některé platformy se píše hůře než pro jiné. Aby se to vyrovnalo, může být nejprve vydána videohra na několika platformách a později na dalších. Obvykle se to stane při vydání nového herního systému, protože vývojáři videoher se musí seznámit s jeho hardwarem a softwarem.

Některé hry nemusí být napříč platformami kvůli licenčním smlouvám mezi vývojáři a výrobci herních konzolí, které omezují vývoj na jednu konkrétní konzolu. Jako příklad by společnost Disney mohla vytvořit hru se záměrem vydání na nejnovější herní konzole Nintendo a Sony . Pokud by společnost Disney nejprve udělila licenci na licenci společnosti Sony, může být požadováno vydání hry pouze na konzoli Sony na krátkou dobu nebo na neurčito .

Hraní napříč platformami

Několik vývojářů implementovalo způsoby, jak hrát hry online a používat různé platformy. Psyonix , Epic Games , Microsoft a Valve disponují technologií, která umožňuje hráčům Xbox 360 a PlayStation 3 hrát s PC hráči, přičemž rozhodnutí, kterou platformu použít, nechávají na spotřebitelích. První hrou, která umožnila tuto úroveň interaktivity mezi PC a konzolovými hrami, byl Quake 3 .

Hry, které představují na platformě on-line hry patří Rocket ligu , Final Fantasy XIV , Street Fighter V , Killer Instinct , Paragon a Fable Fortune , a Minecraft s jeho aktualizací lépe spolupracovat na systému Windows 10 , VR edice, Pocket Edition a Xbox One .

Programování

Programování napříč platformami je praxe záměrného psaní softwaru pro práci na více než jedné platformě.

Přístupy

Existují různé způsoby, jak napsat aplikaci napříč platformami. Jedním z přístupů je vytvořit více verzí stejného softwaru v různých zdrojových stromech - jinými slovy, verze aplikace pro Microsoft Windows může mít jednu sadu souborů se zdrojovým kódem a verze pro Macintosh jinou, zatímco systém FOSS *nix může mít Třetí. I když je to jednoduché, ve srovnání s vývojem pouze pro jednu platformu může stát mnohem více zaplatit větší tým nebo vydávat produkty pomaleji. Může to také vést ke sledování a opravě dalších chyb.

Dalším přístupem je použití softwaru, který skrývá rozdíly mezi platformami. Tato vrstva abstrakce izoluje aplikaci od platformy. Takové aplikace jsou agnostické pro platformu . Aplikace, které běží na JVM, jsou postaveny tímto způsobem.

Některé aplikace vytvářejí finální aplikaci různými metodami programování napříč platformami. Příkladem je webový prohlížeč Firefox, který pomocí abstrakce vytváří některé z komponent nižší úrovně, se samostatnými zdrojovými podstromy pro implementaci funkcí specifických pro platformu (jako je GUI), a implementace více než jednoho skriptovacího jazyka pro usnadnění přenositelnosti softwaru . Firefox implementuje XUL , CSS a JavaScript pro rozšíření prohlížeče, kromě klasických doplňků prohlížeče ve stylu Netscape . Velká část samotného prohlížeče je napsána v jazycích XUL, CSS a JavaScript.

Sady nástrojů a prostředí

K dispozici jsou nástroje mant, které pomáhají procesu multiplatformního programování:

  • 8th: vývojový jazyk, který využívá Juce jako vrstvu GUI. Aktuálně podporuje Android, iOS, Windows, macOS, Linux a Raspberry Pi.
  • Anant Computing : Platforma mobilních aplikací, která funguje ve všech indických jazycích, včetně jejich klávesnic, a také podporuje AppWallet a nativní výkon ve všech operačních systémech.
  • AppearIQ : rámec, který podporuje pracovní postup vývoje a nasazení aplikací v podnikovém prostředí. Nativně vyvinuté kontejnery představují hardwarové funkce mobilních zařízení nebo tabletů prostřednictvím kódu API na HTML5, což usnadňuje vývoj mobilních aplikací, které běží na různých platformách.
  • Boden: framework uživatelského rozhraní napsaný v C ++.
  • Cairo : bezplatná softwarová knihovna sloužící k poskytování API založené na vektorové grafice, nezávislé na zařízení. Je navržen tak, aby poskytoval primitiva pro dvourozměrné kreslení napříč řadou různých backendů. Káhira je napsána v jazyce C a má vazby pro mnoho programovacích jazyků.
  • Cocos2d : open-source sada nástrojů a herní engine pro vývoj 2D a jednoduchých 3D multiplatformních her a aplikací.
  • Codename One : open-source framework Once Once Run Anywhere (WORA) pro vývojáře Java a Kotlin.
  • Delphi : IDE, které pro vývoj používá jazyk založený na Pascalu. Podporuje Android, iOS, Windows, macOS, Linux.
  • Ecere SDK: GUI a 2D/3D grafická sada nástrojů a IDE, napsané v eC a s podporou dalších jazyků, jako je C a Python. Podporuje Linux, FreeBSD, Windows, Android, macOS a web prostřednictvím Emscripten nebo Binaryen (WebAssembly).
  • Eclipse : vývojové prostředí s otevřeným zdrojovým kódem. Implementováno v Javě s konfigurovatelnou architekturou, která podporuje mnoho nástrojů pro vývoj softwaru. Doplňky jsou k dispozici pro několik jazyků, včetně Java a C ++.
  • FLTK : sada nástrojů s otevřeným zdrojovým kódem, ale lehčí, protože se omezuje na grafické uživatelské rozhraní.
  • Flutter : Rámec uživatelského rozhraní napříč platformami pro Android a iOS vyvinutý společností Google .
  • fpGUI : Sada nástrojů widgetů s otevřeným zdrojovým kódem, která je zcela implementována v Object Pascal. Aktuálně podporuje Linux, Windows a trochu Windows CE.
  • GeneXus : Řešení pro rychlý vývoj softwaru pro Windows pro vytváření a nasazení aplikací napříč platformami na základě reprezentace znalostí a podpory chytrých zařízení C# , COBOL , Java včetně Android a BlackBerry, Objective-C pro mobilní zařízení Apple , RPG , Ruby , Visual Basic a Visual FoxPro .
  • GLBasic : ZÁKLADNÍ dialekt a kompilátor, který generuje kód C ++. Obsahuje křížové kompilátory pro mnoho platforem a podporuje mnoho platforem (Windows, Mac, Linux, Android, iOS a některé exotické kapesní počítače).
  • Godot : SDK, která používá Godot Engine.
  • GTK+ : Sada nástrojů widgetů s otevřeným zdrojovým kódem pro unixové systémy s X11 a Microsoft Windows.
  • Haxe : Open-source jazyk.
  • Juce : Aplikační framework napsaný v C ++, používaný k psaní nativního softwaru na mnoha systémech (Microsoft Windows, POSIX, macOS), beze změny kódu.
  • Kivy : open-source cross-platform UI framework napsaný v Pythonu . Podporuje Android , iOS , Linux , OS X , Windows a Raspberry Pi .
  • LEADTOOLS : Multiplatformní knihovny SDK pro integraci rozpoznávacích, dokumentových, lékařských, zobrazovacích a multimediálních technologií do Windows, iOS, macOS, Android, Linux a webových aplikací.
  • LiveCode : komerční multiplatformní jazyk pro rychlý vývoj aplikací inspirovaný HyperTalk.
  • Lazarus : Programovací prostředí pro překladač FreePascal. Podporuje vytváření samostatných grafických a konzolových aplikací a běží na Linuxu, MacOSX, iOS, Android, WinCE, Windows a WEB.
  • Max/MSP : Vizuální programovací jazyk, který zapouzdří kód nezávislý na platformě s běhovým prostředím specifickým pro platformu do aplikací pro macOS a Windows A pro různé platformy Android runtime. Umožňuje nemodifikované aplikace pro Android běžet nativně na iOS a macOS
  • Mendix : cloudová platforma pro vývoj aplikací s nízkým kódem.
  • MonoCross : návrhový vzor modelu s otevřeným zdrojovým kódem -zobrazení-řadičem, kde model a ovladač jsou napříč platformami, ale pohled je specifický pro platformu.
  • Mono : Open-source cross-platformová verze Microsoft .NET (framework pro aplikace a programovací jazyky)
  • MoSync : open-source SDK pro vývoj aplikací pro mobilní platformy v rodině C ++.
  • Rámec aplikace Mozilla : open-source platforma pro vytváření aplikací macOS, Windows a Linux.
  • Cross-platform JavaScript/TypeScript framework pro Android a iOS vývoj.
  • OpenGL : 3D grafická knihovna.
  • Pixel Game Maker MV : Patentovaný software pro vývoj 2D her pro Windows pro vývoj her pro Windows a Nintendo Switch .
  • PureBasic : proprietární jazyk a IDE pro vytváření aplikací macOS, Windows a Linux.
  • ReNative : Univerzální vývojová sada SDK pro vytváření multiplatformních projektů s React Native. Zahrnuje nejnovější platformy iOS, tvOS, Android, Android TV, Web, Tizen TV, Tizen Watch, LG webOS, macOS/OSX, Windows, KaiOS, Firefox OS a Firefox TV.
  • Qt : aplikační framework a sada widgetů pro unixové systémy s X11 , Microsoft Windows, macOS a dalšími systémy-dostupné pod proprietárními i open-source licencemi .
  • Jednoduchá a rychlá multimediální knihovna: Multimediální C ++ API, které poskytuje přístup ke grafice, vstupu, zvuku atd. Na nízké i vysoké úrovni.
  • Simple DirectMedia Layer : open-source multimediální knihovna napsaná v jazyce C, která vytváří abstrakci nad grafickými, zvukovými a vstupními rozhraními API různých platforem . Běží na OS včetně Linuxu, Windows a macOS a je zaměřen na hry a multimediální aplikace.
  • Smartface : nativní nástroj pro vývoj aplikací k vytváření mobilních aplikací pro Android a iOS pomocí editoru designu WYSIWYG s editorem kódu JavaScript.
  • Tcl/Tk
  • Ultimate ++ : Rámec pro rychlý vývoj aplikací C ++ zaměřený na produktivitu programátorů. Obsahuje sadu knihoven (GUI, SQL atd.) A integrované vývojové prostředí. Podporuje operační systémy Windows a Unix.
  • Unity : Další multiplatformní SDK, která používá Unity Engine.
  • Platforma Uno : Windows, macOS, iOS, Android, WebAssembly a Linux pomocí C#.
  • Unreal : Sada SDK pro různé platformy, která používá Unreal Engine.
  • V-Play Engine : V-Play je vývojová sada SDK pro různé platformy založená na populárním rámci Qt. Aplikace a hry V-Play jsou vytvářeny v Qt Creator.
  • WaveMaker : Nástroj pro vývoj s nízkým kódem k vytváření responzivních webových a hybridních mobilních aplikací (Android a iOS).
  • WinDev: Integrované vývojové prostředí pro Windows, Linux, .Net a Java a webové prohlížeče. Optimalizováno pro obchodní a průmyslové aplikace.
  • wxWidgets : sada nástrojů widgetů s otevřeným zdrojovým kódem, která je také aplikačním rámcem . Běží na unixových systémech s X11 , Microsoft Windows a macOS.
  • Xojo : RAD IDE, které používá objektově orientovaný programovací jazyk k vytváření desktopových, webových a iOS aplikací. Xojo vytváří nativní, kompilované desktopové aplikace pro macOS, Windows, Linux a Raspberry Pi. Vytváří kompilované webové aplikace, které lze spustit jako samostatné servery nebo prostřednictvím CGI. A nedávno přidala možnost vytvářet nativní aplikace pro iOS.

Výzvy

Při vývoji softwaru napříč platformami existuje mnoho výzev.

  • Testování aplikací napříč platformami může být podstatně komplikovanější, protože různé platformy mohou vykazovat mírně odlišné chování nebo jemné chyby. Tento problém vedl některé vývojáře k tomu, aby se posmívali vývoji napříč platformami jako marketingový slogan „napiš jednou, odlaďuj všude“, což je převzetí marketingového sloganu Sun Microsystemsnapište jednou, běžte kamkoli “.
  • Vývojáři jsou často omezeni na používání nejnižšího společného jmenovatele podmnožiny funkcí, které jsou k dispozici na všech platformách. To může bránit výkonu aplikace nebo zakázat vývojářům používat nejpokročilejší funkce každé platformy.
  • Různé platformy mají často různé konvence uživatelského rozhraní, které aplikace napříč platformami ne vždy splňují. Například aplikace vyvinuté pro macOS a GNOME mají umístit nejdůležitější tlačítko na pravou stranu okna nebo dialogu, zatímco Microsoft Windows a KDE mají opačnou konvenci. Ačkoli mnohé z těchto rozdílů jsou jemné, aplikace napříč platformami, která neodpovídá těmto konvencím, může uživateli připadat neohrabaná nebo cizí. Při rychlé práci mohou takovéto protichůdné konvence dokonce vést ke ztrátě dat , například v dialogovém okně potvrzujícím, zda změny uložit nebo zahodit.
  • Skriptovací jazyky a bajtový kód virtuálního počítače musí být při každém použití přeloženy do nativního spustitelného kódu, což ukládá sankce za výkon. Tuto pokutu lze zmírnit pomocí technik, jako je kompilace just-in-time ; ale určité výpočetní režii může být nevyhnutelné.
  • Různé platformy vyžadují použití nativních formátů balíčků, jako jsou RPM a MSI . Tuto potřebu řeší multiplatformní instalátory, jako je InstallAnywhere .
  • Prováděcí prostředí napříč platformami mohou trpět bezpečnostními chybami napříč platformami, což vytváří úrodné prostředí pro malware napříč platformami.

Viz také

Reference