Cocoa – Mac OS X – Application Frameworks

Tym razem zapraszam do krótkiego omówienia frameworków dostępnych w Mac OS X.

Cocoa

Z czego składa się Cocoa?

Cocoa to tak na prawdę zbiór frameworków. Dostarcza właściwie całego środowiska dla aplikacji, infrastruktury do pisania aplikacji kierowanych zdarzeniami (ang. event driven), gdzie działanie aplikacji jest odpowiedzią na akcję użytkownika (akcja generuje jakieś zdarzenie, jak np. kliknięcie na przycisk, wybranie pozycji z menu itp).
Można jednak wydzielić z Cocoa 2 główne części:

  • Foundation (Foundation.framework) – zawiera klasy zarządzania danymi, dostępu do plików, zarządzania pamięcią, powiadamiania procesów, komunikacji sieciowej i inne powiązane z funkcjonalnościami tak niskiego poziomu.
  • Application Kit (AppKit.framework) – klasy AppKit implementują głównie warstwę interfejsu użytkownika aplikacji: kontrola okien, kontrolek, menu czy obsługa zdarzeń.

Zależności systemowe frameworka Cocoa

Cocoa nie jest niezależnym frameworkiem. Wręcz przeciwinie. Posiada powiązania zarówno poziome jak i pionowe w architekturze systemu. Najlepiej te powiązania zilustrują poniższe diagramy (źrodło: apple.com).

Uproszczona architektura Mac OS X
Uproszczona architektura Mac OS X
Cocoa w architekturze systemu.
Cocoa w architekturze systemu.
Architektura Cocoa - kilka najważniejszych zależności.
Architektura Cocoa - kilka najważniejszych zależności.

Dlaczego Objective-C?

Objective-C został wybrany z wielu powodów, jako język frameworka Cocoa. Do najważniejszych należą:

  • obiektowość – programowanie obiektowe umożliwia pisanie kodu, który jest czytelny dla człowieka, intuicyjny. Aplikacje tworzone w z wykorzystaniem technologii OOP powstają szybciej, niż te pisane z wykorzystaniem języków proceduralnych.
  • dynamika – struktura i właściwości języka umożliwia tworzenie wyszukanych narzędzi dla developerów. Interfejs do tzw. runtime system zapewnia dostęp do działającej aplikacji, zatem możliwe jest stworzenie monitora, mechanizmów interweniujących i ujawniających strukturę i czynności aplikacji w Objective-C.
  • Objective-C jest prostym językiem, łatwym do opanowania w stosunkow krótkim czasie.

Wzorzec projektowy MVC – Model View Controller

Aplikacje oparte o Cocoa powinny być tworzone wg założeń wzorca projektowego MVC: Model – View – Controller (tj. Model – Widok – Kontroler). Wzorzec ten, zakłada rozdzielenie od siebie i podział programu na 3 warstwy:

  1. Model
    Model jest warstwą aplikacji, w której budujemy modele opisujące obiekty,
    których dotyczy program. Jeżeli, na przykład, piszemy aplikację do zarządzania
    finansami, to modelem będzie m.in.: konto bankowe, konto depozytowe,
    posiadacz konta.
  2. View
    Warswtwa widoku jest warstą prezentacji wyników działania programu. Dzięki
    wydzieleniu jej, można bez przeszkód na działanie aplikacji zmieniać prezentację
    (rozmiary komponentów w oknie, ich rozkład).
  3. Controller
    Warstwa ta zbiera wszyskie kontrolery. Kontrolerem jest każda klasa, która “kon-
    troluje”, tzn. przy pomocy modeli wykonuje pewne operacje na nich, a następnie
    wykorzystuje warstwę widoku do prezentacji otrzymanych wyników.

Dodaj komentarz

This site uses Akismet to reduce spam. Learn how your comment data is processed.