Marburger / Post | Flutter und Dart | E-Book | www.sack.de
E-Book

E-Book, Deutsch, 633 Seiten

Reihe: Rheinwerk Computing

Marburger / Post Flutter und Dart

Das umfassende Handbuch
2. Auflage 2025
ISBN: 978-3-367-10974-6
Verlag: Rheinwerk
Format: EPUB
Kopierschutz: 0 - No protection

Das umfassende Handbuch

E-Book, Deutsch, 633 Seiten

Reihe: Rheinwerk Computing

ISBN: 978-3-367-10974-6
Verlag: Rheinwerk
Format: EPUB
Kopierschutz: 0 - No protection



Wenn es um plattformübergreifende App-Entwicklung geht, macht Flutter Träume wahr: GUI-Bibliotheken, die das beste aus der Android- und der iOS-Welt flexibel zur Auswahl stellen, starke Tools und moderne Sprachfeatures - erleben Sie selbst, wie produktiv und elegant sich damit arbeiten lässt. Hier finden Sie alles, was Sie für den Einstieg und die professionelle Programmierung brauchen. Lernen Sie das Framework Flutter und die Sprache Dart mit all ihren Stärken kennen. Die Autoren führen in alle wichtigen Konzepte ein und vergessen dabei nicht, auf Fallstricke hinzuweisen. Mit vielen Beispielen, konkreten Praxistipps und Sinn für die wichtigen Details.

Aus dem Inhalt:

  • Installation und Werkzeuge
  • Abhängigkeiten verwalten
  • Widgets, Themes und Styles
  • Hot Reload und effiziente Workflows
  • Lokalisierung und Barrierefreiheit
  • Releases für iOS und Android
  • Flutter Modules, Natives einbetten und C-Schnittstellen
  • Unit-Tests, Widgets testen
  • Logging und Analytics


Marc Marburger hat langjährige Erfahrung in der App- und Softwareentwicklung. Angefangen hat er nach dem Abschluss in Informatik mit C++ und Assembler in der Industrieautomatisierung. Plattformübergreifende Apps beschäftigen ihn seit 2012: C# auf der Windows-Plattform, Xamarin, Flutter und Dart, Rust. Letztere setzt er täglich als freiberuflicher Softwareentwickler immer häufiger in Kundenprojekten ein.
Marburger / Post Flutter und Dart jetzt bestellen!

Autoren/Hrsg.


Weitere Infos & Material



  Materialien zum Buch ... 19
TEIL I.  Einführung ... 21
  1.  Über dieses Buch ... 23

       1.1 ... Was Sie in diesem Buch lernen werden ... 24
       1.2 ... Null-Safety als Default-Einstellung ab Flutter 2.2 ... 26
       1.3 ... Danksagung ... 26

  2.  Installation und die Wahl der IDE ... 27

       2.1 ... Flutter herunterladen und installieren ... 27
       2.2 ... Die Wahl der IDE ... 31
       2.3 ... Die Flutter-Installation voll im Griff ... 36

  3.  Warum Sie mit Dart voll ins Schwarze treffen ... 39

       3.1 ... Der Ursprung von Dart ... 40
       3.2 ... Ein erstes Dart-Programm ... 41
       3.3 ... Wichtige Begleiter ... 43
       3.4 ... Variablen ... 44
       3.5 ... Datentypen ... 48
       3.6 ... Funktionen ... 66
       3.7 ... Klassen, Mixins und Enums ... 77
       3.8 ... Generika ... 108
       3.9 ... Collections ... 111
       3.10 ... Kontrollstrukturen ... 127
       3.11 ... Exceptions und Errors ... 134
       3.12 ... Asynchrone Programmierung ... 138
       3.13 ... Die Library ... 147
       3.14 ... Ein Projekt strukturieren ... 149
       3.15 ... Code dokumentieren ... 150
       3.16 ... Null-Safety ... 152
       3.17 ... Zusammenfassung ... 156

  4.  Pubs: Abhängigkeiten komfortabel verwalten ... 159

       4.1 ... Von der Library zum Package ... 159
       4.2 ... Ein Meer aus pubs ... 160
       4.3 ... Wo Licht ist, da fällt auch Schatten ... 160
       4.4 ... Packages verwenden ... 162
       4.5 ... Versionen ... 166
       4.6 ... Der System-Cache ... 169
       4.7 ... Der Build Runner ... 169
       4.8 ... Zusammenfassung ... 170

TEIL II.  Bedienoberflächen ... 171
  5.  Widgets ... 173

       5.1 ... Ein erstes Widget ... 174
       5.2 ... Stateful Widgets ... 182
       5.3 ... Material Design und Cupertino Design ... 194
       5.4 ... Vom Widget zum Rendering Object ... 197
       5.5 ... Keys ... 201
       5.6 ... Zusammenfassung ... 205

  6.  Layouting ... 207

       6.1 ... Positionierung ... 207
       6.2 ... Scroll-Widgets ... 231
       6.3 ... Constraints, Höhen und Breiten ... 259
       6.4 ... MediaQueryData ... 267
       6.5 ... Overlay ... 273
       6.6 ... Die Gerüste ... 283
       6.7 ... Zusammenfassung ... 294

  7.  Navigation ... 295

       7.1 ... Ein erster Sprung ... 295
       7.2 ... Wenn Flutter nach dem Weg fragt: Named Routes ... 299
       7.3 ... Eine Route austauschen ... 301
       7.4 ... Routen entfernen ... 303
       7.5 ... Großflächig aufräumen mit push und pop ... 304
       7.6 ... NavigatorObserver ... 304
       7.7 ... Daten austauschen ... 305
       7.8 ... Den Android-Back-Button zähmen ... 308
       7.9 ... Routen als URIs ... 309
       7.10 ... Verschachtelte Navigator-Objekte ... 309
       7.11 ... Navigator 2.0 ... 311
       7.12 ... Zusammenfassung ... 329

  8.  Früchte am Baum: InheritedWidgets ... 331

       8.1 ... Ein InheritedWidget ... 331
       8.2 ... Das eigene InheritedWidget: TimeInfo ... 332
       8.3 ... Zusammenfassung ... 335

  9.  BloCs: View Logic aus dem Weg räumen ... 337

       9.1 ... Der BloC ... 337
       9.2 ... BloC und ValueListenable ... 338
       9.3 ... ChangeNotifier ... 342
       9.4 ... Streams ... 345
       9.5 ... Futures ... 352
       9.6 ... Frische Pizza mit flutter_bloc ... 355
       9.7 ... Zusammenfassung ... 358

10.  Mit dem Nutzer interagieren ... 359

       10.1 ... Button, TextField und Co ... 359
       10.2 ... Wischen, Schieben und Ziehen ... 380
       10.3 ... Dialogs und die Snackbar ... 387

11.  Themes und Styles ... 395

       11.1 ... BoxDecoration ... 395
       11.2 ... Clipping ... 399
       11.3 ... Text ... 403
       11.4 ... ThemeData und CupertinoThemeData ... 406
       11.5 ... Effekte durch Widgets ... 406

12.  Animationen ... 411

       12.1 ... Implizite Animationen ... 411
       12.2 ... Tween-Animationen ... 416
       12.3 ... Explizite Animationen ... 419
       12.4 ... AnimatedWidget und der AnimatedBuilder ... 424

13.  Arbeiten mit Canvas und Paint ... 429

       13.1 ... CustomPaint und CustomPainter ... 429
       13.2 ... Zusammenfassung ... 437

TEIL III.  Assets und Medien ... 439
14.  Assets und Medien ... 441

       14.1 ... Bilder ... 441
       14.2 ... Icons ... 446
       14.3 ... Videos ... 450
       14.4 ... Schriften ... 452
       14.5 ... Textressourcen ... 453
       14.6 ... Zusammenfassung ... 455

15.  Den Nutzerkreis vergrößern: Localization und Accessibility ... 457

       15.1 ... Localization ... 457
       15.2 ... Accessibility ... 475
       15.3 ... Zusammenfassung ... 486

16.  Die Cloud: Unendliche Weiten ... 487

       16.1 ... Daten mit GET beziehen ... 488
       16.2 ... Ein eigener (HTTP-)Client ... 489
       16.3 ... POST, PUT und PATCH ... 493
       16.4 ... Delete ... 500
       16.5 ... Mehr zu Requests ... 502
       16.6 ... Das Package dio ... 505
       16.7 ... JSON-Serialisierung und -Deserialisierung ... 512
       16.8 ... Die Webview ... 517
       16.9 ... Zusammenfassung ... 532

17.  Persistieren: Caches und Datenbanken ... 533

       17.1 ... shared_preferences ... 534
       17.2 ... flutter_cache_manager ... 538
       17.3 ... Datenbanken ... 542
       17.4 ... NoSQL mit Hive CE ... 554
       17.5 ... Eine wirklich nützliche Beispiel-App ... 556
       17.6 ... Zusammenfassung ... 567

TEIL IV.  Sensoren und Hardware ... 569
18.  Mit der Außenwelt kommunizieren ... 571

       18.1 ... Geräteinformationen ... 571
       18.2 ... Bewegungssensoren und Batterie ... 573
       18.3 ... Verbindungsdaten ... 574
       18.4 ... Berechtigungen ... 575
       18.5 ... Kamera und Fotobibliothek ... 576
       18.6 ... Standortbestimmung ... 577
       18.7 ... Zusammenfassung ... 579

19.  Den Kanal wechseln: Channels zur Plattform ... 581

       19.1 ... Method Channels ... 582
       19.2 ... Foreign Function Interface (FFI) ... 588
       19.3 ... Hybride Apps ... 592

TEIL V.  Endgame ... 601
20.  Analytics, Tests und Releases ... 603

       20.1 ... Logging ... 603
       20.2 ... Analytics ... 605
       20.3 ... Debugging ... 605
       20.4 ... Profiling ... 607
       20.5 ... Testing ... 609
       20.6 ... Releases ... 620
       20.7 ... Zusammenfassung ... 624

  Index ... 625


2.2    Die Wahl der IDE


Sie haben bereits Erfahrungen mit Visual Studio Code oder Android Studio gesammelt? Für die Entwicklung mit Flutter können Sie Ihre Lieblingsumgebung gleich mitbringen!

Im Laufe des Jahres 2015 entschied sich das Team hinter Dart, auf die Weiterentwicklung seiner auf Eclipse basierenden Dart-IDE zu verzichten. Stattdessen konzentrierten die Entwickler sich auf Plugins, die auf einer Toolchain für die Kommandokonsole aufbauen und in aktuelle Entwicklungsumgebungen integriert werden können. Mit anderen Worten: Man packt Ihnen einen Koffer (das Plugin) mit allen wichtigen Programmen und Werkzeugen (der Toolchain), mit dem Sie dann zu Ihrer Lieblings-IDE wandern können, um in ihr zu entwickeln. Das ist ein nicht unerheblicher Grund dafür, dass Flutter und Dart mittlerweile eine solche Verbreitung erfahren haben.

In der Flutter-Community bildeten sich mit Microsofts Visual Studio Code und IntelliJ von JetBrains sowie mit dem darauf aufbauenden und von Google vertriebenen Android Studio Favoriten heraus. Weil IntelliJ und Android Studio sich sehr ähnlich sind, beschränke ich mich auf die Beschreibung von Android Studio.

Flutter ohne IDE


Im Grunde spricht nichts dagegen, Flutter in der Konsole zu schreiben. Ein Plugin wird etwa speziell für emacs angeboten (https://flutter.dev/docs/get-started/editor?tab=emacs).

Im Folgenden führe ich Sie durch die Installation von Flutter in Android Studio und Visual Studio Code sowie jeweils durch ein erstes Deployment, also durch die Installation einer App auf einem Gerät.

2.2.1    IntelliJ und Android Studio


Googles Android Studio basiert auf IntelliJ von JetBrains. Beide IDEs lassen sich gleichermaßen für die Flutter-Entwicklung verwenden und zeigen sich ähnlich in Verwendung und Funktionsumfang.

Android Studio bietet allerdings volle Unterstützung und alle Werkzeuge für die Android-Entwicklung. Sollte es einmal nötig sein, den nativen Unterbau der Flutter-App auf Android zu debuggen oder mit Performance-Tools zu prüfen, kommen Sie nicht um Android Studio herum.

Die folgenden Schritte zur ersten Flutter-App lassen sich mit beiden IDEs ausführen. Der Übersichtlichkeit halber spreche ich ab jetzt nur noch von »Android Studio«.

Gehen Sie zu https://developer.android.com/studio, um Android Studio zu installieren, oder zu https://www.jetbrains.com/idea, um IntelliJ zu installieren.

Abbildung 2.6     Der Begrüßungsbildschirm von Android Studio

Starten Sie die heruntergeladene und installierte Entwicklungsumgebung, um die Flutter-Plugins für Android Studio zu installieren. Im Willkommens-Bildschirm (siehe Abbildung 2.6) wählen Sie links Plugins.

Das Fenster aus Abbildung 2.7 erscheint. Es bietet den Überblick über auf dem Marketplace verfügbare sowie bereits installierte Plugins. Tippen Sie ins Suchfeld oben »Flutter« ein, wählen Sie den entsprechenden Eintrag, und installieren Sie ihn mit einem Klick auf Install. Wahrscheinlich werden Sie gefragt, ob Abhängigkeiten für Dart gleich mitinstalliert werden dürfen. Geben Sie dafür grünes Licht. Klicken Sie schließlich auf Restart IDE, um das Flutter-Plugin endgültig zu aktivieren.

Nun wird Ihnen wieder das Willkommensfenster angezeigt. Dieses wurde allerdings um die neue Schaltfläche New Flutter Project bereichert. Klicken Sie darauf. Jetzt öffnet sich ein Projekt-Wizard, der Sie durch die Einrichtung führt. Zunächst müssen Sie den Pfad des zuvor installierten Flutter-SDK einmalig einstellen. Der folgende Schritt fragt Sie nach dem Projektnamen, dem Projektordner und einer Beschreibung (siehe Abbildung 2.8). Beachten Sie, dass der Projektname keine Leerzeichen oder Großbuchstaben enthalten darf. Bei Bedarf verwenden Sie den Unterstrich zur Worttrennung.

Abbildung 2.7     Die Suche nach dem Flutter-Plugin ergibt zahlreiche Treffer. Der richtige ist der mit den über 20 Millionen Downloads.

Abbildung 2.8     Bei der Konfiguration des neuen Flutter-Projekts können Sie bis auf den Namen und die »Organization«-Angabe alles so lassen, wie es ist.

Jetzt ist der Computer dran und erstellt das Projekt. Auf der linken Seite sehen Sie danach die Projektübersicht. Außerdem wurde wahrscheinlich die Datei main.dart sowie eine README.md mit einigen Informationen geöffnet. Ignorieren Sie zunächst die Details, und wenden Sie sich stattdessen dem Kopfbereich des Fensters zu, in dem Sie die vom Flutter-Plugin zur Verfügung gestellten Informationen und Schaltflächen finden (siehe Abbildung 2.9). Wenn Sie kein geeignetes Smartphone mit dem Computer verbunden haben, wählen Sie im ersten Dropdown-Menü einfach Chrome (web).

Abbildung 2.9     Die Informationen über Geräte von Flutter

Klicken Sie auf das grüne Startsymbol, um die App zu starten. Abermals ist der Computer am Zuge und übersetzt den Code. Nach einem kurzen Moment wird ein Browserfenster die Flutter-App anzeigen. Statt auf »Herzlichen Glückwunsch zum Deployment!« klicken Sie auf das rote Stop-Icon in Android Studio, um die Anwendung zu beenden.

2.2.2    Visual Studio Code


Die aktuellste Version von Visual Studio Code (VS Code) können Sie unter https://code.visualstudio.com herunterladen. VS Code wird für macOS, Windows und Linux angeboten.

Installieren Sie VS Code auf Ihrem Computer, und starten Sie es. Ihr nächster Schritt besteht darin, die Unterstützung für Flutter in Form der Flutter-Erweiterung zu installieren. Gehen Sie hierzu im geöffneten Fenster zu den Erweiterungen (Extensions). Auf der linken Seite finden Sie die vertikale Navigation, in der Sie das zugehörige Symbol auswählen (siehe Abbildung 2.10).

Abbildung 2.10     Das »Extensions«-Symbol in Visual Studio Code

Nun klappt der Seitenbereich auf und zeigt gegebenenfalls Informationen über empfohlene Erweiterungen und solche, die Sie bereits installiert haben. Falls Sie Flutter schon zuvor installiert haben, sollten Sie das Paket hier finden. Falls nicht, suchen Sie mit dem Eingabefeld nach »Flutter« und wählen den entsprechenden Eintrag aus. Rechts öffnet sich ein Bereich mit Informationen über das Flutter-Plugin. Betätigen Sie die Schaltfläche Installation (install).

Legen Sie nun ein neues Flutter-Projekt an. Öffnen Sie dazu die sogenannte Command Palette (Befehlspalette) in VS Code unter View/Anzeigen, und tippen Sie »flutter« ein (siehe Abbildung 2.11).

Abbildung 2.11     Die Command Palette mit dem Suchbegriff »flutter«

Unter den Einträgen, die dann erscheinen, sollte sich Flutter: New Project befinden. Wählen Sie diesen Eintrag aus. Jetzt fordert die Eingabe Sie auf, einen Anwendungstyp auszuwählen. Sie können der Einfachheit halber Empty Application wählen. Anschließend wählen Sie einen neuen Ordner, in dem das Projekt erzeugt werden soll. Verwenden Sie keinen zu tief verschachtelten Pfad, da die Windows-Buildtools nicht mit Pfaden klarkommen, die länger als 266 Zeichen sind. Im letzten Schritt müssen Sie einen Namen für die Anwendung eingeben – wie üblich bitte ohne Leerzeichen oder Großbuchstaben.

Fast geschafft! Den Rest der Arbeit darf der Computer erledigen. Schließlich öffnen sich die Projektansicht und die Datei main.dart. Achten Sie zu diesem Zeitpunkt nicht auf die Einzelheiten des Projekts, sondern lassen Sie den Blick nach unten rechts im Fenster wandern: Das installierte Flutter-Plugin hat einige Anzeigen in die Statusleiste eingefügt (siehe Abbildung 2.12).

Abbildung 2.12     Die Flutter-Informationsleiste in Visual Studio Code

Ganz ähnlich wie in Android Studio können Sie hier zwischen Chrome (web-javascript) oder einer Desktop-Variante wählen. Klicken Sie oben auf den Startpfeil oder drücken Sie F5, um die Anwendung zu starten (siehe...


Post, Uwe
Uwe Post hat ein Diplom in Physik und Astronomie und entwickelt Smartphone-Apps und -Spiele. Er schreibt Fachartikel in Computerzeitschriften, allerdings deutlich mehr Science-Fiction-Geschichten. Sein Roman »Walpar Tonnraffir und der Zeigefinger Gottes« gewann 2011 den Kurd-Laßwitz-Preis und den Deutschen Science-Fiction-Preis. Wenn er nicht gerade neue Android- und Computerspiele oder Bücher schreibt, ist er anderweitig hyperaktiv.

Marburger, Marc
Marc Marburger hat langjährige Erfahrung in der App- und Softwareentwicklung. Angefangen hat er nach dem Abschluss in Informatik mit C++ und Assembler in der Industrieautomatisierung. Plattformübergreifende Apps beschäftigen ihn seit 2012: C# auf der Windows-Plattform, Xamarin, Flutter und Dart, Rust. Letztere setzt er täglich als freiberuflicher Softwareentwickler immer häufiger in Kundenprojekten ein.



Ihre Fragen, Wünsche oder Anmerkungen
Vorname*
Nachname*
Ihre E-Mail-Adresse*
Kundennr.
Ihre Nachricht*
Lediglich mit * gekennzeichnete Felder sind Pflichtfelder.
Wenn Sie die im Kontaktformular eingegebenen Daten durch Klick auf den nachfolgenden Button übersenden, erklären Sie sich damit einverstanden, dass wir Ihr Angaben für die Beantwortung Ihrer Anfrage verwenden. Selbstverständlich werden Ihre Daten vertraulich behandelt und nicht an Dritte weitergegeben. Sie können der Verwendung Ihrer Daten jederzeit widersprechen. Das Datenhandling bei Sack Fachmedien erklären wir Ihnen in unserer Datenschutzerklärung.