Installieren Sie die genialokal App auf Ihrem Startbildschirm für einen schnellen Zugriff und eine komfortable Nutzung.
Tippen Sie einfach auf Teilen:
Und dann auf "Zum Home-Bildschirm [+]".
Bei genialokal.de kaufen Sie online bei Ihrer lokalen, inhabergeführten Buchhandlung!
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.
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