• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Viele hassen ihn, manche schwören auf ihn, wir aber möchten unbedingt sehen, welche Bilder Ihr vor Eurem geistigen Auge bzw. vor der Linse Eures iPhone oder iPad sehen könnt, wenn Ihr dieses Wort hört oder lest. Macht mit und beteiligt Euch an unserem Frühjahrsputz ---> Klick

Aufwand für Cocoa Anwendung mit Menubaricon

Binary

Ontario
Registriert
27.07.08
Beiträge
340
Hallo ihr,

ich studiere Wirtschaftsinformatik und habe nun schon einige Erfahrungen in Java und Delphi.
Nun würde ich gerne eine kleine App schreiben, die ein icon in der Menüleiste anzeigt und dessen Menüeinträge Terminal Befehle ausführen.

Das wäre ein ganz guter Anfang und somit könnte ich einige Dinge realisieren.

Gibt es da vielleicht so was wie Rohlinge, die man dann zurecht bearbeiten kann und wie hoch würdet ihr den Zeitaufwand dafür schätzen?

Besten Gruß und Dank

Binary
PS:Sorry, hoffe meine Fragen sind nicht all zu blöd.
 

Zettt

Doppelter Melonenapfel
Registriert
16.10.05
Beiträge
3.374
Ich kann dir zwar nicht direkt helfen, aber aus Erfahrung weiss ich, dass es immer doppelt so lange dauert und doppelt soviel Aufwand ist, wie man sich das vorher vorgestellt hat.
 

Binary

Ontario
Registriert
27.07.08
Beiträge
340
Danke für eure Tipps.
Ich würde es ja generell gerne lernen nur würde ich mich halt sehr über einen kickstart freuen.
Wenn ich erstmal das icon hab und darüber terminale befehle ausführen kann dann kann ich immer noch das finetuning machen und von da aus ansetzen.

Was meint ihr, wie lange braucht man ca. um da rein zu kommen?
 

Zettt

Doppelter Melonenapfel
Registriert
16.10.05
Beiträge
3.374
Versteh ich das richtig? Du willst von der Menueleiste aus Terminalbefehle ausfuehren?!
Schonmal an Services gedacht und das dann per AppleScript zu loesen?
 

Binary

Ontario
Registriert
27.07.08
Beiträge
340
ähm ka vielleicht habe ich mich missverständlich ausgedrückt oder habe einfach ka in den Bereich oder beides ;)

Und zwar würde ich z.B. gerne folgendes realisieren.
Über ein Icon in der Menüleiste auf den Time Machine -> Sleep klicken, dies sollte dann bewirken, dass zuerst dieser:
/System/Library/CoreServices/backupd.bundle/Contents/Resources/backupd-helper &
danach dieser:
osascript -e 'tell application "System Events" to sleep'
Befehl ausgeführt wird.
Per Terminal klappt das, nur habe ich da auch keine Ahnung wie ich das in einen Befehl eingeben kann, so dass nach Ausführung des ersten, der 2.Befehl ausgeführt wird.

Wie würdest du es empfehlen? Ein AppleScript schreiben und dieses dann anstoßen?
Was du bzgl. den Services meinst, stehe ich komplett auf den Schlauch.
Ich möchte ja keinen Dienst schreiben, der die ganze Zeit im Hintergrund läuft oder wie meinst du das?

Gruß und Dank
Binary
 

Zettt

Doppelter Melonenapfel
Registriert
16.10.05
Beiträge
3.374
Dafuer braucht man sich wirklich nicht in Cocoa einarbeiten.

Den angehaengten Workflow nach /Library/Services schieben und dann aus dem Services Menue heraus ausrufen.

ACHTUNG: UNGETESTET!

Hab hier gerade kein Timemachine und nur mal kurz das Zeug zusammengeschrieben. Dauert ja nicht lange...
 

Anhänge

  • Backup and Sleep.workflow.zip
    53,6 KB · Aufrufe: 56

Binary

Ontario
Registriert
27.07.08
Beiträge
340
Hey,

besten Dank!

Wenn ich nun sowas trotzdem gerne durch ein programm, welches dies durch eine auswahl in einem icon darstellen lässt realisieren möchte, weil ich würde gerne so eine art toolbox schreiben, die ich dann der Allgemeinheit zur Verfügung stellen würde.

Quasi das was meiner Meinung nach fehlt. Sollte ich das dann trotzdem als Applescript oder gar als Dienst schreiben und kann es dann in das Programm einbinden oder dann direkt in cocoa?

Sorry, hoffe ich gehe dir nicht so langsam auf die nerven mit meiner Fragerei.
Möchte cocoa wie gesagt ohne hin komplett lernen. Nur ein kickstart wäre geil.
Hab auch schon tutorials gefunden usw.

Besten Gruß

Kian
 

Zettt

Doppelter Melonenapfel
Registriert
16.10.05
Beiträge
3.374
Wenn du doch neu bist in Cocoa dann wuerde ich anders anfangen.
Mach dir doch ne Klick App erstmal. Ein Button wo bisschen Text draufsteht und wenn man diesen drueckt macht er eben "Backup & Schlafen". Warum eine App schreiben, welche gleich mal in der Menubar laeuft wenn du noch nicht mal sonst irgendwie was probiert hast.
Der Umgang mit NSTask und NSPipe wird dir dann genug schlaflose Momente machen.
Die von dir beschriebenen Aufgaben sind sicher auch pur in Cocoa zu loesen. Zumindest das "Backup anstubsen" geht sicher irgendwie auch ohne einen Terminalbefehl ausfuehren zu muessen. Eventuell gibt es da ja sogar schon eine API fuer. Falls nicht kann man nachschauen ob das nicht auch ueber AppleScript zu loesen geht. Vielleicht gibt es da ja dann eine passende API. Irgendwie sowas wie:

Code:
tell application "Time Machine"
	backup
end tell

Finde ich irgendwie netter (und ist wahrscheinlich auch schon viel besser abge-if't nach aussen) als

Code:
/System/Library/CoreServices/backupd.bundle/Contents/Resources/backupd-helper &

Allerdings kenne ich mich zu wenig in den Time Machine APIs aus um das zu wissen.

Also mein Vorschlag ist:

  • Versuch doch erstmal eine App mit Buttons die ein AppleScript aus Cocoa aufrufen.
  • Danach mach dich daran die AppleScripte durch Cocoa Äquivalente zu ersetzen. (NSTask, NSPipe)

Diese App zu einem Service machen wuerde ich nicht. Das widerspricht dem App Konzept wie das Apple sieht -- vermute ich. Eine .app kann Dienste anbieten. Richtig alleinige Dienste sind Dienste die sich auf Text, Dateien, Ordner usw. beziehen. Deine Anwendung bringt aber "Funktionalitaet", die die eines Service' uebersteigen.

Und noch ein ganz dringender Rat, ich habe ihn hier zwar schon erwaehnt, aber ich moechte ihn doch nochmal von mir geben, suche erstmal ob es nicht schon vorhandene APIs gibt, welche die Funktionen ausfuehren die du haben moechtest! Also etwas wie "Mach Backup" koennte ja irgendwo durchaus aufrufbar sein. Genauso wie "Schlaf ein".
 
  • Like
Reaktionen: Binary

Binary

Ontario
Registriert
27.07.08
Beiträge
340
Besten Dank! Werde mich dann mal ran machen wenn wieder was Zeit da ist.
 

palt

Jonagold
Registriert
17.09.09
Beiträge
22
Also ich hab sowas ähnliches gerade erstellt, ein Cocoa-App das mit Hilfe von Applescript Befehle ausführt. Da ich vorher noch nichts mit Objective-C / Cocoa und Applescript am Hut hatte, war die Einarbeitung nicht ganz so leicht. Aber nach meinem 26h-Marathon hab ichs jetzt ganz gut unter Kontrolle ;)

Ich würde, je nach Kenntnisstand und Frustrations-Fähigkeiten 1-3 Tage einplanen, bis Du zumindest die Basics drauf hast, der Rest ergibt sich dann wie von alleine.

Aber gerade die Syntax verwirrt einen am Anfang ordentlich. Bis man den Code lesen kann vergeht einige Zeit (komme selbst aus der Java, PHP, Delphi Ecke).

Viel Erfolg auf jeden Fall!