zurück zur Tech-Wiki
Tech-Wiki/Frameworks
F

Flutter

UI-SDK von Google für cross-platform Apps (iOS, Android, Web, Desktop).

·Google·BSD-3-Clause

Übersicht

Was ist es?

Flutter ist Googles UI-SDK für cross-platform Apps aus einer Dart-Codebase — iOS, Android, Web, Desktop. Eigene Render-Engine (Impeller / Skia), keine Native-Bridge wie React Native, dadurch konsistente 60/120fps-UX.

Quickstart

brew install --cask flutter
flutter doctor                # Check Toolchain
flutter create my_app && cd my_app
flutter run                   # läuft auf gewähltem Device

Typische Patterns

  • Widget-Komposition statt Inheritance:
    class HomePage extends StatelessWidget {
      Widget build(BuildContext ctx) => Scaffold(
        appBar: AppBar(title: Text('Home')),
        body: ListView(children: [...]),
      );
    }
    
  • State-Management: Riverpod (modern), Provider (legacy), Bloc (komplexere Apps).
  • hooks_riverpod + freezed für immutable State + Code-Gen.
  • Platform-Channels für native Funktionen (Kamera, Bluetooth, …).
  • flutter_gen für Asset-Typsicherheit, melos für Monorepos.

Gotchas / Was oft schiefgeht

  • setState in initState / während Build → Crash. Async-Init via addPostFrameCallback oder FutureBuilder.
  • BuildContext nach await ist evtl. unmounted — if (!mounted) return; checken.
  • Hot-Reload reicht nicht für State-Initialisierungen — manchmal Hot-Restart nötig.
  • Web-Build hat eigene Quirks (Canvas vs HTML-Renderer, große Bundle-Size).
  • Dependency-Versionen: pubspec.lock committen, flutter pub upgrade mit Bedacht.

Wann nicht?

Wenn echtes Web-SEO Pflicht ist → Next.js / Nuxt. Reine Native-iOS-App mit Apple-Polish → SwiftUI. Wenn das Team nur JS kann und Flutter-Lernkurve zu hoch ist → React Native.

Eingesetzt in