31

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 Anfängerkurs. Solltest du bereits mit Webtechnologien umgehen können, dann schau dir mal unseren Artikel zu Apache Cordova an.

  • 27. Juli 2017
Click Here to Leave a Comment Below 31 comments
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.

Reply
    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

    Reply
      Deltona - 22. April 2018

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

      Reply
        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

        Reply
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?

Reply
    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

    Reply
Marco - 25. Februar 2018

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

Reply
    Arek - 26. Februar 2018

    Danke für das Kompliment!

    Reply
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?

Reply
    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

    Reply
Ibtihal - 22. August 2018

Ich will eine app machen

Reply
    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

    Reply
samet - 13. Januar 2019

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

Reply
    Arek - 13. Januar 2019

    Hallo Samet,

    das freut mich, ich schlage dir vor, dass du einfach mal in den Anfängerkurs reinschaust https://lerneprogrammieren.de/testzugang/ um Programmieren zu lernen.

    Beste Grüße
    Arek

    Reply
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

Reply
    Arek - 29. Januar 2019

    Hallo Damant,

    ich habe deine Frage Live auf #FragArek beantwortet, hier findest du die Aufzeichnung dazu: https://www.youtube.com/watch?v=iViAr2WWF6U

    Wenn du weitere Fragen dazu hast, schick uns einfach eine Mail an support@lerneprogrammieren.de Viel Spaß beim Zuschauen!

    Beste Grüße
    Arek

    Reply
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

Reply
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

Reply
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?

Reply
    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

    Reply
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.

Reply
Leon Alpay Schröder - 3. November 2019

Du hast dir sehr viel Mühe mit dem Artikel gegeben vielen Dank dafür

Reply
    Arek - 4. November 2019

    Danke für das Kompliment!

    Reply
Felix - 11. Oktober 2020

Ich plane schon etwas länger ein Spiel mit sehr vielen Deteis mit meinem Freund .
Die Figuren sollen möglichst echt aussehen und es soll so ähnlich wie bei Coc sein
kannst du mir dafür eine kostenlose Seite emphelen worauf man ein gutes Spiel progamieren kann?

Reply
    Arek - 12. Oktober 2020

    Hallo Felix,
    schau doch unter unseren kostenlosen Ressourcen nach: https://lerneprogrammieren.de/start

    Wenn du weitere Fragen hast, schick mir eine Mail an support@lerneprogrammieren.de
    Beste Grüße
    Arek

    Reply
Max Pfander - 16. Mai 2021

ganz kleine frage wo programmiert man seine Apps ?

Reply
    Arek - 17. Mai 2021

    Hi,
    in einem Texteditor oder einer IDE wie Visual Studio Code, Android Studio oder XCode.
    Beste Grüße
    Arek

    Reply
Mick - 23. Juli 2021

Hey Arek,

Dein echt spannender und ausführlicher Text ist ja jetzt schon ein bisschen älter. Toll, dass Du immer noch die Kommentare supportest. Für beides: 1000 Dank!

Hat sich mittlerweile Neues getan? Ich würde einfach „zur Gaudi“ gerne App-Programmierung lernen. Außer ein paar Basics-Grundkenntnisse aus der Schulzeit habe ich gar nix aufzuweisen. Ist immer noch der Baukasten das Mittel Deiner Wahl um schnell kleine Erfolge zu sehen oder was rätst Du heute?

Grüße
Mick

Reply
Vatan - 22. Januar 2022

Hi. Ich will einfach eine eigene App erstellen wo Leute ihren spaß haben.

Reply
Kuby - 6. März 2022

Hallo
Ich möchte gerne eine App für iOS und eventuell Android erstellen.
So jetzt kommt 😉 es soll nur für mich sein keine kommerziellen Zweck.
Möchte nur meine eigene Datenbank/Wissen da drin sammeln und alles in einer App haben.
Welche Möglichkeiten hab ich da.

Reply
    YinOrYanf - 6. Mai 2022

    Nutze doch eine der Wiki-software und verlinke auf deiner Applikation. Zb ich habe xwiki genommen und mobile GUI erstellt, die Sortierung, Filterung und suche beinhaltet. Der Interface unterscheidet sich Gast(darf nur lesen) hilft wenn ich jemanden bestimme Infos preisgeben. Ansonsten hat mein ACC berechtigt auf PC oder mit der Android bzw OSx fast gleiche Funktionalität. Nachteil ist folgender, habe Home Server aufgebaut, der zu bestimmten Zeiten nur intern erreichbar ist.

    Oder du richtest Server ein der nur information abspeichert. Legst Anhang von JSON-(String) Wie verarbeitet wird.

    Reply

Leave a Reply: