Cocoa and Cocoa Touch: Hur du kommer igång Bygg Mac- och iOS-appar

Avslöjande: Ditt stöd hjälper till att hålla webbplatsen igång! Vi tjänar en remissavgift för några av de tjänster vi rekommenderar på denna sida.


Cocoa är ett utvecklings-API som är ursprungligt i operativsystemet Mac OS X. Cocoa Touch är den nära besläktade analoga plattformen för iOS. Det är skriven i Objekt-C och fungerar som ett slags “topplager” för varje operativsystem.

Kakao kan betraktas som en applikationsplattform eller en ram för applikationsutveckling, men den är mer integrerad i operativsystemet än någon av dessa skulle vara i en Linux- eller Windows-miljö..

Denna täta integration mellan API: en, operativsystemet och (naturligtvis) Apples egen hårdvara är avsedd att ge en sömlös utvecklingsmiljö och upprätthålla “Apple-sättet” att göra saker.

Kakaos historia

Kakao börjar med C. Bokstavligen.

I början av 1980-talet försökte ett par utvecklare med namnet Brad Cox och Tom Love att lägga till Objektorientering till programmeringsspråket C, vilket inte stödde OOP vid den tiden.

Deras lösning var att skapa en förprocessor som skulle göra C-kod med några Smalltalk-liknande tillägg till vanlig kompilerbar C-kod. (Smalltalk var ett tidigt objektorienterat språk.)

Denna förbehandlare utvecklades snabbt till en fullständig språksförlängning och blev känd som Objekt-C. NeXT-programvara, som grundades av Steve Jobs efter att han avskedades från Apple 1985, licensierade Objekt-C från dess skapare och använde den som bas för flera utvecklingsramar.

Dessa bildade applikationsplattformarna NeXTSTEP och OpenStep, som NeXT sålde genom 80- och 90-talet.

Apple förvärvade NeXT 1996 och Steve Jobs återvände som vd. NeXTSTEP-ramarna tog sig in i operativsystemet Mac.

Apple hade redan varumärket namnet Cocoa för ett separat projekt som avbröts. För att snabbt sätta ett varumärkesnamn på Apples nyare version av ramverket kallade de det Cocoa.

Kakao har varit en del av alla Apples operativsystem sedan slutet av 1990-talet och har utvecklats tillsammans med operativsystemet och de nya enhetsplattformarna sedan dess.

Vad gör kakao?

Kakao gör många saker, men i stort sett faller de in i fyra kategorier:

  • Fungerar som ett utökat standardbibliotek för Objekt-C, ger stöd för rikare objekt och funktioner i moderna datorspråk som inte finns i utformningen av Objekt-C.

  • Tillhandahålla ett enhetligt användargränssnitt och användarupplevelse.

  • Tillåter en applikation att få åtkomst till andra applikationer, tjänster och enhetsfunktioner.

  • Uppmuntra särskilda arkitektoniska och datahanteringsmönster.

Dessa breda designmål implementeras i flera “ramar.” Denna term kan vara lite förvirrande. I samtida parlance är Cocoa mer som en enda ram, med flera moduler eller bibliotek. Men Apple kallar vart och ett av dessa bibliotek ett “ramverk”.

Låt oss utforska vart och ett av dessa funktionella mål och hur de olika kakaoramarna uppnår dem.

Kakao som standardbibliotek

Objekt-C har ett standardbibliotek. I Cocoa-miljön tillhandahålls standardbiblioteket och körtiden faktiskt av Cocoa. Dessutom tillhandahålls en uppsättning utökade språkfunktioner av Foundation Kit som i praktiken fungerar som ett de facto standardbibliotek.

Detta ger mer avancerade språkfunktioner än vad som vanligtvis skulle finnas tillgängligt i Objekt-C Detta inkluderar ett brett utbud av basklasser för vanliga typer av objekt – nummer, datum, strängar, URL: er, reguljära uttryck och felmeddelanden.

Detta Foundation Kit-ramverk är viktigt i appar skrivna i Objekt-C. App-utvecklingen i Apple-plattformar rör sig dock bort från Objekt-C, eftersom Apple främjar sitt nyare Swift-utvecklingsspråk.

Swift tillhandahåller nativt många av de moderna språkfunktionerna som läggs till av Foundation Kit, och det är oklart vilken roll Foundation, och Objekt-C, kommer att spela i en Swift-centrerad framtid.

Kakao som UI / UX-gränssnitt

Denna aspekt av Cocoa är kanske den mest uppenbara viktiga för apputvecklare.

I OS X-versionen av Cocoa tillhandahålls användarupplevelsens API genom ett ramverk som heter AppKit. I Cocoa Touch för iOS kallas detta UIKit.

I båda fallen tillhandahåller dessa grafiska element, användargränssnittskontroller, fönster- och panelhantering, multitouchgränssnitt och alla andra detaljer om interaktion mellan användaren och systemet.

Användning av AppKit och UIKit är det som får en applikation att se och känna sig infödd till Apple-systemet och svara på ingångar (gester, klick, rörelse) på det “rätta” sättet.

Den stora skillnaden mellan Cocoa och Cocoa Touch är skillnaden mellan AppKit och UIKit. Så mycket som Apple har arbetat för att förena användarupplevelsen mellan plattformar, interagerar du fortfarande med en iPhone annorlunda än du gör på en stationär Mac.

Förutom lite olika GUI-element inkluderar UIKit stöd för saker som kompassriktning, GPS, accelerometer (rörelse på enheten) och pekskärm.

Kakao som operativsystemgränssnitt

Apple-appar måste också kunna interagera med andra appar och operativsystemtjänster.

Om du vill kunna klicka på ett telefonnummer i din chat-app och ha det som startar ett telefonsamtal måste appar kunna prata med varandra.

Om du vill att en musikredigeringsapp ska kunna hämta ljud från en mikrofon och spela upp till dina högtalare måste appar kunna interagera med operativsystemtjänster.

Cocoa tillhandahåller en helt lång lista med ramar som ger tillgång till appar och tjänster. Det är dessa som tillåter appar att inte bara vara fristående körbara filer, utan att existera och fungera i ett integrerat ekosystem.

Kakao som arkitekt

Kakao stöder två viktiga arkitektoniska mönster, en inom en applikation och en i hur en applikation kommunicerar utanför sig själv.

Kakao är skriven med det arkitektoniska paradigmet Model-View-Controller i åtanke och stöder MVC-utveckling på alla nivåer.

Visa implementeras av AppKit- eller UIKit-ramarna. Controller-moduler stöds genom en familj av klasser inbyggda i Foundation Kit. Modeller, och deras erforderliga anslutning till ett datainsträngningsskikt, hanteras av ett annat ramverk som kallas Core Data.

Denna design uppmuntrar (vissa kan säga upprätthåller) en Model-View-Controller-arkitektur inom iOS- och OS X-applikationer.

Mellan olika applikationer, och även mellan applikationer och tjänster, förmedlar de olika ramarna interaktion på ett väsentligt serviceorienterat sätt. Detta gör det både enklare och säkrare att integrera appar med varandra och främja ett robust, fjädrande ekosystem för applikationer.

Cocoa Resources

Uppkopplad

Handledningar

  • Grundläggande programmeringskoncept för kakao och kakaokontakt

  • Introduktion till riktlinjer för kodning för kakao

  • Cocoa Dev Central

  • Programmera Mac OS X med kakao för nybörjare.

Verktyg

  • Kakaokontroll: öppen källkod UI-komponenter för iOS och OS X.

  • Cocoa Pods: en paketansvarig för Cocoa-projekt.

Gemenskap och fortsatt lärande

  • CocoaHeads: ett världsomspännande nätverk av lokala mötes- och diskussionsgrupper dedikerade till utveckling av Cocoa och Cocoa Touch.

  • Cocoa Subreddit.

Böcker

  • Snabb utveckling med kakao: Utveckling för Mac- och iOS-appbutikerna

  • Kakaoprogrammering för OS X: The Big Nerd Ranch Guide

  • Lära sig kakao med mål-C

  • Ry’s Cocoa Tutorial

  • Cocoa (referens för utvecklare)

  • Kakao designmönster.

Andra OS X- och iOS-utvecklingsresurser

Du kan inte använda kakao eller kakaokontakt i vakuum. Det är en del av den större Apple App-utvecklingsmiljön, som inkluderar Xcode, Objekt-C och Swift. Dessa olika verktyg och tekniker arbetar tillsammans för att bilda ett utvecklingsekosystem.

Xcode

Xcode är en nödvändig integrerad utvecklingsmiljö (IDE) för att bygga OS X- och iOS-applikationer. Det är tätt integrerat med Swift, Cocoa, Apple App store och det större Apple-ekosystemet.

Det finns inte mycket handledning om Xcode specifikt, eftersom det täcks i alla allmänna Apple-utvecklingsresurser. En stor resurs är dock denna Xcode Tutorial, som regelbundet uppdateras när nya versioner av Xcode kommer ut.

Objective-C

  • Om Objekt-C: en introduktionsstudie från Apple Developer Center

  • Objektiv-C-programmering

  • Objekt-C-programmering: The Big Nerd Ranch Guide.

Vi har också en mer komplett lista över Objekt-C-resurser.

Snabb

  • Det snabba programmeringsspråket: den officiella Apple-guiden

  • Snabb programmering: The Big Nerd Ranch Guide: den definitiva boken om ämnet.

Vi har också en grundlig lista över Swift-resurser.

Allmänna Apple-utvecklingsresurser

Den första platsen för information och resurser om utveckling för Apple-plattformar är Apple Developer-webbplatsen.

Många av de bästa böckerna om Mac- och iOS-utveckling kommer från Big Nerd Ranch. Deras böcker om specifika ämnen nämns ovan, och du bör också kolla deras böcker om Advanced Mac OS X-programmering och iOS-programmering.

Andra bra allmänna resurser:

  • Ray Wenderlich Tutorials: en av de relativt få leverantörerna som går tillbaka och uppdaterar gamla tutorials när Apple uppdaterar plattformen.

  • Apple-programmeringskanal på YouTube: inte officiell, men mycket hjälpsam.

  • WeHeartSwift: nominellt om Swift, men den här webbplatsen täcker alla aspekter av OS X och iOS-utveckling.

  • NSHipster: en populär blogg om Mac- och iOS-utveckling, med en hel del tutorials om “förbisatta bitar i Objekt-C, Swift och Cocoa.” De är också mycket uppfattade i sin täckning, vilket förmodligen är en styrka.

  • ObjC.io: böcker och artiklar om avancerad teknik och metoder för utveckling av iOS och OS X.

Slutsats…

Cocoa and Cocoa Touch är grunden för den ursprungliga app-utvecklingen för Mac och iOS.

För iOS finns det andra sätt att bygga icke-infödda mobilappar med HTML5 och JS, men det går inte alltid så bra som förväntat – verkligen.

Om du vill bygga nästa stora iPhone-app, eller skapa Mac-appar som integreras bra med OS X och överensstämmer med användarens förväntningar, måste du verkligen gräva in Cocoa and Cocoa Touch. För native app-utveckling finns det verkligen inga ersättare.

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me