Erkunden das iOS SDK
German (Deutsch) translation by Max Benjamin (you can also view the original English article)
Gute Kenntnisse des iOS SDK ist der Schlüssel bei der Entwicklung von nativen iOS-Anwendungen. Es wird nicht nur helfen, wählen Sie die richtigen Werkzeuge zur Bewältigung eines bestimmten Problems, es wird auch stellen Sie sicher, dass Sie nicht verloren gehen in die Dutzende von frameworks, die in das iOS SDK. In diesem Artikel, Zoomen wir in die iOS-Architektur und finden Sie heraus, welche Kräfte iOS-Anwendungen unter der Haube.
Was ist mit dem iOS SDK?
Ich bin mir ziemlich sicher, dass auch ein paar erfahrene iOS-Entwickler würden eine harte Zeit haben, definieren Sie das iOS-SDK in einem Satz. Die Abkürzung SDK steht für Software Development Kit. Das iOS SDK enthält die tools und Ressourcen zu entwickeln, die den nativen iOS-Anwendungen, was bedeutet, dass das SDK erlaubt dem Entwickler das entwickeln, installieren, ausführen und testen von Applikationen im iOS-Simulator und auf physischen Geräten.
Die beiden treibenden Kräfte einschalten native iOS-Anwendungen werden in Objective-C und die native iOS-system-frameworks. Im vorherigen Artikel haben wir untersucht, die Objective-C Programmiersprache. In diesem Artikel möchte ich erkunden die Rahmenbedingungen, macht den nativen iOS-Anwendungen.
Diese umfasst high-level-frameworks, wie das UIKit und Map Kit frameworks, aber auch frameworks, die eng an die hardware gebunden ist, wie das Beschleunigen und Core Location frameworks.
Was ist eine native iOS-Anwendung?
Sie wissen jetzt, was das iOS-SDK ist, aber was macht eine Bewerbung zu qualifizieren, als eine native iOS-Anwendung? Die einfache Antwort ist, dass eine iOS-Anwendung ist eine Anwendung auf einem iOS-Gerät. Dies ist jedoch nur die halbe Wahrheit. Was ist mit web-Anwendungen, die in den Safari-browser?
Eine iOS-Anwendung ist eine Cocoa-Anwendung, entwickelt für die iOS-Plattform. Toll. Was ist eine Cocoa-Anwendung? Eine Cocoa-Anwendung ist ein bisschen schwieriger zu definieren. Ist es die Sprache, in der die Anwendung geschrieben wird? Nicht wirklich. Ist es die Werkzeuge, mit denen eine Cocoa-Anwendung gebaut ist? Keine. Es ist möglich, entwickeln Sie eine Cocoa-Anwendung ohne die Hilfe von Xcode.
Apple definiert eine Cocoa-Anwendung als eine Anwendung, die aus Objekten, die letztlich die Erben von NSObject, eine root-Klasse deklariert in das Foundation framework, und das ist, basierend auf der Objective-C runtime.
In diesem Artikel möchte ich den Fokus auf die frameworks, die verwendet werden, um erstellen Sie native iOS-Anwendungen. Wenn Sie daran interessiert sind, mehr über die Objective-C runtime, ich empfehle einen Blick auf Apple ' s Objective-C-Runtime-Referenz oder Lesen Sie die Objective-C Runtime Programming Guide.
Das Foundation-framework stellt eine zweite root-Klasse, NSProxy. Allerdings werden Sie selten, wenn überhaupt, verwenden Sie es in Ihren Projekten.
Die iOS-Architektur
Ein weiterer Unterschied zu web-Anwendungen laufen im Safari-browser ist, dass native Anwendungen, die direkt mit dem iOS-Betriebssystem und die native iOS-system-frameworks. Das Betriebssystem fungiert als Vermittler zwischen der Anwendung und der zugrunde liegenden hardware. Ein entscheidender Vorteil der mediation oder die Abstraktion ist, dass native Anwendungen, die nicht brauchen, um sorgen über zukünftige hardware-änderungen oder Geräte-Spezifikationen.
Das Betriebssystem bietet native Anwendungen mit den notwendigen Informationen über die hardware-Funktionen Stellt das Gerät eine Kamera haben?) und Geräte-Spezifikationen (Ist die Anwendung auf einem iPhone oder einem iPad?).
Die iOS-Architektur gliedert sich in vier unterschiedliche Ebenen:
- Cocoa Touch
- Medien
- Core Services
- Core OS


Dieser mehrschichtige Architektur zeigt, dass die Ebene der Abstraktion, mit der höheren Schichten mehr abstrahiert und die unteren Ebenen mehr grundlegende und eng an die hardware gebunden ist. Es ist selbstverständlich, dass die höheren Ebenen setzen auf die unteren Ebenen für einen Teil Ihrer Funktionalität.
Apple empfiehlt die Verwendung der höheren Ebene Rahmenbedingungen soweit wie möglich, denn Sie sind oft die objektorientierte Abstraktionen von der unteren Ebene-frameworks. In anderen Worten, die höheren Ebenen interagieren indirekt mit der hardware durch die unteren Ebenen, die sind von Natur aus Komplex. Natürlich, es ist immer noch möglich, zurück auf die untere Ebene-frameworks, wenn die höhere Ebene Rahmenbedingungen nicht Ihren Bedürfnissen entsprechen.
Als Erinnerung, ein framework ist ein Verzeichnis, das enthält eine dynamische, gemeinsam genutzte Bibliothek und den Ressourcen zugeordnet, wie header-Dateien, Bilder, etc. Rahmenbedingungen sind die access points, um verschiedene system-Schnittstellen, wie das iOS-Adressbuch, das Gerät die Kamera Rollen, und die Musik-Bibliothek.
Cocoa-Touch-Schicht
Im letzten Artikel schrieb ich darüber, Cocoa Touch und seine Beziehung zu Objective-C. In diesem Artikel möchte ich diskutieren, Cocoa Touch aus funktionaler Sicht, wie Anwendungen verlassen sich auf die Cocoa Touch-Schicht und was seine Rolle in der iOS-Architektur.
Die Cocoa Touch-Schicht ist die oberste Schicht der iOS-Architektur. Es enthält einige der wichtigsten Rahmenbedingungen, die den nativen iOS-Anwendungen verlassen sich darauf, mit der prominenteste wobei die UIKit-framework.
Die Cocoa Touch-Schicht definiert das grundlegende Anwendungs-Infrastruktur und bietet eine Reihe grundlegender Technologien wie multitasking und touch-basierte Eingabe.
Wie ich bereits erwähnte, iOS-Anwendungen verlassen sich stark auf die UIKit-framework. Native iOS-Anwendungen können nicht funktionieren, wenn Sie nicht miteinander verknüpft sind gegen die UIKit und Foundation frameworks.
Die UIKit Rahmen oder UIKit ist zugeschnitten auf die iOS-Plattform. Gibt es einen entsprechenden Rahmen für die OS X-Plattform mit der Anwendung-Kit oder AppKit-framework. UIKit bietet die Infrastruktur für die grafische, ereignisgesteuerte iOS-Anwendungen. Es kümmert sich auch um andere wichtige Aspekte, die spezifisch für die iOS-Plattform wie multitasking, push-Benachrichtigungen und Barrierefreiheit.
Die Cocoa Touch-Schicht stellt dem Entwickler mit einer großen Anzahl von high-level-features wie auto-layout -, Druck -, gesture recognizers, und document-Unterstützung. Neben UIKit, es enthält das Map-Kit -, Event-Kit, und die Nachricht, UI-frameworks, unter anderem.
Neben UIKit, es enthält das Map-Kit -, Event-Kit, und die Nachricht, UI-frameworks, unter anderem.Für eine vollständige Liste aller frameworks des Cocoa Touch layer, möchte ich beziehen sich auf apples iOS Technology Overview guide.
Media Layer
Grafik, audio und video behandelt, von den Medien Schicht. Diese Schicht enthält eine Reihe von Schlüssel-Technologien, wie Core Graphics, OpenGL ES und OpenAL, AV-Foundation, Core Media.
Die Media-Schicht enthält eine große Anzahl von frameworks, einschließlich der Assets Library framework, um den Zugriff auf ein Gerät, das Fotos und videos, die Core Image-framework für die Bildbearbeitung durch Filter, und die Core-Graphics-framework für 2D-Zeichnungen.
Werfen Sie einen Blick auf apples iOS-Technologie im Überblick-Handbuch für eine vollständige Liste aller frameworks von den Medien Schicht.
Core-Services-Schicht
Die Core-Services-Schicht ist verantwortlich für die Verwaltung der grundlegenden system-Dienste, die native iOS-Anwendungen verwenden. Die Cocoa Touch-Schicht stützt sich stark auf die Core-Services-Schicht für einige seiner Funktionen. Der Core Services layer bietet auch eine Reihe von unverzichtbaren Funktionen, wie die Objekte für den block, Grand Central Dispatch, die In-App-Kauf, und iCloud-Speicherung.
Eine der am meisten begrüßte Ergänzungen zu den Core Services layer, ist BOGEN oder Automatic Reference Counting". ARC ist eine compiler-level-Features, eingeführt im Jahr 2011 mit der Veröffentlichung von iOS 5. ARC vereinfacht den Prozess der Speicherverwaltung in Objective-C.
Speicher-management ist ein Thema, das wir noch nicht abgedeckt haben in dieser Serie, aber es ist wichtig, dass Sie verstehen, die Grundlagen der Speicherverwaltung bei der Entwicklung von Cocoa-Anwendungen. Automatic Reference Counting ist eine große Bereicherung, aber es ist wichtig, dass Sie wissen, was BOGEN ist etwas für Sie.
Lesen Sie mehr über memory management in Objective-C Programming Language guide, und ich empfehle, dass Sie tun.
Das Foundation framework oder Stiftung ist ein weiterer wesentlicher Rahmen für die iOS-und OS X-Anwendungen. Im nächsten Artikel untersuchen wir diesen Rahmen im detail. Das Foundation-framework ist mehr als eine Sammlung von nützlichen Klassen, wie NSArray, NSDictionary, und NSDate.
Foundation stellt die wurzelklasse NSObject, die bietet eine einfache Schnittstelle zu der Objective-C runtime, und Sie enthält auch mehrere Paradigmen, wie Richtlinien für das Objekt Eigentum. Wie die Core-Foundation (siehe unten), Stiftung macht es möglich, für die verschiedenen Bibliotheken und frameworks für die einfache Freigabe von Daten und code.
Ein weiterer wichtiger Rahmen der Core-Services-Schicht und eng mit dem Foundation-framework ist die C-basierte Core Foundation framework oder Core Foundation. Wie das Foundation-framework, der es ermöglicht, die verschiedenen Bibliotheken und frameworks, die zum teilen von Daten und code.
Core Foundation hat eine Funktion, genannt toll-free bridging, die es ermöglicht die substitution von Kakao-Objekte für die Core-Foundation-Objekte in der Funktion Parameter, und Umgekehrt.
Für eine vollständige Liste aller frameworks von den Core Services layer, würd ich Verweise gerne auf die iOS Technology Overview guide.
Core OS Layer
Die meisten der Funktionalität, die durch die drei Ebenen der höhere Ebene baut auf der Core-OS-Schicht und seine low-level-Funktionen. Die Core-OS-layer-bietet eine Reihe von frameworks, die Ihre Anwendung direkt verwenden können, wie die Beschleunigungs-und Security-frameworks.
Die Core-OS-layer kapselt die kernel-Umgebung und low-level UNIX-Schnittstellen, an die Sie Ihre Anwendung hat keinen Zugriff aus offensichtlichen Gründen der Sicherheit. Aber durch den libSystem-Bibliothek, die C-basiert, viele low-level-Funktionen kann direkt zugegriffen werden, wie z.B. BSD-sockets, POSIX-threads, und DNS-Dienste.
Dokumentation
Ihre engsten Verbündeten bei der Entwicklung von nativen iOS-Anwendungen ist die Dokumentation, die mit dem iOS SDK. Für die meisten Teil, die Dokumentation ist hervorragend und es wird Ihnen helfen, erhalten Sie bis zu Geschwindigkeit, mit der eine neue Technologie oder ein framework mit wenig Aufwand.
Obwohl die Dokumentation ist online verfügbar, die meisten Entwickler verwenden Sie die Dokumentation browser in Xcode. In Xcode 5, finden Sie in der Dokumentation browser durch die Auswahl der Dokumentation und API-Referenz von Xcode im Menü.
Da Sie mit der Dokumentation umfangreich ist, möchten Sie vielleicht lernen, ein paar Abkürzungen zu finden, was Sie suchen in der Dokumentation. Wie ich bereits im letzten Absatz erwähnt, ist die Dokumentation browser bietet einfachen Zugriff auf die Dokumentation. Um schnell Zugriff auf die Dokumentation, drücken Sie Umschalt + Befehl + 0 in Xcode 5.
Beim schreiben von code in Xcode code-editor, kann es schnell zu umständlich hin und her zu wechseln zwischen code-editor und die Dokumentation der browser jedes mal, wenn Sie brauchen, um eine Klasse oder Methode.
Es gibt zwei Lösungen für das effiziente durchsuchen der Dokumentation.Beim schreiben von code in Xcode code-editor, kann es schnell zu umständlich hin und her zu wechseln zwischen code-editor und die Dokumentation der browser jedes mal, wenn Sie brauchen, um eine Klasse oder Methode. Wenn Sie mit dem cursor auf eine Klasse oder Methode Namen in Xcode code-editor, der Schnelle Hilfe-Inspektor in der rechten Seitenleiste zeigt eine Zusammenfassung der jeweiligen Klasse oder Methode. Die Zusammenfassung enthält einige nützliche links, die Sie ergreifen, um die Dokumentation browser.



Da ich in der Regel ausblenden der sidebar rechts wenn ich auf Arbeit bin in der code-editor, habe ich eine alternative Methode verwenden, um zu zeigen, in der Dokumentation einer Klasse oder Methode. Wenn Sie drücken Sie die Wahltaste und bewegen Sie die Maus über einen Klassen-oder Methodennamen, der Cursor ändert sich in ein Fragezeichen und die Klasse bzw. die Methode name wird hervorgehoben. Indem Sie eine Klasse oder Methode Namen mit den Fragezeichen, erscheint ein Fenster mit der gleichen Zusammenfassung wie das Quick Help Inspector. Klick auf einen der links im Fenster, gelangen Sie zu der Dokumentation browser. Dies ist eine schnelle und bequeme Möglichkeit zum wechseln zwischen code-editor und die Dokumentation browser, insbesondere beim arbeiten mit zwei Monitoren.



Fazit
Nun sollten Sie über gute Kenntnisse des iOS SDK und die verschiedenen Schichten der iOS-Architektur. Die beiden wichtigsten frameworks für eine iOS-Anwendung, UIKit und Foundation, sind der Schwerpunkt der nächsten beiden Ausgaben dieser Serie.
Nicht nur sind diese Rahmenbedingungen unverzichtbar für jede iOS-Anwendung, die Sie enthalten Dutzende von Klassen, die Sie finden, selbst mit oft bei der Entwicklung von nativen iOS-Anwendungen.



