Posted on 2 Comments

Android App programmieren: vielfältige Anwendungen für das Smartphone

Android App programmieren: vielfältige Anwendungen für das Smartphone

Seit die ersten Smartphones vor vielen Jahren auf den Markt kamen, hat ihre Nutzung ständig zugenommen. Mittlerweile gibt es kaum mehr Menschen, die ohne dieses Gerät auskommen. Die Nutzung umfasst beinahe alle Altersgruppen – vom Grundschüler bis zum Rentner. Bei herkömmlichen Computern – insbesondere bei Desktop-PCs, ist die Entwicklung genau umgekehrt. Hierbei gehen die Nutzungszahlen bereits seit mehreren Jahren deutlich zurück. Angesichts dieses Szenarios ist es nicht verwunderlich, dass auch die Bedeutung von Smartphone-Apps ständig zunimmt. Dabei handelt es sich häufig um Spiele und um andere Anwendungen, die der Unterhaltung dienen. Auch für die Kommunikation kommen diese Programme häufig zum Einsatz. Schließlich verwenden mittlerweile zahlreiche Unternehmen Smartphone-Apps – beispielsweise für die Steuerung industrieller Anlagen oder für die Bearbeitung der Geschäftsprozesse. Die steigende Anzahl der Apps führt dazu, dass auch immer mehr Entwickler für diese Aufgabe erforderlich sind. Die Gestaltung von Smartphone-Apps zu erlernen, bringt daher sehr interessante Karrierechancen mit sich. Daher soll diese Reihe vorstellen, wie deren Programmierung abläuft. Der erste Teil geht dabei auf grundsätzliche Funktionsweisen und verschiedene Techniken für die Umsetzung ein. Danach folgt ein praktisches Beispiel, in dem Sie lernen, Ihre erste Android-App selbst zu gestalten.

Unterschiedliche Arten von Apps

Wenn Sie sich für die Entwicklung von Smartphone-Apps interessieren, besteht der erste Schritt darin, zu entscheiden, welche Art von Apps Sie entwickeln wollen. Hierbei gibt es nämlich vielfältige Möglichkeiten. Diese unterscheiden sich nicht nur in der Art ihrer Anwendung und in ihrer Performance. Darüber hinaus kommen hierbei ganz verschiedene Techniken zum Einsatz. Daher ist es für jede dieser Möglichkeiten erforderlich, eine unterschiedliche Vorgehensweise zu erlernen.

Native Apps

Bei den meisten Smartphone-Apps handelt es sich um native Apps. Das bedeutet, dass das entsprechende Programm direkt auf dem Gerät installiert ist. Die Ausführung des Programms findet über eine sogenannte Programmierschnittstelle – auch als API (Application Programming Interface) bezeichnet – statt. Das bedeutet, dass die App direkt auf alle Gerätefunktionen zugreifen kann. Das macht es beispielsweise möglich, die Kamera, GPS, das Mikrofon oder die Dateien des Geräts zu nutzen. Der direkte Zugriff auf die Funktionen des Betriebssystems führt außerdem zu einer hervorragenden Ausführungsgeschwindigkeit. Native Apps werden auf dem Gerät installiert. Über das entsprechende Icon kann sie der Nutzer aufrufen.

Bei der Nutzung nativer Apps ist es wichtig, darauf zu achten, dass diese stets genau auf das Betriebssystem ausgerichtet sein müssen. Beispielsweise ist es nicht möglich, eine Android-App auf einem iPhone auszuführen, da dieses das Betriebssystem iOS verwendet. Das bedeutet, dass sich eine native App stets durch einen eingeschränkten Anwendungsbereich auszeichnet. Sie lässt sich nur auf dem Betriebssystem ausführen, für das sie entwickelt wurde.

Java Kompendium 19.99 € Verfügbar In den Warenkorb

Web-Apps

Die Ausrichtung auf ein bestimmtes Betriebssystem stellt eine erhebliche Einschränkung nativer Apps dar. Um Anwendern mit verschiedenen Geräten die Nutzung zu erlauben, ist es hierbei notwendig, mehrere Apps zu entwickeln. Das erhöht den Aufwand deutlich. Diese Einschränkung stellte einen der wesentlichen Gründe für die Entwicklung von Web-Apps dar. Hierbei handelt es sich um Softwareprodukte, die ausschließlich Web-Technologien verwenden – HTML, CSS und JavaScript. Dabei handelt es sich im Prinzip um eine gewöhnliche Internetseite. Diese werden im Webbrowser aufgerufen. Das bedeutet, dass jedes Gerät, das über diese Software verfügt, das entsprechende Programm ausführen kann – unabhängig vom Betriebssystem. Die App lässt sich daher mit einem PC genauso aufrufen wie mit einem Android- oder einem iOS-Smartphone. Allerdings ist bei Web-Apps die Anwendung für das Smartphone optimiert, sodass die Ausführung auf einem gewöhnlichen PC in der Regel nicht optimal ist. Dennoch bleibt festzuhalten, dass Web-Apps unabhängig vom Betriebssystem funktionieren. Daher müssen Sie nur eine App entwickeln, um alle Anwender anzusprechen.

Diesem Vorteil stehen jedoch auch erhebliche Nachteile gegenüber. Insbesondere ist mit einer Web-App der Zugriff auf viele Gerätefunktionen nicht möglich. Diese Apps laufen im Browser ab. Dieser bietet den Anwendungen aus Sicherheitsgründen nur Zugriff auf wenige Funktionen. Darüber hinaus ist die Ausführungsgeschwindigkeit deutlich geringer. Schließlich verfügt der Browser über einige funktionale Elemente wie etwa die Adresszeile, die auch in der Web-App erscheinen. Diese lassen sich nicht ausblenden und können störend wirken.

Darüber hinaus gibt es einen weiteren wichtigen Unterschied zu nativen Apps: Hierbei wird die Anwendung nicht auf dem Gerät installiert. Die Anwender rufen sie über die Adresszeile des Browsers auf. Das kann bei einer einmaligen Anwendung zwar vorteilhaft sein, da kein Installationsprozess erforderlich ist. Bei einer regelmäßigen Nutzung mindert das jedoch den Nutzungskomfort.

Hybrid-Apps

Eine weitere Alternative stellen Hybrid-Apps dar. Hierbei handelt es sich um eine Mischung aus nativen Apps und Web-Apps. Hybrid-Apps zeichnen sich dadurch aus, dass sie wie Web-Apps im Browser ablaufen. Das bedeutet, dass für die Erstellung ebenfalls bekannte Technologien wie HTML, CSS und JavaScript zum Einsatz kommen. Außerdem ist auf diese Weise eine Plattformunabhängigkeit gewährleistet. Das hat zur Folge, dass die gleiche Hybrid-App sowohl auf Android- als auch auf iOS-Smartphones lauffähig ist – genauso wie auf Geräten mit anderen Betriebssystemen. Hybrid-Apps werden wie native Apps fest auf dem Gerät installiert.

Für die Entwicklung von Hybrid-Apps ist ein spezielles Framework erforderlich. Dieses bewirkt unter anderem, dass die Verwendung des Browsers für den Anwender nicht bemerkbar ist. Dabei werden verschiedene Gestaltungselemente wie die Adresszeile unterdrückt. Außerdem ist auf diese Weise ein umfangreicherer Zugriff auf die Funktionen des Geräts möglich. Selbst komplexe 3D-Grafiken, die sich mit gewöhnlichen Web-Apps nicht umsetzen lassen, können Sie mit einer Hybrid-App erzeugen. Dennoch gibt es dabei einige Einschränkungen zu beachten. Hybrid-Apps können im Gegensatz zu nativen Apps nicht auf alle Funktionen eines Geräts zugreifen. Obwohl die Ausführungsgeschwindigkeit deutlich höher als bei Web-Apps ist, ist die Performance hierbei schlechter als bei nativen Apps.

Smartphone-Apps – eine Frage des Betriebssystems

In diesem Artikel befassen wir uns mit der Gestaltung nativer Apps. Wie den Ausführungen aus den vorherigen Abschnitten zu entnehmen ist, handelt es sich bei nativen Apps jedoch stets um betriebssystemspezifische Anwendungen. Das bedeutet, dass Sie vor der Entwicklung entscheiden müssen, für welche Geräte sich die App eignen soll. Auch wenn Sie erlernen möchten, native Apps für das Smartphone zu erstellen, müssen Sie sich entscheiden, welche Technologie Sie hierbei erlernen.

Hierbei gibt es in erster Linie zwei Möglichkeiten: Sie können lernen, Android- oder iOS-Apps zu erstellen. Zwar gibt es noch einige weitere Betriebssysteme für Smartphones. Deren Verbreitung ist jedoch so gering, dass sie nur eine untergeordnete Rolle spielen. Wenn Sie Ihre Entscheidung treffen, ist es wichtig, die Marktanteile zu beachten. Diese schwanken in Deutschland für Android in der Regel zwischen 70 und 85 Prozent. Das macht deutlich, dass dieses Betriebssystem eine marktbeherrschende Stellung einnimmt. Bei iOS-Geräten liegt der Marktanteil hingegen normalerweise zwischen 15 und 23 Prozent (Quelle: https://de.statista.com/statistik/daten/studie/256790/umfrage/marktanteile-von-android-und-ios-am-smartphone-absatz-in-deutschland/ ). Das zeigt deutlich, dass Sie mit Apps für Android-Smartphones deutlich mehr Nutzer erreichen. Doch obwohl der Marktanteil von iOS deutlich geringer ist, sollten Sie beachten, dass es sich hierbei in der Regel um hochpreisige Geräte handelt. Das führt dazu, dass die Anwender im Durchschnitt eine deutlich höhere Kaufkraft aufweisen. Das kann bei der Entwicklung kommerzieller Anwendungen ebenfalls eine wichtige Rolle spielen.

Android Apps: unterschiedliche Techniken für die Umsetzung

Aufgrund der hohen Verbreitung des Betriebssystems Android spielt dieses eine herausragende Rolle bei der Entwicklung von Smartphone-Apps. Aus diesem Grund sollen hierbei nun die wichtigsten Techniken für deren Entwicklung vorgestellt werden.

Android-Apps: eine Mischung aus Programmiersprache und XML

Wenn Sie sich mit der Technik für die Entwicklung von Android-Apps befassen, ist es zunächst wichtig, zu beachten, dass hierbei nicht nur eine einzelne Technik zum Einsatz kommt. Stattdessen handelt es sich dabei in der Regel um eine Mischung aus einer Programmiersprache und der Auszeichnungssprache XML. XML gibt Ihnen die Möglichkeit, verschiedene Elemente in einem Dokument nach bestimmten Regeln auszuzeichnen. Dabei handelt es sich nicht um eine Programmiersprache, mit der Sie den Ablauf einer Anwendung steuern können. Mit XML ist es lediglich möglich, die Funktion eines bestimmten Bereichs in einem Textdokument deutlich zu machen.

XML kommt bei der Entwicklung von Android-Apps für die Gestaltung des Layouts zum Einsatz. Damit geben Sie beispielsweise vor, welche Elemente erscheinen sollen und welche Größe und Farbe Sie hierfür verwenden möchten. Diese Angaben müssen Sie nach ganz bestimmten Regeln in ein XML-Dokument einfügen. Allerdings ist es zumindest am Anfang für die App-Entwicklung nicht notwendig, den Aufbau und die Inhalte dieser XML-Dokumente genau zu verstehen. Hierfür gibt es grafische Benutzeroberflächen, mit deren Hilfe Sie die entsprechenden Elemente ganz einfach gestalten können. Erst wenn Sie später ganz spezifische Details vorgeben möchten, ist es notwendig, sich intensiver mit den entsprechenden XML-Dokumenten zu befassen.

Während Sie die Layout-Vorgaben in XML verfassen, kommt für die einzelnen Funktionen und für den Ablauf der App eine Programmiersprache zum Einsatz. Das führt zu einer hervorragenden Trennung zwischen Funktion und Layout. Dabei haben Sie die Auswahl aus mehreren Möglichkeiten. Diese werden in den folgenden Abschnitten kurz vorgestellt.

Java

Die Programmiersprache Java erschien im Jahre 1995. Schnell entwickelte sie sich zu einer der beliebtesten Programmiersprachen der Welt. Ihr Erfolg ist in erster Linie auf die Verbreitung des Internets zurückzuführen. Mit Java war es möglich, dynamische Elemente in eine Internetseite zu integrieren und sie auf diese Weise interessanter zu gestalten und mit weiteren Funktionen anzureichern. In der Folgezeit kam Java auch für viele weitere Anwendungen zum Einsatz und entwickelte sich zu einer der beliebtesten Programmiersprachen für Anwender-Programme. Hierbei handelt es sich um eine objektorientierte Programmiersprache, die alle Anforderungen der modernen Informatik erfüllt.

Die vielfältigen Anwendungsmöglichkeiten und die weite Verbreitung führten dazu, dass Google Java als offizielle Programmiersprache für Android-Apps wählte. Daher ist die große Mehrheit der Programme für Smartphones in Java verfasst. Wenn Sie sich mit dieser Programmiersprache bereits auskennen, fällt es besonders leicht, Android-Apps zu erstellen.

Java Programmieren für Einsteiger 14.99 € Verfügbar In den Warenkorb

Kotlin

Kotlin ist eine wesentlich neuere Programmiersprache. Sie erschien erst 2011. Die erste stabile Version ist sogar erst seit 2016 verfügbar. Kotlin erzeugt einen Bytecode, der für die Ausführung in der Java Virtual Machine (JVC) vorgesehen ist – genau wie Programme, die in Java verfasst sind. Das führt zu erheblichen Gemeinsamkeiten in der Anwendung. Kotlin zeichnet sich jedoch dadurch aus, dass diese Sprache etwas einfacher strukturiert ist. Insbesondere Anfängern fällt es daher leichter, Kotlin zu erlernen.

Da Kotlin mit einer sehr ähnlichen Technik wie Java arbeitet, liegt es auf der Hand, dass diese Sprache auch ähnliche Einsatzmöglichkeiten bietet. Daher kam sie von Beginn an auch für die Erstellung von Android-Apps zum Einsatz. Google unterstützt Kotlin seit 2017 auch offiziell für die Gestaltung von Smartphone-Programmen. 2019 erklärte der Konzern sogar, dass er Kotlin der Programmiersprache Java vorzieht. Dennoch ist die Verbreitung bislang deutlich geringer, sodass nach wie vor die Mehrheit der Android-Apps in Java erstellt wird.

C, C++, C# und weitere Möglichkeiten

Neben Java und Kotlin gibt es noch einige weitere Möglichkeiten für die Entwicklung von Android-Apps. Deren Verwendung ist jedoch nur in geringem Maße verbreitet. Hierbei ist insbesondere die Programmiersprache C++ zu nennen. Diese wird von Android Studio – dem offiziellen Entwicklungswerkzeug von Google – neben Java und Kotlin ebenfalls unterstützt. Neben Android Studio bietet Google hierfür auch das Android Native Development Kit (NDK) an. Damit lassen sich Android-Apps in C und in C++ erstellen.

Darüber hinaus gibt es noch zahlreiche weitere Entwicklungsumgebungen von Drittanbietern, mit denen sich ebenfalls Android-Apps gestalten lassen. Diese unterstützen viele weitere Programmiersprachen. Die Werkzeuge Xamarin und Unity erlauben beispielsweise die Entwicklung in C#. Weitere Möglichkeiten stellen die Programmiersprachen BASIC und Lua dar.

HTML, CSS und JavaScript – nur für Hybrid-Apps geeignet

Die bekannten Webtechnologien HTML, CSS und JavaScript stellen eine weitere Alternative für die App-Entwicklung dar. Hierbei erstellen Sie mit HTML und CSS das Layout, während JavaScript für die Funktionen der App zuständig ist. Um die Apps mit diesen Techniken zu erzeugen, benötigen Sie jedoch ein passendes Framework. Hierfür kommt insbesondere Apache Cordova zum Einsatz. Auch hierbei handelt es sich um ein von Google unterstütztes Entwicklungswerkzeug.

Allerdings entstehen hierbei keine nativen Apps. Apache Cordova dient lediglich der Erstellung von Hybrid-Apps – mit den oben beschriebenen Vor- und Nachteilen. Wenn es erforderlich ist, eine native App zu erstellen, eignen sich HTML, CSS und JavaScript daher nicht.

Welche Technik ist zu empfehlen?

Abschließend stellt sich noch die Frage, welcher dieser Techniken zu empfehlen ist. Diese lässt sich jedoch nicht allgemeingültig beantworten. Das hängt stets davon ab, welche Projekte Sie umsetzen möchten und über welche Vorkenntnisse Sie verfügen. Wenn Sie sich beispielsweise bereits gut mit HTML, CSS und JavaScript auskennen und außerdem bei den Apps, die sie entwickeln wollen, die Performance nur eine untergeordnete Rolle spielt, bietet es sich an, Apache Cordova für diese Aufgabe zu verwenden und Hybrid-Apps zu entwickeln. Dabei profitieren Sie außerdem davon, dass Sie diese auch auf anderen Betriebssystemen verwenden können.

Falls Sie hingegen native Apps erstellen möchten, sollten Sie entweder Java oder Kotlin erlernen. Sollten Sie noch über keine Vorkenntnisse verfügen, bietet sich Kotlin an. Diese Sprache ist nicht nur etwas leichter zu erlernen. Darüber hinaus hat Google sie 2019 zur bevorzugten Sprache erklärt. Wenn Sie jedoch bereits über Vorkenntnisse in Java verfügen, ist es wahrscheinlich einfacher, diese Sprache zu verwenden. Die übrigen vorgestellten Programmiersprachen bieten sich hingegen nur in Ausnahmefällen an. Wenn Sie beispielsweise bereits über umfangreiche Kenntnisse in C verfügen und nur eine einzelne App erstellen müssen, bietet es sich an, Android NDK zu verwenden, um die Anwendung in dieser Sprache zu schreiben. Wenn Sie jedoch regelmäßig Smartphone Apps erstellen möchten, ist es empfehlenswert, trotz dieser Vorkenntnisse auf Java oder Kotlin umzusteigen.

Bildquelle: Google Inc. https://developer.android.com/distribute/googleplay/promote/brand.html, CC 3.0 https://creativecommons.org/licenses/by/3.0/deed.en

Ähnliche Produkte

2 Kommentare zu “Android App programmieren: vielfältige Anwendungen für das Smartphone

  1. Leider vergessen wurde die Scriptsprache Tcl/Tk. Die Android-Version heißt “Androwish” und es gibt sie schon seit mehren Jahren. Es ist ein mächtiger Interpreter, der fast alle Android-Features unterstützt. Viele Programme für Androwish laufen ohne oder mit minimalen Anpassungen auch unter Linux, Windows und MacOS. Die grafische Oberfläche “Tk”, die außer von Tcl auch von Python (tkinter) verwendet wird, erlaubt ein einheitliches (oder auch unterschiedliches) Erscheinungsbild über alle Plattformen.
    Wahrscheinlich hunderte von so genannten Packages decken alle Bereiche der Computerei ab, von Netzwerken, Cryptografie, Datenbanken, Bildbearbeitung, Tabellen und vieles mehr.
    Tcl/Tk gehört bei praktisch allen Linux-Distributionen zum Standardumfang und wird, weitgehend unbemerkt, seit langer Zeit auch in industriellen Applikationen eingesetzt.
    Wer Tcl beherrscht (was nicht schwer ist), kann Applikationen für praktisch jedes Betriebssystem schreiben, von Linux auf einem Raspberry Pi bis Window auf einem Internet-Server. Es ist wohl die am krassesten unterschätzte Programmiersprache.

    1. Sehr geehrter Herr Vater,

      Danke für Ihren aufschlußreichen Kommentar!

      Da es eine Vielzahl an Möglichkeiten gibt, wollten wir einige davon in unserem Blogartikel vorstellen, um unseren Lesern Ideen für Android Programmierung zu liefern. Das Thema “Androwish” nehmen wir für einen unserer nächsten Blogartikel auf.

      Über weitere Anregungen von Ihnen würden wir uns sehr freuen!

      Olena vom BMU Team

Schreibe einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.