Posts

Flutter -- Tutorial Teil 3 Starter Code

Bild
Im ersten und im zweiten Teil dieser kleinen Serie, haben wir uns schon mit einigen Punkten beschäftigt, die ich wichtig für Flutter finde. Aller Anfang ist....leicht ! Für Anfänger bietet sowohl Android Studio, wie Visual Studio Code einen bequemen Einstieg zum Flutter SDK. Beide Programme erstellen uns die Ordnerstruktur und beglücken uns mit einem kleinen Demoprogramm , das wir gleich ausprobieren können. Im weiteren Verlauf des Artikel beziehe ich mich auf Visual Studio Code , aber das prinzipielle ist auch für Android Studio gültig ! Was die default Ordnerstruktur angeht, ist für uns zuerst mal das main.dart File wichtig. Es enthält das kleine Demoprogramm. In einem anderen Post werden wir noch das pubspec.yaml File betrachten. Dieses ist dann von Bedeutung, wenn es um den Import von Librarys bzw den Code von Drittanbietern geht. Das widget_test.dart File fällt unter die Rubrik "debuggen" . Ich werde in diesem Post nicht darauf eingehen, aber ...

Flutter -- Tutorial Teil 2 State und Co

Bild
Im ersten Teil dieses Tutorials sind wir schon auf ein paar Begriffe gestoßen, die für Flutter wichtig sind. Da wären Widgets, MaterialApp, und was mit extends , also eine Klasse erweitern, gemeint ist. Wir sollten uns noch einmal in Erinnerung rufen, das wir eine moderne Anwendung grob unterteilen können. Code der die Benutzeroberfläche erstellt und verwaltet und Code, der den Nutzwert des Programmes umsetzt. Eine Taschenrechner App braucht ebenso eine Benutzeroberfläche, wie eine Wetter App . Der Teil des Codes der den Nutzwert der App ermöglicht, dürfte aber sehr unterschiedlich sein. Taschenrechner und Wetter App benötigen wahrscheinlich Buttons, eventuell Bilder und ganz sicher Text. Das heisst vieles was man in Richtung Benutzeroberfläche programmiert, ist eventuell nicht nur in einem Projekt brauchbar. Sondern könnte, mit Anpassungen, in einem anderen wiederverwendet werden. Diese Erkenntnis führt zu dem Versuch den Code des Userinterfaces , von dem Code für die Busines...

Flutter -- Tutorial Teil 1 Grundsätzliches

Bild
Flutter ist das SDK von Google für die Entwicklung von App's für mobile Geräte. Ich gehe hier nicht auf die Installation ein, da gibt es genügend Ressourcen im Netz, angefangen mit der offiziellen Seite . Als IDE verwende ich Visual Studio Code , aber die Code Beispiele sollten, auch anstandslos in Android Studio laufen, beide übrigens kostenlos erhältlich. Ich persönlich habe beide installiert. Android Studio ist die ausgefeiltere Entwicklungsumgebung und hat mit den Möglichkeiten rund um den Android Emulator ein klares plus. Ich verwende trotzdem meistens Visual Studio Code, da das Programm auf meinem System im Vergleich weitaus schneller läuft. Flutter - Grundsätzliches Wer im Netz über Flutter recherchiert, wird ohne Zweifel auf den Begriff Widget stoßen. Real betrachtet handelt es sich dabei um Datenstrukturen, häufig ineinander verschachtelt. In der Flutter Welt konzipiert man eine Anwendung unter Verwendung dieser Widgets. Die Programmiersprache hinter Flutter i...

Asynchron programmieren mit Dart

Bild
Streams in Dart Vor einer gefühlten Ewigkeit hatte ich in diesem Blog schon über Streams in Dart geschrieben.  Nun ist das schon eine Weile her und ich denke es kann nicht schaden das Thema noch einmal aufzugreifen. Bevor wir uns Details anschauen noch einmal eine Auffrischung der Basis ! Synchron versus Asynchron Wenn wir in Dart ein Programm schreiben, wird es abgearbeitet bis es beendet wird. Das heisst Zeile für Zeile unseres Codes wird ausgeführt, in der von uns bestimmten Reihenfolge. Das Programmende können wir als Programmierer bestimmen, oder der Benutzer beendet das Programm mit Mechanismen die außerhalb des Codes liegen, dem Taskmanager in Windows als Beispiel . Die nächste Zeile im Code kann jeweils erst dann ausgeführt werden, wenn die aktuelle verarbeitet ist und etwaige Resultate dieser Zeile vorliegen. Der Vorteil dieser synchronen Abarbeitung des Codes ist, das wir immer mit konkreten Ergebnissen arbeiten. Der Nachteil ist, das unser Programm unter Umständen ...

Stream's in Dart Part 3 StreamController

Bild
Photo by  Paweł Czerwiński  on  Unsplash Im zweiten Post zum Thema Stream's hatten wir ja ein Diagramm, welches die "Welt der Stream's" in Dart dargestellt hat. Wir haben ausserdem gesehen, das wir mit async, async* und await Streams programmieren können , ohne die Library Funktionen direkt benutzen zu müssen. Streams und Future's in Dart sind nahe beieinander liegende Themen. Man muss aufpassen, das keine Verwirrung entsteht. Stellen wir einen Vergleich an: Sie sind ähnlich da.. : Beide arbeiten asynchron (Stream's meistens, nicht immer). Beide tragen einen potenziellen Wert. Sie sind sich nicht ähnlich da..: Ein Stream eine Kombination von Future's ist Ein Future nur immer eine Antwort hat, ein Stream hat in der Regel eine nicht begrenzte Anzahl von Antworten. StreamController Beginnen wir mit der Funktion erschaffeStream(...) .Der komplette Code am Schluss, hier zuerst einen Part nach dem anderen: StreamController < n...

Stream's in Dart Part 2

Bild
Photo by  veeterzy  on  Unsplash Im ersten Teil zu Stream's in Dart haben wir erste Schritte in dem Thema unternommen. Wir erinnern uns, ein Stream, einen Strom also, kann man sich als Fluss vorstellen. Er hat eine Quelle, die ihn fortwährend mit Wasser speist. Im letzten Post war die Quelle eine Funktion mit der wir Zeichenketten in diesen Fluss eingespeist haben. Der Vergleich mit einem Fluss aus der realen Welt endet hier. Wichtig ist: Wir haben es mit einem fortwährenden Strom von Daten zu tun, die wir manipulieren können. Das Thema Stream's in Dart ist sehr umfangreich und man läuft Gefahr vor lauter Bäumen den Wald nicht mehr zu sehen. Beginnen wir deshalb einfach: Stream Laut Dokumentation ist Stream eine Sequenz an Ereignissen, das kann ein Daten Ereignis sein, oder ein Fehler Ereignis. Einfach ausgedrückt, jedesmal wenn wir einen Stream auslesen, enthalten wir entweder Daten oder eine Fehlermeldung. Im Sprachgebrauch von Dart "hört" man auf...

Streams in Dart: Part 1 periodic und listen

Bild
Ich weiß nicht, wie es anderen Leuten geht. Ich persönlich lerne auch durch Wiederholung und selbstverständlich auch durch Fehler. So hoffe ich auf jeden Fall... Wie auch immer, in Flutter ist Statemanagement ein großes Thema.  Es gibt verschiedene " Pattern " dafür, d.h. Vorschläge für Lösungsmustern, wie man mit State umgehen soll. Sehr oft werden sie durch Librarys unterstützt, die Funktionen zur Verfügung stellen, um diese Muster in Flutter um zu setzen. Die bekanntesten sind Bloc , Redux und Provider . Eine beliebte Frage ist natürlich, welche dieser Varianten, oder eine hier gar nicht aufgeführte, ist die Beste. Aber darum geht es nicht. Vielmehr um die Tatsache das allen gemeinsam ist, das sie in der einten oder anderen Weise mit Stream's in Dart zu tun haben. Manchmal erkennbar, manchmal gut unter der "Haube" verborgen. Was ist State und was gibt es da zu lösen ? Nehmen wir an, wir hätten 10 Buttons auf dem Schirm. Jeder Button löst, wenn er ged...