Swift Aufgabenautomatisierung: Von Langeweile zu einem Befehl

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

Warum Swift mehr kann als nur Apps

\n\n

Wenn du „Swift“ hörst, denkst du wahrscheinlich an iOS-Entwicklung, Xcode, Storyboards und endlose Constraints. Aber Swift hat noch eine andere Seite, die viele nicht kennen. Swift ist ein mächtiges Werkzeug für die Aufgabenautomatisierung unter macOS. Und damit meine ich nicht das Kompilieren von Apps, sondern alltägliche Dinge: Hunderte Dateien umbenennen, einen CSV-Bericht parsen, um 18:00 Uhr eine Benachrichtigung senden oder Server-Logs sammeln.

\n\n

Warum Swift und nicht Python oder Bash? Weil Swift:

\n
    \n
  • nativ mit macOS arbeitet (Zugriff auf Foundation, Dispatch, UserNotifications);
  • \n
  • keine virtuelle Umgebung oder Abhängigkeiten benötigt (wenn du SPM vermeidest);
  • \n
  • klare Kompilierungsfehler liefert – du verschwendest keine Stunde mit der Suche nach einem fehlenden Leerzeichen wie in Bash;
  • \n
  • als Skript mit einem Befehl ausgeführt werden kann: swift myScript.swift.
  • \n
\n\n

In diesem Artikel zeige ich dir mehrere praktische Automatisierungsszenarien mit Swift. Du kannst den Code kopieren, bei dir ausführen und vor allem verstehen, wie du deine eigenen Tools schreibst. Los geht's!

\n\n

Wie ein Swift-Skript funktioniert: Minimale Theorie

\n\n

Um eine Automatisierung mit Swift zu schreiben, brauchst du kein Xcode. Ein Terminal und ein Texteditor reichen völlig aus. Erstelle eine Datei script.swift und führe sie mit folgendem Befehl aus:

\n\n
swift script.swift
\n\n

Swift kompiliert und führt den Code automatisch aus. Bei größeren Skripten kannst du für schnellere Wiederholungen vorkompilieren: swiftc -O script.swift -o script und dann die Binärdatei ausführen.

\n\n

Alles, was wir jetzt schreiben, funktioniert sofort – ohne externe Bibliotheken. Nur Foundation, das automatisch eingebunden wird.

\n\n

Szenario #1: Stapelweises Umbenennen von Dateien

\n\n

Stell dir vor: Du hast einen Ordner mit Fotos IMG_001.jpg, IMG_002.jpg … IMG_100.jpg. Du möchtest sie in Urlaub_1.jpg, Urlaub_2.jpg usw. umbenennen. Von Hand – 100 Schritte. Mit einem Skript – 0,5 Sekunden.

\n\n
import Foundation\n\nlet fileManager = FileManager.default\nlet currentPath = fileManager.currentDirectoryPath\n\nguard let files = try? fileManager.contentsOfDirectory(atPath: currentPath) else {\n    print("Konnte Ordner nicht lesen")\n    exit(1)\n}\n\nlet imageFiles = files.filter { $0.hasSuffix(".jpg") || $0.hasSuffix(".png") }\n\nfor (index, file) in imageFiles.enumerated() {\n    let newName = "Urlaub_\\(index + 1)." + (file.hasSuffix(".jpg") ? "jpg" : "png")\n    let oldURL = URL(fileURLWithPath: currentPath).appendingPathComponent(file)\n    let newURL = URL(fileURLWithPath: currentPath).appendingPathComponent(newName)\n    \n    do {\n        try fileManager.moveItem(at: oldURL, to: newURL)\n        print("✅ \\(file) → \\(newName)")\n    } catch {\n        print("❌ Fehler bei Datei \\(file): \\(error.localizedDescription)")\n    }\n}
\n\n

So funktioniert's:

\n
    \n
  • FileManager.default – Zugriff auf das Dateisystem;
  • \n
  • contentsOfDirectory – Liste der Dateien im aktuellen Ordner abrufen;
  • \n
  • Nur Bilder filtern;
  • \n
  • Umbenennen mit moveItem (ja, in Swift ist Umbenennen ein Verschieben).
  • \n
\n\n

Du kannst das Skript leicht anpassen: Präfix ändern, Dateiendungen erweitern oder ein Datum in den Namen einfügen. Das ist ein nützliches Swift-Skript, das dir täglich Zeit spart.

\n\n

Extra-Tipp: Datum als Suffix

\n\n
let dateFormatter = DateFormatter()\ndateFormatter.dateFormat = "yyyy-MM-dd"\nlet dateString = dateFormatter.string(from: Date())\n\nfor (index, file) in imageFiles.enumerated() {\n    let newName = "\\(dateString)_\\(index + 1).jpg"\n    // ... weiter wie im Beispiel oben\n}
\n\n

Szenario #2: CSV-Datei parsen

\n\n

CSV-Dateien sind der Klassiker der Büroarbeit. Ob Exporte aus Excel, Google Sheets oder SAP – oft musst du sie verarbeiten. Mit Swift kannst du das schnell und sauber erledigen.

\n\n
import Foundation\n\nlet csvContent = try String(contentsOfFile: "daten.csv", encoding: .utf8)\nlet rows = csvContent.components(separatedBy: "\\n")\n\nfor row in rows {\n    let columns = row.components(separatedBy: \",\")\n    guard columns.count >= 2 else { continue }\n    let name = columns[0].trimmingCharacters(in: .whitespaces)\n    let wert = columns[1].trimmingCharacters(in: .whitespaces)\n    print("Name: \\(name), Wert: \\(wert)")\n}
\n\n

So funktioniert's:

\n
    \n
  • String(contentsOfFile:) – liest die gesamte Datei als String;
  • \n
  • components(separatedBy:) – teilt den String in Zeilen und Spalten;
  • \n
  • trimmingCharacters – entfernt überflüssige Leerzeichen.
  • \n
\n\n

Dieses Swift CSV-Parsing ist ideal für die Automatisierung von Datenauswertungen. Du kannst es leicht erweitern, um Werte zu summieren, zu filtern oder in eine neue Datei zu schreiben.

\n\n

Szenario #3: Benachrichtigungen senden

\n\n

Manchmal möchtest du informiert werden, wenn ein Skript fertig ist oder ein bestimmtes Ereignis eintritt. Mit UserNotifications kannst du lokale Benachrichtigungen direkt vom Terminal aus senden.

\n\n
import UserNotifications\n\nlet center = UNUserNotificationCenter.current()\ncenter.requestAuthorization(options: [.alert, .sound]) { granted, error in\n    guard granted else {\n        print("Benachrichtigungen nicht erlaubt")\n        exit(1)\n    }\n    \n    let content = UNMutableNotificationContent()\n    content.title = "Swift Automatisierung"\n    content.body = "Dein Skript wurde erfolgreich ausgeführt!"\n    content.sound = .default\n    \n    let trigger = UNTimeIntervalNotificationTrigger(timeInterval: 1, repeats: false)\n    let request = UNNotificationRequest(identifier: UUID().uuidString, content: content, trigger: trigger)\n    \n    center.add(request) { error in\n        if let error = error {\n            print("Fehler: \\(error.localizedDescription)")\n        } else {\n            print("✅ Benachrichtigung gesendet")\n        }\n    }\n}\n\ndispatchMain()
\n\n

So funktioniert's:

\n
    \n
  • requestAuthorization – Berechtigung für Benachrichtigungen anfordern;
  • \n
  • UNMutableNotificationContent – Inhalt der Benachrichtigung festlegen;
  • \n
  • UNTimeIntervalNotificationTrigger – Verzögerung von 1 Sekunde;
  • \n
  • dispatchMain() – hält das Skript am Leben, bis die Benachrichtigung gesendet wurde.
  • \n
\n\n

Diese Swift Benachrichtigungen sind perfekt, um dich an Termine zu erinnern oder den Abschluss langer Aufgaben zu melden.

\n\n

Fazit: Swift als Geheimwaffe für deinen Mac

\n\n

Swift ist nicht nur für iOS-Apps da. Mit ein paar Zeilen Code kannst du alltägliche Aufgaben automatisieren und dir Stunden an manueller Arbeit sparen. Ob Dateien umbenennen, CSV parsen oder Benachrichtigungen senden – Swift macht es einfach und zuverlässig.

\n\n

Probiere die Skripte selbst aus und passe sie an deine Bedürfnisse an. Du wirst sehen: Sobald du einmal anfängst, wirst du immer mehr Swift Automatisierungen für deinen Mac entdecken. Viel Erfolg!

Blogs

Buchempfehlungen