Schweitzer Fachinformationen
Wenn es um professionelles Wissen geht, ist Schweitzer Fachinformationen wegweisend. Kunden aus Recht und Beratung sowie Unternehmen, öffentliche Verwaltungen und Bibliotheken erhalten komplette Lösungen zum Beschaffen, Verwalten und Nutzen von digitalen und gedruckten Medien.
Über die Autorinnen 9
Einleitung 23
Teil I: Einführung in Flutter 29
Kapitel 1 Flutter und das große Feld der App-Entwicklung 31
Kapitel 2 Startklar machen und rein ins Vergnügen 39
Kapitel 3 Ihre allererste App 47
Teil II: Programmieren mit Dart 55
Kapitel 4 Pfeilschnell programmieren mit Dart 57
Kapitel 5 Bedingte Anweisungen und Schleifen im Griff 83
Kapitel 6 Sammeln und Sortieren - Collections in Dart 89
Kapitel 7 Asynchrone Programmierung - wenn es mal wieder länger dauert 93
Kapitel 8 Vererbung und weitere praktische Dart- Features 97
Kapitel 9 Debugging in Dart - Probleme finden und lösen 105
Teil III: Wir bauen eine App 113
Kapitel 10 Alles ist ein Widget 115
Kapitel 11 Widgets über Widgets - wie werden daraus tolle App-Screens? 129
Kapitel 12 Ein bisschen DIY zwischendurch - Custom Widgets 187
Kapitel 13 Wenn das, dann das - oder das? 195
Kapitel 14 Wo gehts hier lang? Routing in Flutter-Apps 207
Kapitel 15 Mach alles blau - Theming für Ihre App 217
Teil IV: REST und Firebase - externe Daten beziehen und managen 237
Kapitel 16 Schnittstellen anbinden 239
Kapitel 17 Firebase und der Cloud Firestore 275
Teil V: State-Management 299
Kapitel 18 Stein auf Stein - App-Architektur in Flutter 301
Kapitel 19 State-Management 309
Kapitel 20 State-Management mit Bloc und Cubit 319
Teil VI: Testen, builden und veröffentlichen 345
Kapitel 21 Testing - wer, wie, was und wieso, weshalb, warum? 347
Kapitel 22 Der Android-Build 377
Kapitel 23 Der iOS-Build 393
Teil VII: Top-Ten-Teil 401
Kapitel 24 Unsere 10 Lieblings-Widgets 403
Kapitel 25 Unsere 10 Flutter-Tipps und -Tricks 407
Abbildungsverzeichnis 411
Stichwortverzeichnis 417
Seit Ende 2018 ist die Welt der App-Entwicklung in Bewegung. Mit der Veröffentlichung von Flutter durch Google kam eine Technologie auf den Markt, die das Potenzial hat, die Apple- und Android-Welt zu einen und eine echte Alternative zur nativen Entwicklung zu bieten.
Sowohl Auftraggebende als auch Entwickelnde waren schnell begeistert - Erstere, weil sie ihre Entwicklungskosten bei gleichbleibender Qualität halbieren können, und Letztere, weil Flutter sehr viel Wert auf Developer Experience legt.
Seit 2021 ist Flutter Web in der Stable Version und seit 2022 kann man auch Desktop-Apps für Mac, Linux und Windows mit Flutter entwickeln. One ring to rule them all .
Auch uns hat Flutter in seinen Bann gezogen, weswegen wir schon 2019 aus der Android-Welt in die Flutter-Welt aufgebrochen sind und es bis heute nicht bereut haben. Mit diesem Buch wollen wir Sie dabei unterstützen, denselben Weg zu gehen.
Wir beginnen mit den Grundlagen von Dart und Flutter und leiten Sie dann durch die komplexeren Themen des State-Managements und der Backend-Anbindung bis hin zum Testen, Builden und Veröffentlichen Ihrer App. Bei der Backend-Anbindung gehen wir im Detail auf Firebase ein, da dieses Backend-as-a-Service von Flutter-Entwickelnden gern genutzt wird.
Wir wünschen Ihnen viel Erfolg und eine gesunde Frustrationstoleranz!
In diesem Buch werden Sie eine Flutter-App mit uns entwickeln. Den Code dazu finden Sie im Web unter https://losfluttern.de/pummelthefish oder alternativ auf der Verlags-Website unter https://wiley-vch.de/ISBN9783527720293.
https://losfluttern.de/pummelthefish
https://wiley-vch.de/ISBN9783527720293
Wir haben hier ein GitHub-Repository verlinkt. Wir empfehlen Ihnen, den Code mithilfe des Buches mitzuschreiben und auch anzupassen und für ein optimales Lernergebnis auch selbst damit herumzuspielen. Unsere zur Verfügung gestellte Code-Base sollte nur dazu da sein, Ihnen weiterzuhelfen, falls Sie den Code nicht selbst zum Laufen bekommen.
Wenn Sie ein neues Kapitel beginnen und Ihr Code aus den vorherigen Kapiteln nicht funktioniert, empfehlen wir Ihnen, den entsprechenden Git-Branch zu dem Kapitel in unserem Repository zu suchen und ihn herunterzuladen. Von dort aus können Sie dann entsprechend weiterarbeiten.
Bitte beachten Sie, dass sich das Flutter-Framework in den letzten Jahren schnell entwickelt hat und das auch nach Veröffentlichung dieses Buches noch weiter tun wird. Es kann also sein, dass Sie den Code aus diesem Buch leicht anpassen müssen. Ihre Entwicklungsumgebung wird Sie darauf hinweisen.
Sie können sich entscheiden: Entweder Sie arbeiten mit der neuesten Flutter-Version oder Sie arbeiten mit derselben Flutter-Version, mit der wir für dieses Buch gearbeitet haben. Je nachdem müssen die Packages in der pubspec.yaml-Datei entsprechend angepasst werden.
pubspec.yaml
Mit folgendem Befehl können Sie die Flutter-Version in der Konsole anpassen.
>> flutter downgrade <version>
Beispiel:
>> flutter downgrade v3.3.0
Wir arbeiten mit dem stable-Channel von Flutter. Es gibt neben dem stable-Channel noch den beta- und den master-Channel. Falls Sie sich aus Versehen auf einem der beiden anderen wiederfinden, können Sie so zu dem stable-Channel wechseln:
stable
beta
master
>> flutter channel stable
Vielleicht wollen Sie dieses Buch auch lieber am Strand lesen, ganz ohne Computer - oder parallel an einem eigenen Projekt arbeiten statt an unserer Beispiel-App. Gar kein Problem.
Vielleicht haben Sie auch schon etwas Vorerfahrung mit Flutter und sind nicht an den Basics interessiert. Jedes Kapitel dieses Buches steht für sich, fühlen Sie sich frei, kreuz und quer zu lesen, wie Sie lustig sind!
Zum Glück ändert sich das langsam: Bisher sind wir es allerdings als Fachbücher-lesende Frauen nur allzu gut gewohnt, mit einem entschuldigendem Satz in der Einleitung darauf hingewiesen zu werden, dass wir zwar nie angesprochen werden, bei der männlichen Form aber immer mitgemeint sind. Wir wollten unseren männlichen Lesern nicht dasselbe antun, aber die Sternchen-Schreibweise das ganze Buch durchzuziehen, ist uns auch etwas umständlich. (Die vielen Anglizismen machen manche Sätze in diesem Buch eh schon etwas schwer verdaulich.)
Also versuchen wir neutral zu schreiben, oder wir wechseln zwischen der männlichen und der weiblichen Form. Es mag sich am Anfang etwas gewöhnungsbedürftig für Sie anfühlen - aber es ist uns halt wichtig, dass sich alle Lesenden von unserem Buch abgeholt fühlen. Und wenn es sich für Sie komisch anfühlt, dann verstehen Sie vielleicht auch besser, warum sich der bisherige Standard für uns komisch anfühlt und wir da nicht mitmachen möchten.
Wir gehen davon aus, dass unsere Lesenden einen Computer bedienen können und schon einmal ein paar Zeilen programmiert haben - egal in welcher Sprache, aber am besten objektorientiert. Wir fangen ganz vorne an mit Flutter, Dart und App-Entwicklung, aber es würde den Rahmen sprengen, die Grundbausteine der Programmierung tiefergehend zu erklären.
Erste Gehversuche mit der Versionskontrolle Git werden Ihnen auch als Vorkenntnis nützlich sein.
Trotzdem - auch wenn Sie ganz neu in der Programmierung sind, möchten wir Sie ermutigen, es mit Flutter und mit diesem Buch zu versuchen. Sie werden vielleicht ein paar Dinge recherchieren müssen und das eine oder andere Kapitel zweimal lesen, aber wir haben immer versucht, alles so verständlich wie möglich zu erklären. Wenn Sie mal den Faden verlieren, finden Sie ihn bestimmt im nächsten Kapitel wieder.
Bitte nehmen Sie zur Kenntnis, dass iOS- und macOS-Desktop-Apps nur mit einem Mac entwickelt werden können und Sie mit Windows daher nur Android-, Windows-Desktop- und Web-Apps entwickeln können.
Dieses Buch teilt sich in sieben Teile, die wiederum in Kapitel und Unterkapitel aufgeteilt sind.
In der Einführung wird das Flutter-Framework in seinen Kontext gesetzt - was ist neu daran? Was unterscheidet es von anderen App-Entwicklungstechnologien? Dieser Teil begleitet Sie bei der Flutter-Installation und der Installation der Entwicklungsumgebung.
Die Programmiersprache Dart, auf der das Flutter-Framework basiert, war vor Flutter nicht weit verbreitet. Die Sprache ist sehr elegant, simpel und schnell zu lernen. Falls Sie schon mit Dart gearbeitet haben, können Sie dieses Kapitel selbstverständlich überspringen. Aber beachten Sie, dass hier schon einige Vorarbeiten an der Beispiel-App vorgenommen werden, die Sie in diesem Buch programmieren. Wenn Sie das Kapitel überspringen, laden Sie am besten anschließenden den entsprechenden Code herunter.
In diesem Teil lernen Sie, wie man das App-User-Interface mit Flutter gestaltet. Sie lernen, wie Theming und Routing funktionieren, wie ein Screen aufgebaut ist, wie Sie Custom Widgets anlegen und If-else-Verzweigungen im UI anbinden.
Eine App soll in der Regel Daten anzeigen und den Nutzenden die Möglichkeit bieten, Daten anzupassen oder einzupflegen. Diese liegen oft in einer externen Datenbank. In diesem Teil lernen Sie, Daten von einer REST-Schnittstelle zu managen. Weil die meisten Flutter-Entwickelnden Firebase als Backend-as-a-Service nutzen, zeigen wir Ihnen außerdem, wie Sie das Firebase-SDK einbinden können.
Wie kommen die Daten von der Schnittstelle in die einzelnen Screens der App und wie wird sichergestellt, dass der State der App stimmt und überall zugänglich ist? Dafür ist das State-Management zuständig. Es gibt verschiedene Philosophien und Packages, um das State-Management zu bewerkstelligen. Wir bringen Ihnen ein von Google empfohlenes State-Management namens »bloc« bei.
Weil es von Entwickelnden so gern vernachlässigt wird und doch so wichtig ist, bekommt es bei uns viel Aufmerksamkeit: das Testen. Sie lernen nicht nur, Logik mit Unit-Tests zu überprüfen, sondern auch, die richtige Darstellung Ihrer Widgets durch Widget-Tests und Golden Tests zu sichern. Zum Schluss erhalten Sie noch eine kleine Einführung in Integration-Tests, um ganze User Flows mit Tests abdecken zu können. Danach wird es Zeit, über das Ausrollen der App an Beta-Testende zu sprechen, und welche Vorbereitungen Sie anschließend für die Veröffentlichung in Google Play und Apple App Store treffen sollten.
Im Top-Ten-Teil erfahren...
Dateiformat: ePUBKopierschutz: Adobe-DRM (Digital Rights Management)
Systemvoraussetzungen:
Das Dateiformat ePUB ist sehr gut für Romane und Sachbücher geeignet – also für „fließenden” Text ohne komplexes Layout. Bei E-Readern oder Smartphones passt sich der Zeilen- und Seitenumbruch automatisch den kleinen Displays an. Mit Adobe-DRM wird hier ein „harter” Kopierschutz verwendet. Wenn die notwendigen Voraussetzungen nicht vorliegen, können Sie das E-Book leider nicht öffnen. Daher müssen Sie bereits vor dem Download Ihre Lese-Hardware vorbereiten.Bitte beachten Sie: Wir empfehlen Ihnen unbedingt nach Installation der Lese-Software diese mit Ihrer persönlichen Adobe-ID zu autorisieren!
Weitere Informationen finden Sie in unserer E-Book Hilfe.