Skip to content

Kapitel 13: Modularisierung und Bibliotheken

13.1 Überblick über Modularisierung

Modularisierung ermöglicht das Aufteilen von Code zur Wiederverwendbarkeit und Vermeidung von Redundanz.

13.2 Import und Verwendung von Bibliotheken

Systembibliotheken importieren

dart
import 'dart:io';      // E/A-Operationen
import 'dart:async';   // Asynchrone Programmierung
import 'dart:convert'; // Datenkonvertierung
import 'dart:math';    // Mathematische Funktionen

Benutzerdefinierte Bibliotheken importieren

dart
// utils.dart
String gruß(String name) {
  return 'Hallo ' + name;
}

// main.dart
import 'utils.dart';

void main() {
  print(gruß('Alice'));
}

Drittanbieter-Bibliotheken importieren

Füge Abhängigkeiten in pubspec.yaml hinzu:

yaml
dependencies:
  http: ^1.0.0

Dann installieren:

bash
dart pub get

Importieren:

dart
import 'package:http/http.dart' as http;

13.3 Export von Bibliotheken

dart
// math_utils.dart
double add(double a, double b) => a + b;
double sub(double a, double b) => a - b;

// utils.dart
export 'math_utils.dart';

// main.dart
import 'utils.dart';

void main() {
  print(add(1, 2));
}

13.4 Namensräume

dart
import 'lib1.dart';
import 'lib2.dart' as lib2;  // Alias zur Vermeidung von Namenskonflikten

void main() {
  // Verwendung von lib1
  funktion1();
  
  // Verwendung von lib2
  lib2.funktion1();
}

13.5 Praxisbeispiel

Dateistruktur:

projekt/
  lib/
    math_utils.dart
    string_utils.dart
  main.dart
  pubspec.yaml

math_utils.dart:

dart
double add(double a, double b) => a + b;
double sub(double a, double b) => a - b;

string_utils.dart:

dart
String umkehren(String s) => s.split('').reversed.join('');

utils.dart:

dart
export 'math_utils.dart';
export 'string_utils.dart';

main.dart:

dart
import 'lib/utils.dart';

void main() {
  print(add(1, 2));
  print(umkehren('Dart'));
}

Frei für alle Anfänger