Automator-Action (Cocoa): Tipps & Tricks gesucht

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Automator-Action (Cocoa): Tipps & Tricks gesucht

    Hallo Leute!

    Sommerpause ... und ich mache mir wieder Gedanken, was ich denn im Herbst als nächstes Feature in meine App einbauen könnte. Cool fände ich Automator-Actions, zumal sich die Anwendung gut für Massen-Konvertierungen oder -Exporte (PNG, PDF) eignet.

    Mir schwebt also eine Automator-Action vor, die eine Liste von Finder-Objekten übergeben bekommt, die dann mit meinen bestehenden Klassen in andere Dateiformate konvertiert, entsprechende Dateien in's Filesystem schreibt und deren URLs (oder die Dateien als Objekte?) an eine Folge-Aktion übergibt.

    Hat jemand von Euch schon einmal eine ähnliche Action geschrieben? Gibt es spezielle Dos / Don'ts, auf die ich achten sollte? Insgesamt erscheint mir das Vorhaben recht gradlinig, meine Haupt-Unsicherheit ist die Ausgabe aus der Action: Ist es Usus, Ausgabedateien innerhalb der Aktion zu schreiben und dann eine URL-Liste weiterzugeben? Oder gibt man die Daten direkt weiter? Oder erfolgt das Schreiben üblicherweise in einer eigenen Aktion (ich habe keine entsprechende finden können)?

    Für Tipps oder "Literaturverweise" (ausser Apple's Programming Guide) bin ich dankbar :)

    Mattes
    Diese Seite bleibt aus technischen Gründen unbedruckt.
  • Kleines Status-Update:

    Ich habe in den letzten Tagen eine entsprechende Aktion programmiert, wobei der Hauptaufwand das Anpassen der Info.plist aus dem Xcode-Template, Verdrahten der UI und Einrichten des Projektes (inkl. Debugging) in Xcode war.

    Ein paar Lessons learned:
    1. Die Apple-Doku ist etwas angestaubt, passt aber noch; einfach mal die Property-Reference durchgehen (Link)
    2. In Xcode muss das Schema angepasst werden, damit man die Aktion debuggen kann (Link)
    3. Die Änderung von Parameters zur Laufzeit erlaubt dem Benutzer viel Flexibilität. AMCanShowSelectedItemsWhenRun verwenden (wenn nötig, Objekte in der UI mit Boxen gruppieren)
    4. Den Fortschritt der Aktion mit dem Property progressValue abbilden, erzeugt einen schönen Indikator
    5. Warnungen oder Infos mit logMessageWithLevel:format: ausgeben, dann erscheinen sie im Logbereich des Automators
    6. Wenn man Pfade statt File-URLs als Übergaben verwendet, bietet der Automator eine detailliertere Darstellung der Ergebnisse und manche Konvertierungen entfallen (je nach Workflow)
    7. Automator zeigt CFBundleVersion als Versionsinfo an, nicht CFBundleShortVersionString ... einfach ignorieren
    8. Bei Lokalisierungen das Bundle mit [NSBundle bundleForClass: [self class]] nutzen, sonst landet man im Automator-Bundle (wie bei Plugins eben üblich)
    9. Ich werde meinen Benutzern ein Video-Tutorial erstellen, weil wohl kaum einer der "normalen" macOS-Benutzer mit dem Automator vertraut ist ... schade eigentlich
    Für meinen Anwendungsfall - Batch-Konvertierung von Dateien auf Basis bestehender Methoden - ist die Wahl einer Automator-Aktion statt eines eigenen Programm-Features m. E. ideal...

    Mattes
    Diese Seite bleibt aus technischen Gründen unbedruckt.
  • Danke! Das Programming Guide habe ich erst durch deinen Beitrag gefunden.
    “I want to see an elephant hunt down a man for the sole purpose of collecting his teeth, while a chorus of typewriters sings songs that praises the bananas for their wisdom, leadership, and their high levels of potassium.” ― Jarod Kintz, I Want
  • Kurze Zwischenfrage: Wie verteilst du die Automator Aktion an deine Anwender? Installationspaket? Oder müssen die selbst die Aktion in das entsprechende Verzeichnis verschieben? So wie es aussieht werden Aktionen nicht vom System erkannt wenn sie im Bundle einer Host-Applikation liegen. Also nicht wie zum Beispiel bei Share-Extensions, Quick Look Plugins usw. Oder irre ich mich da?

    Gruß
    Daniel
    “I want to see an elephant hunt down a man for the sole purpose of collecting his teeth, while a chorus of typewriters sings songs that praises the bananas for their wisdom, leadership, and their high levels of potassium.” ― Jarod Kintz, I Want