Lektion 07 - Flutter Grundlagen
Wie Flutter funktioniert
Flutter ist der Schritt von Dart-Code zu grafischen Apps. Bevor du Counter,
Buttons und Layouts baust, musst du verstehen, wie Flutter denkt: Alles ist ein
Widget, UI wird aus Dart-Code gebaut, und Aenderungen passieren ueber State.
1. Was ist Flutter?
Flutter ist ein Framework fuer Apps mit grafischer Oberflaeche. Du schreibst Dart,
Flutter erzeugt daraus sichtbare UI fuer Smartphone, Web oder Desktop.
void main() {
runApp(const MyApp());
}
main() startet wie bei Dart-Konsolenprogrammen. runApp startet
aber keine Konsole, sondern deine Flutter-Oberflaeche.
2. Der wichtigste Satz
In Flutter ist fast alles ein Widget: Text, Button, Abstand, Farbe, Layout,
Seitenstruktur und sogar ganze Bildschirme.
MaterialApp(
home: Scaffold(
appBar: AppBar(title: Text('App')),
body: Text('Hallo'),
),
)
3. Vergleich: JavaScript/Web und Flutter
Wenn du Web oder JavaScript kennst, kannst du Flutter besser einordnen. Flutter nutzt
aber keine HTML-Tags und kein CSS. Die Oberflaeche entsteht direkt aus Widgets.
Web / JavaScriptFlutter / Dart
HTMLWidgets wie Text, Column, Button
CSSWidget-Properties wie color, padding, style
JavaScriptDart-Logik, Funktionen, Klassen, State
document.querySelectorDu greifst nicht direkt auf DOM-Elemente zu
addEventListeneronPressed, onTap oder andere Callback-Properties
DOM neu rendernsetState meldet Flutter: UI neu zeichnen
4. Styling in Flutter
In CSS schreibst du Regeln fuer Klassen oder Elemente. In Flutter gibst du Styling
direkt an Widgets oder an Theme-Werte weiter.
CSS-Denken
.title {
color: blue;
font-size: 32px;
padding: 16px;
}
Flutter-Denken
Padding(
padding: EdgeInsets.all(16),
child: Text(
'Titel',
style: TextStyle(
color: Colors.blue,
fontSize: 32,
),
),
)
Flutter trennt Layout und Styling nicht so stark wie HTML/CSS. Viele visuelle Werte
sind Teil des Widget-Baums.
5. Die wichtigsten Flutter-Funktionen
FunktionBedeutung
main()Startpunkt des Dart-Programms
runApp(...)Startet die Flutter-App und zeigt das erste Widget
build(...)Beschreibt, wie ein Widget aussehen soll
setState(...)Aendert State und laesst Flutter die UI neu zeichnen
print(...)Gibt Debug-Text in der Konsole aus
6. StatelessWidget und StatefulWidget
Ein StatelessWidget zeigt UI ohne eigenen veraenderbaren Zustand. Ein
StatefulWidget hat Werte, die sich aendern koennen, zum Beispiel einen Counter.
Stateless
class TitleText extends StatelessWidget {
const TitleText({super.key});
@override
Widget build(BuildContext context) {
return Text('Hallo');
}
}
Stateful
class CounterPage extends StatefulWidget {
const CounterPage({super.key});
@override
State<CounterPage> createState()
=> _CounterPageState();
}
Faustregel: Wenn sich Werte auf dem Bildschirm veraendern, brauchst du meistens State.
7. State und setState
State ist der aktuelle Zustand deiner App. Beim Counter ist das die Zahl. Wenn du den
State veraenderst, muss Flutter erfahren, dass die UI neu gezeichnet werden soll.
int counter = 0;
void increase() {
setState(() {
counter = counter + 1;
});
}
counterDer aktuelle Zustand.
setStateHier wird der Zustand geaendert.
Neu zeichnenFlutter ruft danach wieder build auf.
8. Wichtige Commands
Diese Befehle brauchst du beim Arbeiten mit Dart und Flutter. Schreibe sie bewusst
ins Terminal und lies die Ausgabe.
CommandWofuer?
dart --versionPrueft, ob Dart installiert ist
dart run datei.dartStartet eine Dart-Konsolendatei
flutter --versionZeigt die installierte Flutter-Version
flutter doctorPrueft, ob Flutter korrekt eingerichtet ist
flutter create projektnameLegt ein neues Flutter-Projekt an
cd projektnameWechselt in den Projektordner
flutter runStartet die App auf einem Geraet, Emulator oder im Browser
flutter pub getLaedt Projekt-Abhaengigkeiten aus pubspec.yaml
flutter analyzePrueft den Code auf typische Fehler
9. Projektstruktur verstehen
Nach flutter create entsteht ein Projektordner mit vielen Dateien. Am Anfang
ist vor allem wichtig, wo dein Code liegt.
mein_projekt/
lib/
main.dart
pubspec.yaml
test/
android/
ios/
web/
lib/main.dartHier startet dein App-Code.
pubspec.yamlHier stehen Name, Assets und Abhaengigkeiten.
android/ ios/ web/Plattformordner fuer verschiedene Zielsysteme.
10. Mini-Uebungen
- Fuehre
flutter doctor aus und notiere, was noch fehlt oder gruen ist.
- Lege mit
flutter create flutter_counter ein Testprojekt an.
- Finde
lib/main.dart und markiere main, runApp, build und setState.
- Schreibe auf, was in Flutter dem Web-Konzept HTML, CSS und JavaScript am ehesten entspricht.
- Aendere einen Text und eine Farbe im Startprojekt.
- Starte die App mit
flutter run.
Weiter zu Apps bauen