21

Die eigene App programmieren – Der Einstiegsratgeber

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.

  • 27. Juli 2017
Klicke hier, um einen Kommentar hinzuzufügen 21 Kommentare
Waldemar Cichon - 24. Dezember 2017

Ich vermisse schmerzlich einen Hinweis auf Xamarin.
Und die heute aktuellen Trends bei hybriden Apps.
Sowie die korrekte Benennung, denn WebApps sind heute Bezeichnungen für komplexe HTML-JS-Seiten, die dennoch vom Server geladen werden. Die Apps werden als hybride Apps bezeichnet.

Antworten
    Arek - 26. Dezember 2017

    Hallo Waldemar,
    frohe Weihnachten noch! 🙂
    Stimmt, Xamarin fehlt an dieser Stelle, habe bisher allerdings auch keine Erfahrung damit gemacht. Vielleicht kannst du ja ein paar Sätze dazu schreiben? Können das gerne vorab per Mail klären, schreib mir einfach.
    Du hast auch mit den Hybriden Apps recht. Die Webapps können, wie man auf dem Bild sieht, ja auch als tatsächliche Webapp in jeden Browser laufen gelassen werden. Aus dem Grund habe ich den Begriff weiter verwendet und anscheinend bin ich nicht der einzige. Letztendlich interessiert es die meisten Einsteiger nicht, ob es nun HybridApp oder Webapp heißt.

    Bei den aktuellen Trends fallen mir spontan die PWAs (Progressive Webapps, übrigens wurde auch hier die Benennung geändert 😉 ) ein, welche Trends hast du gemeint?

    Beste Grüße und noch einen schönen Feiertag
    Arek

    Antworten
      Deltona - 22. April 2018

      Kann man auch mit C++ über Xamarin/visual studio apps entwickeln ? Hab nur gehört es geht nur mit C#

      Antworten
        Arek - 22. April 2018

        Geht bestimmt, ist halt die Frage ob man sich die Arbeit machen will. Wenn C++ nicht unterstützt wird, hat das sicherlich einen Grund. Was gewinnst du mit C++ anstatt C#? Wenn es lediglich die Sprache ist, dann würde ich empfehlen eher C# zu lernen und dann damit zu arbeiten. Wenn du bereits mit C++ arbeiten kannst, wirst du einfach in C# reinkommen. Habe einen recht alten und technischen Artikel zum Thema Xamarin und C++ gefunden: https://blogs.msdn.microsoft.com/vcblog/2015/02/23/developing-xamarin-android-native-applications/
        Für Anfänger sicherlich nicht das einfachste, das hört sich selbst für mich schon wie Gefummel an. In den Kommentaren wurden viele Fehler gepostet, also bezweifle ich, dass dies einfach mal so geht. Habe mich damit bisher auch nicht mit beschäftigt, da ich eher die Webschiene mit Apache Cordova bevorzuge. 😉
        Beste Grüße
        Arek

        Antworten
Stephan K. - 23. Februar 2018

Oh man, das sieht echt kompliziert aus! Ich habe bis jetzt erst ein paar Erfahrungen mit HTML und PHP, aber ich denke, das übersteigt mein Können bei Weitem! Ich bedanke mich aber auf jeden Fall für den Tipp mit den Baukasten Apps, ich werde auf jeden Fall mal gucken, ob die für mein Vorhaben ausreichen. Wenn nicht muss ich wahrscheinlich darauf ausweichen, Geld in die Hand zu nehmen. Ich hatte da ein Webentwicklungsbüro aus Berlin ( tenmedia.de/ ) im Sinn, weil man die mit diesen Kryptocurrencys bezahlen kann und ich eh noch welche von vor 4/5 Jahren rumliegen habe und nicht weiß was man damit anfangen soll. Kaufen kann man damit ja sonst nichts.

Eine kleine Frage noch: Ist es überhaupt möglich, ein Forum in eine App zu übersetzen? Und brauche ich dafür einen Server?

Antworten
    Arek - 26. Februar 2018

    Hallo Stephan,
    ob man ein Forum einfach so in eine App übersetzen kann, hängt ganz stark vom eingesetzten System und der Forentechnologie ab. Wurde dort bereits Responsive gearbeitet, würde ich die Chancen höher einschätzen, aber das müsste man sich genauer anschauen. Einen Server wirst du definitiv benötigen.

    Beste Grüße
    Arek

    Antworten
Marco - 25. Februar 2018

Toller Artikel für Einsteiger wie ich! Vielen Dank!

Antworten
    Arek - 26. Februar 2018

    Danke für das Kompliment!

    Antworten
Daniel - 27. Juni 2018

Es wäre interessant, mal einen Überblick über die ganzen verschiedenen Frameworks für die Entwicklung von Web Apps zu bekommen, wie Meteor usw. Inwiefern braucht man dabei sowas wie React, Vue oder Angular? Oder überhaupt?

Antworten
    Arek - 22. Juli 2018

    Hi Daniel,

    vielen Dank für deine Rückmeldung. Ich werde mal einen Artikel mit einem Überblick einplanen!

    Beste Grüße
    Arek

    Antworten
Ibtihal - 22. August 2018

Ich will eine app machen

Antworten
    Arek - 7. September 2018

    Hey,

    das freut mich! Am besten startest du dafür mit dem Programmiergrundlagen, wenn du diese nicht schon drauf hast!

    Beste Grüße
    Arek

    Antworten
samet - 13. Januar 2019

hallo ich möchte eine app in play store reinstellen aber davor natürli ch programmieren.

Antworten
Diamant - 15. Januar 2019

Hallo Zusammen,
ich will eine App programmieren mit der ein Benutzer Dokumenten scannen/photographieren und auf ein Cloud-Server für einen Austauch speichern kann. aber ich weiß nicht wo ich anfangen soll.
Mit C++, C, Java, JavaSript kann ich programmieren.

Vielen Dank
Damant

Antworten
Cornelia Fiechtl - 17. Mai 2019

Liebes Programmier-Publikum,
ich suche jemanden der mit mir gemeinsam eine App entwickeln will in Form einer Kooperation. Ich habe habe ein paar Ideen wie das Geschäftsmodell aussehen kann. Ich habe die Inputs und suche einen Umsetzer der sich probieren und mitmachen möchte.
Liebe Grüße!
mail@corneliafiechtl.at

Antworten
Arek - 18. Juni 2019

Hallo Cornelia,
ich wünsche dir viel Erfolg beim finden einer Kooperation, anbei ein paar Tipps die man dabei beachten sollte: https://lerneprogrammieren.de/du-hast-also-eine-software-idee/

Beste Grüße
Arek

Antworten
Bea - 27. Juni 2019

Hallo, erstmal danke für die Artikel. Ich bin dabei eine hybride App aus einer Webseite zu entwickeln, bzw. sammele Informationen über alles was ich dafür brauche. Ich habe einiges gelesen und recherchiert und sogar installiert, aber ich bin etwas verwirrt, vielleicht kanns du mir helfen zu verstehen, wie die Wartung der Daten läuft. Veränderung von Daten auf der Webseite werden automatisch auf der App erfolgen? oder müssen diese Veränderungen auf beide Systemen angepasst werden?

Antworten
    Arek - 1. Juli 2019

    Hallo Bea,
    es kommt drauf an, wie die Daten grundsätzlich verwaltet und geladen werden. Wenn die Daten fest in der App integriert sind, muss die App bei jeder Änderung aktualisiert werden. Befinden sich die Daten auf einem Webserver, benötigt die App zwar eine Internetverbindung, dafür können die Daten aber auf dem Server gewartet werden.

    Wenn du weitere Fragen dazu hast, schreib uns einfach eine Mail an support@lerneprogrammieren.de

    Beste Grüße
    Arek

    Antworten
Laura Marie V.Schenck - 7. Juli 2019

Liebe Cornelia,
Ich habe einige tolle App Vorschläge. Ich finde es sehr toll das du Soooooooooo tolle artikel hergestellt hasst. Auf jedenfall würde ich mich sehr freuen wenn ich mit dir eine App entwickeln dürfte wehre das soooooooooooooooooooooooooooooo toll. Viele Grüße Laura.

Antworten

Kommentar verfassen: