Cocoa este un API de dezvoltare nativ pentru sistemul de operare Mac OS X. Cocoa Touch este platforma analogă strâns legată de iOS. Este scris în Objective-C și acționează ca un fel de „strat superior” pentru fiecare sistem de operare.
Cocoa poate fi gândit ca o platformă de aplicații sau un cadru de dezvoltare a aplicațiilor, dar este mai integrat în sistemul de operare decât oricare dintre acestea ar fi într-un mediu Linux sau Windows.
această integrare strânsă între API, sistemul de operare și (desigur) hardware-ul propriu Apple este destinat să ofere un mediu de dezvoltare fără probleme și să aplice „modul Apple” de a face lucrurile.
- istoria cacao
- ce face cacao?
- cacao ca biblioteca Standard
- cacao ca interfață UI/UX
- Cocoa ca interfață de sistem de Operare
- Cocoa ca arhitect
- resurse de cacao
- online
- tutoriale
- instrumente
- comunitate și învățare continuă
- Cărți
- alte resurse de dezvoltare OS X și iOS
- Xcode
- Objective-C
- Swift
- general Apple Development Resources
- linia de fund…
istoria cacao
cacao începe cu C. literalmente.
la începutul anilor 1980, o pereche de dezvoltatori pe nume Brad Cox și Tom Love au căutat să adauge orientarea obiectului la limbajul de programare C, care nu suporta OOP la acel moment.
soluția lor a fost să creeze un preprocesor care să redea codul C cu unele adăugiri de tip Smalltalk în cod C compilabil simplu. (Smalltalk a fost un limbaj timpuriu orientat pe obiecte.)
acest preprocesor a evoluat rapid într-o extensie a limbajului complet și a devenit cunoscut sub numele de Objective-C. NeXT software, care a fost fondat de Steve Jobs după ce a fost concediat de la Apple în 1985, a licențiat Objective-C de la creatorii săi și l-a folosit ca bază pentru mai multe cadre de dezvoltare.
acestea au format platformele de aplicații NeXTSTEP și OpenStep, care s-au vândut în anii 80 și 90.
Apple a achiziționat NeXT în 1996, iar Steve Jobs a revenit ca CEO. Cadrele NeXTSTEP și-au făcut drum în sistemul de operare Mac.
Apple a înregistrat deja numele Cocoa, pentru un proiect separat care a fost întrerupt. Pentru a pune rapid un nume de marcă înregistrată pe versiunea mai nouă a cadrelor Apple, au numit-o cacao.Cocoa a făcut parte din toate sistemele de operare Apple de la sfârșitul anilor 1990 și a evoluat împreună cu sistemul de operare și noile platforme de dispozitive de atunci.
ce face cacao?
Cocoa face o mulțime de lucruri, dar în linii mari acestea se încadrează în patru categorii:
-
acționând ca o bibliotecă standard extinsă pentru Objective-C, oferind suport pentru obiecte mai bogate și caracteristici ale limbajelor moderne de calcul care nu sunt prezente în proiectarea Objective-C.
-
oferind o interfață de utilizator unificată și o experiență de utilizator.
-
permiterea unei aplicații să acceseze alte aplicații, servicii și caracteristici ale dispozitivului.
-
încurajarea anumitor modele arhitecturale și de gestionare a datelor.
aceste obiective generale de proiectare sunt implementate în mai multe ” cadre.”Acest termen ar putea fi un pic confuz. În limbajul contemporan, cacao este mai mult ca un singur cadru, cu mai multe module sau biblioteci. Dar Apple numește fiecare dintre aceste biblioteci un ” cadru.”
să explorăm puțin fiecare dintre aceste obiective funcționale și modul în care diferitele cadre de cacao le ating.
cacao ca biblioteca Standard
Objective-C are o bibliotecă standard. În mediul Cocoa, biblioteca standard și timpul de rulare sunt de fapt furnizate de Cocoa. În plus, un set de caracteristici lingvistice extinse sunt furnizate de kitul de fundație care, în practică, acționează ca o bibliotecă standard de facto.
aceasta oferă caracteristici lingvistice mai avansate decât ar fi disponibile în mod normal în Objective-C. Aceasta include o gamă largă de clase de bază pentru tipurile de obiecte utilizate în mod obișnuit — numere, date, șiruri, adrese URL, expresii regulate și mesaje de eroare.
acest cadru de kit de fundație este esențial în aplicațiile scrise în Objective-C. Cu toate acestea, dezvoltarea aplicațiilor pe platformele Apple se îndepărtează de Objective-C, deoarece Apple promovează noul său limbaj de dezvoltare Swift.Swift oferă în mod nativ multe dintre caracteristicile limbajului modern adăugate de Foundation Kit și nu este clar ce rol vor juca Fundația și Objective-C într-un viitor Swift-centric.
cacao ca interfață UI/UX
Acest aspect al cacao este probabil cel mai evident important pentru dezvoltatorii de aplicații.
în versiunea OS X a Cocoa, API-ul user experience este furnizat de un cadru numit AppKit. În Cocoa Touch pentru iOS, aceasta se numește UIKit.
în ambele cazuri, acestea oferă elemente grafice, controale ale interfeței cu utilizatorul, gestionarea ferestrelor și a panoului, interfețe multi-touch și toate celelalte detalii ale interacțiunii dintre utilizator și sistem.
utilizarea AppKit și UIKit este ceea ce face ca o aplicație să arate și să se simtă nativă sistemului Apple și să răspundă la intrări (gesturi, clicuri, mișcare) în modul „corect”.
marea diferență dintre cacao și cacao Touch este diferența dintre AppKit și UIKit. Oricât Apple a lucrat pentru a unifica experiența utilizatorului pe platforme, totuși interacționați cu un iPhone diferit decât cu un Mac desktop.
pe lângă elemente GUI ușor diferite, UIKit include suport pentru lucruri precum direcția busolei, GPS, accelerometru (mișcarea dispozitivului) și ecran tactil.
Cocoa ca interfață de sistem de Operare
aplicațiile Apple trebuie, de asemenea, să poată interacționa cu alte aplicații și servicii de sistem de operare.
Dacă doriți să puteți face clic pe un număr de telefon din aplicația dvs. de chat și să lansați un apel telefonic, aplicațiile trebuie să poată vorbi între ele.
Dacă doriți ca o aplicație de editare a muzicii să poată prelua sunetul de la un microfon și să se redea la difuzoare, aplicațiile trebuie să poată interacționa cu serviciile sistemului de operare.Cocoa oferă o întreagă listă lungă de cadre care oferă acces la aplicații și servicii. Acestea sunt cele care permit aplicațiilor să nu fie doar executabile independente, ci să existe și să funcționeze într-un ecosistem integrat.
Cocoa ca arhitect
Cocoa susține două modele arhitecturale importante, unul în cadrul unei aplicații și unul în modul în care o aplicație comunică în afara ei.
Cocoa este scris cu paradigma arhitecturală Model-View-Controller în minte, și sprijină dezvoltarea MVC la toate nivelurile.
vizualizarea este implementată de cadrele AppKit sau UIKit. Modulele controlerului sunt acceptate printr-o familie de clase încorporate în kitul de fundație. Modelele și conexiunea lor necesară la un strat de persistență a datelor sunt gestionate de un alt cadru numit date de bază.
acest design încurajează (unii ar putea spune impune) o arhitectură Model-View-Controller în aplicațiile iOS și OS X.între diferite aplicații și, de asemenea, între aplicații și servicii, diferitele cadre mediază interacțiunea într-un mod esențial orientat spre servicii. Acest lucru face atât mai ușoară, cât și mai sigură integrarea aplicațiilor între ele, promovând un ecosistem de aplicații robust și rezistent.
resurse de cacao
online
tutoriale
-
concepte de programare de bază pentru cacao și cacao Touch
-
introducere în liniile directoare de codificare pentru cacao
-
cacao Dev Central
-
Programare Mac OS X cu cacao pentru începători.
instrumente
-
controale de cacao: componente UI open source pentru iOS și OS X.
-
Cocoa Pods: un manager de pachete pentru proiecte de cacao.
comunitate și învățare continuă
-
CocoaHeads: o rețea mondială de întâlniri locale și grupuri de discuții dedicate dezvoltării Cocoa și Cocoa Touch.
-
subredit de cacao.
Cărți
-
dezvoltare rapidă cu cacao: dezvoltarea Pentru Mac și iOS magazine de aplicații
-
Programare cacao pentru OS X: Ghidul Big Nerd Ranch
-
învățare cacao cu Obiectiv-C
-
tutorial cacao Ry lui
-
cacao (Dezvoltator referință)
-
modele de design de cacao.
alte resurse de dezvoltare OS X și iOS
nu puteți utiliza Cocoa sau Cocoa Touch în vid. Este o bucată din mediul mai mare de dezvoltare a aplicațiilor Apple, care include Xcode, Objective-C și Swift. Aceste instrumente și tehnologii diferite lucrează împreună pentru a forma un ecosistem de dezvoltare.
Xcode
Xcode este un mediu de dezvoltare integrat necesar (IDE) pentru construirea aplicațiilor OS X și iOS. Este strâns integrat cu Swift, Cocoa, Apple App store și ecosistemul Apple mai mare.
nu există o mulțime de tutoriale despre Xcode în mod specific, deoarece este acoperit în fiecare resursă generală de dezvoltare Apple. O resursă excelentă, totuși, este acest Tutorial Xcode, care este actualizat în mod regulat pe măsură ce apar noi versiuni de Xcode.
Objective-C
-
despre Objective-C: un tutorial introductiv de la Apple Developer center
-
programare Objective-C
-
programare Objective-C: Ghidul Big Nerd Ranch.
avem, de asemenea, o listă mai completă a resurselor Objective-C.
Swift
-
limbajul de programare Swift: ghidul oficial Apple
-
Programare Swift: Ghidul Big Nerd Ranch: cartea definitivă pe această temă.
avem, de asemenea, o listă detaliată a resurselor Swift.
general Apple Development Resources
primul loc pentru informații și resurse despre dezvoltarea platformelor Apple este site-ul dezvoltatorului Apple.
multe dintre cele mai bune cărți despre dezvoltarea Mac și iOS provin de la Big Nerd Ranch. Cărțile lor pe teme specifice sunt menționate mai sus și ar trebui să verificați și cărțile lor despre programarea avansată Mac OS X și programarea iOS.
alte resurse generale bune:
-
Ray Wenderlich tutoriale: unul dintre relativ puțini furnizori care se întoarce și actualizează tutoriale vechi atunci când Apple actualizează platforma.
-
Apple canal de programare pe YouTube: nu oficial, dar foarte util.
-
WeHeartSwift: nominal despre Swift, dar acest site acoperă toate aspectele legate de dezvoltarea OS X și iOS.
-
NSHipster: un blog popular despre dezvoltarea Mac și iOS, cu o mulțime de tutoriale despre „biți trecuți cu vederea în Objective-C, Swift și Cocoa.”Ei sunt, de asemenea, foarte dogmatic în acoperirea lor, care este, probabil, un punct forte.
-
ObjC.io: Cărți și articole despre tehnici și practici avansate pentru dezvoltarea iOS și OS X.
linia de fund…
Cocoa și Cocoa Touch sunt fundamentele dezvoltării aplicațiilor native pentru Mac și iOS.
pentru iOS există și alte modalități de a construi aplicații mobile non-native cu HTML5 și JS, dar acest lucru nu merge întotdeauna la fel de bine cum era de așteptat — într-adevăr.
Dacă doriți să construiți următoarea mare aplicație pentru iPhone sau să creați aplicații Mac care să se integreze bine cu OS X și să se conformeze așteptărilor utilizatorilor, trebuie să săpați în Cocoa și Cocoa Touch. Pentru dezvoltarea aplicațiilor native, într-adevăr nu există înlocuitori.