Cocoa is een ontwikkelaarsapi afkomstig van het Mac OS X-besturingssysteem. Cocoa Touch is de nauw verwante analoge platform voor de iOS. Het is geschreven in Objective-C, en fungeert als een soort “toplaag” voor elk besturingssysteem.
Cocoa kan worden gezien als een applicatie platform of een applicatie ontwikkeling raamwerk, maar het is meer geïntegreerd in het besturingssysteem dan een van beide zou zijn in een Linux-of Windows-omgeving.
deze nauwe integratie tussen de API, het besturingssysteem en (natuurlijk) Apple ‘ s eigen hardware is bedoeld om een naadloze ontwikkelomgeving te bieden en “de Apple manier” van het doen van dingen af te dwingen.
- de geschiedenis van Cacao
- Wat doet cacao?
- Cocoa als standaardbibliotheek
- Cocoa als UI/UX-Interface
- Cocoa als Besturingssysteeminterface
- Cocoa als Architect
- Cacaobronnen
- Online
- Tutorials
- Tools
- Gemeenschap en voortgezet onderwijs
- Books
- andere OS X-en iOS-ontwikkelingsbronnen
- Xcode
- Objective-C
- Swift
- General Apple Development Resources
- Bottom Line…
de geschiedenis van Cacao
cacao begint met C. letterlijk.in het begin van de jaren tachtig probeerden een paar ontwikkelaars, Brad Cox en Tom Love, objectoriëntatie toe te voegen aan de programmeertaal C, die OOP toen niet ondersteunde.
hun oplossing was om een pre-processor te maken die C-code zou renderen met enkele Smalltalk-achtige toevoegingen in gewone compileerbare C-code. (Smalltalk was een vroege objectgeoriënteerde taal.)
deze preprocessor ontwikkelde zich snel tot een volwaardige taaluitbreiding en werd bekend als Objective-C. NeXT software, die werd opgericht door Steve Jobs nadat hij werd ontslagen bij Apple in 1985, gelicentieerd Objective-C van de makers en gebruikt het als de basis voor verschillende ontwikkeling frameworks.
Deze vormden de NeXTSTEP en OpenStep applicatieplatforms, die vervolgens verkocht werden in de jaren 80 en 90.
Apple kocht NeXT in 1996, en Steve Jobs keerde terug als CEO. De NeXTSTEP frameworks maakten hun weg naar het Mac-besturingssysteem.
Apple had al een handelsmerk van de naam Cocoa, voor een afzonderlijk project dat werd stopgezet. Om snel een handelsmerk merknaam op Apple ‘ s nieuwere versie van de kaders, ze noemde het Cocoa.
Cocoa is een onderdeel van alle besturingssystemen van Apple sinds de late jaren 1990, en is geëvolueerd samen met het besturingssysteem en de nieuwe apparaat platforms sindsdien.
Wat doet cacao?
Cocoa doet veel, maar over het algemeen vallen deze in vier categorieën:
-
fungeert als een uitgebreide standaardbibliotheek voor Objective-C, die ondersteuning biedt voor rijkere objecten en kenmerken van moderne computertalen die niet aanwezig zijn in het ontwerp van Objective-C.
-
biedt een uniforme gebruikersinterface en gebruikerservaring.
-
waardoor een toepassing toegang heeft tot andere toepassingen, services en apparaatfuncties.
-
stimuleren van specifieke architecturale en gegevensbeheerpatronen.
deze brede ontwerpdoelstellingen worden in verschillende kaders geïmplementeerd.”Deze term kan een beetje verwarrend zijn. In de hedendaagse taal, Cocoa is meer als een enkel kader, met verschillende modules of bibliotheken. Maar Apple noemt elk van deze bibliotheken een “framework.”
laten we elk van deze functionele doelen een beetje verkennen, en hoe de verschillende Cocoa frameworks deze bereiken.
Cocoa als standaardbibliotheek
Objective-C heeft een standaardbibliotheek. In de Cocoa-omgeving worden de standaardbibliotheek en de runtime daadwerkelijk geleverd door Cocoa. Daarnaast wordt een reeks uitgebreide taalfuncties geleverd door de Foundation Kit die in de praktijk fungeren als een de facto standaardbibliotheek.
Dit biedt meer geavanceerde taalfuncties dan normaal beschikbaar zou zijn in Objective-C. Dit omvat een breed scala van basisklassen voor veelgebruikte soorten objecten-getallen, datums, strings, URL ‘ s, reguliere expressies en foutmeldingen.
Dit Foundation Kit framework is essentieel in apps geschreven in Objective-C. app ontwikkeling in Apple platforms is echter weg van Objective-C, als Apple promoot zijn nieuwere Swift ontwikkeltaal.
Swift biedt van nature veel van de moderne taalfuncties die door Foundation Kit zijn toegevoegd, en het is onduidelijk welke rol Foundation, en Objective-C, zullen spelen in een Swift-centrische toekomst.
Cocoa als UI/UX-Interface
dit aspect van Cocoa is misschien wel het duidelijkst belangrijk voor app-ontwikkelaars.
in de OS X-versie van Cocoa wordt de user experience API geleverd door een framework genaamd AppKit. In Cocoa Touch voor iOS wordt dit UIKit genoemd.
in beide gevallen bieden deze grafische elementen, bedieningselementen van de gebruikersinterface, vensterbeheer en paneelbeheer, multi-touch interfaces en alle andere details van interactie tussen de gebruiker en het systeem.
het gebruik van AppKit en UIKit zorgt ervoor dat een applicatie er native uitziet en aanvoelt in het Apple systeem, en reageert op ingangen (gebaren, klikken, beweging) op de “juiste” manier.
Het grote verschil tussen cacao en cacao Touch is het verschil tussen AppKit en UIKit. Zo veel als Apple heeft gewerkt om de gebruikerservaring te verenigen op verschillende platforms, je nog steeds interactie met een iPhone anders dan je doet met een desktop Mac.
naast iets andere GUI-elementen bevat UIKit ondersteuning voor zaken als kompasrichting, GPS, versnellingsmeter (beweging van het apparaat) en touchscreen.
Cocoa als Besturingssysteeminterface
Apple apps moeten ook kunnen communiceren met andere apps en besturingssysteemdiensten.
Als u op een telefoonnummer in uw chat-app wilt kunnen klikken en een telefoongesprek wilt laten starten, moeten apps met elkaar kunnen praten.
Als u wilt dat een app voor muziekbewerking geluid van een microfoon kan opnemen en afspelen naar uw luidsprekers, moeten apps in staat zijn om te communiceren met de services van het besturingssysteem.
Cocoa biedt een hele lange lijst van frameworks die toegang bieden tot apps en diensten. Hiermee kunnen apps niet alleen standalone executables zijn, maar ook bestaan en werken in een geïntegreerd ecosysteem.
Cocoa als Architect
Cocoa ondersteunt twee belangrijke architectonische patronen, één binnen een toepassing en één in de manier waarop een toepassing communiceert buiten zichzelf.
Cocoa is geschreven met het model-View-Controller architecturaal paradigma in het achterhoofd, en ondersteunt MVC ontwikkeling op alle niveaus.
weergave wordt geà mplementeerd door de appkit-of UIKit-frameworks. Controller modules worden ondersteund door een familie van klassen ingebouwd in de Stichting Kit. Modellen, en hun vereiste verbinding met een data persistence laag, worden behandeld door een ander raamwerk genaamd Core Data.
dit ontwerp moedigt (sommigen zouden kunnen zeggen afdwingt) een model-View-Controller architectuur aan binnen IOS en OS X toepassingen.
tussen verschillende toepassingen, en ook tussen toepassingen en diensten, bemiddelen de verschillende kaders de interactie op een hoofdzakelijk servicegerichte manier. Dit maakt het zowel gemakkelijker als veiliger om apps met elkaar te integreren, waardoor een robuust, veerkrachtig applicatieecosysteem wordt bevorderd.
Cacaobronnen
Online
Tutorials
-
Basisprogrammeringsconcepten voor cacao en cacao Touch
-
Cocoa Dev Central
-
programmeren van Mac OS X met cacao voor Beginners.
Inleiding tot Coderingsrichtlijnen voor cacao
Tools
-
cacao besturingselementen: open source UI-componenten voor iOS en OS X.
-
Cacaopods: een pakketbeheerder voor Cacaoprojecten.
Gemeenschap en voortgezet onderwijs
-
CocoaHeads: een wereldwijd netwerk van lokale vergadering en discussiegroepen gewijd aan cacao en cacao Touch ontwikkeling.
-
cacao Subreddit.
Books
-
Swift Development with Cocoa: Developing for the Mac and iOS App Stores
-
Cocoa Programming for OS X: The Big Nerd Ranch Guide
-
Learning Cocoa with Objective-C
-
Ry ‘ s Cocoa Tutorial
-
cocoa (Developer reference)
-
cocoa design patterns.
andere OS X-en iOS-ontwikkelingsbronnen
U kunt cacao of cacao Touch niet gebruiken in een vacuüm. Het is een stuk van de grotere Apple App-ontwikkelomgeving, die Xcode, Objective-C en Swift omvat. Deze verschillende tools en technologieën werken samen om een ontwikkelingsecosysteem te vormen.
Xcode
Xcode is een vereiste geïntegreerde ontwikkelomgeving (IDE) voor het bouwen van OS X-en iOS-toepassingen. Het is nauw geïntegreerd met Swift, Cocoa, de Apple App store en het grotere Apple ecosysteem.
Er zijn niet veel tutorials over Xcode specifiek, omdat het wordt behandeld in elke algemene Apple development resource. Een grote bron, hoewel, is deze Xcode Tutorial, die regelmatig wordt bijgewerkt als nieuwe versies van Xcode komen.
Objective-C
-
Over Objective-C: een inleidende handleiding van het Apple Developer center
-
Objective-C Programming
-
Objective-C Programming: The Big Nerd Ranch Guide.
we hebben ook een volledigere lijst van Objective-C-middelen.
Swift
-
The Swift Programming Language: the official Apple guide
-
Swift Programming: The Big Nerd Ranch Guide: the definitive book on the subject.
we hebben ook een uitgebreide lijst van Swift-bronnen.
General Apple Development Resources
de eerste plaats voor informatie en bronnen over het ontwikkelen voor Apple platforms is de Apple Developer site.
veel van de beste boeken over Mac en iOS ontwikkeling komen van Big Nerd Ranch. Hun boeken over specifieke onderwerpen zijn hierboven vermeld, en je moet ook kijken op hun boeken over geavanceerde Mac OS X-programmering en iOS-programmering.
andere goede algemene bronnen:
-
Ray Wenderlich Tutorials: een van de relatief weinig providers die teruggaat en oude tutorials bijwerkt wanneer Apple het platform bijwerkt.
-
Apple Programming Channel op YouTube: niet officieel, maar zeer nuttig.
-
weheartswift: nominaal over Swift, maar deze site behandelt alle aspecten van OS X en iOS ontwikkeling.
-
NSHipster: een populaire blog over Mac en iOS ontwikkeling, met veel tutorials over ” over het hoofd gezien bits in Objective-C, Swift, en Cocoa.”Ze zijn ook erg eigenwijs in hun verslaggeving, Wat waarschijnlijk een kracht is.
-
ObjC.io: boeken en artikelen over geavanceerde technieken en praktijken voor iOS en OS X ontwikkeling.
Bottom Line…
Cocoa en Cocoa Touch zijn de basis voor native app-ontwikkeling voor Mac en iOS.
voor iOS zijn er andere manieren om niet-native mobiele apps te bouwen met HTML5 en JS, maar dit gaat niet altijd zo goed als verwacht — echt.
Als u de volgende grote iPhone-app wilt bouwen, of Mac-apps wilt maken die goed integreren met OS X en voldoen aan de verwachtingen van de gebruiker, moet u echt graven in Cocoa en Cocoa Touch. Voor native app ontwikkeling, er zijn echt geen substituten.