Cross-Platform-Entwicklung: Unterschied zwischen den Versionen

Aus Android Wiki
(Neuer Abschnitt "Weblinks" mit zwei Überblicksartikeln)
K (Neuer Link auf "Titanium")
 
(10 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
Unter ''Cross-Platform-Entwicklung'' (plattformübergreifende Entwicklung) versteht man die Entwicklung von Software, die auf mehr als nur auf einem Betriebssystem (Platform) lauffähig ist.<ref>{{Cite web | url = https://www.itwissen.info/Cross-Plattform-cross-platform.html | title = Eintrag "Cross-Plattform" | accessdate = 2020-09-05 | publisher = itwissen.info | language = de}}</ref> Der Entwickler kann also aus dem Quellcode ohne wesentlichen Anpassungen ein lauffähiges Programm für verschiedene Betriebssysteme erzeugen. Der große Vorteil dieses Ansatzes ist es, dass eine Software/App nicht mehrfach entwickelt werden muss um sie auf verschiedenen Betriebssystemen (z.B. Windows und MacOS oder Android und iOS) bereitzustellen.
Unter ''Cross-Platform-Entwicklung'' (plattformübergreifende Entwicklung) versteht man die Entwicklung von Software, die auf mehr als nur auf einem Betriebssystem (Platform) lauffähig ist.<ref>{{Cite web | url = https://www.itwissen.info/Cross-Plattform-cross-platform.html | title = Eintrag "Cross-Plattform" | accessdate = 2020-09-05 | publisher = itwissen.info | language = de}}</ref> Der Entwickler kann also aus dem Quellcode ohne wesentlichen Anpassungen ein lauffähiges Programm für verschiedene Betriebssysteme erzeugen. Der große Vorteil dieses Ansatzes ist es, dass eine Software/App nicht mehrfach entwickelt werden muss, um sie auf verschiedenen Betriebssystemen (z.B. Windows und MacOS oder Android und iOS) bereitzustellen, was Entwicklungskosten spart.<ref name="rishabhsoft_pro_cons">{{Cite web | url = https://www.rishabhsoft.com/blog/pros-cons-cross-platform-mobile-app-development | title = Pros And Cons Of Cross Platform Mobile Application Development | accessdate = 2020-09-06 | date = 2019-01-29 | publisher = rishabhsoft.com | language = en}}</ref>
 
<ref name="rishabhsoft_pro_cons" />


Im Zusammenhang mit [[App#Mobile_App|mobilen Apps]] bedeutet dies heutzutage, dass aus einem Quellcode-Projekt (Code-Linie) eine lauffähige [[App]] sowohl für [[Android]] als auch [[iOS]] erzeugt werden kann.
Im Zusammenhang mit [[App#Mobile_App|mobilen Apps]] bedeutet dies heutzutage, dass aus einem Quellcode-Projekt (Code-Linie) eine lauffähige [[App]] sowohl für [[Android]] als auch [[iOS]] erzeugt werden kann.
Zeile 6: Zeile 8:
Der Cross-Platform-Entwicklung steht die Entwicklung [[App#Native_App|nativer Apps]] entgegen, bei denen eine App mit vom Hersteller des jeweiligen Betriebssystem vorgegebenen Programmiersprachen und Entwicklungswerkzeugen (z.B. Compiler) erstellt wird und die dann nur auf diesem einem Betriebssystem lauffähig sind.
Der Cross-Platform-Entwicklung steht die Entwicklung [[App#Native_App|nativer Apps]] entgegen, bei denen eine App mit vom Hersteller des jeweiligen Betriebssystem vorgegebenen Programmiersprachen und Entwicklungswerkzeugen (z.B. Compiler) erstellt wird und die dann nur auf diesem einem Betriebssystem lauffähig sind.


== Ansätze für Cross-Platform-Entwicklung von mobilen Apps ==
== Nachteile ==
 
Wenn eine mobile App mit ''Cross-Platform-Entwicklung'' entwickelt wird, dann kann dies die folgenden Nachteile mit sich bringen<ref name="rishabhsoft_pro_cons"/><ref>{{Cite web | url = https://codeburst.io/native-vs-cross-platform-app-development-pros-and-cons-49f397bb38ac | title = Native vs. cross-platform app development: pros and cons | author = Michael J. Garbade | accessdate = 2020-09-06 | date = 2018-08-23 | publisher = codeburst.io | language = en}}</ref>:
* Die Performanz der App kann schlechter sein als bei einer nativen App.
* Die Optik und das Verhalten (Look and Feel) der App entspricht evtl. nicht dem einer nativen App auf dem jeweiligen Betriebssystem.
* Der Zugriff auf bestimmte Funktionen des Betriebssystems (z.B. Kamera, Ortung, Dateisystem) ist evtl. nicht oder nur eingeschränkt und mit zusätzlichem Entwicklungsaufwand möglich.
* Es fallen evtl. Lizenzkosten für benötigte Entwicklungswerkzeuge an, während die Entwicklungswerkzeuge für native Apps ([[Android Studio]] für [[Android]] und [[Xcode]] für [[iOS]]) kostenlos sind.
* Die Installationsdatei der App ([[APK]]-Datei bei Android) kann größer werden, weil zusätzliche Laufzeitkomponenten hineingepackt werden müssen.
 
== Grundlegende Ansätze für Cross-Platform-Entwicklung von mobilen Apps ==


Ein Ansatz für die Cross-Platform-Entwicklung von mobilen Apps ist die Entwicklung sog. [[App#Hybride_App|hybrider Apps]], bei denen die Oberfläche und Logik der App als Web-App entwickelt wird (also mit HTML, CSS und JavaScript), und die App diesen Web-Content dann mit einem eingebauten Browser-Element (für Android das sog. [[WebView]]-Element<ref>{{Cite web | url = https://developer.android.com/guide/webapps/webview | title = Building web apps in WebView | accessdate = 2020-09-05 | publisher = developer.android.com | language = en}}</ref>) darstellt. Bekannte Vertreter für diesen Ansatz sind die Frameworks [[Apache Cordova]] und [[Ionic]].
Ein Ansatz für die Cross-Platform-Entwicklung von mobilen Apps ist die Entwicklung sog. [[App#Hybride_App|hybrider Apps]], bei denen die Oberfläche und Logik der App als Web-App entwickelt wird (also mit HTML, CSS und JavaScript), und die App diesen Web-Content dann mit einem eingebauten Browser-Element (für Android das sog. [[WebView]]-Element<ref>{{Cite web | url = https://developer.android.com/guide/webapps/webview | title = Building web apps in WebView | accessdate = 2020-09-05 | publisher = developer.android.com | language = en}}</ref>) darstellt. Bekannte Vertreter für diesen Ansatz sind die Frameworks [[Apache Cordova]] und [[Ionic]].
== Frameworks/Technologien für Cross-Platform-Entwicklung von mobilen Apps ==
* [[Apache Cordova]]
* [[Flutter]]
* [[Ionic]]
* [[Kotlin Multiplatform Mobile]]
* [[NativeScript]]
* [[React Native]]
* [[Appcelerator_Titanium|Titanium]]
* [[Xamarin]]


== Weblinks ==
== Weblinks ==
* [https://dev.to/cathysmith/9-best-cross-platform-mobile-development-tools-for-2020-43g2 Überblicksartikel "9 Best Cross-Platform Mobile Development Tools for 2020"]
* [https://dev.to/cathysmith/9-best-cross-platform-mobile-development-tools-for-2020-43g2 Überblicksartikel "9 Best Cross-Platform Mobile Development Tools for 2020"]
* [https://dzone.com/articles/9-best-cross-platform-mobile-app-development-tools-1 Überblicksartikel "9 Best Cross-Platform Mobile App Development Tools"]
* [https://dzone.com/articles/9-best-cross-platform-mobile-app-development-tools-1 Überblicksartikel "9 Best Cross-Platform Mobile App Development Tools"]
== Weblinks ==
* [https://ionicframework.com/ Offizielle Homepage]


== Einzelnachweise ==
== Einzelnachweise ==

Aktuelle Version vom 16. September 2020, 12:17 Uhr

Unter Cross-Platform-Entwicklung (plattformübergreifende Entwicklung) versteht man die Entwicklung von Software, die auf mehr als nur auf einem Betriebssystem (Platform) lauffähig ist.[1] Der Entwickler kann also aus dem Quellcode ohne wesentlichen Anpassungen ein lauffähiges Programm für verschiedene Betriebssysteme erzeugen. Der große Vorteil dieses Ansatzes ist es, dass eine Software/App nicht mehrfach entwickelt werden muss, um sie auf verschiedenen Betriebssystemen (z.B. Windows und MacOS oder Android und iOS) bereitzustellen, was Entwicklungskosten spart.[2]

[2]

Im Zusammenhang mit mobilen Apps bedeutet dies heutzutage, dass aus einem Quellcode-Projekt (Code-Linie) eine lauffähige App sowohl für Android als auch iOS erzeugt werden kann. Bevor der Markt der Betriebssysteme für Smartphones und Tablets sich konsolidierte, gab es noch andere für die mobile Cross-Platform-Entwicklung relevante Betriebssysteme, z.B. Firefox OS[3] oder Windows Phone[4].

Der Cross-Platform-Entwicklung steht die Entwicklung nativer Apps entgegen, bei denen eine App mit vom Hersteller des jeweiligen Betriebssystem vorgegebenen Programmiersprachen und Entwicklungswerkzeugen (z.B. Compiler) erstellt wird und die dann nur auf diesem einem Betriebssystem lauffähig sind.

Nachteile[Bearbeiten | Quelltext bearbeiten]

Wenn eine mobile App mit Cross-Platform-Entwicklung entwickelt wird, dann kann dies die folgenden Nachteile mit sich bringen[2][5]:

  • Die Performanz der App kann schlechter sein als bei einer nativen App.
  • Die Optik und das Verhalten (Look and Feel) der App entspricht evtl. nicht dem einer nativen App auf dem jeweiligen Betriebssystem.
  • Der Zugriff auf bestimmte Funktionen des Betriebssystems (z.B. Kamera, Ortung, Dateisystem) ist evtl. nicht oder nur eingeschränkt und mit zusätzlichem Entwicklungsaufwand möglich.
  • Es fallen evtl. Lizenzkosten für benötigte Entwicklungswerkzeuge an, während die Entwicklungswerkzeuge für native Apps (Android Studio für Android und Xcode für iOS) kostenlos sind.
  • Die Installationsdatei der App (APK-Datei bei Android) kann größer werden, weil zusätzliche Laufzeitkomponenten hineingepackt werden müssen.

Grundlegende Ansätze für Cross-Platform-Entwicklung von mobilen Apps[Bearbeiten | Quelltext bearbeiten]

Ein Ansatz für die Cross-Platform-Entwicklung von mobilen Apps ist die Entwicklung sog. hybrider Apps, bei denen die Oberfläche und Logik der App als Web-App entwickelt wird (also mit HTML, CSS und JavaScript), und die App diesen Web-Content dann mit einem eingebauten Browser-Element (für Android das sog. WebView-Element[6]) darstellt. Bekannte Vertreter für diesen Ansatz sind die Frameworks Apache Cordova und Ionic.

Frameworks/Technologien für Cross-Platform-Entwicklung von mobilen Apps[Bearbeiten | Quelltext bearbeiten]

Weblinks[Bearbeiten | Quelltext bearbeiten]

Einzelnachweise[Bearbeiten | Quelltext bearbeiten]

  1. Interner Lua-Fehler: Der Interpreter beendet sich mit dem Status 127.
  2. 2,0 2,1 2,2 Interner Lua-Fehler: Der Interpreter beendet sich mit dem Status 127.
  3. Interner Lua-Fehler: Der Interpreter beendet sich mit dem Status 127.
  4. Interner Lua-Fehler: Der Interpreter beendet sich mit dem Status 127.
  5. Interner Lua-Fehler: Der Interpreter beendet sich mit dem Status 127.
  6. Interner Lua-Fehler: Der Interpreter beendet sich mit dem Status 127.