Zum Inhalt springen

App: Unterschied zwischen den Versionen

1.465 Bytes hinzugefügt ,  28. Februar 2020
keine Bearbeitungszusammenfassung
K (Erwähnung Cordova/PhoneGap)
Keine Bearbeitungszusammenfassung
(7 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
Als '''App''' (Abk. für ''Application'', deutsch: ''Anwendung'', Synonym für '''Programm''' oder '''Anwendung''') bezeichnet man ausführbare Anwendungen, die dem Nutzer eines Betriebssystems zusätzliche Funktionen oder Verbesserungen zur Verfügung stellen. Grundsätzlich kann der Begriff ''App'' synonym für Anwendungen aus verschiedenen Bereichen verwendet werden, etabliert hat sich die Bezeichnung allerdings im Bereich der mobilen Betriebssysteme (wie bspw. [[Android]], iOS, Windows Phone oder Symbian).
Als '''App''' (Abk. für ''Application'', deutsch: ''Anwendung'', Synonym für '''Programm''' oder '''Anwendung''') bezeichnet man ausführbare Anwendungen, die dem Nutzer eines Betriebssystems zusätzliche Funktionen oder Verbesserungen zur Verfügung stellen. Grundsätzlich kann der Begriff ''App'' synonym für Anwendungen aus verschiedenen Bereichen verwendet werden, etabliert hat sich die Bezeichnung allerdings im Bereich der mobilen Betriebssysteme (wie bspw. [[Android]], [[iOS]], Windows Phone oder Symbian).


== Mobile App ==
== Mobile App ==
Da sich der Begriff ''App'' analog auf jedes Betriebssystem, welches die Möglichkeit besitzt, zusätzliche Programme installieren zu können, verwenden lässt, können Apps, die speziell für eine mobile Verwendung (bspw. auf einem Smartphone) konzipiert wurden, auch als ''Mobile Apps'' bezeichnet werden. Solche Apps können i.d.R. über einen, bereits in das Betriebssystem integrierten, App-Shop erworben/installiert werden (bei Android bspw. der [[Google Play Store]] oder [[F-Droid]]).
Der Begriff ''App'' kann analog auf jedes Betriebssystem verwendet werden, welches die Möglichkeit bietet, zusätzliche Programme zu installieren. Aus diesem Grund können Apps, die besonders für die mobile Verwendung (bspw. auf einem Smartphone) konzipiert wurden, auch als ''Mobile Apps'' bezeichnet werden. Solche Apps können i.d.R. über einen [[Market|App-Shop]] erworben/installiert werden. Solche Shops sind meist auf dem Gerät vorinstalliert (bspw. der [[Google Play Store]] oder [[F-Droid]]).


Auch mobile Apps werden dafür entwickelt, dem Nutzer einen Mehrwert durch neue oder vereinfachte Funktionen zu bieten. In der Entwicklung einer mobilen App wurde dabei, neben der eigentlichen Funktion, meist eine einfache Bedienung berücksichtigt, die aufgrund des begrenzten Platzes auf dem Display und der Bedienung über kleine Tasten, bzw. einem Touchscreen, im mobilen Umfeld eine Herausforderung für die Entwickler darstellt.
Mobile Apps werden dafür entwickelt, dem Nutzer einen Mehrwert durch neue oder vereinfachte Funktionen zu bieten. In der Entwicklung einer mobilen App wurde dabei, neben der eigentlichen Funktion, meist eine einfache Bedienung berücksichtigt, die aufgrund des begrenzten Platzes auf dem Display und der Bedienung über kleine Tasten, bzw. einem Touchscreen, im mobilen Umfeld eine Herausforderung für die Entwickler darstellt.


Programmiert wird die App meist für ein spezielles Zielsystem, wie bspw. Android. Das entsprechende Paket kann meist auf keiner anderen Plattform (wie bspw. Windows Phone) genutzt werden. Entwickler stehen daher vor dem Problem, dass sie für einen Anwendungszweck meist mehrere Apps für die am meist verbreitetsten Plattformen entwickeln und pflegen müssen, um möglichst viele Nutzer erreichen zu können. Dieses Problem minimiert sich, wenn man, anstelle einer nativen App, eine mobile Web-App entwickelt, die über den Browser genutzt werden kann.
Programmiert wird die App meist für ein spezielles Zielsystem, wie bspw. Android. Das entsprechende Paket kann meist auf keiner anderen Plattform (wie bspw. Windows Phone) genutzt werden. Entwickler stehen daher vor dem Problem, dass sie für einen Anwendungszweck meist mehrere Apps für die am meist verbreitetsten Plattformen entwickeln und pflegen müssen, um möglichst viele Nutzer erreichen zu können. Dieses Problem minimiert sich, wenn man, anstelle einer nativen App, eine mobile Web-App entwickelt, die über den Browser genutzt werden kann. Alternativ kann ein entsprechendes Framework verwendet werden, welches die Erstellung eines Artefakts für verschiedene Plattformen unterstützt, wie bspw. [[Flutter]] oder [[React native]].


== Native App ==
=== Native App ===
[[Datei:Tapatalk-Android-Hilfe.png|mini|Die native Tapatalk App bietet dem Nutzer mobilen Zugriff auf verschiedene Internet-Foren.]]
[[Datei:Tapatalk-Android-Hilfe.png|mini|Die native Tapatalk App bietet dem Nutzer mobilen Zugriff auf verschiedene Internet-Foren.]]
Native Apps sind Anwendungen, die auf dem gewählten Zielsystem direkt installiert werden (müssen), bspw. über einen Onlineshop. Durch die Installation auf einem Gerät erhält die App Zugriff auf Betriebssystem-Ressourcen und -Schnittstellen ([[WLAN]], [[Bluetooth]], [[SD-Karte]] u.Ä.). Eine native App muss dabei für das entsprechende Zielsystem programmiert werden und kann i.d.R. auch nur auf diesem installiert und verwendet werden, da auf einer anderen Plattform die genutzten Schnittstellen und Ressourcen i.d.R. anders angesteuert werden, oder ggf. gar nicht existieren. Auch verwenden verschiedene Plattformen meist verschiedene Programmiersprachen, in denen die Apps ausgeliefert werden müssen (bspw. Android: Java, iOS: Objective C/[[Swift]], Windows Phone: C#, C++, C). Das bedeutet im Umkehrschluss, dass ein Entwickler einer App verschiedene App-Versionen für verschiedene Plattformen entwickeln muss, wenn die App auf verschiedenen Plattformen verwendet werden soll.
Native Apps sind Anwendungen, die auf dem gewählten Zielsystem direkt installiert werden (müssen), bspw. über einen Onlineshop. Durch die Installation auf einem Gerät erhält die App Zugriff auf Betriebssystem-Ressourcen und -Schnittstellen ([[WLAN]], [[Bluetooth]], [[SD-Karte]] u.Ä.). Eine native App muss dabei für das entsprechende Zielsystem programmiert werden und kann i.d.R. auch nur auf diesem installiert und verwendet werden, da auf einer anderen Plattform die genutzten Schnittstellen und Ressourcen i.d.R. anders angesteuert werden, oder ggf. gar nicht existieren. Auch verwenden verschiedene Plattformen meist verschiedene Programmiersprachen, in denen die Apps ausgeliefert werden müssen (bspw. Android: [[Java]] oder [[Kotlin]]<ref>{{Cite web | url = https://www.golem.de/news/google-kotlin-wird-offizielle-sprache-fuer-android-1705-127892.html | title = Kotlin wird offizielle Sprache für Android | date = 2017-05-17 | accessdate = 2017-05-18 | publisher = golem.de | author = Sebastian Grüner }}</ref>, iOS: Objective C/[[Swift]], Windows Phone: C#, C++, C). Das bedeutet im Umkehrschluss, dass ein Entwickler einer App verschiedene App-Versionen für verschiedene Plattformen entwickeln muss, wenn die App auf verschiedenen Plattformen verwendet werden soll.


=== Installation und Verwendung ===
==== Installation und Verwendung ====
Eine native App muss vor der Verwendung auf dem Gerät installiert werden, soweit es sich hierbei nicht um eine [[Instant App]] handelt. Bei mobilen Apps geht dies i.d.R. über einen App-Shop, der bereits in das Betriebssystem integriert ist. Zudem ist es meist möglich, ein Programmpaket separat herunterzuladen und vom [[interner Speicher|internen Speicher]] des Gerätes zu installieren. Bei Android werden solche Programmpakete als [[APK|APK-Dateien]] bezeichnet.
Eine native App muss vor der Verwendung auf dem Gerät installiert werden, soweit es sich hierbei nicht um eine [[Instant App]] handelt. Bei mobilen Apps geht dies i.d.R. über einen App-Shop, der bereits in das Betriebssystem integriert ist. Zudem ist es meist möglich, ein Programmpaket separat herunterzuladen und vom [[interner Speicher|internen Speicher]] des Gerätes zu installieren. Bei Android werden solche Programmpakete als [[APK|APK-Dateien]] bezeichnet.


Zeile 21: Zeile 21:
Bei Android bietet Hauptentwickler Google daher bereits seit einige Zeit einen Design-Guide, der es Entwicklern erleichtern soll, ein intuitives Design in ihren Apps zu integrieren. Positiver Nebeneffekt für den Nutzer ist dabei die grundliegende Vereinheitlichung des Designs von Apps, je mehr Entwickler diesem Design Guide folgen. Aufgrund einer solchen Vereinheitlichung könnte es irrelevant sein, welche App sich der Nutzer installiert. Er kann, aufgrund seiner Erfahrung aus anderen Apps und durch die logische Platzierung einzelner Bedienelemente, diese sofort verwenden.
Bei Android bietet Hauptentwickler Google daher bereits seit einige Zeit einen Design-Guide, der es Entwicklern erleichtern soll, ein intuitives Design in ihren Apps zu integrieren. Positiver Nebeneffekt für den Nutzer ist dabei die grundliegende Vereinheitlichung des Designs von Apps, je mehr Entwickler diesem Design Guide folgen. Aufgrund einer solchen Vereinheitlichung könnte es irrelevant sein, welche App sich der Nutzer installiert. Er kann, aufgrund seiner Erfahrung aus anderen Apps und durch die logische Platzierung einzelner Bedienelemente, diese sofort verwenden.


=== Sicherheit ===
==== Sicherheit ====
Da eine native App direkt auf dem Gerät installiert ist, hat sie auch Zugriff auf verschiedenste, durch das Betriebssystem gespeicherte, Daten. Da auf einem mobilen Gerät, bspw. einem Smartphone, auch sensible Daten, wie [[Kontakte]] oder SMS, gespeichert sind, muss der Zugriff auf diese Daten durch das Betriebssystem reguliert werden. So soll eine App nur auf diese Informationen Zugriff haben, die sie auch für die Ausführung ihrer Aufgaben benötigt (eine reine Spaßanwendung, wie ein Spiel bspw., benötigt i.d.R. keinen Zugriff auf die Kontakte um seine Aufgabe zu erfüllen).
Da eine native App direkt auf dem Gerät installiert ist, hat sie auch Zugriff auf verschiedenste, durch das Betriebssystem gespeicherte, Daten. Da auf einem mobilen Gerät, bspw. einem Smartphone, auch sensible Daten, wie [[Kontakte]] oder SMS, gespeichert sind, muss der Zugriff auf diese Daten durch das Betriebssystem reguliert werden. So soll eine App nur auf diese Informationen Zugriff haben, die sie auch für die Ausführung ihrer Aufgaben benötigt (eine reine Spaßanwendung, wie ein Spiel bspw., benötigt i.d.R. keinen Zugriff auf die Kontakte um seine Aufgabe zu erfüllen).


Zeile 27: Zeile 27:
In Android gibt es daher eine Berechtigungssystem, welches auf Gruppen basiert. So hat jede Gruppe Zugriff auf einige, wenige Systemressourcen. Wird eine neue App installiert, muss der Nutzer bestätigen, dass diese App eine Reihe von Berechtigungen erhält (die vom Entwickler angefordert werden). Stimmt der Nutzer dieser Anforderung zu, werden der App die zugehörigen Benutzergruppen zugewiesen. So stell Android sicher, dass eine App nur Zugriff auf Ressourcen haben, die der Benutzer auch erlaubt hat.
In Android gibt es daher eine Berechtigungssystem, welches auf Gruppen basiert. So hat jede Gruppe Zugriff auf einige, wenige Systemressourcen. Wird eine neue App installiert, muss der Nutzer bestätigen, dass diese App eine Reihe von Berechtigungen erhält (die vom Entwickler angefordert werden). Stimmt der Nutzer dieser Anforderung zu, werden der App die zugehörigen Benutzergruppen zugewiesen. So stell Android sicher, dass eine App nur Zugriff auf Ressourcen haben, die der Benutzer auch erlaubt hat.


=== System- und Userapps ===
==== System- und Userapps ====
Native Apps in Android können in zwei grundlegende Gruppen einsortiert werden, was die Benutzerkontrolle und den Installationsort betrifft: System-Apps und User-Apps.
Native Apps in Android können in zwei grundlegende Gruppen einsortiert werden, was die Benutzerkontrolle und den Installationsort betrifft: System-Apps und User-Apps.


Zeile 34: Zeile 34:
Im Gegensatz zu Systemapps sind Userapps Apps, die vom Benutzer i.d.R: selbst installiert wurden und auf der Partition ''/data'' (''/data/data/app'') installiert werden. Solche Apps kann der Benutzer selbst über die [[Einstellungen]] problemlos deinstallieren.
Im Gegensatz zu Systemapps sind Userapps Apps, die vom Benutzer i.d.R: selbst installiert wurden und auf der Partition ''/data'' (''/data/data/app'') installiert werden. Solche Apps kann der Benutzer selbst über die [[Einstellungen]] problemlos deinstallieren.


== (mobile) Web-App ==
=== (mobile) Web-App ===
[[Datei:Artikel_App_mobil.png|mini|Beispiel einer für Mobilgeräte angepassten Webseite]]
[[Datei:Artikel_App_mobil.png|mini|Beispiel einer für Mobilgeräte angepassten Webseite]]
Im Gegensatz zur nativen App steht die sogenannte Web App. Eine Web App wird, wie der Name bereits aussagt, keine Installation auf dem Endgerät, was sowohl für den Entwickler, wie auch für den Nutzer einige Vorteile darstellt. So kann der Nutzer i.d.R. komplett auf eine Installation der App verzichten, da diese im Webbrowser ausgeführt wird. Für den Entwickler ist die Pflege und Weiterentwicklung einer Web App i.d.R. deutlich einfacher, da lediglich ein Source-Code benötigt wird und die Pflege mehrere Plattformen entfällt. Allerdings kann auch eine Web App verschiedene Anforderungen an den Webbrowser stellen, die zur Ausführung benötigt werden. Am häufigsten ist hier bspw. [[Wikipedia:de:JavaScript|JavaScript]] oder Java zu nennen; ersteres wird von den meisten (auch mobilen) Webbrowsern unterstützt.
Im Gegensatz zur nativen App steht die sogenannte Web App. Eine Web App wird, wie der Name bereits aussagt, keine Installation auf dem Endgerät, was sowohl für den Entwickler, wie auch für den Nutzer einige Vorteile darstellt. So kann der Nutzer i.d.R. komplett auf eine Installation der App verzichten, da diese im Webbrowser ausgeführt wird. Für den Entwickler ist die Pflege und Weiterentwicklung einer Web App i.d.R. deutlich einfacher, da lediglich ein Source-Code benötigt wird und die Pflege mehrere Plattformen entfällt. Allerdings kann auch eine Web App verschiedene Anforderungen an den Webbrowser stellen, die zur Ausführung benötigt werden. Am häufigsten ist hier bspw. [[Wikipedia:de:JavaScript|JavaScript]] oder Java zu nennen; ersteres wird von den meisten (auch mobilen) Webbrowsern unterstützt.
Zeile 40: Zeile 40:
Um eine Web App auch auf einem mobilen Gerät einfach nutzen zu können, verwenden viele Anbieter eine für Mobilgeräte angepasste Bedienoberfläche, die besonderen Wert auf die einfache Bedienung auf kleinen Bildschirmen und/oder Touchscreens legen.
Um eine Web App auch auf einem mobilen Gerät einfach nutzen zu können, verwenden viele Anbieter eine für Mobilgeräte angepasste Bedienoberfläche, die besonderen Wert auf die einfache Bedienung auf kleinen Bildschirmen und/oder Touchscreens legen.


== Hybride App ==
=== Hybride App ===


Bei einer ''hybriden App'' wird die App hauptsächlich mit sog. Web-Technologien implementiert, also HTML, JavaScript und CSS. Dieser Web-Content wird in eine native Container-App gepackt, die den Webcontent mit einem Browser-Element (bei Android das [[WebView]]-Element) darstellt.
Bei einer ''hybriden App'' wird die App hauptsächlich mit sog. Web-Technologien implementiert, also HTML, JavaScript und CSS. Dieser Web-Content wird in eine native Container-App gepackt, die den Webcontent mit einem Browser-Element (bei Android das [[WebView]]-Element) darstellt.
<ref>{{Cite web | url = https://www.smashingmagazine.com/2014/10/providing-a-native-experience-with-web-technologies/ | title = Hybrid Mobile Apps: Providing A Native Experience With Web Technologies | date = 2014-10-21 | accessdate = 2017-05-09 | publisher = Smashing Magazine | author = Patrick Rudolph | language = en}}</ref>
<ref name="smashing_mag">{{Cite web | url = https://www.smashingmagazine.com/2014/10/providing-a-native-experience-with-web-technologies/ | title = Hybrid Mobile Apps: Providing A Native Experience With Web Technologies | date = 2014-10-21 | accessdate = 2017-05-09 | publisher = Smashing Magazine | author = Patrick Rudolph | language = en}}</ref>
Eine hybride App ist also eine Mischform zwischen einer nativen App (dem Container) und einer Web-App (eigentliche App-Oberfläche und Logik).
Eine hybride App ist also eine Mischform zwischen einer nativen App (dem Container) und einer Web-App (eigentliche App-Oberfläche und Logik).


Zeile 50: Zeile 50:
Ein weiterer Vorteil von hybriden Apps ist, dass damit oftmals Cross-Plattform-Fähigkeit erreicht werden kann, da derselbe Web-Content in native Container-Apps für die verschiedenen mobilen Betriebssysteme (neben [[Android]] z.B. noch iOS) gepackt werden kann.<ref>{{Cite web | url = https://hosting.1und1.de/digitalguide/websites/web-entwicklung/hybrid-app-das-beste-aus-web-und-native-app/ | title = Hybrid-App: Was unterscheidet sie von anderen App-Formaten? | date = 2016-06-02 | accessdate = 2017-05-09 | publisher = 1&1| quote = Der vielleicht größte Vorteil einer Hybrid-App liegt in ihrer starken Plattformunabhängigkeit: Im Gegensatz zu einer Native App, die für jedes Betriebssystem extra programmiert werden muss, braucht man eine hybride Applikation nur einmal zu entwickeln: Hybrid-Apps können auf fast allen Betriebssystemen (wie Android, iOS und Windows Phone) installiert und verwendet werden.}}</ref>
Ein weiterer Vorteil von hybriden Apps ist, dass damit oftmals Cross-Plattform-Fähigkeit erreicht werden kann, da derselbe Web-Content in native Container-Apps für die verschiedenen mobilen Betriebssysteme (neben [[Android]] z.B. noch iOS) gepackt werden kann.<ref>{{Cite web | url = https://hosting.1und1.de/digitalguide/websites/web-entwicklung/hybrid-app-das-beste-aus-web-und-native-app/ | title = Hybrid-App: Was unterscheidet sie von anderen App-Formaten? | date = 2016-06-02 | accessdate = 2017-05-09 | publisher = 1&1| quote = Der vielleicht größte Vorteil einer Hybrid-App liegt in ihrer starken Plattformunabhängigkeit: Im Gegensatz zu einer Native App, die für jedes Betriebssystem extra programmiert werden muss, braucht man eine hybride Applikation nur einmal zu entwickeln: Hybrid-Apps können auf fast allen Betriebssystemen (wie Android, iOS und Windows Phone) installiert und verwendet werden.}}</ref>


Ein bekanntes Framework für die Erstellung solcher hybrider Apps ist ''Apache Cordova''<ref>{{Cite web | url = https://cordova.apache.org | title = Apache Cordova (Homepage) | accessdate = 2017-05-09 | publisher = apache.org | language = en | quote = Cordova wraps your HTML/JavaScript app into a native container which can access the device functions of several platforms.}}</ref> bzw ''PhoneGap''<ref>{{Cite web | url = http://phonegap.com/blog/2012/03/19/phonegap-cordova-and-whate28099s-in-a-name/ | title = PhoneGap, Cordova, and what’s in a name? | date = 2012-03-19 | accessdate = 2017-05-09 | publisher = Adobe Systems Inc. | author = Brian LeRoux | language = en | quote = PhoneGap is a distribution of Apache Cordova. You can think of Apache Cordova as the engine that powers PhoneGap, similar to how WebKit is the engine that powers Chrome or Safari.}}</ref>.
Ein bekanntes Framework für die Erstellung solcher hybrider Apps ist ''Apache Cordova''<ref>{{Cite web | url = https://cordova.apache.org | title = Apache Cordova (Homepage) | accessdate = 2017-05-09 | publisher = apache.org | language = en | quote = Cordova wraps your HTML/JavaScript app into a native container which can access the device functions of several platforms.}}</ref> bzw. ''Adobe PhoneGap''<ref>{{Cite web | url = http://phonegap.com/blog/2012/03/19/phonegap-cordova-and-whate28099s-in-a-name/ | title = PhoneGap, Cordova, and what’s in a name? | date = 2012-03-19 | accessdate = 2017-05-09 | publisher = Adobe Systems Inc. | author = Brian LeRoux | language = en | quote = PhoneGap is a distribution of Apache Cordova. You can think of Apache Cordova as the engine that powers PhoneGap, similar to how WebKit is the engine that powers Chrome or Safari.}}</ref>.
 
Ebenfalls als ''hybride App'' bezeichnet wird eine App, die durch Übersetzung von Web-Content in eine native App auf dem Entwicklungs-Rechner erzeugt wird<ref name="smashing_mag"/>, z.B. ''Appcelerator''.<ref>{{Cite web | url = http://docs.appcelerator.com/platform/latest/#!/guide/Hello_World | title = Hello World (Entwickler-Dokumentation auf appcelerator.com) | accessdate = 2017-05-09 | publisher = Appcelerator / Axway| language = en | quote = On Android, your JavaScript is precompiled to bytecode. At runtime, your code is interpreted by the Rhino/V8 JavaScript interpreter.}}</ref>


== App-Kategorien ==
== App-Kategorien ==
Zeile 86: Zeile 88:
{{Hauptartikel|Apps deaktivieren||}}
{{Hauptartikel|Apps deaktivieren||}}
Android bitete die Möglichkeit, installierte Apps zu deinstallieren. Dadurch kann Software bspw. durch den Google Play Store installiert und nicht mehr benötigte Software über die Einstellungen (oder wahlweise auch wieder über den Play Store) deinstalliert werden. Vorinstallierte Apps und Apps, die nicht auf der /data-[[Partitionen|Partition]] liegen, lassen sich hingegen nicht deinstallieren und können durch den Anwender i.d.R. nur deaktiviert werden.
Android bitete die Möglichkeit, installierte Apps zu deinstallieren. Dadurch kann Software bspw. durch den Google Play Store installiert und nicht mehr benötigte Software über die Einstellungen (oder wahlweise auch wieder über den Play Store) deinstalliert werden. Vorinstallierte Apps und Apps, die nicht auf der /data-[[Partitionen|Partition]] liegen, lassen sich hingegen nicht deinstallieren und können durch den Anwender i.d.R. nur deaktiviert werden.
== Backup von App-Daten ==
{{Hauptartikel|Backup||}}
Daten von Apps können über verschiedene Wege in einem Backup gesichert werden. Einige davon erfordern allerdings Root-Rechte, um die Daten von der /data-Partition lesen zu können. Wege, um ein Backup der App-Daten anzufertigen, sind auf der Seite [[Backup]] zusammengefasst.
[[Kategorie:Software]]
[[Kategorie:Software]]
[[Kategorie:Allgemein]]
[[Kategorie:Allgemein]]
11.008

Bearbeitungen

Cookies helfen uns bei der Bereitstellung von Android Wiki. Durch die Nutzung von Android Wiki erklärst du dich damit einverstanden, dass wir Cookies speichern.