Maybaygiare.org

Blog Network

Cocoa and Cocoa Touch: Så här kommer du igång Bygg Mac-och iOS-appar

Disclosure: ditt stöd hjälper till att hålla webbplatsen igång! Vi tjänar en remiss avgift för några av de tjänster som vi rekommenderar på denna sida. Läs mer

Cocoa är ett utvecklings-API som är inbyggt i operativsystemet Mac OS X. Cocoa Touch är den nära besläktade analoga plattformen för iOS. Det är skrivet i Objective-C, och fungerar som ett slags ”Toppskikt” till varje operativsystem.

kakao kan ses som en applikationsplattform eller ett ramverk för applikationsutveckling, men det är mer integrerat i operativsystemet än någon av dessa skulle vara i en Linux-eller Windows-miljö.

denna snäva integration mellan API, operativsystemet och (naturligtvis) Apples egen hårdvara är avsedd att ge en sömlös utvecklingsmiljö och genomdriva ”Apple-sättet” att göra saker.

historia av kakao

kakao börjar med C. bokstavligen.

i början av 1980-talet försökte ett par utvecklare som heter Brad Cox och Tom Love lägga till objektorientering till C-programmeringsspråket, 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 preprocessor utvecklades snabbt till en fullblåst språkförlängning och blev känd som Objective-C. NeXT software, som grundades av Steve Jobs efter att han avskedades från Apple 1985, licensierade Objective-C från dess skapare och använde den som grund för flera utvecklingsramar.

dessa bildade NeXTSTEP-och OpenStep-applikationsplattformarna, 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 Mac-operativsystemet.

Apple hade redan varumärkesnamnet Cocoa, för ett separat projekt som avbröts. För att snabbt sätta ett varumärkesskyddat varumärke på Apples nyare version av ramarna kallade de det Kakao.

Cocoa 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 dessa i fyra kategorier:

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

  • ger ett enhetligt användargränssnitt och användarupplevelse.

  • tillåter en applikation att komma åt andra applikationer, tjänster och enhetsfunktioner.

  • uppmuntra särskilda arkitektoniska och datahanteringsmönster.

dessa breda designmål implementeras i flera ” ramar.”Den här termen kan vara lite förvirrande. I samtida språkbruk är kakao mer som en enda ram, med flera moduler eller bibliotek. Men Apple kallar var och en av dessa bibliotek en ” ram.”

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

kakao som standardbibliotek

Objective-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 normalt skulle vara tillgängliga i Objective-C. Detta inkluderar ett brett utbud av grundläggande klasser för vanliga typer av objekt — siffror, datum, strängar, webbadresser, reguljära uttryck och felmeddelanden.

detta ramverk för grundpaket är viktigt i appar skrivna i Objective-C. apputveckling i Apple-plattformar går dock bort från Objective-C, eftersom Apple främjar sitt nyare Swift-utvecklingsspråk.

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

kakao som ett UI / UX-gränssnitt

denna aspekt av kakao är kanske den mest uppenbart viktiga för apputvecklare.

i OS X-versionen av Cocoa tillhandahålls user experience API av 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, multi-touch-gränssnitt och alla andra detaljer om interaktion mellan användaren och systemet.

användning av AppKit och UIKit är det som gör att en applikation ser ut och känns hemma i Apple-systemet och svarar på ingångar (gester, klick, rörelse) på ”rätt” sätt.

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

förutom lite olika GUI-element innehåller UIKit stöd för saker som kompassriktning, GPS, accelerometer (enhetsrörelse) och pekskärm.

Cocoa 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 chattapp och få det att starta 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 till dina högtalare måste appar kunna interagera med operativsystemtjänster.

Cocoa ger en hel lång lista med ramar som ger tillgång till appar och tjänster. Det här tillåter att appar inte bara är fristående körbara, 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 modell-View-Controller arkitektoniska paradigm i åtanke, och stöder MVC utveckling på alla nivåer.

visa implementeras av appkit-eller UIKit-ramarna. Styrmoduler stöds genom en familj av klasser inbyggda i Foundation Kit. Modeller, och deras nödvändiga anslutning till ett datapersistenslager, hanteras av ett annat ramverk som kallas Core Data.

denna design uppmuntrar (vissa kan säga verkställer) en modell-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äsentligen serviceorienterat sätt. Detta gör det både enklare och säkrare att integrera appar med varandra, vilket främjar ett robust, fjädrande applikationsekosystem.

kakao resurser

Online

Tutorials

  • grundläggande programmeringskoncept för kakao och kakao Touch

  • introduktion till Kodningsriktlinjer för Kakao

  • kakao Dev Central

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

verktyg

  • Cocoa Controls: open source UI-komponenter för iOS och OS X.

  • Cocoa Pods: en pakethanterare 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 kakao och kakao.

  • kakao Subreddit.

böcker

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

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

  • lärande kakao med Objective-C

  • Ry ’ s Cocoa Tutorial

  • kakao (Utvecklarreferens)

  • kakao designmönster.

andra utvecklingsresurser för OS X och iOS

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

Xcode

Xcode är en obligatorisk 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 många tutorials om Xcode specifikt, eftersom det omfattas av varje allmän Apple-utvecklingsresurs. En stor resurs är dock denna Xcode-handledning, som regelbundet uppdateras när nya versioner av Xcode kommer ut.

Objective-C

  • om Objective-C: en inledande handledning från Apple Developer center

  • Objective-C programmering

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

Vi har också en mer fullständig lista över Objective-C-resurser.

Swift

  • Swift-programmeringsspråket: den officiella Apple-guiden

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

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

General Apple Development Resources

den första platsen för information och resurser om att utveckla för Apple-plattformar är Apple Developer site.

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 in deras böcker om avancerad Mac OS X-programmering och iOS-programmering.

andra bra allmänna resurser:

  • Ray Wenderlich Tutorials: en av de relativt få leverantörer 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 många handledning om ”förbisedda bitar i Objective-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 avancerade tekniker och metoder för iOS och OS X utveckling.

nedersta raden…

kakao och Cocoa Touch är grunden för inbyggd apputveckling för Mac och iOS.

för iOS finns det andra sätt att bygga icke-inbyggda 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ändarnas förväntningar, behöver du verkligen gräva i Cocoa och Cocoa Touch. För inbyggd apputveckling finns det verkligen inga ersättare.

Lämna ett svar

Din e-postadress kommer inte publiceras.