Skip to Content
Mobile Apps4 - FlutterMit Flutter starten

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:

→ 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 Palette und Flutter: New Project auswä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.

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-analytics

Wir 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/await mit Futures & Streams (native Sprachfeatures).
  • Generatorfunktionen sync*/async* mit yield/yield*.
  • Mixins (mixin, Verwendung mit with).
  • 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 (identische const-Objekte sind identisch).
  • Implizite Interfaces (jede Klasse definiert ein Interface; implements auf Klassen).
  • „Alles ist ein Objekt“ (keine primitiven Typen).
  • Sound Null-Safety (non-nullable by default; ?, !, late u. a.).

Nützliche Links zu Dart:

🤔

Warum Google in nativer Android-Entwicklung auf Kotlin setzt, aber in Flutter auf Dart, ist eine interessante Frage…