Maybaygiare.org

Blog Network

Cocoa und Cocoa Touch: Erste Schritte beim Erstellen von Mac- und iOS-Apps

Offenlegung: Ihre Unterstützung hilft dabei, die Website am Laufen zu halten! Wir verdienen eine Vermittlungsgebühr für einige der Dienste, die wir auf dieser Seite empfehlen. Weitere Informationen

Cocoa ist eine native Entwicklungs-API für das Betriebssystem Mac OS X. Cocoa Touch ist die eng verwandte analoge Plattform für iOS. Es ist in Objective-C geschrieben und fungiert als eine Art „oberste Ebene“ für jedes Betriebssystem.

Cocoa kann als Anwendungsplattform oder Anwendungsentwicklungsframework betrachtet werden, ist jedoch stärker in das Betriebssystem integriert als in einer Linux- oder Windows-Umgebung.

Diese enge Integration zwischen der API, dem Betriebssystem und (natürlich) Apples eigener Hardware soll eine nahtlose Entwicklungsumgebung bieten und den „Apple Way“ durchsetzen.

Geschichte des Kakaos

Kakao beginnt mit C. Wörtlich.

In den frühen 1980er Jahren versuchte ein Entwicklerpaar namens Brad Cox und Tom Love, der Programmiersprache C Objektorientierung hinzuzufügen, die zu dieser Zeit OOP nicht unterstützte.

Ihre Lösung bestand darin, einen Vorprozessor zu erstellen, der C-Code mit einigen Smalltalk-ähnlichen Ergänzungen in einfachen kompilierbaren C-Code rendert. (Smalltalk war eine frühe objektorientierte Sprache.)

Dieser Präprozessor entwickelte sich schnell zu einer vollwertigen Spracherweiterung und wurde als Objective-C bekannt. NeXT Software, das von Steve Jobs gegründet wurde, nachdem er 1985 von Apple entlassen worden war, lizenzierte Objective-C von seinen Entwicklern und verwendete es als Grundlage für mehrere Entwicklungsframeworks.

Diese bildeten die Anwendungsplattformen NeXTStep und OpenStep, die NeXT in den 80er und 90er Jahren verkaufte.

Apple erwarb NeXT 1996 und Steve Jobs kehrte als CEO zurück. Die NeXTStep-Frameworks fanden ihren Weg in das Mac-Betriebssystem.

Apple hatte den Namen Cocoa bereits für ein separates Projekt eingetragen, das eingestellt wurde. Um schnell einen geschützten Markennamen auf Apples neuere Version der Frameworks zu setzen, nannten sie es Cocoa.Cocoa ist seit den späten 1990er Jahren Teil aller Apple-Betriebssysteme und hat sich seitdem zusammen mit dem Betriebssystem und den neuen Geräteplattformen weiterentwickelt.

Was macht Kakao?

Cocoa macht eine Menge Dinge, aber im Großen und Ganzen fallen diese in vier Kategorien:

  • Fungiert als erweiterte Standardbibliothek für Objective-C und bietet Unterstützung für reichhaltigere Objekte und Funktionen moderner Computersprachen, die im Design von Objective-C nicht vorhanden sind.

  • Bereitstellung einer einheitlichen Benutzeroberfläche und Benutzererfahrung.

  • Ermöglicht einer Anwendung den Zugriff auf andere Anwendungen, Dienste und Gerätefunktionen.

  • Förderung bestimmter Architektur- und Datenverwaltungsmuster.

Diese allgemeinen Designziele werden in mehreren „Frameworks“ implementiert.“ Dieser Begriff könnte etwas verwirrend sein. Im zeitgenössischen Sprachgebrauch ist Cocoa eher wie ein einzelnes Framework mit mehreren Modulen oder Bibliotheken. Aber Apple nennt jede dieser Bibliotheken ein „Framework.“

Lassen Sie uns jedes dieser funktionalen Ziele ein wenig untersuchen und wie die verschiedenen Cocoa-Frameworks sie erreichen.

Cocoa als Standardbibliothek

Objective-C hat eine Standardbibliothek. In der Cocoa-Umgebung werden die Standardbibliothek und die Laufzeit tatsächlich von Cocoa bereitgestellt. Darüber hinaus bietet das Foundation Kit eine Reihe erweiterter Sprachfunktionen, die in der Praxis als De-facto-Standardbibliothek fungieren.

Dies bietet erweiterte Sprachfunktionen, als normalerweise in Objective-C verfügbar wären. Dies umfasst eine breite Palette grundlegender Klassen für häufig verwendete Objekttypen – Zahlen, Datumsangaben, Zeichenfolgen, URLs, reguläre Ausdrücke und Fehlermeldungen.

Dieses Foundation Kit-Framework ist für in Objective-C geschriebene Apps unerlässlich. Die App-Entwicklung auf Apple-Plattformen entfernt sich jedoch von Objective-C, da Apple seine neuere Swift-Entwicklungssprache fördert.Swift bietet nativ viele der modernen Sprachfunktionen, die von Foundation Kit hinzugefügt wurden, und es ist unklar, welche Rolle Foundation und Objective-C in einer Swift-zentrierten Zukunft spielen werden.

Cocoa als UI/UX-Schnittstelle

Dieser Aspekt von Cocoa ist für App-Entwickler vielleicht der offensichtlichste.

In der OS X-Version von Cocoa wird die User Experience API von einem Framework namens AppKit bereitgestellt. In Cocoa Touch für iOS heißt dies UIKit.

In beiden Fällen bieten diese grafische Elemente, Bedienelemente für die Benutzeroberfläche, Fenster- und Bedienfeldverwaltung, Multitouch-Schnittstellen und alle anderen Details der Interaktion zwischen Benutzer und System.

Die Verwendung von AppKit und UIKit sorgt dafür, dass eine Anwendung im Apple-System nativ aussieht und sich anfühlt und auf Eingaben (Gesten, Klicks, Bewegungen) „richtig“ reagiert.

Der große Unterschied zwischen Cocoa und Cocoa Touch ist der Unterschied zwischen AppKit und UIKit. So sehr Apple daran gearbeitet hat, die Benutzererfahrung plattformübergreifend zu vereinheitlichen, interagieren Sie immer noch anders mit einem iPhone als mit einem Desktop-Mac.

Neben leicht unterschiedlichen GUI-Elementen bietet UIKit Unterstützung für Dinge wie Kompassrichtung, GPS, Beschleunigungsmesser (Gerätebewegung) und Touchscreen.

Cocoa als Betriebssystemschnittstelle

Apple Apps müssen auch mit anderen Apps und Betriebssystemdiensten interagieren können.

Wenn Sie in Ihrer Chat-App auf eine Telefonnummer klicken und einen Anruf starten möchten, müssen Apps in der Lage sein, miteinander zu sprechen.

Wenn Sie möchten, dass eine Musikbearbeitungs-App Ton von einem Mikrofon aufnimmt und über Ihre Lautsprecher wiedergibt, müssen Apps in der Lage sein, mit Betriebssystemdiensten zu interagieren.

Cocoa bietet eine ganze lange Liste von Frameworks, die den Zugriff auf Apps und Dienste ermöglichen. Diese ermöglichen es Apps, nicht nur eigenständige ausführbare Dateien zu sein, sondern in einem integrierten Ökosystem zu existieren und zu arbeiten.

Cocoa als Architekt

Cocoa unterstützt zwei wichtige Architekturmuster, eines innerhalb einer Anwendung und eines in der Art und Weise, wie eine Anwendung außerhalb von sich selbst kommuniziert.

Cocoa wurde unter Berücksichtigung des Model-View-Controller-Architekturparadigmas geschrieben und unterstützt die MVC-Entwicklung auf allen Ebenen.

View wird von den Frameworks AppKit oder UIKit implementiert. Controller-Module werden durch eine Familie von Klassen unterstützt, die in das Foundation Kit integriert sind. Modelle und ihre erforderliche Verbindung zu einer Datenpersistenzschicht werden von einem anderen Framework namens Core Data verwaltet.

Dieses Design fördert (manche könnten sagen, erzwingt) eine Model-View-Controller-Architektur in iOS- und OS X-Anwendungen.

Zwischen verschiedenen Anwendungen, aber auch zwischen Anwendungen und Diensten vermitteln die verschiedenen Frameworks die Interaktion im Wesentlichen serviceorientiert. Dies macht es einfacher und sicherer, Apps miteinander zu integrieren, und fördert ein robustes, widerstandsfähiges Anwendungsökosystem.

Cocoa-Ressourcen

Online

Tutorials

  • Grundlegende Programmierkonzepte für Cocoa und Cocoa Touch

  • Einführung in die Codierungsrichtlinien für Cocoa

  • Cocoa Dev Central

  • Programmieren von Mac OS X mit Cocoa für Anfänger.

Tools

  • Cocoa Controls: Open Source UI-Komponenten für iOS und OS X.

  • Cocoa Pods: ein Paketmanager für Cocoa-Projekte.

Gemeinschaft und Weiterbildung

  • CocoaHeads: ein weltweites Netzwerk lokaler Tagungs- und Diskussionsgruppen, die sich der Entwicklung von Kakao und Cocoa Touch widmen.Ich bin ein Fan von Cocoa.

Bücher

  • Schnelle Entwicklung mit Cocoa: Entwickeln für den Mac und iOS App Stores

  • Cocoa-Programmierung für OS X: Der Big Nerd Ranch Guide

  • Cocoa lernen mit Objective-C

  • Referenz)

  • Kakao-Entwurfsmuster.

Andere OS X- und iOS-Entwicklungsressourcen

Sie können Cocoa oder Cocoa Touch nicht in einem Vakuum verwenden. Es ist ein Teil der größeren Apple App-Entwicklungsumgebung, die Xcode, Objective-C und Swift enthält. Diese verschiedenen Tools und Technologien arbeiten zusammen, um ein Entwicklungsökosystem zu bilden.

Xcode

Xcode ist eine erforderliche integrierte Entwicklungsumgebung (IDE) zum Erstellen von OS X- und iOS-Anwendungen. Es ist eng in Swift, Cocoa, den Apple App Store und das größere Apple-Ökosystem integriert.

Es gibt nicht viele Tutorials speziell zu Xcode, da es in jeder allgemeinen Apple-Entwicklungsressource behandelt wird. Eine großartige Ressource ist jedoch dieses Xcode-Tutorial, das regelmäßig aktualisiert wird, wenn neue Versionen von Xcode herauskommen.

Objective-C

  • Über Objective-C: ein Einführungstutorial aus dem Apple Developer Center

  • Objective-C-Programmierung

  • Objective-C-Programmierung: Der Big Nerd Ranch Guide.

Wir haben auch eine vollständigere Liste der Objective-C-Ressourcen.

Swift

  • Die Swift-Programmiersprache: der offizielle Apple-Leitfaden

  • Swift-Programmierung: Der Big Nerd Ranch Guide: das endgültige Buch zu diesem Thema.

Wir haben auch eine ausführliche Liste von Swift-Ressourcen.

Allgemeine Apple-Entwicklungsressourcen

Der erste Ort für Informationen und Ressourcen zur Entwicklung für Apple-Plattformen ist die Apple Developer Site.

Viele der besten Bücher über Mac- und iOS-Entwicklung stammen von Big Nerd Ranch. Ihre Bücher zu bestimmten Themen sind oben erwähnt, und Sie sollten auch ihre Bücher über fortgeschrittene Mac OS X-Programmierung und iOS-Programmierung lesen.

Andere gute allgemeine Ressourcen:

  • Ray Wenderlich Tutorials: Einer der relativ wenigen Anbieter, der alte Tutorials aktualisiert, wenn Apple die Plattform aktualisiert.

  • Apple Programming Channel auf YouTube: nicht offiziell, aber sehr hilfreich.

  • WeHeartSwift: nominell über Swift, aber diese Seite deckt alle Aspekte der OS X- und iOS-Entwicklung ab.

  • NSHipster: ein beliebter Blog über Mac- und iOS-Entwicklung mit vielen Tutorials zu „übersehenen Bits in Objective-C, Swift und Cocoa.“ Sie sind auch sehr eigensinnig in ihrer Berichterstattung, was wahrscheinlich eine Stärke ist.

  • ObjC.io : bücher und Artikel über fortgeschrittene Techniken und Praktiken für iOS und OS X Entwicklung.

Fazit…

Cocoa und Cocoa Touch sind die Grundlagen der nativen App-Entwicklung für Mac und iOS.

Für iOS gibt es andere Möglichkeiten, nicht-native mobile Apps mit HTML5 und JS zu erstellen, aber das läuft nicht immer so gut wie erwartet — wirklich.

Wenn Sie die nächste große iPhone-App erstellen oder Mac-Apps erstellen möchten, die sich gut in OS X integrieren lassen und den Erwartungen der Benutzer entsprechen, müssen Sie sich wirklich mit Cocoa und Cocoa Touch befassen. Für native App-Entwicklung gibt es wirklich keinen Ersatz.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.