Push-Nachrichten von MacTechNews.de
Würden Sie gerne aktuelle Nachrichten aus der Apple-Welt direkt über Push-Nachrichten erhalten?

Mac OS X 10.5: Xcode 3 & Interface Builder 3 Test

Die neuen Entwicklertools aus Mac OS X 10.5 Leopard im Test

Mit Mac OS X 10.5 Leopard gehen auch die Apple Entwicklertools in eine neue Runde. Xcode steht nun in Version 3 zur Verfügung mit vielen nützlichen neuen Funktionen. Die wichtigste Neuerung für die Entwicklergemeinde dürfte das neue Objective-C 2.0 sein.

Objective-C 2.0

Garbage Collection

Eines der größten Kritikpunkte an Objective-C war immer die fehlende Garbage Collection. Das bedeutet, dass sich der Entwickler selbst darum kümmern muss, dass erzeugte Objekte aus dem Speicher gelöscht werden, wenn diese nicht mehr benötigt werden. Java und C# unterstützten dies schon lange, auf dem Mac musste sich der Cocoa-Entwickler selbst darum kümmern. Zwar ist dies für geübte Programierer keine große Hürde, Anfängern passieren hier auf häufig schwer zu findende Fehler.
Leider ist aber mit Xcode 3 dieser Punkt für Entwickler noch nicht ausgestanden: Wird die Garbage Collection aktiviert, lassen sich die Programme nur noch mit Mac OS X 10.5 Leopard ausführen, nicht mehr mit Mac OS X 10.3.9 oder Mac OS X 10.4. Da momentan viele Entwickler noch Mac OS X 10.4 unterstützen müssen, viele sogar Mac OS X 10.3.9, ist es nicht möglich, dieses Feature zu benutzen. Apple hat die Xcode 3 IDE mit aktivierter Garbage Collection geschrieben, negative Auswirkungen auf die Performance scheinen sich nicht ergeben zu haben.

Properties

Ein weiteres neues Feature von Objective-C 2.0 sind Properties. Mit Properties lassen sich Setter und Getter für Variablen deklarieren und bei Bedarf mit dem Kommando @synthesize automatisch erzeugen:

Zugegriffen werden kann nun auf die Property einfach mit testInstance.name = @"Mein Name";. Mit dem Statement @dynamic statt @synthesize können auch zur Laufzeit die Setter und Getter ergänzt werden. Natürlich kann man auch manuell die Setter und Getter für die Properties definieren.

Iterationen

Will man durch ein Array iterieren, konnte man zuvor NSEnumerator nutzen oder durch eine normale Schleife und der Methode objectAtIndex: auf die Objekte zugreifen, was aber immer unnötig viel Schreibaufwand war. Apple hat eine neue Syntax eingeführt, mit der sich nun sehr leicht ein Array durchgehen lässt:

Xcode 3 IDE

Fehlermeldungen

Die Xcode 3 IDE bringt viele neue Funktionen mit, die das Programmieren sehr erleichtern. Endlich werden Fehlermeldungen beim Kompilieren nun direkt im Code als Meldungen eingeblendet:
Dies erleichtert die Fehlersuche sehr, da nun direkt im Code die fehlerhafte Codestelle angezeigt wird.

Syntax Highlighting

In Xcode 3 wurde das Syntax Highlighting stark verbessert, so dass nun zwischen Systemklassen und eigenen Klassen unterschieden wird. Auch werden globale Variablen und Instanzvariablen unterschiedlich eingefärbt:

Favoritenleiste

Unter der Toolbar kann im Hauptfenster in Xcode 3 nun eine Favoritenleiste eingeblendet werden, in die sich einzelne häufig benötigte Dateien oder Ordner ziehen lassen, um schnellen Zugriff auf diese zu haben:

Versionsverwaltung

Endlich hat Apple die Versionsverwaltung in Xcode erweitert. Es lassen sich nun direkt Projekte in ein Repository importieren oder auschecken, ohne die Kommandozeile zu bemühen:
Bedauerlicherweise sind manche Fehler in der Versionsverwaltung der Vorversion nicht behoben worden. So bietet Xcode neu hinzugefügte Ordner im Dateisystem immer noch nicht zum Hinzufügen in z.B. SVN an, so dass dies immer noch manuell über die Kommandozeile gemacht werden muss und höufig vergessen wird.

Code Folding

Funktionen und Codebereiche können über die Leiste links vom Text auf- und eingeklappt werden, um auch in längeren Dateien komfortabel arbeiten zu können:
Enttäuschenderweise gestaltet sich das Ein- und Ausklappen manchmal etwas kompliziert, da die Schaltflächen nicht breit genug sind.

Organizer

Auf den Organizer kann man einzelne Dateien oder auch ganze Ordner ziehen, auf die schnell zugegriffen werden muss. Optional kann rechts neben der Liste direkt einen Editor einblenden:
Praktisch ist diese Funktion, wenn man an einem großen Projekt arbeitet, aber momentan nur wenige Dateien ändern muss und die anderen nicht im Blickfeld haben will.

Interface Builder

Neues Interface

Staret man den neuen Interface Builder Version 3 das erste Mal, wird man mit einer völlig neuen Oberfläche begrüßt:
Die Oberfläche wirkt aufgeräumter als vorher, allerdings ist die Suche nach Interface-Elementen im neuen Browser gewöhnungsbedürftig. Schön ist, dass nun Outlets und Actions direkt über ein Fenster per Doppelklick angezeigt und zugewiesen werden können:
Direkt im Interface Builder lassen sich nun auch Core Image-Filter anwenden, um UI-Elemente mit Schatten zu versehen oder gar zu verzerren oder anders einzufärben:
Sehr ärgerlich ist allerdings, dass man, wenn sich eine Klasse im Projekt geändert hat, diese immer noch manuell in den Interface Builder über "Read Class Files…" aktualisieren muss. Es ist schade, dass dies nicht automatisch bei Änderungen an der Klasse geschiet. Zwar gibt es einen Menupunkt "Synchronize with Xcode", der aber keine erkennbare Wirkung zeigt.

Instruments

Meist ist es für Entwickler schwierig zu erkennen, zu welchen Zeitpunkten eine Applikation viel CPU-Last erzeugt oder viel Arbeitsspeicher verbraucht. Apple hat ein neues Tool namens "Instruments" als Profiler in den neuen Developer Tools eingeführt, mit denen sich genau erkennen lässt, wann und wie viel Systemresourcen verbraucht werden.

Fazit

Die Entwicklertools von Apple wurden durch Mac OS X Leopard deutlich aufgewertet. Mit Objective-C 2.0 braucht sich die schon sehr alte, auf SmallTalk basierende Programmiersprache vor neueren nicht mehr zu verstecken. Der wichtigste Kritikpunkt der nicht vorhandenen Garbage Collection wurde mit Objective C 2.0 ausgeräumt. Die Migration von vorhandenen Projekten funktionierte ohne Probleme, nur mit dem neuen Interface Builder gab es ein paar kleinere Schwierigkeiten. So öffnete der alte Interface Builder 2 aus Mac OS X 10.4 Tiger NIBs des neuen Interface Builders zwar, es waren aber diverse Unstimmigkeiten zu erkennen.