App Programmierung

Die Idee

Hinter jeder App steckt natürlich zuerst einmal eine Idee. Allerdings ist es auch wahrscheinlich, dass schon jemand anderes eine ähnliche oder sogar die gleiche Idee hatte.

Dies ist der erste Punkt, den wir bei der App-Programmierung berücksichtigen müssen.

Für die Realisierung der App ist es daher wichtig, sowohl die Richtlinien der App-Stores zu kennen, als auch den App-Store dahingehend zu analysieren, ob und in welchem Umfang die Idee schon in den Stores vertreten ist und ob eine weitere App zu dieser Idee noch sinnvoll erscheint.

Gerade dem Apple-Store muss hier besondere Aufmerksamkeit gewidmet werden, da die Apple-Richtlinien schnell eine Veröffentlichung der App im App-Store verhindern können.
Dies ist natürlich weder für den Entwickler noch für den Auftraggeber wünschenswert.

Das Konzept

Nach dem Prüfen, ob die Idee der App umsetzbar ist und gegen keine Richtlinien der Stores verstößt, wird ein Konzept erstellt, dass den Funktionsumfang und den Aufbau der App abbildet.

Dabei wird darauf geachtet, dass das Konzept möglichst offen und flexibel gestaltet wird, damit sich auch in der Entwicklungsphase noch Änderungen oder zusätzliche Funktionen problemlos einbauen lassen.

Das Konzept ist im Prinzip die Bauanleitung für die App, an der sich die Entwickler während der App-Entwicklung orientieren können. Dies gewährleistet nicht nur eine schnellere, sondern auch eine sichere Umsetzung der App, da das Konzept natürlich vom Kunden erst bestätigt werden muss.

Die Gestaltung

Einer der wichtigsten aber auch der schönsten Punkte bei der App-Entwicklung ist die Gestaltung der App.

Zusammen mit dem Konzept wird von dem Grafiker ein Layout erstellt, das zuerst einmal dazu dient dem Kunden einen ersten visuellen Eindruck der App zu vermitteln.

Gibt der Kunde sein Einverständnis zu dem Layout, dann kann der Grafiker dieses für die Umsetzung der App anpassen und erweitern, so dass es für den Programmierer möglich ist die Grafiken in das Projekt einzubauen.

Die Programmierung

Der maßgebliche und aufwendigste Teil bei der Entwicklung einer App ist natürlich die Programmierung.

Mithilfe des Konzepts wird die Struktur der App gegliedert, entsprechend aufgebaut und mit den Funktionen versehen, die zum Ausführen und Benutzen der App notwendig sind.

Je nach Größe und Umfang der App kann sich die App-Programmierung im Bereich von ein paar Tagen bis hin zu einigen Monaten bewegen.

Ein großer Vorteil bei der App-Entwicklung ist unter anderen die Möglichkeit bestimmte Bereiche oder Funktionalitäten zu kapseln, so dass sich die Entwickler gezielt um die ihnen zugewiesenen Aufgaben kümmern und diese unabhängig von dem Gesamtprojekt programmieren können. Später wird dieser Baustein dann einfach in das Gesamtprojekt eingebaut.

Das macht die App-Programmierung effizienter und weniger fehleranfällig.

Native

Native Apps werden speziell für ein Betriebssystem entwickelt. Die Schnittstellen zu der Hardware funktionieren einheitlich und die Ressourcen werden optimal genutzt.

Hybrid mit Xamarin

Xamarin ermöglicht es aus einer einzigen Codebasis Apps für unterschiedliche Betriebssysteme zu entwickeln. Der geschriebene Code wird mittels Cross Compiler in die native Sprache des jeweiligen Systems übersetzt.

Hybrid

Eine klassische hybride App ist eine Kombination aus einer Web Applikation und einer nativen App. Der Inhalt wird so gut wie möglich angepasst und dargestellt.

Vorteile

Native Apps sind in ihrer Leistung, Nutzbarkeit, Benutzererfahrung und Look & Feel exzellent, da die Apps komplett vom Betriebssystem unterstützt werden.
Xamarin verkürzt die Entwicklungszeit dank einer Codebasis. Durch den Einsatz von plattformspezifischen Programmierschnittstellen und der Verbindungsunterstützung zu den nativen Programmbibliotheken ist die Leistung und Nutzbarkeit sehr gut. Des Weiteren ist die Benutzererfahrung und das Look & Feel exzellent, da die Benutzeroberfläche getrennt von der Codebasis für jedes einzelne Betriebssystem entwickelt wird.
Der einzige Vorteil klassischer hybrider Apps liegt in der Entwicklungszeit.

Nachteile

Der einzige Nachteil der nativen App Entwicklung liegt in der Entwicklungszeit, da die App getrennt für die jeweilige Plattform entwickelt werden muss. Des Weiteren varriert die Entwickungszeit zwischen den Plattformen um bis zu 30%.
Die aktuellen Versionen der Betriebssysteme werden verspätet unterstützt, da die benötigten Schnittstellen nach der Veröffentlichung erst entwickelt werden müssen. Des Weiteren gibt es wenig bis keine Unterstützung von nativen Programmbibliotheken aus dritter Hand. Die Schnittstellen zu diesen Programmbibliotheken müssen selber programmiert werden und der Aufwand & die Komplexität führen oft zu unschönen Ausweichlösungen und kosten im Endeffekt mehr Zeit als die native Entwicklung.
Klassische hybride Apps fühlen sich laut Benutzererfahrung und Look & Feel nicht wie eine "echte" App an. Der Entwickler muss auf Programmierschnittstellen aus dritter Hand zugreifen, was zu Risiken wegen schlechter und unzuverlässiger Hardware Kompabilität führt. Des Weiteren ist die App sehr fehleranfällig und eingeschränkt in der Nutzbarkeit, da der Entwickler den Code nicht für jedes unterschiedliche Gerät auf den Markt anpassen kann, was auch zu schlechter Leistung führt!

Wann wird welche Technologie angewendet?

Komplexe Apps werden bei uns nativ entwickelt. Die Möglichkeit verschiedene Programmbibliotheken aus dritter Hand zu verwenden, erlaubt uns alle Freiheiten in der App Entwicklung.
Apps mit dem Schwerpunkt auf Logik und wenig Benutzerobenflächenelementen werden bei uns mit Xamarin entwickelt.
Klassische hybride Apps werden bei uns wegen der vielen Nachteile nicht entwickelt.

Die Veröffentlichung

Nachdem die App fertig gestellt, getestet und vom Kunden abgenommen wurde, kann man diese im entspechenden Store veröffentlichen.

Für die Veröffentlichung der App gibt es mehrere Möglichkeiten, die man besonders bei Apple berücksichtigen muss.

Apps für den Store

(öffentlich, Store)

Apps für die Firma

(nicht öffentlich, In-House)

Entwicklung über den Account des Entwicklers

(keine Kosten)

Entwicklung über einen eigenen Account

(jährliche Kosten)

Generell kann man Apps auch nur für die Firma entwicklen, so dass diese nur für den Gebrauch in der Firma gedacht sind. Dies sind sogenannte In-House-Apps, für die man allerdings einen speziellen Firmen-Account bei Apple benötigt.

Will man nicht, dass der Entwickler der App im App-Store erscheint, dann benötigt der Kunde ebenfalls einen eigenen Apple-Account.

In beiden Fällen muss der Kunde dann jährliche Beiträge bezahlen. Die App-Entwicklung erfolgt dann über den Account des Kunden. Wesentlich einfacher und offener gestaltet sich dies im Android-Store. Hier kann man frei über die Angaben zu der App entscheiden.

Die Kosten einer App

Es gibt verschiedene Studien zu den Kosten einer App, allerdings beziehen sich diese nur selten auf den deutschen Markt oder sind nicht mehr aktuell. Eine offizielle aktuelle Studie liegt uns derzeit nicht vor, daher geben wir hier Richtwerte an, die unseren Erfahrungen und unserer Preispolitik entsprechen:

Einfache App

1.000 - 2.500 Euro

z.B. informative Präsentation der Firma

Umfangreiche App

2.500 - 10.000 Euro

z.B. interaktive, funktionelle Anwendung

Komplexe App

10.000 - 100.000 Euro

z.B. Steuerung von Geräten mit Schnittstelle

Letztlich hängt die Bestimmung der Größenordnung einer App und deren Kosten von vielen Faktoren ab, wie z.B. ob nur Information dargestellt werden soll, ob Daten geladen und gespeichert werden sollen, ist ein Zugriff auf das Netz nötig, gibt es ein Backend zur App, muss eine eigene Schnittstelle programmiert werden...

Die Tabelle mag als grobe Richtlinie dienen, um die ungefähren Kosten einer App zu ermitteln. Für eine genaue Kalkulation sollten die Anforderungen jedoch neben dem Konzept besser auch noch persönlich besprochen werden.