Cocoa to API programistyczne natywne dla systemu operacyjnego Mac OS X. Cocoa Touch jest ściśle powiązaną platformą analogiczną dla systemu iOS. Jest napisany w Objective-C i działa jako rodzaj „górnej warstwy” dla każdego systemu operacyjnego.
Cocoa może być uważany za platformę aplikacji lub framework do tworzenia aplikacji, ale jest bardziej zintegrowany z systemem operacyjnym niż którykolwiek z nich byłby w środowisku Linux lub Windows.
ta ścisła integracja między API, systemem operacyjnym i (oczywiście) własnym sprzętem Apple ma na celu zapewnienie płynnego środowiska programistycznego i wymuszenie „sposobu działania Apple”.
- Historia kakao
- co robi kakao?
- Cocoa jako Biblioteka Standardowa
- Cocoa jako interfejs UI/UX
- Cocoa jako interfejs systemu operacyjnego
- Cocoa jako architekt
- zasoby Cocoa
- Online
- tutoriale
- narzędzia
- społeczność i kształcenie ustawiczne
- Książki
- inne zasoby programistyczne OS X i iOS
- Xcode
- Objective-C
- Swift
- ogólne zasoby programistyczne Apple
- ..
Historia kakao
kakao zaczyna się na C. dosłownie.
we wczesnych latach 80.para programistów Brad Cox i Tom Love starali się dodać orientację obiektową do języka programowania C, który w tamtym czasie nie obsługiwał OOP.
ich rozwiązaniem było stworzenie pre-procesora, który renderowałby kod C z dodatkami typu Smalltalk w zwykły, kompilowalny kod C. (Smalltalk był wczesnym językiem obiektowym.)
Ten preprocesor szybko przekształcił się w pełnowymiarowe rozszerzenie języka i stał się znany jako Objective-C. NeXT software, które zostało założone przez Steve ’ a Jobsa po tym, jak został zwolniony z Apple w 1985 roku, licencjonowało Objective-C od jego twórców i wykorzystywało go jako podstawę dla kilku frameworków programistycznych.
utworzyły One platformy aplikacji NeXTSTEP i OpenStep, które następnie sprzedawały się w latach 80. i 90.
Apple przejęło NeXT w 1996 roku, a Steve Jobs powrócił jako CEO. Frameworki NeXTSTEP trafiły do systemu operacyjnego Mac.
Apple miało już zastrzeżoną nazwę Cocoa, dla oddzielnego projektu, który został przerwany. Aby szybko umieścić znak towarowy na nowszej wersji frameworków Apple, nazwali go kakao.
Cocoa jest częścią wszystkich systemów operacyjnych Apple od końca lat 90.i od tego czasu ewoluowała wraz z systemem operacyjnym i nowymi platformami urządzeń.
co robi kakao?
Cocoa robi wiele rzeczy, ale ogólnie rzecz biorąc dzielą się one na cztery kategorie:
-
działając jako Rozszerzona biblioteka standardowa dla Objective-C, zapewniająca wsparcie dla bogatszych obiektów i cech współczesnych języków obliczeniowych nie obecnych w konstrukcji Objective-C.
-
zapewnienie zunifikowanego interfejsu użytkownika i doświadczenia użytkownika.
-
umożliwienie aplikacji dostępu do innych aplikacji, usług i funkcji urządzenia.
-
zachęcanie do konkretnych wzorców architektonicznych i zarządzania danymi.
te szerokie cele projektowe są realizowane w kilku „frameworkach.”Ten termin może być nieco mylący . We współczesnym mowie, Cocoa jest bardziej jak jeden framework, z kilkoma modułami lub bibliotekami. Ale Apple nazywa każdą z tych bibliotek ” frameworkiem.”
przyjrzyjmy się po trochu każdemu z tych celów funkcjonalnych i temu, w jaki sposób różne ramy Cocoa je osiągają.
Cocoa jako Biblioteka Standardowa
Objective-C posiada bibliotekę standardową. W środowisku Cocoa biblioteka standardowa i Środowisko wykonawcze są faktycznie dostarczane przez Cocoa. Dodatkowo zestaw rozszerzonych funkcji językowych zapewnia zestaw Foundation Kit, który w praktyce działa jako de facto standardowa biblioteka.
zapewnia to bardziej zaawansowane funkcje językowe niż normalnie byłoby dostępne w Objective-C. Obejmuje to szeroki zakres podstawowych klas powszechnie używanych typów obiektów-liczby, daty, ciągi znaków, adresy URL, wyrażenia regularne i komunikaty o błędach.
Ten framework Foundation Kit jest niezbędny w aplikacjach napisanych w Objective-C. Jednak tworzenie aplikacji na platformach Apple odchodzi od Objective-C, ponieważ Apple promuje swój nowszy język programowania Swift.
Swift natywnie zapewnia wiele nowoczesnych funkcji językowych dodanych przez Foundation Kit i nie jest jasne, jaką rolę Foundation i Objective-C odegrają w przyszłości zorientowanej na Swift.
Cocoa jako interfejs UI/UX
ten aspekt Cocoa jest chyba najważniejszy dla twórców aplikacji.
w wersji Cocoa na OS X Interfejs API user experience jest dostarczany przez framework o nazwie AppKit. W Cocoa Touch dla iOS nazywa się to UIKit.
w obu przypadkach zapewniają one elementy graficzne, sterowanie interfejsem użytkownika, zarządzanie oknami i panelami, interfejsy multi-touch i wszystkie inne szczegóły interakcji między Użytkownikiem a systemem.
Korzystanie z AppKit i UIKit jest tym, co sprawia, że aplikacja wygląda i czuje się natywnie w systemie Apple i reaguje na wejścia (gesty, kliknięcia, ruch) w „właściwy” sposób.
duża różnica między Cocoa i Cocoa Touch to różnica między AppKit i UIKit. Mimo że Apple starało się ujednolicić wrażenia użytkownika na różnych platformach, nadal korzystasz z iPhone ’ a inaczej niż z komputerem Mac.
oprócz nieco różnych elementów GUI, UIKit zawiera obsługę takich rzeczy jak kierunek kompasu, GPS, akcelerometr (ruch urządzenia) i ekran dotykowy.
Cocoa jako interfejs systemu operacyjnego
Aplikacje Apple muszą również mieć możliwość interakcji z innymi aplikacjami i usługami systemu operacyjnego.
Jeśli chcesz mieć możliwość kliknięcia numeru telefonu w aplikacji czatu i uruchomienia połączenia telefonicznego, aplikacje muszą być w stanie rozmawiać ze sobą.
Jeśli chcesz, aby aplikacja do edycji muzyki mogła odbierać dźwięk z mikrofonu i odtwarzać go na głośnikach, aplikacje muszą mieć możliwość interakcji z usługami systemu operacyjnego.
Cocoa udostępnia całą długą listę frameworków, które zapewniają dostęp do aplikacji i usług. Są to, co pozwala aplikacjom nie tylko być samodzielnymi plikami wykonywalnymi, ale istnieć i działać w zintegrowanym ekosystemie.
Cocoa jako architekt
Cocoa obsługuje dwa ważne wzorce architektoniczne, jeden w aplikacji i jeden w sposobie komunikowania się aplikacji poza sobą.
Cocoa jest napisany z myślą o paradygmacie architektonicznym Model-widok-kontroler i wspiera rozwój MVC na wszystkich poziomach.
widok jest zaimplementowany przez frameworki AppKit lub UIKit. Moduły kontrolera są obsługiwane przez rodzinę klas wbudowanych w zestaw fundamentowy. Modele i ich wymagane połączenie z warstwą trwałości danych są obsługiwane przez inny framework zwany danymi podstawowymi.
Ten projekt zachęca (niektórzy mogą powiedzieć, że wymusza) architekturę modelu-widoku-kontrolera w aplikacjach iOS i OS X.
pomiędzy różnymi aplikacjami, a także między aplikacjami i usługami, różne frameworki pośredniczą w interakcji w sposób zasadniczo zorientowany na usługi. Ułatwia to i bezpieczniej integrować aplikacje ze sobą, promując solidny i odporny ekosystem aplikacji.
zasoby Cocoa
Online
tutoriale
-
podstawowe pojęcia programowania dla Cocoa i Cocoa Touch
-
Wprowadzenie do wytycznych kodowania dla Cocoa
-
Cocoa Dev Central
-
Programowanie Mac OS X Z Cocoa dla początkujących.
narzędzia
-
Cocoa Controls: komponenty open source UI dla iOS i OS X.
-
Cocoa Pods: menedżer pakietów dla projektów Cocoa.
społeczność i kształcenie ustawiczne
-
: ogólnoświatowa sieć lokalnych grup dyskusyjnych i spotkań poświęconych rozwojowi Cocoa i Cocoa Touch.
-
Cocoa Subreddit.
Książki
-
szybki rozwój Z Cocoa: rozwój dla sklepów z aplikacjami Mac i iOS
-
Cocoa Programming for OS X: The Big Nerd Ranch Guide
-
Nauka kakao z Objective-C
-
RY ’ s Cocoa Tutorial
-
Cocoa (Developer Reference)
-
wzorce projektowe kakao.
inne zasoby programistyczne OS X i iOS
nie można używać Cocoa ani Cocoa Touch w próżni. Jest to część większego środowiska programistycznego aplikacji Apple, które obejmuje Xcode, Objective-C i Swift. Te różne narzędzia i technologie współpracują ze sobą, tworząc ekosystem rozwoju.
Xcode
Xcode jest wymaganym zintegrowanym środowiskiem programistycznym (IDE) do budowania aplikacji OS X i iOS. Jest ściśle zintegrowany z Swift, Cocoa, Apple App store i większym ekosystemem Apple.
nie ma zbyt wielu samouczków na temat Xcode, ponieważ jest on opisany w każdym ogólnym zasobie programistycznym Apple. Jednym z wielkich zasobów jest jednak samouczek Xcode, który jest regularnie aktualizowany w miarę pojawiania się nowych wersji Xcode.
Objective-C
-
about Objective-C: an introduction tutorial from the Apple Developer center
-
Objective-C Programming
-
Objective-C Programming: The Big Nerd Ranch Guide.
mamy również bardziej kompletną listę zasobów Objective-C.
Swift
-
the Swift Programming Language: The official Apple guide
-
Swift Programming: The Big Nerd Ranch Guide: the definitive book on the subject.
mamy również dokładną listę zasobów Swift.
ogólne zasoby programistyczne Apple
pierwszym miejscem informacji i zasobów na temat tworzenia dla platform Apple jest strona dla programistów Apple.
wiele najlepszych książek o rozwoju Mac i iOS pochodzi z Big Nerd Ranch. Ich książki na określone tematy są wymienione powyżej, a także powinieneś sprawdzić ich książki na temat zaawansowanego programowania Mac OS X i programowania iOS.
Inne dobre ogólne zasoby:
-
samouczki Ray Wenderlich: jeden ze stosunkowo niewielu dostawców, który wraca i aktualizuje stare samouczki, gdy Apple aktualizuje platformę.
-
kanał programistyczny Apple na YouTube: nie oficjalny, ale bardzo pomocny.
-
weheartswift: nominalnie o Swift, ale ta strona obejmuje wszystkie aspekty rozwoju OS X i iOS.
-
NSHipster: popularny blog o rozwoju komputerów Mac i iOS, z wieloma samouczkami na temat ” pomijanych bitów w Objective-C, Swift i Cocoa.”Są również bardzo opiniotwórczy w swoim zasięgu, co jest prawdopodobnie siłą.
-
ObjC.io: książki i artykuły o zaawansowanych technikach i praktykach dotyczących rozwoju systemów iOS i OS X.
..
Cocoa i Cocoa Touch to podstawy tworzenia aplikacji natywnych dla komputerów Mac i iOS.
W przypadku iOS istnieją inne sposoby tworzenia niestandardowych aplikacji mobilnych z HTML5 i JS, ale nie zawsze idzie to tak dobrze, jak oczekiwano — naprawdę.
Jeśli chcesz zbudować kolejną dużą aplikację na iPhone ’ a lub stworzyć aplikacje Mac, które dobrze integrują się z OS X i spełniają oczekiwania użytkowników, naprawdę musisz zagłębić się w Cocoa i Cocoa Touch. W przypadku tworzenia aplikacji natywnych tak naprawdę nie ma substytutów.