www.wikidata.de-de.nina.az
Der Interface Builder ist eine Software von Apple mit der grafische Benutzeroberflachen fur Programme fur macOS und iOS erstellt werden Interface BuilderBasisdatenEntwickler AppleAktuelle Version 4 0 in Xcode integriert 22 Marz 2012 Betriebssystem macOSKategorie GUI Builder SoftwareentwicklungLizenz proprietardeutschsprachig neindeveloper apple comBereits in den Developer Tools fur NeXTStep war der Interface Builder enthalten Auch bei Project Builder 2001 2003 und Xcode 2003 bis heute war bzw ist der Interface Builder ein wichtiger Bestandteil der Entwickler Tools Bis einschliesslich Xcode 3 x war der Interface Builder eine eigenstandige Anwendung mit Xcode 4 0 wurde er jedoch in die IDE integriert Die Dateien die der Interface Builder erzeugt haben die Dateiendung nib von NeXT Interface Builder die Dateien werden von Entwicklern oft nib Dateien genannt oder xib Das GNUstep Projekt hat einen Klon von Interface Builder namens Gorm 1 geschrieben Inhaltsverzeichnis 1 Geschichte 1 1 NeXTStep 1 2 Project Builder 2001 2003 1 3 Xcode ab 2003 2 Funktionsweise 2 1 Erstellen der Oberflache 2 2 Verbinden von UI und Code 2 3 Speichern und Ausfuhren 2 4 Lokalisierung 3 Oberflachen ohne Interface Builder 4 EinzelnachweiseGeschichte BearbeitenNeXTStep Bearbeiten Die erste Version von Interface Builder erschien 1986 und war in Lisp geschrieben Der Entwickler des Tools wurde noch im gleichen Jahr von NeXT ubernommen und bereits 1988 war Interface Builder Teil von NeXTStep 0 8 Es war die erste kommerzielle Anwendung mit der man eine Benutzeroberflache mithilfe einer Maus zusammenstellen konnte Project Builder 2001 2003 Bearbeiten NeXTStep diente als Basis fur Mac OS X und als Mac OS X 10 0 erschien veroffentlichte Apple auch eine neue Version der Developer Tools Teil davon war neben einer komplett neu geschriebenen Version von Project Builder auch Interface Builder zum Erstellen von Oberflachen fur Carbon und Cocoa Anwendungen in C bzw Objective C ResEdit das unter Mac OS 9 und davor zum Erstellen von Oberflachen verwendet wurde konnte unter Mac OS X nicht mehr eingesetzt werden da das neue System Bundles Code und Ressourcen in verschiedenen Dateien aber zusammen in einem Ordner mit einer bestimmten Struktur statt Code Forks und Resource Forks verwendete Xcode ab 2003 Bearbeiten Ab Mac OS X Panther wurde Project Builder nicht mehr unterstutzt stattdessen setzte Apple auf die Xcode Tools mit Xcode als IDE Interface Builder wurde beibehalten Da das Datenformat nicht geandert wurde sind Programme und NIB Dateien die mit Panther erstellt wurden auch auf alteren Systemen ausfuhrbar Mit Panther wurden die Cocoa Bindings eingefuhrt die UI Elemente und Code miteinander verbinden Interface Builder wurde mit jedem Betriebssystem Release verbessert und erweitert sodass es die neuen UI Elemente einer neuen Systemversion unterstutzte z B die HUD Panels in 10 5 Mit Erscheinen des iPhone SDK 2 0 und Xcode 3 1 wurde auch der Interface Builder aktualisiert um Oberflachen von iPhone Apps designen zu konnen Mit Xcode 4 0 wurde Interface Builder direkt in Xcode integriert Das bot einige Vorteile Entwickler mussten nicht mehr zwei Anwendungen geoffnet haben sie mussten nicht mehr den Code speichern um ihn mit dem UI zu verbinden und sie konnten per Drag und Drop die UI Elemente direkt mit dem Quellcode verbinden Funktionsweise BearbeitenErstellen der Oberflache Bearbeiten Objekte fur eine Oberflache sind in sogenannten Paletten gruppiert Im AppKit Framework existiert eine Palette fur die vom System vorgegebenen UI Elemente wie Fenster Knopfe Listen Bilder oder Textfelder In der Regel dient als Grundelement ein Fenster NSWindow oder eine Flache NSView Jede nib Datei ist mit einer Klasse verbunden die auch die Outlets und Aktionen deklariert siehe nachster Abschnitt diese Klasse ist oft eine Unterklasse von NSWindow oder NSView seltener auch NSObject Auf diesen Flachen konnen dann weitere Elemente platziert werden ihre Eigenschaften konnen verandert werden und sie konnen mit dem Code verbunden werden Verbinden von UI und Code Bearbeiten UI Elemente werden uber Outlets mit dem Code verbunden Die Deklaration erfolgt in der jeweiligen Header Datei etwa wie folgt property nonatomic retain IBOutlet NSButton readInputButton Viele Objekte konnen bei bestimmten Aktionen Actions genannt z B gedruckt oder verandert eine Nachricht an ein Ziel Target senden Die Deklaration im Header sieht z B so aus IBAction adjustVolume id sender Im eigentlichen Quellcode befindet sich eine Methode mit gleicher Deklaration die dann bei Bedarf ausgefuhrt wird Der generische Datentyp id ermoglicht es hierbei dass die Methode von verschiedenen Objekten aufgerufen werden kann z B von einem Knopf und einem Schieberegler Objekte Outlets Actions und Targets werden per Drag und Drop miteinander verbunden Speichern und Ausfuhren Bearbeiten Die fertige Datei mit ihren Verbindungen zum Code wird in einer Property List Datei mit der Dateiendung nib gespeichert wahrend der Entwicklung meist als XML im fertigen Produkt als Binardatei Wenn das Programm ausgefuhrt und die NIB Datei aufgeweckt wird wird sie geladen und mit dem Binarcode verbunden Mit Interface Builder 3 0 wurde ein neues Dateiformat eingefuhrt das die Dateiendung xib tragt Es hat genau die gleichen Funktionen wie nib Dateien ist jedoch aufgrund seiner Datenstruktur einfacher in Tools wie Versionsverwaltungen und diff zu handhaben Die Dateien werden von den meisten Entwicklern jedoch immer noch nib Dateien genannt Es wird seitens Apple dazu geraten verschiedene Fenster sofern sie nicht zu einer Klasse gehoren in verschiedene NIB Dateien zu packen Hauptgrunde dafur sind Ubersichtlichkeit und Effizienz es dauert langer eine grosse Datei in den Speicher zu laden und zu verbinden als drei kleine Lokalisierung Bearbeiten Elemente mit Text konnen entweder per Code oder direkt im Interface Builder lokalisiert werden Fur die Lokalisierung werden Ordner mit dem Sprachkurzel und der Endung lproj angelegt darin sind dann die lokalisierten NIB Dateien gespeichert Bei der Ausfuhrung wird dann nur die Datei die im Ordner mit der aktuellen Systemsprache liegt geladen und ausgefuhrt Die Lokalisierung per Code erfolgt per strings Dateien und der Methode NSLocalizableString Es gibt auch einige Programme von Drittherstellern mit denen man entweder die String oder NIB Dateien lokalisieren kann Oberflachen ohne Interface Builder BearbeitenEs ist ohne Weiteres moglich UIs fur Anwendungen nicht per Interface Builder sondern per Code zu schreiben Besonders um die Portierbarkeit zu gewahrleisten wird gerade bei Libraries und Frameworks in der Regel mit programmatisch erstellten Views gearbeitet Ein weiterer Vorteil ergibt sich wenn mehrere Entwickler an einer App arbeiten Nur minimale Anderungen der storyboard oder xib Datei konnen dazu fuhren dass sich die zugrundeliegende XML Datei deutlich verandert was relativ schnell zu Konflikten fuhrt wenn die verschiedenen Anderungen gemerged werden sollen Bei manuell programmierten Views gibt es dieses Problem nicht da sich die Struktur der Klasse nicht willkurlich andern kann Ausserdem sind die einzelnen Teile der App besser gekapselt Bei einem Storyboard ist in der Regel die komplette Benutzeroberflache einer App in einer Datei beim programmatischen Ansatz wird jede View in einer eigenen Klasse erstellt Programmatisch erstellte Views sind zudem performanter da hier keine zusatzliche XML Datei vom Speicher geladen und geparst werden muss und deutlich machtiger da beispielsweise nur im Code weitere Eigenschaften wie Schatten oder Rahmen gesetzt werden konnen Der Performanceverlust des Interface Builders macht sich zudem nicht nur zur Laufzeit sondern bereits zur Entwicklungszeit bemerkbar Gerade bei komplexen Storyboards hier werden mehrere Views in einer Datei verwaltet kommt es dazu dass das Offnen der Datei im Interface Builder spurbar lange dauert Nachteilig ist der erhohte Zeitaufwand beim programmatischen Erstellen der View Zum einen dauert es langer die einzelnen Code Zeilen zu schreiben zum anderen ist es schwerer die Elemente genau auszurichten Da das grafische Ergebnis erst zur Laufzeit und nicht wie beim Interface Builder zur Ubersetzungszeit betrachtet werden kann sind Anderungen erst nach dem Kompilieren und Starten der App sichtbar Das Uberprufen einer jeden Anderung benotigt daher deutlich mehr Zeit als bei einem WYSIWYG Editor wie dem Interface Builder Diese erhohte Komplexitat ist sowohl fur Neulinge als auch fur schnelles Prototyping ungeeignet Einzelnachweise Bearbeiten GNUstep Developer Tools Gorm Abgerufen am 1 Mai 2012Apple Software Aktuelle Apple SoftwareApp Store Automator Books Boot Camp Rechner Catalyst Classroom Compressor Configurator Dashcode Face ID FaceTime FileVault Final Cut Pro Finder Fotos Grapher HomeKit iLife GarageBand iMovie iTunes iWork Pages Keynote Numbers Kalender Karten Kontakte Logic Pro Mac App Store Mail Massband MainStage Mission Control Motion Music Nachrichten Photo Booth Quartz Composer QuickTime QuickTime Broadcaster QuickTime Player QuickTime Streaming Server QuickTime VR Remote Desktop Safari Siri Spotlight Terminal TestFlight TextEdit Time Machine Timeline 3D Vorschau Wallet Wo ist Xcode XsanEhemalige Apple SoftwareAperture AppleShare AppleWorks Backup Color Cyberdog Dashboard DVD Studio Pro EasyWriter Final Cut Studio Final Cut Express Front Row HyperCard iBooks Author iDVD Interface Builder iPhoto iSync iWeb Logic Express MacDraw Macintosh Application Environment MacPaint MacWrite Pascal PlainTalk Project Builder QuickDraw Pro QuickTime Pro Remote Disc ResEdit Shake Soundtrack WebObjects XQuartz Abgerufen von https de wikipedia org w index php title Interface Builder amp oldid 224617518