Android Apps

Programmierung von Apps für Smartphones, Tablets und Smartwatches mit Android-Betriebssystem

Android Apps wurden, vor allem in der Schweiz, lange stiefmütterlich behandelt. Seit einigen Jahren hat Android in Punkto Marktanteil nun aber auch den grossen Konkurrenten aus Cupertino überholt und ist der unangefochtene Platzhirsch auf dem Markt. Dabei schafft es Android auch weiterhin, dass der Vorsprung gegenüber Apple täglich weiter wächst. Egal ob Samsung, HTC, Sony, LG, Motorola, Xiaomi – oder die Pixel-Serie von Google selbst: Nirgends hat der Kunde so viel Auswahl aus verschiedenen, hochwertigen Smartphones und Tablets wie bei Android.

Mit den modernen und mit Features reich bestückten Endgeräten wachsen auch die Möglichkeiten für App-Entwickler mit Android ins schier unermessliche. Bei der Programmierung von Android Apps gibt es herstellerseitig viel weniger Einschränkungen als auf anderen Plattformen und auch die Publikation von neuen Apps ist eine Sache von wenigen Stunden. Kein Wunder also, dass die Anzahl Apps im Google Play Store kontinuierlich zunimmt. So ist auch in diesem Bereich Android mit über drei Millionen Apps der unangefochtene Marktführer. Weltweit beträgt der Marktanteil von Android Apps satte 88%.

Durch die Entwicklung einer Android Applikation, erreicht man also die heute grösstmögliche Benutzergruppe und ist somit am Puls der Zeit.

Kommunikationsmittel

Heutzutage verfügen Smartphones eine breites Spektrum an Kommunikationsmöglichkeiten. Unter diesen befinden sich auch die am meisten verbreiteten Technologien wie Bluetooth oder NFC. Android hat hier kaum Einschränkungen, was die Benutzung dieser Technologien angeht. So kann z.B. mittels Bluetooth ein IoT Gerät angesprochen werden, welches Sensordaten sammelt. Es kann aber auch ein selbst geschriebenes Protokoll für die Kommunikation zwischen zwei Geräten implementiert werden.

Devices

2019 sind weltweit mehr als 2 Milliarden Android-Geräte im Einsatz. Diese stammen von unterschiedlichsten Anbietern aus aller Welt. Diese Konkurrenz belebt das Angebot. Man erhält bereits für 200 CHF ein Gerät, kann jedoch auch für 1000 CHF ein high-end Device ergattern. Die Unterschiede zwischen den Geräten sind meist die Rechenpower des verbauten Chips sowie die Kamera. Möchte man als Unternehmen eine Geräte-Flotte für einen speziellen Anwendungsfall anschaffen, so lohnt es sich besonders vorab eine grössere Spanne von Geräten zu testen.

IoT

IoT oder auch Internet der Dinge ist heutzutage ein Begriff der kaum wegzudenken ist. Für die Einen ein Muss, für die Anderen noch etwas schwerer zu Erfassen. Eine Statistik von Statista besagt, dass bereits jetzt 26 Milliarden IoT-Sensoren im IoT Umfeld existieren. Die Voraussage geh sogar soweit, dass für 2025 75 Milliarden solcher Geräte existieren sollen. Diese extreme Entwicklung ist nur durch die rasante Entwicklung in der IT möglich. Denn die benötigten Chips und Kommunikationstechnologien wie Bluetooth oder NFC werden immer stromsparender, sicherer und schneller. Stellen sie sich vor, wie Ihre Zimmerpflanze ihnen eine Benachrichtigung für das Bewässern sendet. Oder der Kühlschrank der direkt eine Bestellung für fehlende Produkte versendet.

Android ist in der Welt von IoT kaum wegzudenken. Fast jeder grosse Chiphersteller bietet einen Android-fähigen Linux Kernel an und ermöglicht somit die Installation des Betriebssystems. Ist das Device erst mit dem Betriebssystem bestückt, können bestehende Apps aufgespielt werden und ermöglichen somit die Wiederverwendung bestehender Applikationen.

Open Source

Der Grundbaustein von Android, das Android Operating System ist quelloffen. Dies öffnete den Markt von Android, da nun auch andere Gerätehersteller die Möglichkeit hatten, Android so anzupassen, dass es mit ihren Geräten funktioniert. Somit haben wir nun Android auch auf Geräten wie E-Readers und Uhren.

Es gibt auch Community Build Android Versionen wie zum Beispiel LineageOS.

Fast-Paced

Android “Pie” ist die 9te Version des beliebten Betriebssystems das sich im 1. Quartal 2019 auf dem Markt befindet. Die Geschichte von Android fängt Ende 2008 mit der ersten Version namens “Base” an. Seit jeher erleben wir jedes Jahr neue Features mit jeder neuen Version die Veröffentlicht wird. So waren in den Anfängen noch nicht einmal Touchscreens verfügbar. Heute sprechen wir über Themen wie AR or VR und biegbare Screens, für unsere Smartphones. Man sieht, die Software musste sich genauso wie die Hardware in einem rasanten Tempo entwickeln damit diese neuen Technologien unterstützt werden.

Side-Loading

Google bietet ein riesiges Angebot an Applikationen mit ihrem eigenen PlayStore. Doch dieser Store ist kein muss, es gibt neben dem Playstore noch diverse andere Stores, wie z.B. der Amazon Appstore. Das beliebte Betriebssystem erlaubt jedoch auch installationen ausserhalb eines Stores. So können z.B. interne Applikationen über die Firmeneigene Website vertrieben werden.

Java

Seit ihrem Release am 23.Mai 1995 ist die Programmiersprache Java nur beliebter geworden und hat viele Anwendungsbereiche gefunden. Der berühmte Werbeslogan “3 Milliarden Geräte nutzen Java” ist realistisch. Die Offizielle Java Webseite zeigt mittlerweile sogar 15 Milliarden Geräte.

Java ist einfach zu gebrauchen, es hat Garbage Collection, läuft in einer Virtuellen Maschine und hat bereits viele Entwickler Tools. Ebenfalls hat es viele Entwickler. Mit diesen Vorteilen wurde entschieden, dass das Application Framework in Java entwickelt werden soll und ist somit der Weg, Android Apps zu programmieren.

Dank Javas vielseitigen Einsatzmöglichkeiten gibt es viele Bibliotheken die gewisse Aufgaben übernehmen und erleichtern. Davon profitiert auch der Android Entwickler, da er diese Bibliotheken auch gebrauchen kann.

Kotlin

Die von JetBrains entwickelte Programmiersprache Kotlin erblickte im 2011 das Licht der Welt. Während Kotlin auch auf der Java Virtual Machine läuft gibt es auch Versionen die zu JavaScript oder Native Code kompilieren. Dies gibt Kotlin eine grosse Vielfalt und da es 100% zusammenarbeitet mit Java, hat Kotlin seit der Google I/O 2017 first-class support auf Android.

Dank Kotlin’s simpler Syntax ist der Entwicklungsprozess nicht nur schneller, sondern es macht auch mehr Spass als mit Java. Einer der Philosophien von Kotlin ist zum Beispiel Boilerplate zu vermeiden. Boilerplate ist notwendiger Code der immer wieder gebraucht wird ohne Änderung. Eine Folge der Reduktion von repetitiven Arbeiten ist die Zeitgewinnung, die folglich für testing, polishing und implementierung von Features gebraucht werden kann.    

Kotlin muss aber nicht nur für Android gebraucht werden, sondern kann alle Aufgaben die Java wahrnimmt auch erledigen. Seit dem ersten Stable Release am 15 Februar 2016 adoptieren immer mehr Entwickler Kotlin.

Bei dem Stackoverflow Survey 2019 ist Kotlin die 4 meistgeliebte Sprache.

Bei Smartfactory werden seit Anfang 2018 alle neuen nativen Apps mit Kotlin entwickelt.

C++

Eine alternative zu Java / Kotlin bietet C++, eine Low-Level Sprache die es schon seit über 30 Jahren gibt. Da C++ nicht in einer JVM läuft, ist sie optimal für Low-Level Tasks.

Obwohl es möglich ist, eine ganze Android App in C++ zu schreiben, wird dies nicht empfohlen, sondern C++ sollte nur für ganz spezielle Zwecke gebraucht werden, bei denen es Sinn macht (Performance gain).

Cross-Platform

Es gibt aber noch andere Möglichkeiten, Android Apps zu entwickeln. Es gibt einige Mobile Application Frameworks die Cross-Platform funktionieren. Dies ermöglicht es, eine Codebase ein einziges Mal zu schreiben anstatt einmal für Android und einmal für iOS.

Bei Cross-Platform Apps gibt es noch eine weiter Unterscheidung: Native und Hybrid.

Native Apps sind Apps die für ein spezifisches Gerät (in unserem Fall iOS oder Android) entwickelt werden. Somit haben sie Zugriff auf Gerätespezifische Features und verwenden auch die Fundamentalen UI Blöcke die man sonst braucht. Beispiele sind Flutter, React Native und Xamarin.

Hybrid Apps sind Apps, die in einem Browser laufen und auch in Browsersprachen geschrieben sind (JavaScript / HTML). Beispiele sind das Ionic Framework, PhoneGap und Framework7

Native Apps sind meist schneller, da sie nicht noch den Overhead des Browsers haben, was sie für gewisse Apps (zum Beispiel Games) ungeeignet macht. Dafür hat man bei Hybriden Apps, da diese mit Websprachen geschrieben sind, gleich auch noch eine Website.

Gaming

Wie weiter oben bereits erwähnt, hat Android eine enorme Tragweite an Benutzern. Dies reicht von jung bis alt. Hat man einmal den Playstore geöffnet, wird einem klar, dass sich unter all den Apps auch eine vielzahl von Spielen befinden. Laut 42matters sind es mehr als 400’000 Apps.

Spiele sind meist Grafik lastig und haben ganz andere Anforderungen als Business Applikationen. Die Gaming Industrie hat natürlich nicht geschlafen und ihre Engines für die Mobile entwicklung aufgemotzt. Unity und Unreal Engine sind hier ganz klar die grossen Player.

Vulkan und OpenGL

Vulkan, sowie Vulkan’s Vorgänger OpenGL, ist eine Programmierschnittstelle um Vektorgrafiken zu berechnen und rendern. Im Zusammenhang zu Android wird Vulkan meist mit C++ verwendet, um High-Performance Games zu entwickeln. Vulkan wird erst ab Android Nougat. OpenGL ES jedoch kann bis zu Android Donut verwendet werden.