App und Laptop für Programmierung von Apps

Apps programmieren mit Apache Cordova

App und Laptop für Programmierung von Apps

App-Entwicklung in JavaScript mit Apache Cordova

Wenn du schon ein wenig Erfahrung als Programmierer hast, also zumindest schonmal eine Webseite oder ein kleines Programm entwickelt hast, dann bist du sicherlich schonmal an der Idee vorbeigekommen eine App zu programmieren. Bei Apps für Mobilgeräte gibt es das selbe Problem wie auch am Personal Computer, denn es gibt verschiedene Plattformen die verschiedene Programmiersprachen unterstützen. In diesem Artikel erfährst du, wie du dieses Problem mit der Kraft der Webentwicklung und dem Apache Cordova Framework lösen kannst.

Warum ist App Entwicklung immer noch ein Thema?

Nachdem 2007 das iPhone vorgestellt wurde, war das Zeitalter der Apps geboren. Seitdem suchen Programmierer einfache Möglichkeiten um Apps auf alle Plattformen bringen zu können. Leider ist das bis heute noch eine Herausforderung. Aber warum ist das Erstellen von Apps angeblich so aufwendig? Lass uns mal eine kleine Reise machen, dann wird das etwas deutlicher.

Der Computer: Prozessoren, Betriebssysteme, Programmiersprachen

Bevor wir auf die Mobilgeräte wie Smartphones und Tablets gehen, schauen wir uns mal den großen Bruder den Personal Computer an. Egal ob Standrechner oder Laptop, alleine schon hier sehen wir unterschiedliche Prozessoren und Betriebssysteme. Der eine schwört auf Intel, der andere auf AMD. Der eine kann nicht ohne Windows, der andere kauft gerne MacBooks und der nächste arbeitet aus Prinzip nur mit Linux. Und die Softwareentwickler dürfen für diese jeweiligen Situationen Unmengen an Code schreiben. Damals war es noch so: Für jeden Prozessor wurde eigener Code geschrieben. Dann wurden Tools entwickelt die dem Programmierer die Arbeit erleichtern. Mit einem Kompiler kann man Maschinencode für Intel und AMD generieren. Dann kommen die Betriebssysteme dazu, Windows, Mac und diverse Linuxdistributionen. Auch hier gibt es mittlerweile Möglichkeiten Code für die unterschiedlichen Systeme mittels Frameworks zu kompilieren. Java ist wohl das bekannteste Beispiel dafür, aber es gibt auch noch Qt für C++ und sogar .NET ist teilweise in der Lage. Webbasierte Lösungen sind zum Beispiel Node.Js und Electron, welche sehr beliebt sind.

Webentwicklung

Das bekannteste Bindeglied ist allerdings das Internet. Zunächst für den Austausch von Informationen gedacht, werden mittlerweile sogenannte Webapplikationen entwickelt, die über eine URL im Internet erreichbar sind und im Browser einfach ausgeführt werden können. Unabhängig vom Prozessor und Betriebssystem: Wo ein moderner Browser mit Internet läuft, lässt sich auch eine Webapplikation starten. Am Anfang waren diese noch etws träge, da Internetgeschwindigkeit und die Programmausführung im Browser noch nicht so performant war. Mittlerweile kann man fast jede Aufgabe über eine Webapplikation lösen und es gibt Frameworks wie Electron, die es erlauben Webapps in einer Browserartigen Umgebung zu starten ohne, dass die Anwendung nach Browser aussieht und aber auch offline ausgeführt werden kann. Warum diese Fakten so interessant für die Entwicklung von Apps sind erfährst du gleich.

Mobilgeräte: Hersteller, Plattformen, Programmiersprachen

Wechseln wir nun zu den eigentlichen Geräten. Wie beim PC gibt es hier ähnliche Voraussetzungen, allerdings sind diese bis heute etwas strikter. Die Hersteller achten ganz peinlich drauf welche Software in deren AppStores kommen, und schmeißen die Apps raus, die sich nicht an die Regeln halten. Um so ärgerlicher, wenn man genau für die eine Plattform eine App entwickelt hat und diese dann verbannt wird, auch wenn das Risiko dafür gering ist. Für jede Plattform entwickelt man dann also mit einer anderen Programmiersprache ein und dieselbe App. Doppelt und dreifacher Aufwand und noch mehr wenn man dazu auch noch eine Webapp für den Browser anbieten möchte. Dabei gibt es doch auch einen Browser auf den Mobilgeräten? Warum kann man nicht einfach die Webapp auf dem Mobilgerät nutzen?
Wir haben festgestellt, dass wir mit den Browsertechnologien Webapplikationen erstellen können und dass es Frameworks gibt, die das ganze vereinfachen. Die Webapps sehen dann wie echte Desktopanwendungen aus.
Ist doch klar, dass es im App-Bereich ebenfalls solche Frameworks gibt. Frameworks wie Apache Cordova, React Native oder Xamarin versprechen genau das, was auch auf dem Personal Computer schon lange funktioniert. Und mit Apache Cordova haben wir ebenfalls ein Framework welches auf Webtechnologien setzt, wie zum Beispiel Electron und Node.js. Das ist doch mal einen Blick wert.

Die Idee: Baue eine Webapp für dein Mobilgerät

Erstelle eine Webapp, die für dein Smartphone optimiert ist und dann kommt Apache Cordova zum Einsatz. Wenn du noch keine Webapp hast, dann kannst du diese natürlich direkt in Cordova erstellen, aber das ist jetzt nicht so wichtig. Die Idee mit der Webapp bleibt.

Was macht Apache Cordova?

Übersicht zur Funktionalität von Apache Cordova. Von der Webapp bis zur fertigen App.

Grobe Funktionsweise von Apache Cordova

Apache Cordova stellt Rahmenapps für die jeweiligen Plattformen zur Verfügung. Diese Rahmenapps starten dann in einem Webview deine Webapp. Kein Browsergedöns drumherum, sondern echtes Look’n’feel wie in einer App. Auch der obligatorische App-Button kann auf dem HomeScreen hinzugefügt werden und ja, die Apps können in die AppStores hochgeladen werden. Cordova unterstützt alle gängigen Plattformen, also von Android über iOS bis hin zu Windows Phone. Zusätzlich dazu kann man auch die Funktionen der Geräte nutzen, in dem man Plugins oder Browsertechnologien verwendet. So kannst du Funktionen nutzen, die andere Entwickler ebenfalls schonmal benötigt haben, zum Beispiel das hervorragende Local Notification Plugin von appPlant (welches wir in unserem Appkurs verwenden werden).

Bei der Performance muss man hingegen etwas vorsichtig sein, denn hier ist man auf einem Mobilgerät unterwegs, welches nicht die volle Rechenpower eines Notebooks mitbringt. Das gilt aber auch für andere Frameworks. Zu guterletzt ist Apache Cordova ein Open Source Projekt, das bedeutet jeder Entwickler kann dort mitwirken und mitentwickeln. Das gilt auch für die Plugins. Ist dir Apache Cordova zu langsam oder fehlt dir ein Plugin? Dann kannst du Apache Cordova erweitern und musst auf nichts verzichten.

Besonders in der Anfangsphase einer App, wenn man absolut noch keine Ahnung hat, wer die Zielgruppe ist und auf welcher Plattform diese unterwegs ist, lohnt es sich einen Blick auf Apache Cordova zu werfern. Auch Programmieranfänger, die etwas für JavaScript übrig haben, werden hier auf ihre Kosten kommen. Denn der Vorteil, das alles mit nur einer Programmiersprache zu bewerkstelligen, darf einfach nicht übersehen werden. Die Installation bei solchen Frameworks ist etwas knifflig, denn man benötigt dennoch die jeweiligen Development Kits der Hersteller auf seinem Rechner.

4 Schritte zu deiner App mit Apache Cordova
Egal ob du deine App-Idee verwirklichen willst, oder noch gar nicht weißt wie deine eigene App später aussehen soll. Die Einarbeitung in Apache Cordova ist ein Muss für jeder zukünftigen App-Entwickler. Anbei die 4 Schritte, die du durchgehen musst um deine erste eigene App mit Cordova zu programmieren:
  1. Voraussetzungen erfüllen: Du solltest dich etwas mit JavaScript, HTML und CSS auskennen, damit du mit Cordova starten kannst, denn die Grundlage für deine Apps sind Webapplikationen. Frontendentwicklung ist dafür dein Stichwort (den notwendigen Einstieg dazu findest du hier).
  2. Einrichtung: Jetzt benötigst du eine funktionierende Entwicklungsumgebung mit Node.js. Dann kannst du Apache Cordova installieren und mit der Entwicklung starten.
  3. Entwicklung: Für die Entwicklung musst du dich mit Apache Cordova und deren Plugins beschäftigen, die Dokumentation ist dabei dein bester Freund. Kurse & eBooks helfen dir, das notwendige Wissen schneller zu erlangen und mehr Erfahrung zu sammeln. Wenn du erstmal Cordova beherrschst, dann entwickelst du deine Webapp und kannst diese als App testen.
  4. Test & Release: Für das Testen und das Release muss du die jeweiligen Softwarepakete installieren, für die Plattformen für die du deine App anbieten willst. Bei Android ist das zum Beispiel, das Android Studio und das Android SDK. Für das Release selbst musst du dich dann für die jeweiligen AppStores registrieren, hier muss man aufpassen, denn manche App Stores verlangen dafür einmalig (Google Play Store) oder jährlich (Apple App Store) eine Entwicklergebühr.
Diese Schritte auf eigene Faust zu unternehmen ist schon eine Herausforderung, auch wenn man bereits etwas Erfahrung hat. Zu empfehlen ist es sich hier noch externe Informationen dazuzuholen. Wie man die Entwicklungsumgebung für Android einrichtet und dann mit Apache Cordova eine passende App erstellt, lernst du in unserem Kurs zur App-Programmierung mit JavaScript und Apache Cordova. Dort erstellen wir gemeinsam 11 Apps und gehen durch alle Fallstricke, die man bei der Entwicklung von Apps mit Cordova durchlebt. Nach diesem Kurs kannst du deine eigene App programmieren und im App Store veröffentlichen.

Fazit

Das Web wird immer mächtiger und JavaScript beherrscht schon lange die Browser dieser Welt. Nach Serverseitiger Programmierung mit JavaScript ist nun auch die Zeit gekommen, dass man auch Apps mit JavaScript erstellen kann. Wenn man die eigene App veröffentlichen will, dann sollte man bereit sein etwas Zeit und Geld zu investieren. Zeit in die Einarbeitung und Geld für passende Geräte sowie die Entwicklergebühr in den Stores. Da nimmt man gerne jede hilfreiche Abkürzung mit. Hast du bereits mit Cordova eine App erstellt? Ich würde mich freuen diese zu sehen und möchte hier drüber schreiben (schick mir dann mal eine E-Mail an support@lerneprogrammieren.de). Wenn du eine App programmieren willst und dich nicht auf eine Plattform beschränken möchtest, dann schau dir mal unseren Kurs zur App Programmierung mit JavaScript und Apache Cordova an. Viel Erfolg!
Die eigene App programmieren

Die eigene App programmieren – Der Einstiegsratgeber

Die eigene App programmieren
Du möchtest also eine App programmieren und diese dann in einem AppStore deiner Wahl veröffentlichen. Du möchtest das natürlich so schnell wie möglich tun, richtig? Wer hat schon Zeit sich lange Tutorials anzuschauen und sich dann mit Problemen rumzuschlagen, die nicht im Tutorial beschrieben wurden. In diesem Artikel erfährst du alles um den nächsten Schritt zu deiner ersten eigenen App zu machen. Was musst du lernen? Welche Plattformen muss man beachten? Kann man sich die Arbeit vereinfachen und wenn ja, wie? Egal ob du bereits Programmiererfahrungen hast oder nicht. Du hast es eilig? Dann schau am besten direkt in diesen Artikel über Apache Cordova.

Was sind Apps?

Apps sind eigentlich stinknormale Computerprogramme, die allerdings auf einem mobilen Gerät ausgeführt werden. Diese haben die Besonderheit, auf die Sensorik und Hardware des Geräts zugreifen zu können. Dafür stellen die Hersteller sogenannte Programmierbibliotheken zur Verfügung. Damit kann man relativ einfach (relativ, weil man technisches Verständnis aufbauen muss) die Hardware in seiner eigenen App verwenden. Ein Merkmal, dass bei Apps besonders heraussticht ist der Touchscreen. Programmierer müssen ihre Apps darauf auslegen, dass sie über einen kleinen oder auch großen Bildschirm benutzt werden können. Webseiten und App müssen sich der Größe des Bidlschirms anpassen. Wenn dies erfüllt wird ist eine App oder eine Webseite responsive. Heutzutage ist diese Anforderung eigentlich Quasi-Standard. Die Erstellung von Apps kann von jedem gemacht werden, der Programmieren gelernt hat und sich die Technologien für Appentwicklung aneignet. Allerdings gibt es auch hier ein paar Unterschiede, denn je nach Hersteller und Betriebssystem muss man tatsächlich eine eigene App schreiben.

Für welche Plattformen kann man Apps entwickeln? Was ist zu beachten?

Eine App zu schreiben und die eine App dann für alle Geräte zur Verfügung stellen ist leider nicht so einfach, wie man es sich vorstellt. Dadurch dass die Hersteller unterschiedliche Betriebssysteme programmiert, die nicht kompatibel zu einander sind, muss man für jeden Hersteller eine eigene Programmiersprache und eine eigene Programmierumgebung erlernen. Für einen Anfänger eine bittere Pille, möchte man doch mit seiner ersten App möglichst viele Bereiche abdecken. Es gibt noch einen Weg, denn du später in diesem Artikel erfährst. Kommen wir zu den einzelnen Herstellern:

Android

Google’s Android ist eins der meistgenutzten Betriebssysteme für mobile Geräte. Viele Hersteller wie Samsung, HTC, etc. produzieren ihr Geräte mit Android. Es gibt den sogenannten Play-Store direkt von Google in dem man die Apps findet und auf dem eigenen Gerät installieren kann. Es gibt noch weitere Stores in denen man Apps erhält. So hat meist jeder Hersteller einen eigenen Store und auch große Unternehmen wie Amazon haben eigene Stores für Apps. Um eine App in so einem Store zu veröffentlichen muss man sich als Entwickler anmelden. Bei Google kostet das eine einmalige Gebühr und dann kann man seine Apps dort zum Download oder zum Verkauf anbieten. Verkauft man seine App, behält der Storebetreiber meist eine kleine Provision ein. Um für die Android Plattform zu entwickeln benötigt man Java-Kenntnisse und das Android SDK. Hat man das installiert, kann man im Prinzip loslegen.

iOS

Apple’s iOS ist das Betriebssystem für die iPhones, iPads und iPods (und was es sonst noch mobiles mit i… von Apple gibt). Es gibt keinen Hersteller, der dieses Betriebssystem nutzt, außer Apple selbst. Die Apps erhält man über den sogenannten AppStore bzw. iTunes. Um Apps in diesen Store einzustellen muss man sich ebenfalls als Entwickler (Apple Developer Programm) registrieren und zahlt eine jährliche Gebühr dafür. Auch fallen beim Verkauf von Apps Provisionen an Apple an. Um die Apps zu entwickeln benötigt man einen Apple Computer mit Mac OSX, denn nur darauf läuft die Programmierumgebung XCode. Programmieren kann man das ganze nun entweder mit Objective-C oder den neuen Apple-eigenen Programmiersprache Swift. Man kommt leider um den eigenen Mac nicht drumherum, wenn man mit diesen Sprachen entwickeln möchte. Es gibt zwar Möglichkeiten das Betriebsystem auch ohne Mac zu betreiben, allerdings ist dafür viel technisches Know-How notwendig. Somit ist der Einstieg an der Stelle recht kostspielig, wenn man noch nie in die Apple-Umwelt eingetaucht ist.

Andere Plattformen

Es gibt aber auch noch andere Player auf diesem Markt. Von Blackberry bis zu Windows Phone gibt es verschiedene Betriebssysteme. Alle haben ihre eigene Programmierumgebung, nutzen eine andere Programmiersprache und haben auch eigene Stores in denen die Apps angeboten werden.

Was muss ich dafür lernen?

Soviele verschiedene Hersteller, Programmiersprachen, Betriebssysteme, da wird auch dem Profi schnell schwindelig. Jede Sprache und Bibliothek ist anders aufgebaut und im Prinzip muss man überall Besonderheiten beachten. Mal davon abgesehen, dass man zum Testen auch mal die Geräte vor Ort haben sollte. Möchte man nun in die Entwicklung einsteigen, ist aber noch ein totaler Anfänger, was Programmierung überhaupt angeht, wird man nicht drumherum kommen  sich mit einer Programmiersprache vertraut zu machen. Dazu kommen wir gleich noch. Ersteinmal sollst du die Unterschiede bei den Apps selbst kennenlernen.

Native Apps

Native Apps sind mit der Programmiersprache des Herstellers geschrieben, siehe Abschnitt über die Plattformen. Lernen musst du zunächst das Programmieren und das am besten in der jeweiligen Sprache für die du eine App programmieren willst. Für jede Plattform die jeweilige Sprache und Umgebung. Ob dir diese Arbeit was wert ist ist eine andere Frage. Das muss sich schon ziemlich lohnen.

Baukasten Apps

Es gibt mittlerweile ein Riesenangebot an sogenannten App-Baukästen. Man klickt sich die App quasi zusammen anstatt zu programmieren. Sowas ähnliches gibt es auch für Webseiten. Die meisten Baukästen kosten eine monatliche Gebühr. Der Funktionsumfang solcher Apps ist allerdings eingeschränkt. Sobald du speziellere Dinge machen möchtest, musst du entweder die Spezialentwicklung beim Anbieter beauftragen (was sehr teuer werden kann) oder du fängst wieder bei 0 an und muss das ganze selbst nochmal programmieren. Für ganz kleine Standarddinge funktioniert es, kann aber schnell in doppelten Aufwand enden.

Web Apps (oder HTML5-Apps)

Wer nur ungern Dinge doppelt und dreifach schreibt und sich direkt zum Anfang nicht mit den unterschiedlichen Programmiersprachen der verschiedenen Hersteller rumschlagen möchte, greift zu dieser Lösung. Mit Webtechnologien kann man auch ganze Anwendungen schreiben. Und überall wo ein moderner Browser ausgeführt werden kann, kann auch ein Webbasiertes Programm ausgeführt werden. Es gibt tolle Bibliotheken, wie Apache Cordova, mit denen man eine webbasierte App programmieren kann und quasi dieselbe Funktionalität nutzen kann, die man von nativen Apps kennt. Sogar in die AppStores lassen sich diese Apps bringen. Das coole: Man entwickelt quasi eine normale responsive Webanwendung und kann diese mit ein paar Anpassungen zur vollfunktionsfähigen App umbauen. Die App sieht auf allen Plattformen gleich aus. Man lernt zunächst nur eine Programmiersprache (Javascript) und kann damit fast alles bauen, was du dir vorstellen kannst. Für jemanden der anfängt und noch nicht so richtig weiß, was er eigentlich bauen möchte ist das ideal.

Kann ich meine App auch auf dem Computer/Notebook anbieten?

Im nativen Bereich gibt es eigentlich ein klares Nein. Vielleicht ist es möglich eine iOS App auch auf einem Mac auszuführen, aber ich kennen keine der das schonmal probiert hat. Das heißt, möchtest du eine App coden, die man im Zweifel auch am „großen“ Computer benutzen soll, solltest du dir zusätzlich eine Programmierumgebung suchen, neben der du auch deine Apps schreiben kannst. Richtig, noch eine Programmiersprache/Programmierumgebung und alles was dazu gehört.
Wäre es nicht ideal, wenn man alle Programme mit nur einer Sprache erstellen könnte? Für den Einstieg ist das eine super Sache, wobei man dazu sagen muss, sobald es speziell wird oder die Anforderungen an die Performance steigen, sollte man genügend Manpower aufbringen und nativ entwickeln.

Das heißt ich muss alles doppelt schreiben? Muss ich mich für eine Plattformen entscheiden?

Android App

Soundboard als Android App

Webapp im Browser

Soundboard im Browser als Webapp

Mit einem starken Entwicklerteam ist es sicherlich kein Problem gewisse Dinge für die jeweiligen Plattformen doppelt zu schreiben. Nun hat aber ein Anfänger keine 5-köpfige Crew. Also stehst du vor der Wahl. Deine Apps soll auf allen Plattformen laufen, also quasi
3 Mal lernen und schreiben. Oder du machst die App nur für eine Plattform. Oder du lernst Apache Cordova und bekommst für den Anfang eine ganze Menge
geschenkt. Das schönste: Du entwickelst deine Webapp ganz normal am Computer und kannst alle Funktionen ohne die Notwendigkeit eines mobilen Gerätes testen. Erst wenn du dich an die Anpassungen für die mobile Version machst, nutzt du den Emulator oder lädst deine App auf das Smartphone. Und wenn du fertig bist, hast du eine App für mobile Geräte und eine Anwendung für den Computer. Ich habe ein Beispiel vorbereitet, hier siehst du ein Soundboard welches ich für meinen Verein entwickelt habe und dazu die Androidversion.

Kann ich mit meiner ersten programmierten App Geld verdienen und reich werden?

Auch wenn ich die Motivation toll finde und selbst kenne, die man am Anfang hat. Aber leider muss man am Anfang sagen, dass die ersten Programme nicht überzeugen werden. Mein Rat: Fange nicht direkt mit deiner fetten Idee an, denn die wird schnell erschlagen und lähmen. Starte mit kleinen Miniprojekten, wie z.B. in unseren Tutorials. Erst dann nimm dir eine winzig kleine Funktionalität aus deiner Idee, die du eigentlich programmieren möchtest und setze diese Minifunktion in einem eigenen Programm um. Nur so erhöhst du die Chance überhaupt mal etwas Geld für deine App zu kassieren. Das ganze drumherum mit Marketing etc. nicht eingeschlossen.

 

Das brauchst du für deinen Start und so startest du durch:

Mein Vorschlag an dich: Wenn du noch gar keine Ahnung von Programmieren hast, dann starte mit der Webentwicklung und mit Javascript. Damit kannst du die Grundlagen erlernen und kannst diese Sprache weiter verwenden. Mit Javascript lässt sich nämlich eine ganze Menge erledigen. Bist du dir unsicher arbeite mal dieses Tutorial durch. Solltest du damit nicht klar kommen, musst du wesentlich früher anfangen. Dann bist du definitiv ein Kandidat für unseren Einsteigerkurs. Solltest du bereits mit Webtechnologien umgehen können, dann schau dir mal unseren Artikel zu Apache Cordova an.
Programmiersprachen und Bibliotheken am Beispiel App Programmierung

Programmiersprache und Bibliotheken – Beispiel: App programmieren

Hier möchte ich dir das Beispiel zeigen wie du Apps programmieren kannst. Wenn du erstmal die Grundlagen drauf hast, ist dies das einfachste überhaupt! Wie ich dir bereits erklärt habe, ist es egal in welcher Sprache du die Grundelemente erlernt hast. Wichtig ist, dass du nun auf die Programmiersprache umschwenkst, mit der du deine erste App programmieren willst. Du sollst hier die Schritte lernen die nötig sind um deine App zu programmieren. Wichtig: Erst die Grundlagen lernen! Danach erst hier weitermachen! Hier kannst du die Grundlagen lernen

Die Programmiersprache und das Betriebssystem

Wenn du eine App erstellen willst, musst du dich für eine Programmiersprache entscheiden und die Grundelemente erstmal in dieser Sprache erlernen. Wenn du für Android entwickeln willst, ist deine nächste Sprache Java. Was Android ist? Android ist Google’s Betriebssystem für mobile Computer. Quasi das Windows für dein Smartphone. Genauso wie man für Windows Anwendungen programmieren kann, kann man für Android Apps programmieren. Java ist die Sprache für Android. Möchtest du lieber für das iPhone von Apple Apps erstellen, ist das Betriebssystem iOS und die Sprache die du lernen musst ist Objective-C. Ich werde im folgenden nur auf die Android-Plattform eingehen. Möchtest du eher generelle Informationen für den Anfang schaust du mal in unseren Ratgeber zum App programmieren.

Klassen und Objekte

Was du eventuell bis jetzt noch nicht gelernt hast, sind Klassen und Objekte. Alle modernen Programmiersprachen nutzen heutzutage die Objektorientierte Programmierung. Ein Bestandteil der Objektorientierten Programmierung sind Klassen und Objekte. Ich erkläre dir einmal das Objekt. Ein Objekt ist die Abbildung der realen Welt in deinem Programm. Es ist Anfangs etwas knifflig zu verstehen, aber mit der Zeit kommt die nötige Übung. Ich nenne dir ein Beispiel für ein Objekt. Ein Auto ist zum Beispiel ein Objekt. Ein Auto hat 4 Räder, je nach Modell hat es 3-5 Türen. Es kann fahren und lenken. Außerdem hat es eine Lackierung in einer bestimmten Farbe. Wenn du das Auto in deinem Programm benutzen willst, musst du  ein Objekt erstellen. Ok, und was ist die Klasse? Damit du dein Auto-Objekt herstellen kannst brauchst du einen Bau- bzw. Konstruktionsplan. Oder einfach eine Anleitung wie das Auto zusammengeschraubt wird. Diese Anleitung nennt sich Klasse. Also um ein Objekt zu erstellen benötigst du eine Klasse.

Bibliothek

Du kannst das Rad nicht neu erfinden. Manche probieren es, aber meist kommt dabei nur ein eckiges Rad bei raus. Worauf ich hinaus will: Du musst nicht alles was du programmieren musst, selbst und neu schreiben. Viele der Dinge die du benötigst, liegen bereits vorgefertigt in Bibliotheken. Das heißt du musst lediglich wissen, wo die passenden Features bereits liegen und wie man diese verwenden kann. Dafür musst du die Inhalte der Bibliothek lernen oder immer in der Dokumentation suchen. Die Bibliothek für Android Apps enthält zum Beispiel folgende Funktionsbereiche:

  • App Components: Alle grundlegenden Funktionen für eine App auf einem Mobilgerät, diese brauchst du um überhaupt eine App auf deinem Smartphone zu starten
  • App Resources: Resources sind alle Daten die deine App schicker machen. Mit diesen Funktionen lädst du Bilder, externe Daten usw.
  • User Interface: Alle Steuerelemente die im Basis Android System vorhanden sind, kannst du in diesem Bereich nutzen.
  • Animation und Graphics: Egal ob du Spiele oder einfach nur eine schöne App programmieren willst, hiermit kannst du Animationen und Grafiken auf den Bildschirm zaubern
  • Computation: Für Berechnungen die über die normale Rechenleistung hinaus gehen
  • Media und Kamera: Hiermit kannst du Medien wie Fotos, Video und Audio zu deiner App hinzufügen.
  • Location und Sensor: Du möchtest GPS in deiner App benutzen? Oder die App abhängig von der Temperatur steuern? Hiermmit hast du Zugriff auf alle Sensoren deines mobilen Gerätes
  • Connectivity: Mit anderen Geräten kannst du hierüber eine Verbindung aufbauen. Ob per Bluetooth, NFC oder einfach nur Wi-Fi.
  • Text und Input: Deine App muss auch Tastatureingaben abkönnen. Hier kann du auch Spracheingaben oder andere ähnliche Funktionen benutzen.
  • Data Storage: Ob als Datei oder irgendwie in die Cloud. Manche Daten müssen dauerhaft gespeichert werden, hier findest du die passende Funktionalität.
  • Web Apps: Es gibt Fälle in denen es sinnvoll ist eine App als Webapp zu erstellen, da man hier mehr plattformunabhängigkeit hat.

Dazu kommen noch weitere Bibliotheken, wenn du mehr Funktionalität brauchst als dir das Android SDK bietet. Wenn du mit Java arbeitest kommen als Grundlage das Java SE (Java Platform, Standard Edition) dazu. Diese bietet Standardfunktionen an. Bei Java nennen diese Bereiche sich Packages (Pakete).

  • Standard Funktionen
    • java.lang: Alle Sprachbestandteile von Java
    • java.io: Funktionen für Eingabe und Ausgabe
    • java.nio: Neue Funktionen für Eingabe und Ausgabe
    • java.math: Mathematische Funktionen wie Rundung
    • java.net: Netzwerkfunktionen
    • java.text: Funktionen für den Umgang mit Text, also Strings
    • java.util: Datenstrukturen wie Container
  • Spezialfunktionen
    • java.applet
    • java.beans
    • java.awt
    • java.rmi
    • java.security
    • java.sql
    • javax.swing
    • javax.xml

Das ist schon eine Menge Zeug, aber lass dich davon nicht abschrecken. Das ganze sieht auf den ersten Blick kompliziert aus, allerdings wirst du Anfangs nicht alle Funktionsbereiche benötigen. Ich selbst nutze bis heute vielleicht 20% der ganzen Bibliothek. Wichtig ist, dass man weiß wie man in der Bibliothek suchen kann. Denn nur so kannst du herausfinden ob eine bestimmte Funktionalität bereits vorhanden ist. Aber das ist noch nicht alles! Nur die Sprache und die Bibliothek alleine helfen dir nicht.

Entwicklungsumgebung und „Hello World“

Damit du überhaupt loslegen kannst, solltest du deinen Code auch irgendwo eingeben können, richtig? Also brauchst du eine Umgebung in der du deine App entwickeln kannst. Diese nennt sich Entwicklungsumgebung. Diese Umgebung hilft dir, deinen Quelltext in die passende Maschinensprache umzuwandeln und dann auch auszuführen. Für die Entwicklung von Android Apps gibt es verschiedene Entwicklungsumgebungen (Abgekürzt IDE).

  • Eclipse mit ADT Plugin
  • Android Studio

Der Vorteil, beide IDEs sind kostenlos erhältlich und man kann seine Apps auch direkt auf das eigene Smartphone übertragen. Somit kann man die eigene App gleich ausprobieren. Der letzte Schritt, der dir jetzt noch fehlt ist der Test ob das ganze Ding auch wirklich funktioniert. Bestimmt hast du es in irgendeinem Tutorial bereits gesehen, die obligatorische „Hallo Welt!“-Anwendung. Diese Anwendung ist dein Beweis, dass die Entwicklungsumgebung korrekt funktioniert und du deine App ausführen kannst. Ab der Stelle lassen dich dann viele Tutorials im Stich, denn danach musst du selbst wissen was du tust. Aus diesem Grund ist es auch hier wieder ungemein wichtig, dass du die Grundelemente bereits erlernt hast. So gibt es auch für Android ein Tutorial, wie man die IDE einrichtet und die erste Hello World-App startet.

Fazit

Hast du diese weiteren Schritte durchgeführt, bist du bereits in der Lage eine kleine App nach deinen Vorstellungen zu programmieren. Auch hier gilt: Dieser Prozess kann je nach Teilnehmer Wochen und Monate dauern, besonders wenn der Teilnehmer meint, wichtige Grundlagen zu überspringen. Ich kann dich wirklich an der Stelle nochmal warnen, lerne ERST die Grundlagen, danach kommt der witzige Teil. Hast du hier alle Schritte durchgeführt und hälst deine erste eigene App in den Händen (also auf deinem Smartphonebildschirm), kannst du weitermachen mit der professionellen objektorientierten Programmierung.