Mit Flutter starten
Dauer: 30 Minuten mit Zeit für die Einrichtung der IDE bzw. Problemlösungen
- Entwicklungsumgebung einrichten
- Erstes Flutter-Projekt erstellen und starten
- Bemerkungen zu Dart
Ziel: Einstieg mit Flutter
TODO 2026: Neues Projekt mit Template Empty Application erstellen. lib/main.dart sieht dann so aus:
import 'package:flutter/material.dart';
void main() {
runApp(const MainApp());
}
class MainApp extends StatelessWidget {
const MainApp({super.key});
@override
Widget build(BuildContext context) {
return const MaterialApp(
home: Scaffold(
body: Center(
child: Text('Hello World!'),
),
),
);
}
}Was ist Flutter?
Flutter ist ein Open-Source-Framework von Google, mit dem Apps plattformübergreifend für mobile Geräte, Web und Desktop entwickelt werden können. Die Programmiersprache, die für Flutter verwendet wird, ist Dart .
Achtung: Im Oktober 2024 wurde Flutter geforked.
Es gibt jetzt zwei Versionen von Flutter:
- Das Original von Google: https://flutter.dev
- Ein Fork von einer Gruppe von Entwicklern: https://getflocked.dev
→ Welche Version wird sich durchsetzen?
Hintergrundinfos: https://getflocked.dev/blog/posts/we-are-forking-flutter-this-is-why/
Entwicklungsumgebung einrichten
Laut Flutter-Dokumentation ist die Flutter am einfachsten mit VS Code einzurichten: https://docs.flutter.dev/get-started/quick
- VS Code installieren: https://code.visualstudio.com
- Flutter-Extension installieren
View Command PaletteundFlutter: New Projectauswählen- Projektname:
todosflutter - → Aufforderung zum Installieren des Flutter-SDKs bestätigen
In macOS kann Flutter auch mit Homebrew installiert werden.
Die Studierenden können selbst entscheiden welche IDE sie verwenden möchten:
- VS Code
- Android Studio mit Flutter-Plugin
- Firebase Studio (Cloud-IDE): https://firebase.studio
- … im Prinzip kann jeder Editor verwendet werden
Für Flutter können wir auch Android Studio verwenden. Dazu müssen wir ein Plugin installieren, damit Android Studio Flutter-Projekte erstellen und verwalten kann. Außerdem muss das Flutter-SDK installiert werden.
- Flutter-SDK installieren: https://docs.flutter.dev/install/manual
- Plugin für Android Studio: https://docs.flutter.dev/tools/android-studio
Erstes Flutter-Projekt erstellen und starten
Mit VS Code haben wir oben bereits ein neues Flutter-Projekt
erstellt (ansonsten nochmals todosflutter erstellen).
In Android Studio erstellen wir ein neues Projekt und
achten darauf, dass wir als Projekttyp Flutter auswählen.
Für das Flutter SDK geben wir den Pfad zum Flutter-SDK an, das wir vorher installiert haben.
Wir nennen das Projekt todosflutter.
Bei Bedarf die Analytics im Terminal ausschalten:
flutter --disable-analytics
dart --disable-analyticsWir können das Projekt wie gewohnt in Android Studio
starten. In VS Code kann das Projekt mit F5 gestartet werden
(vorher im Flutter-Bereich in der Seitenleiste
ein passendes Gerät auswählen, z. B. Android-Emulator)
Das Projekt wird mit der Datei lib/main.dart im Editor
geöffnet. Diese Datei enthält den Code für die Startseite
der App. Wir sehen die Vorschau der App auf der rechten Seite
(Android und Web). Code-Änderungen werden automatisch übernommen
(hot reload).
Projekt mit git versionieren
Im Terminal folgendes im Projektordner ausführen:
git init
git add .
git commit -m "Projektstart"Bemerkungen zu Dart
Dart ist die Programmiersprache, die für Flutter verwendet wird. Dart ist eine objektorientierte Programmiersprache, die von Google entwickelt wurde. Wer bereits mit Java, JavaScript oder C# gearbeitet hat, wird sich in Dart schnell zurechtfinden. Im Vergleich zu Kotlin ist Dart deutlich näher an Java.
Im Gegensatz zu Kotlin benötigen wir in Dart leider wieder Semikolons…
Hier ein paar Bemerkungen zu Dart im Vergleich zu Java (laut ChatGPT 😉):
- Benannte Parameter (inkl.
required& Default-Werte). - Top-Level-Funktionen /
main()(ohne Klassenhülle möglich). - Isolates (Parallelität ohne Shared-Memory; Kommunikation per Messages).
async/awaitmit Futures & Streams (native Sprachfeatures).- Generatorfunktionen
sync*/async*mityield/yield*. - Mixins (
mixin, Verwendung mitwith). - Extension Methods (Methoden an Fremdtypen „anhängen“).
- Kaskaden-Operatoren
../..?(fluent Änderungen ohne Temp-Var). - Collection-Goodies: Spread
.../...?sowie collection-if/for in Literalen. - Reifizierte Generics (Typinfo zur Laufzeit; Java nutzt Erasure – steht so in der Dart-Doku).
- Operator-Überladung (für definierte Operatoren wie
+,==,[]…). const-Konstruktoren & Kanonisierung (identischeconst-Objekte sind identisch).- Implizite Interfaces (jede Klasse definiert ein Interface;
implementsauf Klassen). - „Alles ist ein Objekt“ (keine primitiven Typen).
- Sound Null-Safety (non-nullable by default;
?,!,lateu. a.).
Nützliche Links zu Dart:
Warum Google in nativer Android-Entwicklung auf Kotlin setzt, aber in Flutter auf Dart, ist eine interessante Frage…