Wie eigene App erstellen?
Hallo Zusammen, ich habe eine frage zum Thema App erstellen. Genauer genommen handelt es sich um das Thema Social Media App erstellen. Wie kann man sowas erstellen, damit die App aber auch auf verschiedenen Betriebssystemen läuft bsp. Ios, Android… Wofür brauche ich HTML? wie erstelle ich die Designs? Wenn ich App designs habe wie füge ich diese zusammen um daraus eine funktionierende app zu erstellen? Wie kann ich den Code testen bzw die App testen? Was für tools oder Programme sollte man benutzen? Jede Antwort bringt mich ein stück weiter zum Ziel ;)
1 Antwort
Wie kann man sowas erstellen, damit die App aber auch auf verschiedenen Betriebssystemen läuft bsp. Ios, Android…
Es gibt mehrere Möglichkeiten:
- Du baust je OS eine native App. Für iOS ist hierbei die Programmiersprache Swift die zeitgemäße Wahl, für Android OS wäre es Kotlin oder Java.
- Du baust mit Hilfe eines crossplatform Frameworks (z.B. Flutter, Ionic, Qt, React Native) eine App, die später für verschiedene OS exportiert werden kann und nur wenige systemspezifische Anpassungen benötigt.
- Du baust eine PWA.
- Du baust eine Webanwendung, die über einen der gängigen Webbrowser (Chrome/Edge/Firefox/Safari/...) des jeweiligen mobilen Endgerät angesteuert wird.
- Wenn du ein Spiel erstellen möchtest, ziehe direkt eine Game Engine (oder ein Game-Framework) in Erwägung, denn die sind auf dieses Anwendungsgebiet logischerweise besser ausgerichtet. Es gibt etliche geeignete Tools (z.B. Defold, Godot, Unity).
Wesentliche Unterschiede zwischen diesen Methoden liegen im Aufwand (native Apps je System zu bauen und zu warten kann beispielsweise mehr Mühen kosten, als auf einer einzigen geteilten Codebasis aufzubauen) und der späteren Nutzererfahrung (bei einer nativen App hast du z.B. besseren Zugriff auf Funktionen des mobilen Endgeräts). Bei allen Anwendungen, die nicht über einen Webbrowser ausgespielt werden, solltest du im Übrigen in Betracht ziehen, dass du je System/Store, über welches du die App veröffentlichen möchtest, einen entsprechenden Entwickleraccount benötigst. Um iOS-Apps zu publizieren, benötigst du ein macOS-System.
Wofür brauche ich HTML?
Ob du HTML benötigst, hängt davon ab, für welche der obigen Methoden du dich letztendlich entscheidest. Wenn du eine Webanwendung erstellen möchtest, ist HTML die Sprache, mit der du die inhaltliche Struktur deiner grafischen Oberfläche beschreibst. Ebenso kannst du bei einigen Frameworks auf HTML oder ungefähre Abwandlungen von HTML (z.B. JSX bei React) treffen.
wie erstelle ich die Designs? (...) wie füge ich diese zusammen (...)
Konzeptionell ist es dir überlassen. Die klassisch bekannten Grafikprogramme (Adobe Photoshop, Gimp) oder UX Creation-Software (z.B. Adobe XD, Figma, InVision) eignet sich gut dafür.
In der praktischen Umsetzung wird dir das Framework/Development Kit entsprechende Mittel bieten (z.B. UIKit für iOS, QML bei Qt, Jetpack Compose bei Android).
Wie kann ich den Code testen bzw die App testen?
Ein paar Optionen:
- Code statisch prüfen
- Unit-Tests entwickeln (für verschiedene Programmiersprachen gibt es oft hilfreiche Unit-Testframeworks)
- Automatisierte Testfälle entwickeln (für Web bspw. mit Cypress oder Playwright)
- Deine App in einem Emulator oder Simulator installieren
- Deine App auf einem eigenen mobilen Endgerät installieren
- Testplattformen wie Browserstack oder Lambdatest nutzen
Das gesamte Themenfeld Softwaretests ist ziemlich umfangreich, weshalb ich mich kurz gefasst habe und keinen Exkurs starten werde. Es gibt zahlreiche Literatur, über die du dich einlesen kannst.
Was für tools oder Programme sollte man benutzen?
Konkret für die Entwicklung ist eine passende Entwicklungsumgebung (IDE) oder ein gut konfigurierbarer Code-Editor (wie Brackets, SublimeText oder VS Code) zu empfehlen. Welche/r geeignet ist, hängt einmal wieder von dem Werkzeug (Betriebssystem deines Entwicklungssystems, Programmiersprache und Framework/SDK) ab, mit dem du dich entscheidest, zu arbeiten.
Für die Entwicklung mit Swift ist Xcode die wohl beste Wahl, für Android (Kotlin/Java) ist es Android Studio oder die JetBrains IDE. Für Flutter/Dart oder React kann man sich Visual Studio Code entsprechend aufrüsten, für Qt gibt es den QtCreator. Bei der Webentwicklung würde ich vorschlagen, sich Visual Studio, Visual Studio Code oder Eclipse anzuschauen.
Wie eigene App erstellen?
Der wichtigste erste Schritt ist eine gute Planung eines solchen Projekts. Beginne zunächst damit, dein Ziel (schriftlich) zu beschreiben (Welchem Zweck dient die App? Welche Zielgruppe soll sie bedienen? Welche Nutzergruppen und Anwendungsfälle gibt es?). So bekommst du eine bessere Vorstellung von dem, was du (technisch) tatsächlich brauchst und hast Startpunkte, um weiter in die Tiefe zu gehen.
Ein Beispiel: Du möchtest eine Shopanwendung bauen, die die Bezahlung über bestimmte Provider (Apple Pay, PayPal, u.ä.) erlaubt. Man könnte daraus ableiten, dass es vorteilhaft wäre, ein Shopsystem einzusetzen, da dir das zum einen mehrere funktionale Implementationen bereits abnimmt und zum anderen eine dynamische Verwaltung der Inhalte erlaubt).
Statt direkt mit der Implementationsphase zu beginnen, würde ich zudem raten, dass du dich zuerst dem Erlernen der benötigten Programmiersprache/n widmest und im Anschluss dem jeweiligen Framework/SDK. Das ist, soweit kann man vorweggreifen, nichts, was sich in ein paar Tagen abhandeln lässt.
Zu den meisten Programmiersprachen und Frameworks/SDKs lässt sich eine offizielle Dokumentation (im Web) sowie feste Literatur finden. Lernplattformen wie PluralSight oder Udemy bieten Videokurse und die JetBrains Academy liefert hervorragend ausgearbeitete Lernpfade.
Um schließlich mit dem Bau der App fortfahren zu können, solltest du dich im praktischen Umgang mit der objektorientierten Programmierung zumindest halbwegs sicher fühlen, denn auf diesem Konzept wird in der Regel aufgebaut. Lege dir noch vor einer technischen Codeimplementation Pläne (Skizzen, UML-Diagramme, o.ä.) an, die den genauen Ablauf der einzelnen Anwendungsfälle sowie die generelle Appstruktur beschreiben. Umso besser du im Voraus planst, umso einfacher (und potenziell stabiler) wird die Implementation. Teste einzeln fertiggestellte Programmteile zudem schon innerhalb der Entwicklungsphase. In dieser Hinsicht macht es also Sinn, modular/komponentenbasiert zu arbeiten.