Xcode und Applescript

Bomberzocker

Auralia
Registriert
08.06.08
Beiträge
202
Hi!
Ja, ich weiß, es gibt dazu schon viel Thread, aber meine Frage(n) ist/sind ein wenig anders.
Ich kann Applescript (kann AS verstehen und mit nachschlagen bekomm ich das hin was ich haben will), habe dies aber immer nur im Scripteditor gemacht. Jetzt wollte ich zu Xcode wechseln um dann später, wenn ich mit Xcode mich auskennen evtl. auf Objective-C oder Cocoa umsteigen.

Soll ich mir ein Buch kaufen der lieber Tutorials im Internet nehmen?

Meine Bedenken sind bei Büchern, das sie veralten, da es öfters neue Xcode Versionen gibt.
Mit Turoials hab ich mich schon beschäftig, leider sind diese oft direkt mit Cocoa oder veraltet. Beispielsweise hatte ich ein gutes Tutorial welches im Interface Builder einen Applescript Reiter im Inspektor hatte und die jetzige Xcode Version hat gar keinen mehr.

Geh ich vielleicht sogar falsch an das ganze dran? Sollte ich vielleicht doch besser direkt Objective-C oder Cocoa lernen?
Da ich mich von der Webentwicklung erstmal wieder verabschiede und Applescripteditor zu simple ist muss nun Xcode dran. Und dann will ich nicht viel unnötige Zeit verschwenden. Muss das ganze jetzt neben der Schule machen, da mir das für den Beruf sehr wichtig ist. Ich nehm dann noch Informatik-LK da ich nach der Schule was in der Richtung Informatik studieren werde (vielleicht aber auch Gamedesign). Und dann ist Vorwissen sehr wichtig. Oder empfehlt ihr mir vielleicht wieder Webentwicklung zu machen? Was ist sinnvoller?
mfg
 

Poljpocket

Salvatico di Campascio
Registriert
07.01.07
Beiträge
432
Also erstmal um das klarzustellen: Xcode hat gänzlich wenig mit Objective-C und Cocoa zu tun. Es ist einfach der praktischste IDE für dessen Programmierung. Also kurz: Für Obj-C/Cocoa brauchst du keine Xcode-Kenntnisse, wobei diese natürlich von Vorteil sind. Du kannst aber auch eine Mac-Applikation mit Netbeans oder Eclipse erstellen. Da musst einfach noch mehr selber zusammenbasteln, was die Bundles usw. angeht.

Nun zu AppleScript: Ich kenne mich damit nicht wirklich aus, aber du kannst dir mal die Teile der Dokumentation im Xcode, welche sich mit AppleScript-Applications befassen, durchlesen, wer weiss, vielleicht ist das für dich schon genug. Wegen dem AppleScript-Reiter: Da hat sich neu in Snow Leopard im Gegensatz zu Leopard einiges getan, die AppleScript Schnittstelle von Cocoa hat sich verändert, darum wird dieser Reiter wohl nicht mehr benötigt.

Gruss ppocket
 

Bomberzocker

Auralia
Registriert
08.06.08
Beiträge
202
Aber du würdest Xcode auch empfehlen, oder? Ich hab jetzt was in der Dokumentation zu Applescript gefunden. Scheint wohl recht ausführlich zu sein. Hab jetzt nen halbes Dutzend Ornder, komische Dateien und AppleScripts rumfliegen. Gab es zum download als ich .html als Informationsart ausgewählt habe. Sehr strange.

Objective-C oder Cocoa?
Was wäre denn auch besser geeignet für Desktop-Anwendung? Kann man mit beiden Programmiersprachen iPhone Apps programmieren?
 

MacApple

Schöner von Bath
Registriert
05.01.04
Beiträge
3.652
Objective-C oder Cocoa?
Was wäre denn auch besser geeignet für Desktop-Anwendung? Kann man mit beiden Programmiersprachen iPhone Apps programmieren?
Nein, denn nur Objective-C eine Programmiersprache. Cocoa bzw. Cocoa Touch ist ein Framework, das in der Programmiersprache Objective-C geschrieben wurde. Erst mit beiden zusammen wird da ein Schuh draus.

MacApple
 

Poljpocket

Salvatico di Campascio
Registriert
07.01.07
Beiträge
432
Stimmt, aber die wirst du nicht brauchen. Glaub mir "you'll love it"!! Cocoa ist das perfekte Framework um Mac-Applikationen zu erstellen. Eine vergleichbare Bibliothek findest du auf keinem anderen Betriebssystem auch nur annähernd :) Der grösste Vorteil daran ist ja, dass Apple selber seine Apps auch mit Cocoa macht. Das heisst "what they have, you'll have".

Gruss ppocket
 

Tyrra

Kronprinz Rudolf von Österreich
Registriert
17.12.07
Beiträge
1.902
Ich würde dir den Podcast "Xcode von NULL auf Hundert" empfehlen welchen du kostenlos in iTunes abonnieren kannst.
Die haben auch eine Webseite: http://www.x02100.de

Einfach mal reinschauen und wirken lassen :)
 
  • Like
Reaktionen: Bomberzocker

LittlePixel

Strauwalds neue Goldparmäne
Registriert
09.07.08
Beiträge
641
Hallo,

bis zu 10.5 gab es das tolle AppleScript Studio.
Dieses hat Apple bedauerlicherweise abgeschossen. Das Template steht auch nicht mehr zur Verfügung.
Lässt sich nachpflegen würde Dir aber langfristig nicht helfen.

Statt dessen möchte Apple jetzt, dass Du AppleScriptObjC lernst.
Meine Meinung dazu: Lass es gut sein.

Beispiel: http://www.macosautomation.com/applescript/video/ASOC-001HD.html

Haben wir schon mal debattiert: http://www.apfeltalk.de/forum/applescript-application-snow-t256181.html

Wenn Du wirklich einsteigen möchtest dann ist Cocoa/Objective-C schon die beste Wahl.
Bezogen auf die Tatsache, dass Du Dich auf das Mac OS X Umfeld konzentrieren möchtest.

Viele Grüße
 

LittlePixel

Strauwalds neue Goldparmäne
Registriert
09.07.08
Beiträge
641
Klar, gibt es das wirklich. Oder meinst Du ich habe mir das ausgedacht? ;)
Ein Klick auf den ersten Link hätte es Dir auch gezeigt.

Viele Grüße
 

Bomberzocker

Auralia
Registriert
08.06.08
Beiträge
202
die erste Minute sah nur nach AS aus, ich hab heute nicht viel Zeit und kann mir das nicht ganz duchgucken. Habs mir aber gebookmarkt.
 

LittlePixel

Strauwalds neue Goldparmäne
Registriert
09.07.08
Beiträge
641
Also bei mir steht das in den ersten 10 Sekunden :D
 

Anhänge

  • Bildschirmfoto 2&#48.jpg
    Bildschirmfoto 2&#48.jpg
    51,7 KB · Aufrufe: 197

Bomberzocker

Auralia
Registriert
08.06.08
Beiträge
202
Hab jetzt mal mit dem Xcode von Null auf Hundert angefangen und ein kleines Problem: Wenn ich das so wie im Video mache, meldet sich Interface Builder, dass irgendein Fehler vorliegt. Ich hab unter dem Punkt "Information" was anderes als im Video, deswegen hab ich wohl in was Falsches eingetragen. Die "Class Actions" und "Class Outles" wie im Video finde ich unter keinem anderem Reiter. Ich hab Xcode 3.21 und im Video (#002) ist es 3.1.

Scheint bis jetzt sehr Ausführlich erklärt zu sein. Ich denke damit werde ich gut klar kommen. Bis auf die Diverenzen bei den Versionen.
mfg
 

Anhänge

  • Video..png
    Video..png
    102,8 KB · Aufrufe: 233
  • Interface Builde&#114.png
    Interface Builde&#114.png
    42,4 KB · Aufrufe: 212

MacApple

Schöner von Bath
Registriert
05.01.04
Beiträge
3.652
Die "Class Actions" und "Class Outles" wie im Video finde ich unter keinem anderem Reiter.
Die findest Du in Xcode 3.2 in der Library unter dem Tab Classes. Das Erstellen von Actions und Outlets im Interface Builder ist aber sowieso "old school" und nach meinem Empfinden umständlicher, als sie gleich direkt in den Quelltext zu schreiben. Der Interface Builder erkennt die dann automatisch.

MacApple
 
  • Like
Reaktionen: Bomberzocker

Bomberzocker

Auralia
Registriert
08.06.08
Beiträge
202
Wie schreibt man die den in den Code? Ich will das Video noch weitermachen, nur dann mit der besseren Variante.
 

Poljpocket

Salvatico di Campascio
Registriert
07.01.07
Beiträge
432
Es gibt mehrere Möglichkeiten zB für Outlets:

1) Du schreibst vor die Deklaration der Instanzvariable ein IBOutlet hin.

Code:
@interface MyClass : NSObject {
[INDENT][COLOR="red"]IBOutlet[/COLOR] NSTextField *myTextField;
...[/INDENT]
}

...

@end

Das myTextField wird dann vom Interface Builder erkannt.

2) Du schreibst eine ganz normale Instanzvariable im Interface zwischen den Klammern und definierst dann eine property:

Code:
@interface MyClass : NSObject {
[INDENT]NSTextField *myTextField;
...[/INDENT]
}

@property(assign) [COLOR="red"]IBOutlet[/COLOR] NSTextField *myTextField;
...

@end

Dabei ist es sehr wichtig, dass bei dem property-Typ, wie im Beispiel, assign und nicht was anderes steht (also nicht retain und nicht copy). Falls deine App keine weiteren Threads erstellt, würde ich assign, nonatomic empfehlen. Wichtig ist auch noch, dass diese zweite Möglichkeit nur funktioniert, wenn du Obj-C 2.0 verwendest.

Für Actions geht das so:

Du definierst im Interface eine ganz einfache Methode, nur mit IBAction als Rückgabewert. Diese Methoden haben alle als einziges Argument einen sog. Sender. Also das Objekt, welches diese Methode aufgerufen hat.

Code:
@interface MyClass : NSObject {
[INDENT]NSTextField *myTextField;
...[/INDENT]
}

- ([COLOR="red"]IBAction[/COLOR])myAction:(id)inSender;
...

@end
 

Bomberzocker

Auralia
Registriert
08.06.08
Beiträge
202
Ist das "myTextField" meine Bezeichnung für ein Objekt im InterfaceBuilder? Also muss ich das dann ersetzen?