Jede Xcode-Version bietet Entwicklern verbesserte Tools zum Erstellen ihrer Apps. Die diesjährige Version Xcode 6 bietet Entwicklern neue Wege, ihre Software zu entwerfen und zu entwickeln. In diesem Tutorial werde ich die neuen und verbesserten Funktionen von Xcode 6 beschreiben und sehen, wie Sie sie verwenden können.
Während der diesjährigen WWDC führte Apple Swift ein, eine neue Programmiersprache für die Entwicklung von Software für seine Geräte. Xcode 6 enthält eine neue Funktion namens Playgrounds, die einen interaktiven Arbeitsbereich bietet, in dem Entwickler Swift-Code schreiben und Live-Feedback erhalten können, ohne dass der Code auf einem Gerät oder Simulator ausgeführt werden muss. Dies ist eine gute Ergänzung zu Xcode, da Sie jetzt mit Code experimentieren können und schnelle Echtzeitergebnisse erhalten, bevor Sie ihn in Ihre Hauptcodebasis integrieren.
Ein Hauptthema der diesjährigen WWDC war der Aufbau adaptiver Anwendungen. Anstatt Anwendungen zu erstellen, die auf bestimmte Bildschirmgrößen abzielen, sollten Entwickler Anwendungen entwickeln, die sich an das Gerät anpassen, auf dem sie laufen, unabhängig von der Bildschirmgröße.
Dies ist ein Schritt, der vor einigen Releases mit der Einführung von Auto Layout in iOS 6 begann. Entwickler können damit Apps erstellen, die sowohl auf den 3,5-Zoll- als auch auf den 4,0-Zoll-Bildschirmen funktionieren. Es wurde nun weiter verbessert, damit iOS-Entwickler Apps entwickeln können, die auf allen unterstützten iPhones ausgeführt werden können, einschließlich des neuen 4,7 "iPhone 6 und 5,5" iPhone 6 Plus und iPads, die dieselbe Codebasis verwenden.
Interface Builder hat grundlegende Änderungen erfahren, die die Entwicklung solcher adaptiver Apps ermöglichen. Außerdem wurden neue Funktionen hinzugefügt, die den Designprozess der Benutzeroberfläche verbessern. Wir werden uns diese neuen Änderungen als nächstes ansehen.
Größenklassen definieren die in Layouts verwendete Leinwandgröße. Damit können Sie angeben, wie sich die Benutzeroberfläche der Anwendung ändert, wenn sich die verfügbare Größe Ihres View-Controllers ändert. Dadurch ist es möglich, ein einheitliches Storyboard zu erstellen, wenn eine universelle Anwendung erstellt wird. Bisher mussten Sie zwei separate Storyboards erstellen, eines für iPad und eines für iPhone.
Eine Größenklasse gibt eine relative Menge des Anzeigebereichs für Höhe (vertikale Abmessung) und Breite (horizontale Abmessung) an. Derzeit gibt es zwei Größenklassen, kompakt und regulär. Beispielsweise hat ein iPhone im Hochformat eine kompakte Breite und regelmäßige Höhe. Ein iPad hat in Quer- und Querformat eine regelmäßige Breite und Höhe.
Sie sollten jedoch beachten, dass eine Größenklasse nicht unbedingt in einer Ausrichtung einem Gerät zugeordnet ist. Ein iPad kann beispielsweise eine Ansicht mit einem iPhone-Layout (eine kompakte horizontale und eine normale vertikale Größenklasse) haben, wenn es auf einem kleineren Platz auf dem Gerät dargestellt wird, und ein iPad-Layout (eine normale horizontale und eine normale vertikale Größenklasse) ) wenn der verfügbare Platz größer ist.
Sie ändern die Größenklassen mit der Größenklassen Steuerelement in der Nähe der Layout-Symbolleiste am unteren Rand des Interface Builder-Zeichenbereichs. Interface Builder startet Sie in der irgendein Breite und irgendein Höhengrößenklasse, in der Sie allgemeine Komponenten der Benutzeroberfläche und Einschränkungen für die verschiedenen Bildschirmgrößen und -ausrichtungen festlegen können. Anschließend aktualisieren Sie die Teile, die geändert werden müssen, wenn sich die verfügbare Bildschirmgröße ändert, indem Sie Änderungen an der Benutzeroberfläche in den verschiedenen Größenklassen vornehmen.
Mit Xcode 6 werden adaptive Segue-Typen eingeführt, die für die neuen adaptiven Layouts besser geeignet sind, da sie Ansichten je nach Umgebung, in der sie ausgeführt werden, unterschiedlich darstellen Detail anzeigen Mit einer geteilten Ansicht auf einem iPad wird das Detail ersetzt, aber auf einem iPhone wird dieses Detail auf den Master verschoben. Einige der alten Segmente wie Push und Modal sind jetzt veraltet.
Die Oberfläche des Interface Builder ist interaktiver als je zuvor. Zuvor mussten Sie Ihre App ausführen, um Änderungen in Bezug auf benutzerdefinierte Objekte, benutzerdefinierte Schriftarten und Lokalisierung anzuzeigen. Jetzt können Sie benutzerdefinierte Zeichensätze aus der Interface Builder-Auswahl auswählen und diese auf der Benutzeroberfläche des Interface Builder anzeigen lassen.
Sie können sogar benutzerdefinierte Objekte erstellen und diese auf der Zeichenfläche des Interface Builder rendern. Dazu erstellen Sie ein benutzerdefiniertes Framework, fügen dem Ziel Ihre benutzerdefinierte Klasse hinzu und markieren diese mit dem @IBDesignable
Flagge (IB_DESIGNABLE
in Ziel-C). Dadurch kann der Interface Builder wissen, dass eine Klasse benutzerdefinierten Inhalt auf der Leinwand anzeigen kann.
Abgesehen von der Möglichkeit, benutzerdefinierte Objekte im Interface Builder anzuzeigen, können Sie auch Eigenschaften mit kennzeichnen @IBInspectable
Flag und lassen Sie sie im Interface Builder-Inspektormenü erscheinen, in dem sie wie alle anderen Eigenschaften in Ihren Ansichten bearbeitet werden können. Es ist nicht erforderlich, dass eine Klasse als designierbar gekennzeichnet ist, damit sie überprüfbare Eigenschaften hat.
Sie können auch nur den Entwurfszeitcode angeben. Sie können dies zum Beispiel verwenden, um die Ansicht mit Beispieldaten vorab zu füllen, um ein genaueres Gefühl für die Benutzeroberfläche zu erhalten. Sie tun dies, indem Sie das überschreiben preparForInterfaceBuilder
Methode. Abgesehen davon können Sie verwenden #if TARGET_INTERFACE_BUILDER
um zu verhindern, dass der Code im endgültigen Interface Builder-Rendering ein- oder ausgeblendet wird.
Mit dem Vorschau-Editor können Sie jetzt mehrere Vorschauen verschiedener simulierter Geräte nebeneinander anzeigen. Sie können nicht nur sehen, wie Ihre App auf verschiedenen Geräten aussieht, sondern Sie können auch festlegen, dass jedes Gerät entweder im Hoch- oder Querformat angezeigt wird. Auf diese Weise können Sie schnell eine Vorschau der Benutzeroberfläche Ihrer App auf verschiedenen Geräten und Ausrichtungen anzeigen, ohne sie zuvor auszuführen.
Xcode 6 und iOS 8 wurden von Apple um neue Spieltechnologien erweitert, nämlich SceneKit und Metal. SceneKit, das zuvor unter OS X verfügbar war, ist ein 3D-Szenenrenderer. Metal ist ein Framework, mit dem dank des geringen Overhead-Zugriffs auf die A7- und A8-GPU stark optimierte Grafik-Rendering- und Rechenaufgaben erstellt werden können.
SpriteKit wurde außerdem mit Physik-Okklusion, physischen Feldern, universellen Kinematiken und Abhängigkeiten, Shader, Beleuchtung und Schatten verbessert.
Eine weitere wichtige Neuerung in SpriteKit ist der SpriteKit Level Editor So können Sie Szenen visuell zusammenstellen. So wie Sie Ihre Benutzeroberfläche in Interface Builder erstellen können, ohne Code schreiben zu müssen, können Sie dies auch in einem SpriteKit-Spiel mit dem SpriteKit Level Editor tun.
Storyboards wurden jetzt in die OS X-Entwicklung eingeführt. Genau wie bei der iOS-Entwicklung können Sie Ihre Ansichtslayouts und Verbindungsansichten zusammen mit verschiedenen Animationsanimationen einrichten. Zum Zeitpunkt des Schreibens sind einige Funktionen, einschließlich Storyboards, in Xcode (6.0.1) für die Entwicklung von OS X noch deaktiviert, bis die OS X Yosemite-Version vorliegt.
Gestenerkenner sind jetzt in AppKit verfügbar. Diese werden auf die gleiche Weise wie bei der iOS-Entwicklung verwendet. Sie können die verfügbaren Gesten im sehen Objektbibliothek im Interface Builder.
Die Lokalisierung erfolgt in Xcode 6 anders als zuvor. Sie können jetzt Ihren gesamten lokalisierbaren Inhalt in XLIFF exportieren. Dies ist der Industriestandard, den viele Übersetzungsdienste verstehen. Wenn Sie die Übersetzungen zurückbekommen, importieren Sie sie und Xcode fügt den neuen Inhalt in Ihr Projekt ein. Sie sollten für jede Sprache, die Sie in Ihrer App unterstützen, eine XLIFF-Datei haben.
Sie können jetzt lokalisierte Inhalte in der Vorschau anzeigen, ohne das Gebietsschema Ihres Geräts oder Simulators in zu ändern die Einstellungen. Wählen Sie dazu Produkt> Schema> Schema bearbeiten, dann auswählen Lauf und klicken Sie auf die Optionen Tab. Sie können Ihre Sprache aus dem auswählen Anwendungssprache Speisekarte. Xcode kommt mit Pseudolanguage mit doppelter Länge mit denen Sie testen können, wenn Sie keine andere Sprache hinzugefügt haben. Wenn Sie die App ausführen, sollten Sie den lokalisierten Inhalt sehen.
Sie können auch lokalisierte Inhalte anzeigen, ohne Ihre App auszuführen. Dazu verwenden Sie die Vorschau-Editor zwischen den verschiedenen Sprachen wechseln, die Ihre App unterstützt. Die Standardsprache wird in der rechten unteren Ecke des Editors angezeigt. Wenn Sie darauf klicken, wird eine Liste der verfügbaren Sprachen angezeigt. Um es auszuprobieren, ohne eine Sprache hinzuzufügen, können Sie die Pseudolanguage mit doppelter Länge verwenden.
In Xcode 6 werden jetzt benannte Simulatoren angezeigt, die bestimmten Geräten, wie z. B. dem iPhone 5, entsprechen, und nicht den vorherigen generischen Namen, z. B. dem 64-Bit-iPhone Retina.
Zu den Geräten, aus denen Sie wählen können, gehören das anpassbare iPhone und das anpassbare iPad. Damit können Sie die Breite, Höhe und Größenklasse des Simulators festlegen. Auf diese Weise können Sie die Anpassungsfähigkeit Ihrer App auf allen vorhandenen Geräten von Apple sowie auf zukünftigen Geräten testen, ohne einen Simulator für jedes Gerät herunterladen zu müssen.
Mit dem neuen iOS-Simulator können Sie Daten- und Konfigurationseinstellungen in Gruppen zusammenfassen. Führen Sie eine Konfiguration für eine Version einer App mit eigenen Daten und eine andere Konfiguration für eine andere App-Version aus. Dies bedeutet, dass Sie simulieren können, dass sich mehrere Benutzer auf Ihrem Computer befinden. Jeder Benutzer hat seine eigenen Daten und Konfigurationen.
Mit dem HomeKit-Framework kann Ihre App mit zu Hause angeschlossenem Zubehör kommunizieren und diese steuern. In den Betaversionen von Xcode 6 war der HomeKit Accessory Simulator Bestandteil von Xcode, ist aber jetzt Teil von Hardware-E / A-Tools für Xcode. Sie können es im iOS Dev Center herunterladen.
Xcode 6 vereinfacht das Debugging der Benutzeroberfläche Ihrer App mit der Debugging-Funktion für die Live-Ansicht. Sie können jetzt Ihre laufende App anhalten und die angehaltene Benutzeroberfläche in einer 3D-Ansicht analysieren. Der View-Debugger zeigt Ihnen Ihre View-Hierarchie und die Einschränkungen für das automatische Layout. Wenn Sie eine Ansicht auswählen, können Sie deren Eigenschaften im Inspektor überprüfen oder im Assistenten-Editor zum entsprechenden Code springen. Auf diese Weise können Sie Probleme untersuchen, z. B. Probleme mit dem automatischen Layout, warum eine Ansicht ausgeblendet oder abgeschnitten ist usw..
Starten Sie Ihre App und klicken Sie auf, um den Live View-Debugger zu starten Debug View-Hierarchie Schaltfläche in der Debug-Symbolleiste.
Ihre App wird angehalten und Sie erhalten eine 3D-Visualisierung der Benutzeroberfläche. Sie können auf die Leinwand ziehen, um die Ansicht zu drehen.
Sie können mit den Schaltflächen unter der Leinwand zwischen verschiedenen Ansichtsstatus wechseln.
Von links nach rechts:
Quick Look wurde in Xcode 5 eingeführt und ermöglicht es Ihnen, den Inhalt eines Objekts beim Debuggen anzuzeigen. Die Schnellansicht unterstützt häufig verwendete Objekte wie Bilder, Pfade, Kartenpositionen usw.
In Xcode 6 wurde dies verbessert, um zwei neue Objekttypen zu unterstützen: Ansichten (UIView
und NSView
) und benutzerdefinierte Objekte. Um die Schnellsuche für benutzerdefinierte Objekte zu aktivieren, implementieren Sie das debugQuickLookObject
Methode in der benutzerdefinierten Klasse.
Der Debug-Navigator zeichnet die zuletzt ausgeführten Blöcke sowie die Blöcke in der Warteschlange auf und zeigt sie an. Sie können es verwenden, um zu sehen, wo sich Ihre in der Warteschlange befindlichen Blöcke befinden, und zu überprüfen, welche Details ausgeführt wurden. Sie können das Block-Debugging aktivieren, indem Sie die Option auswählen Debuggen> Workflow debuggen> In Warteschlangen immer ausstehende Blöcke anzeigen Menüoption.
Debug-Messgeräte bieten Informationen zum Ressourcenverbrauch Ihrer App während des Debugging. Xcode 6 bietet aktualisierte Messgeräte, darunter grafische Profilerstellung für das neue Metal-Framework und iCloud-Unterstützung für Dokumente in den Cloud- und CloudKit-Funktionen.
Neben diesen Verbesserungen führt Xcode 6 zwei neue Debug-Messgeräte ein: Netzwerk- und Festplattenaktivität.
Die Netzwerkaktivität zeigt an, wie viele Daten Ihre App sendet und empfängt, sowie eine Liste der offenen Verbindungen. Sie können einen Verlaufsverlauf anzeigen, um die Netzwerknutzung zu überwachen. So können Sie herausfinden, wann und warum Spitzen in der Netzwerknutzung oder Netzwerkausfälle aufgetreten sind.
Die Festplattenaktivität zeigt Echtzeitinformationen zu den Lese- und Schreibvorgängen Ihrer App an. Es gibt auch Informationen zu allen geöffneten Dateien. Es gibt eine Verlaufszeitleiste dieser Festplatten-E / A-Aktivität, die Sie überwachen können.
Asset-Kataloge unterstützen jetzt Größenklassen. Dies bedeutet, dass Sie Ihre Benutzeroberfläche jetzt leicht an die kompakte und reguläre Höhe oder Breite anpassen können, indem Sie unterschiedliche Bilder für jede Größenklasse bereitstellen.
Zuvor unterstützten Asset-Kataloge nur PNG-Bilder, aber in Xcode 6 wurde die Unterstützung für JPEG- und PDF-Vektorbilder hinzugefügt.
Sie können eine XIB oder ein Storyboard als Startbild Ihrer Anwendung verwenden. Das Betriebssystem generiert die erforderlichen Startabbilder für Ihre App. Auf diese Weise müssen Sie keine individuellen Assets für die Startabbilder bereitstellen, und Sie können sie im Interface Builder entwerfen.
Um eine XIB oder ein Storyboard als Startbild Ihrer App festzulegen, wählen Sie das Projekt in der Projektnavigator und wählen Sie ein Ziel aus der Liste der Ziele. Unter dem Allgemeines Auf der Registerkarte finden Sie den Abschnitt App-Symbole und Bilder starten und wählen Sie die richtige Datei aus dem Menü aus Bildschirmdatei starten.
Das XCTest-Framework wurde um neue APIs erweitert, mit denen asynchroner Code getestet werden kann. Dies geschieht über Erwartungsobjekte, XCTestExpectation
, die erwarteten Ereignisse beschreiben. XCTestCase
hat eine neue API, die darauf wartet, dass die Erwartung erfüllt wird, und ein Timeout für sie festgelegt wird. Ein Beendigungs-Handler wird entweder aufgerufen, wenn alle Ereignisse erfüllt sind oder wenn das Zeitlimit überschritten wurde. Es kann gleichzeitig auf mehrere asynchrone Ereignisse gewartet werden. Sie können jetzt problemlos auf Systeminteraktionen testen, die asynchron ausgeführt werden, z. B. Datei-E / A, Netzwerkanforderungen usw..
Das erweiterte XCTest-Framework kann jetzt die Leistung jedes Teils einer App quantifizieren. Xcode führt Ihre Leistungstests aus und lässt Sie eine Baseline-Leistungskennzahl definieren. Jeder nachfolgende Testlauf vergleicht die Leistung, zeigt die zeitliche Änderung an und weist auf den Problembereich hin, der Sie auf plötzliche Regressionen hinweist, die durch eine Code-Commit ausgelöst werden könnten. Wenn das durchschnittliche Leistungsmaß erheblich von der Basislinie abweicht, schlägt der Test fehl. Auf diese Weise können Sie Leistungsregressionen in Ihrer App erkennen.
Mit der Einführung von Leistungstests besteht die Möglichkeit, Profiltests in Instrumenten durchzuführen. Sie können einen Test oder eine Testsuite für das Profil auswählen und weitere Untersuchungen und Analysen in Instruments durchführen, um herauszufinden, warum der Test fehlgeschlagen ist, und um die Ursache der Regression herauszufinden.
Instruments hat eine aktualisierte Benutzeroberfläche. Mit der neuen Vorlagenauswahl können Sie Ihr Gerät und Ihr Ziel sowie den Startpunkt für Ihre Profiling-Sitzung auswählen.
Da ist ein neues Zähler Vorlage, die mit kombiniert wurde Veranstaltungen einen leistungsfähigen Blick auf einzelne CPU-Ereignisse bieten. Sie können sogar Formeln angeben, um Ereignisaggregate, Verhältnisse und mehr zu messen.
In Xcode 6 wird Instruments auch mit Swift unterstützt, und Sie können damit auch App-Erweiterungen profilieren. Es gibt auch Unterstützung für Simulatorkonfigurationen. Die Simulatorkonfigurationen werden von Instruments wie Geräte behandelt, wodurch das Starten oder Anhängen von Prozessen im Simulator vereinfacht wird.
Apple verbessert ständig seine Entwicklertools. Dies ist in jeder größeren Version von Xcode zu sehen. Xcode 6 verbessert seine Vorgänger und bietet Entwicklern Werkzeuge, die den Arbeitsablauf verbessern und den gesamten Entwicklungsprozess erheblich verbessern.