Mobile Geräte ans Limit bringen – App Programmieren lernen

Du hast bestimmt eins. Ein Smartphone oder zumindest ein Tablet. Seitdem das iPhone auf den Markt kam hat sich unsere Welt im Umgang mit Computern nochmal richtig geändert. Wir haben diese Geräte nun immer dabei und können quasi non-Stop auf das Internet zugreifen. Damit hat sich die Kommunikation zwischen Menschen ebenfalls grundlegend verändert. Man kommuniziert über MessengerApps oder Liked Status Posts in Social Media Apps. Die Sportaktivität wird über Sensoren gemessen und an eine Tracking App übermittelt, damit man schauen und planen kann, wieviel Sport man machen sollte. E-Mails, Surfen und Navigation sind so selbstverständlich geworden, dass wir uns ein Leben ohne Apps gar nicht mehr vorstellen können.

Was sind Apps?

Der Begriff App ist eigentlich eine Abkürzung für das Wort Application also übersetzt Anwendung. Apps sind  eigentlich einfache Computerprogramme, die kleine bis komplexe Aufgaben erledigen können. Neben den oben bereits erwähnten Apps, gibt es viele Tausenden, wenn sich mittlerweile sogar Millionen von Apps. Von Banking, Dating, Einkaufen und Videospielen ist alles dabei. Der Smartphonebesitzer hat die Qual der Wahl. Auf einen herkömmlichen Smartphone Startscreen passen ungefähr 20 Appicons. Wenn es eine App auf diesen Startscreen schafft wird diese wahrscheinlich täglich verwendet (die anderen Screens und Menü mal ausgeschlossen).

Worin unterscheiden sich Apps von normalen Computerprogrammen?

In erster Linie ist ein Smartphone eigentlich ein ganz normaler Computer, wie dein Notebook oder Desktoprechner auch. Mit dem Unterschied, dass die Bauteile noch kleiner sein müssen und damit im Prinzip weniger Leistung haben können als ein fetter Rechner. Wobei man die Rechenleistung nicht unterschätzen darf. Selbst das erste Smartphone hatte mehr Rechenpower als die Computer, welche die erste Mondmission möglich gemacht haben. Und heute? Heute nutzen wir die Rechenleistung um Candy-Crush zu spielen, während wir in der Bahn sitzen. Wenn man also Apps programmieren möchte, dann muss man quasi erstmal dasselbe über Programmierung lernen, wie man es auch bei den großen Computern lernen würde. Allerdings gibt es bei der Programmierung doch ein paar Kleinigkeiten, die man beachten muss.

Welche Besonderheiten gibt es?

Das einfachste zuerst. Die Eingabe bei einem mobilen Gerät unterscheidet sich wesentlich zu der Eingabe am Computer. Während man am Computer meist mit Tastatur und Maus arbeitet, hat man am Smartphone/Tablet nur einen Touchscreen (ja, ich weiß es gibt auch dafür Tastaturen und Mäuse, das macht die Sache aber nicht einfacher 😉 ) zur Verfügung. Das bedeutet, wenn du Apps programmieren willst, dass du darauf achten musst, dass deine Programmoberfläche für Touchscreen ausgelegt ist. Das hört sich im ersten Moment schwieriger an, als es (für den Programmierer) ist. Aber es unterscheidet sich und muss beim entwickeln beachtet werden. Dann haben wir die Ausgabe, also das was du am Bildschirm siehst. Während man am Computer relativ einfach mit Auflösungen spielen kann und der Monitor meist groß genug ist um alle Elemente sauber und ordentlich anzuzeigen, hat man bei den mobilen Geräten ein paar Fallen. Zum einen ist jedes Gerät unterschiedlich groß und meist haben die Geräte eine ähnlich hohe Auflösung, wie die großen Monitore. Wenn man also eine Webseite programmiert hat und diese nicht für mobile Geräte optimiert ist, dann kann man auf dem Smartphone nichts erkennen. Die Webseite ist mobil nicht nutzbar, weil sie nicht auf die Monitorgröße reagiert. Apps und Webseiten, die allerdings die Größe beachten und automatisch darauf reagieren, sind sogenannt Responsive. Einen Vorteil hat diese Responsiveness, denn damit wird es egal auf welchem Bildschirm dein Programm gezeigt wird. Es wird immer richtig angezeigt.
Wo wir schon bei Webseiten waren. Beim Computer hat man sich eigentlich schon dran gewöhnt. Man hat einfach IMMER eine Internetverbindung. Bei mobilen Geräten kann es mal passieren, dass du in der Bahn sitzt und plötzlich deine Verbindung weg ist. Apps müssen damit klarkommen, wobei man das auch bei Programme auf Notebooks erwarten würde.
Noch ein größerer Unterschied ist, dass man auf dem Smartphone viele kleine Sensoren hat, die man in der App benutzen kann. Es geht los mit GPS, du kannst die Position des Gerätes bestimmt und in deiner App verwenden. Deine App kann per Bluetooth mit anderen Geräten Informationen austauschen. Aber auch Lagesensoren, Kamera, NFC und alles was die Hardwarespezifikation so anbietet, kann programmatisch verwendet werden. Bei einem Computer sind da die Möglichkeiten etwas eingeschränkt. Aber wie legt man nun eigentlich los, wenn man seine eigene App entwickeln möchte?

Wie programmiert man Apps?

Grundsätzlich programmiert man Apps genauso, wie man auch andere Computerprogramme ebenfalls entwickelt. Also Programmiersprache lernen, kleine Programme schreiben und Erfahrungen sammeln. Dann alle möglichen Funktionen ausprobieren, die man auf dem Gerät so hat. Man kann Funktionen nutzen, die man ebenfalls auf dem Computer zur Verfügung hat, wie z.B. Dateizugriff und grafische Oberflächen. Und man die Funktionalitäten, die nur den mobilen Geräten vorberhalten sind. Das bedeutet der Hersteller des Betriebssystems der Geräte, stellt dir eine Programmierschnittstelle zur Verfügung, welche du in deiner App möglichst komfortabel verwenden kannst. So musst du dich nicht mit Maschinensprache oder ähnlichen befassen. Allerdings muss man erstmal lernen, diese Programmierschnittstelle anzusprechen. Das Testen einer App ist so eine Sache, denn du kannst deine App ja nicht einfach mal starten. Du brauchst entweder das passende Gerät oder einen sogenannten Emulator. Das bedeutet, das Betriebssyste, wird auf deinem Computer simuliert. Auf deinem Computer bekommst du quasi ein virtuelles Smartphone (oder was du sonst halt testen willst) und kannst damit deine App testen.
Hast du diese Dinge drauf, dann kannst du daran denken Apps zu erstellen, die auch tatsächlich in einem App Store verfügbar ist (wie man die dann in den jeweiligen Store bekommt, ist noch mal eine eigene Geschichte 🙂 ). Wie du dir sicher denken kannst, gibt es nicht nur einen AppStore, sondern verschiedene, da es verschiedene Hersteller von Smartphones und deren Betriebssystemen gibt. Was es da zu beachten gibt erkläre ich dir jetzt.

Welche Hersteller gibt es?

Die zwei großen Anbieter sind ganz klar Google und Apple. Google’s Android Betriebssystem läuft auf den verschiedensten Geräten, z.B. Samsung, HTC, usw. Apple’s iOS läuft nur auch Apple eigenen Geräten. Dann gibt es noch weitere Betriebssystem, wie z.B. WindowsPhone oder Blackberry. Das blöde ist nun: Jede Plattform nutzt eine eigene Programmiersprache und hat eine eigene Programmierumgebung. Das bedeutet für jede Plattform muss dein Programm neu geschrieben werden, es geht auch ein bisschen einfacher (erst recht wichtig für Anfänger!), aber da komme ich nachher zu. Möchtest du für Android eine App programmieren, musst du Java lernen und alles was an Besonderheiten dazukommt. Möchtest du iOS Apps bauen musst du entweder ObjectiveC oder Swift lernen, dazu kommt, dass du für die iOS-Entwicklung einen Mac brauchst. Bei den anderen Anbietern sieht es ähnlich aus. Und einfach Code übersetzen funktioniert leider nicht. Aber es gibt einen Trick.

Geht das nicht einfacher?

Der Anfänger ist schon mit einer Programmiersprache gut beschäftigt. Warum sollte er dann auch noch verschiedene Programmiersprachen lernen? Das macht kein Sinn. Es gibt einen Weg, eine App EINMAL zu entwickeln und diese für alle Plattformen anzubieten. Hier spreche ich nicht nur von mobilen Geräten sondern, ALLEN Computern, die einen modernen Browser unterstützen. Konkret spreche ich von Javascript und Webtechnologien. Webtechnologien sind mittlerweile so mächtig, dass man ohne Probleme auch Apps damit schreiben kann. Nimmt man z.B. die Programmierbibliothek Apache Cordova, kann man aus einer Webanwendung (die normalerweise nur im Browser läuft), eine App für alle mobilen Geräte und Hersteller bauen, sie beinhaltet alle Funktionalitäten, die man sonst mühselig doppelt schreiben müsste. Das bedeutet, mit HTML, CSS und Javascript, lassen sich nicht nur Webseiten sondern auch Apps bauen. Wie man sowas programmieren kann wird hier erklärt. Stell dir mal vor du könntest am Anfang mit nur einer Sprache soviele Dinge ausprobieren und bauen!

Schreibe einen Kommentar

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