Viele Apps und soziale Netzwerke machen es einfach, seine eigenen Inhalte in Form von Fotos oder Texten im Netz zu präsentieren. Darüber hinaus wird es mittlerweile immer einfacher, eigene interaktive Anwendungen für bestimmte Aufgaben zu erstellen, die veröffentlicht und mit anderen Nutzern geteilt werden können. Es gibt eine ganze Bandbreite an Werkzeugen und Techniken, um mit wenig oder gar keinem Programmieraufwand eigene Anwendungen zu erstellen. Die verschiedenen Möglichkeiten möchte ich in diesem Beitrag zusammenfassen.
No-Code-Entwicklung mit Standardsoftware
Mit weit verbreiteter Standardsoftware können Privatleute oder kleine und mittlere Unternehmen bestimmte Aufgaben automatisieren.
Werkzeug
Möglichkeiten
WordPress
Mit WordPress kann jeder eine eigene Webseite mit vielfältiger Funktionalität erstellen. So ist es z.B. möglich, dass sich auf der Seite Nutzer registrieren und Kommentare hinterlassen. Es gibt zahlreiche Plugins für WordPress, mit denen z.B. ohne Programmierung ein individuell gestalteter Online-Shop aufgebaut werden kann.
Microsoft Excel
In Excel-Arbeitsmappen können viele Aufgaben erledigt bzw. Probleme gelöst werden: betriebswirtschaftliche Berechnungen, Aufgaben zur Planung und Organisation, Auswertung von Daten. Die Anwendungslogik wird mit Excel-Formeln beschrieben.
Office-Programme allgemein
Die Programme ermöglichen häufig die Aufzeichnung von Makros, um bestimmte Aufgaben zu automatisieren. Link: Makros bei Microsoft Word
Bildbearbeitungsprogramme
Sie ermöglich in der Regel das Abspeichern von benutzerdefinierten Looks oder Presets, mit denen sich eine Kombination von Einstellungen auf beliebig viele Bilder anwenden lässt.
Benutzerdefinierte Formulare, Umfragen oder Arbeitsblätter
Mit Low-Code-Plattformen kann Software von Fachexperten erstellt werden, die keine ausgebildeten Software-Entwickler sind. Diese werden als "zivile Entwickler" (citizen developer) bezeichnet.
Grundlage jeder Low-Code-Plattform ist ein visueller Editor, mit dem die Benutzeroberfläche und die Anwendungslogik definiert werden können. Darüber hinaus kann es erforderlich sein, dass Teile der Anwendungslogik mit Formeln oder Skripten formuliert werden müssen.
Modellgetriebene Low-Code-Plattformen interpretieren Geschäftsprozessmodelle (BPMN) oder Domänenmodelle (UML). Daneben gibt es auch Canvas-basierte Plattformen (wie z.B. Canvas-basierte Microsoft Power Apps), bei denen die App intuitiv auf einer leeren Leinwand, vergleichbar mit Microsoft Powerpoint, gestaltet werden kann.
Low-Code-Plattformen ermöglichen in der Regel den Import von Daten aus verschiedenen Quellen (Datenbanken, Cloud-Speicher, Excel-Tabellen,...). Außerdem unterstützen sie anspruchsvolle Software-Funktionen wie z.B. Authentifizierung und Autorisierung.
Rapid-Prototyping mit Entwicklungsplattformen und Frameworks
Auch für ausgebildete Software-Entwickler stehen immer ausgereiftere Werkzeuge zur Verfügung, mit denen sich die Erstellung von Anwendungen bzw. von Prototypen für Anwendungen beschleunigen lässt.
Moderne Softwareentwicklungsmodelle basieren darauf, frühzeitig einen funktionsfähigen Prototypen zu entwickeln, der vom Kunden getestet werden kann (rapid prototyping). Im Laufe des Softwareentwicklungsprozesses erfolgt eine iterative Modifikation, Verbesserung oder Verfeinerung des Prototyps. Für die schnelle Entwicklung von Prototypen werden daher geeignete Hilfsmittel benötigt.
Werkzeug
Möglichkeiten
Serverseitige Unterstützung (Backend)
Firebase ermöglicht eine "serverlose" Anwendungsentwicklung. Der Entwickler muss sich nicht um Funktionen kümmern, die üblicherweise viel Programmieraufwand auf der Serverseite (Backend) erfordern. Dazu gehören z.B. die Datenbankverwaltung, die Benutzerverwaltung oder die Synchronisation von Daten zwischen allen Clients. Stattdessen können alle benötigten Funktionen über eine einfache Schnittstelle abgerufen werden.
Es gibt weitere Plattformen, die insbesondere die serverseitige Anwendungsentwicklung unterstützen und gleichzeitig auch die passende, skalierbare Infrastruktur bereitstellen (Server, Betriebssystem, Datenbanken). Beispiele sind die Google App Engine oder Amazon AWS.
IDEs, GUI-Editoren
Software-Entwicklungsumgebungen enthalten häufig visuelle GUI-Editoren, mit denen sich die Erstellung einer grafischen Benutzeroberfläche vereinfachen lässt. Beispiel: der JavaFX Scene Builder.
Clientseitige Unterstützung (Frontend)
Für die plattformunabhängige Entwicklung von Smartphone-Apps steht mittlerweile eine Reihe von Frameworks zur Verfügung, darunter Ionic, Flutter, React Native oder Xamarin. Sie unterstützen die Frontend-Entwicklung (Client-Seite). Dazu gehört die Gestaltung der Benutzeroberfläche, der Zugriff auf native Funktionen (Kamera, GPS, Dateizugriff) und die Bereitstellung der allgemein üblichen Funktionalität von Apps wie z.B. Push-Benachrichtigungen, Offline-Unterstützung und Teilen-Optionen für soziale Netzwerke.
Sonstige Tools zur Beschleunigung der Entwicklung
Unabhängig von bestimmten Frameworks können Entwickler heute auf eine Vielzahl von Programmier-Bibliotheken zugreifen, die anspruchsvolle Algorithmen u.a. auf den Gebieten der Datenanalyse, der Text- und Sprachverarbeitung, des maschinellen Lernens oder der Bildverarbeitung bereitstellen. Beispiele sind die Google Cloud APIs oder Bildverarbeitungsbibliothek OpenCV.
Auch auf dem Gebiet der Programmiersprachen selbst gibt es Veränderungen, die den Zugang zur Programmierung für weitere Kreise von Anwendern öffnen. Python gilt als leicht zu erlernende Programmiersprache, die besonders für die Datenanalyse geeignet ist. Zahlreiche Pakete und Bibliotheken (z.B. für Datenvisualisierung oder maschinelles Lernen) stehen zur Verfügung. Mit Jupyter Notebook lassen sich interaktive Dokumente erstellen, in denen Python-Code-Abschnitte direkt ausgeführt werden können (Beispiel: Google Colab).
Fazit
Die Vielfalt an Möglichkeiten zeigt mir, dass die Anwendungserstellung nicht nur den Informatikern vorbehalten ist. Der Einsatz der verschiedenen Low-Code-Werkzeuge ist dennoch nicht trivial. Es werden logisches Denken, Abstraktionsvermögen, Modellierungsfähigkeiten und ein allgemeines Verständnis für Softwareentwicklung und Programmierung benötigt. Als Dozentin sehe ich hier die spannende Herausforderung, diese Konzepte den Lernenden aus informatikfremden Fachgebieten nahe zubringen, damit sie die Werkzeuge in Zukunft optimal für sich nutzen können.
In diesem Sommer hatte sich meine Mutter ein besonderes Fotografie-Projekt vorgenommen. Als begeisterte (Astro-)Fotografin war sie immer schon der Meinung gewesen, dass man sich erst als "Fotografin" bzw. "Fotograf" bezeichnen darf, wenn man auch selbst mal einen richtigen Analog-Film entwickelt hat. Also hat sie sich intensiv mit der Thematik beschäftigt und auch das notwendige Zubehör und die ...
Meine Doktorarbeit habe ich mit Latex geschrieben. Die standardmäßig erzeugte PDF genügte der Uni-Bibliothek jedoch nicht zur dauerhaften Archivierung. Es wurde eine PDF/A-1b gefordert. Nach der anstrengenden Verteidigung wollte ich mir über solche Format-Gesch...
Seit einem Jahr besitze ich ein Smartphone (Moto X Play). In diesem Post zeige ich Euch, welche Apps ich seitdem installiert habe und warum ich diese interessant oder nützlich finde.
Apps zum Lernen von Sprachen
Duolingo
Ich habe schon immer gern Frem...
An dieser Stelle möchte ich regelmäßig über gute und böse Überraschungen aus meinem Alltag als Windows-Nutzerin berichten.
Der Formeleditor 3.0 streikt bei vergrößertem Text
Bei der Arbeit mit Microsoft Office 2010 bevorzuge ich den Formeleditor 3.0 ge...
Hallo Anna, sehr interessanter Beitrag! Gefällt mir wirklich gut 👍
Hallo Andreas,
danke, das freut mich 🙂