Abbildung von: App-Entwicklung mit Flutter für Dummies - Wiley-VCH

App-Entwicklung mit Flutter für Dummies

Wiley-VCH (Verlag)
1. Auflage
Erschienen am 16. Mai 2023
432 Seiten
E-Book
ePUB mit Adobe-DRM
978-3-527-84060-1 (ISBN)
24,99 €inkl. 7% MwSt.
Systemvoraussetzungen
für ePUB mit Adobe-DRM
E-Book Einzellizenz
Als Download verfügbar
Wie Sie mit dem Flutter-Framework Android- und iOS-Apps mit nur einer Code Base und ohne Qualitätsverlust entwickeln, das erfahren Sie hier! Nach einer Einführung in die Programmiersprache Dart lernen Sie das User Interface Design, die Anbindung an Schnittstellen oder Datenbanken, State-Management und Routing in der App kennen, bevor Sie die App auf Fehler testen und in den Stores von Google und Apple veröffentlichen. Alle Schritte vollziehen Sie im Buch an einer durchgängigen Beispiel-App nach. Cross-Plattform-App-Entwicklung? Mit diesem Buch echt einfach!
Mira Jago ist Quereinsteigerin in die Programmierung, Tech-Mentorin für Startups und Unternehmerin mit eigener Flutter-Agentur in Hannover. Außerdem gibt sie Kurse zu Flutter. Die Nachfrage ist so hoch, dass sie sich am liebsten klonen würde.
Verena Zaiser baute mit 11 Jahren ihre erste eigene Website. Schon in der Schulzeit programmierte sie für Kunden. Sie studierte Informatik und ist heute freiberufliche Mobile-App-Entwicklerin in Stuttgart - natürlich immer mit Flutter.
  • Intro
  • Titelblatt
  • Impressum
  • Über die Autorinnen
  • Danksagung
  • Inhaltsverzeichnis
  • Einleitung
  • Über dieses Buch
  • Konventionen in diesem Buch
  • Wie dieses Buch aufgebaut ist
  • Symbole, die in diesem Buch verwendet werden
  • Wie es weitergeht
  • Teil I: Einführung in Flutter
  • Kapitel 1: Flutter und das große Feld der App-Entwicklung
  • Flutter in a Nutshell
  • Alternativen zur App-Entwicklung mit Flutter
  • Vorteile von Flutter
  • Wie funktionieren Flutter und Dart?
  • Kapitel 2: Startklar machen und rein ins Vergnügen
  • Flutter installieren
  • Entwicklungsumgebung einrichten
  • Kapitel 3: Ihre allererste App
  • Eine neue Flutter-App
  • Pummel The Fish
  • Recap: Einführung in Flutter
  • Teil II: Programmieren mit Dart
  • Kapitel 4: Pfeilschnell programmieren mit Dart
  • Die erste Klasse
  • Das ist Typsache
  • Objekte bauen mit var, final, late oder const
  • Wie Funktionen funktionieren
  • Parameter für jede Lebenslage
  • Kapitel 5: Bedingte Anweisungen und Schleifen im Griff
  • Wenn A, dann B - bedingte Anweisungen in Dart
  • Round and round it goes . Schleifen in Dart
  • Kapitel 6: Sammeln und Sortieren - Collections in Dart
  • Drei Arten von Collections
  • Methoden für Iterables
  • Kapitel 7: Asynchrone Programmierung - wenn es mal wieder länger dauert
  • Futures, async und await
  • Ein Datenfluss - auch Stream genannt
  • Kapitel 8: Vererbung und weitere praktische Dart-Features
  • Vererbung in Dart
  • Interfaces
  • Mixins
  • Kapitel 9: Debugging in Dart - Probleme finden und lösen
  • De-BUG-ging - die Jagd auf die Bugs
  • Die DevTools von Flutter
  • Recap: Programmieren mit Dart
  • Teil III: Wir bauen eine App
  • Kapitel 10: Alles ist ein Widget
  • Hier fängt alles an: die main.dart-Datei
  • Widgets, Widgets überall .
  • StatefulWidget und StatelessWidget
  • Es wächst ein Widget-Baum
  • Exkurs: Das Flutter-Framework - vor lauter Bäumen die App nicht mehr sehen
  • Kapitel 11: Widgets über Widgets - wie werden daraus tolle App-Screens?
  • Screens anlegen
  • Pummel The Fish - der SplashScreen
  • Pummel The Fish - der HomeScreen
  • Pummel The Fish - der DetailPetScreen
  • Pummel The Fish - der CreatePetScreen
  • Kapitel 12: Ein bisschen DIY zwischendurch - Custom Widgets
  • Custom Widget - ja, nein, vielleicht?
  • _CustomWidget - das sollte lieber privat bleiben
  • Ein Custom Widget für alle und überall!
  • Kapitel 13: Wenn das, dann das - oder das?
  • Wenn die Daten die UI bedingen sollen
  • Natives Design
  • Responsiveness umsetzen
  • Kapitel 14: Wo gehts hier lang? Routing in Flutter-Apps
  • Wie gehts zum nächsten Screen?
  • Named Routing - beim Navigieren den Überblick behalten
  • Ich verfolge Sie auf Schritt und Klick - der Backstack
  • Routing im Web und für Fortgeschrittene
  • Kapitel 15: Mach alles blau - Theming für Ihre App
  • Wo das Theming in Ihrer App haust
  • Farbe bekennen!
  • Fun mit Fonts
  • Recap: Wir bauen eine App
  • Teil IV: REST und Firebase - externe Daten beziehen und managen
  • Kapitel 16: Schnittstellen anbinden
  • Wer oder was ist eigentlich dieser REST? Und was hat er mit API vor?
  • Alternativen zu REST
  • REST-Requests
  • REST-Response
  • Los gehts - Daten per REST abrufen
  • Asynchrone REST-API-Daten im Flutter-UI anzeigen
  • Daten vom Backend holen - aber wann und wo?
  • Daten aus dem Flutter-UI sammeln und an die REST-API senden
  • Kapitel 17: Firebase und der Cloud Firestore
  • Die eierlegende Wollmilchsau
  • Firebase-Installation und Einrichtung
  • Cloud-Firestore-Anbindung
  • Cloud-Firestore-Alternativen - ja, aber wann und warum?
  • Recap: REST und Firebase - externe Daten beziehen und managen
  • Teil V: State-Management
  • Kapitel 18: Stein auf Stein - App-Architektur in Flutter
  • Was ist eine Architektur überhaupt?
  • Das Chaos im Griff mit Ordnerstrukturen
  • Pragmatisch, praktisch, gut - unser Architektur-Vorschlag
  • Kapitel 19: State-Management
  • Was ist State-Management? Wozu braucht man das?
  • Kurzer Exkurs - das InheritedWidget
  • Kapitel 20: State-Management mit Bloc und Cubit
  • Meine Straße, mein Zuhause, mein Bloc?
  • Ihren ersten Cubit anlegen
  • Kommunikation zwischen UI und Cubit
  • Repositories zentral zur Verfügung stellen mit RepositoryProvider
  • Cubits weiter vereinfachen - mit einem Enum-State ans Ziel
  • Bloc und Cubit - so unterschiedlich und doch so gleich
  • Good to Know und weiterführendes Wissen
  • Recap: State-Management
  • Teil VI: Testen, builden und veröffentlichen
  • Kapitel 21: Testing - wer, wie, was und wieso, weshalb, warum?
  • Warum testen?
  • Manuell oder automatisiert?
  • Logik testen
  • User Interface testen
  • Einen Flow mithilfe von Integration-Tests testen
  • Messbarkeit von Tests: die Test-Coverage
  • Kapitel 22: Der Android-Build
  • Vorbereitung eines Builds (Android und iOS)
  • Apps an Testpersonen verteilen
  • Eine .apk- oder lieber eine .aab-Datei?
  • Verteilung über den Google Play Store
  • Kapitel 23: Der iOS-Build
  • Voraussetzungen
  • Vorbereitung eines iOS-Builds
  • Registrieren Sie Ihre App
  • Erstellen Sie einen Build mit Xcode
  • Apps an Testpersonen verteilen
  • Fertig! Release Build erstellen und veröffentlichen
  • Recap: Testen, builden und veröffentlichen
  • Bye bye
  • Teil VII: Top-Ten-Teil
  • Kapitel 24: Unsere 10 Lieblings-Widgets
  • Widget 1: Chip
  • Widget 2: Wrap
  • Widget 3: CupertinoDatePicker und showDatePicker
  • Widget 4: PageView
  • Widget 5: Table
  • Widget 6: Hero
  • Widget 7: AnimatedContainer
  • Widget 8: Semantics
  • Widget 9: SliverAppBar
  • Widget 10: CustomPaint
  • Kapitel 25: Unsere 10 Flutter-Tipps und -Tricks
  • Tipp 1: Wenn Sie einen komischen Fehler haben, den Sie nicht lösen können
  • Tipp 2: Wenn ein iOS-Build nicht hinhaut
  • Tipp 3: Konsistente Benennung von Dateien und Klassen
  • Tipp 4: Arbeiten Sie mit einem Linter
  • Tipp 5: Formatieren Sie Ihren Code mit einem Formatter
  • Tipp 6: Verwenden Sie den automatischen Fix-Command von Dart
  • Tipp 7: Updaten Sie Flutter und Ihre Dependencies regelmäßig
  • Tipp 8: Wann für oder gegen ein Package oder Plug-in entscheiden
  • Tipp 9: Separieren Sie einzelne Widgets in eigene Klassen und separate Dateien
  • Tipp 10: Schauen Sie bei einem Flutter-Meetup vorbei
  • Abbildungsverzeichnis
  • Stichwortverzeichnis
  • End User License Agreement

Einleitung


Über dieses Buch


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!

Konventionen in diesem Buch


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.

GitHub-Repository


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.

Flutter-Version


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.

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:

>> flutter channel stable

Jedes Kapitel allein gegen die Welt


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!

Gender-Love


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.

Törichte Annahmen über unsere Leserschaft


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.

Wie dieses Buch aufgebaut ist


Dieses Buch teilt sich in sieben Teile, die wiederum in Kapitel und Unterkapitel aufgeteilt sind.

Teil I: Einführung in Flutter


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.

Teil II: Programmieren mit Dart


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.

Teil III: Wir bauen eine App


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.

Teil IV: REST und Firebase - externe Daten beziehen und managen


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.

Teil V: State-Management


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.

Teil VI: Testing, builden und veröffentlichen


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.

Teil VII: Top-Ten-Teil


Im Top-Ten-Teil erfahren...

Dateiformat: ePUB
Kopierschutz: Adobe-DRM (Digital Rights Management)

Systemvoraussetzungen:

  • Computer (Windows; MacOS X; Linux): Installieren Sie bereits vor dem Download die kostenlose Software Adobe Digital Editions (siehe E-Book Hilfe).
  • Tablet/Smartphone (Android; iOS): Installieren Sie bereits vor dem Download die kostenlose App Adobe Digital Editions oder die App PocketBook (siehe E-Book Hilfe).
  • E-Book-Reader: Bookeen, Kobo, Pocketbook, Sony, Tolino u.v.a.m. (nicht Kindle)

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.