RkBlog

Hardware, programming and astronomy tutorials and reviews.

iPhone SDK i iPhone OS dla programistów

Wprowadzenie do systemu operacyjnego iPhone OS, oraz przegląd narzędzi do tworzenia natywnych aplikacji dla iPhone i iPod Touch.

Na iPhone OS składa się system operacyjny i technologie, które wykorzystujesz do uruchamiania natywnych aplikacji na iPhonie czy iPodzie Touch. Mimo iż dzieli wiele kodu z Mac OS X, system ten dla programisty różni się nieznacznie od swego większego brata. iPhone OS został zaprojektowany dla urządzeń mobilnych, a potrzeby ich użytkowników różnią się od potrzeb użytkowników zwykłych komputerów.

iPhone SDK to zbór narzędzi, kodu i dokumentacji, który umożliwi ci tworzenie, testowanie, uruchamianie, debugowanie i optymalizacje aplikacji dla iPhone OS. Także narzędzia zawarte w Xcode zostały zaktualizowane by obsługiwać programowanie pod iPhona. Oprócz podstawowych narzędzi programistycznych w pakiecie zawarto także symulator iPhona pozwalający testować aplikacje bez konieczności przesyłania ich na docelowe urządzenie.

Przegląd technologiczny iPhone OS

W iPhone OS wiele technologii i architektura systemu mocno bazuje na tych z Mac OS X. Kernel w iPhone OS bazuje na tym samym kernelu Mach, jaki możemy znaleźć w Leopardzie. Na wyższym poziomie działają usługi, które wykorzystuje się do implementowania aplikacji pod tą platformę:

iphone1

Warstwa systemu operacyjnego (Core OS) i usług systemowych (Core Services) zawiera podstawowe interfejsy dla iPhone OS takie jak dostęp do plików, typy danych niskiego poziomu, usługi Bonjour, gniazd sieciowych (sockets) itd. Te interfejsy dostępne są głównie na poziomie języka C i zawierają technologie takie jakie Core Foundation, CFNetwork, SQLite, jak i dostęp do wątków POSIXowych i Uniksowych gniazd.

Warstwy wyższego poziomu oferują bardziej zaawansowane technologie dostępne poprzez interfejsy w C i Objective-C. Warstwa multimediów (Media) zawiera technologie odpowiedzialne za rysowanie 2D i 3D, dźwięk i animacje/video. Z poziomu języka C mamy dostęp do OpenGL ES, Quartz oraz Core Audio. Z poziomu Objective-C dostęp mamy do Core Animation, zaawansowanego silnika animacji.

W warstwie Cocoa Touch większość technologii używa Objective-C. Frameworki zawarte w tej warstwie dostarczają podstawową infrastrukturę dla twoich aplikacji. Dla przykładu framework Foundation dostarcza obiektową obsługę kolekcji, zarządzania plikami, operacje sieciowe i więcej. Framework UIKit dostarcza wizualną infrastrukturę twojej aplikacji poprzez klasy okien, widoków, kontrolek i kontrolerów zarządzających tymi obiektami. Z tego poziomu możesz uzyskać także dostęp np. do akcelerometru i reszty sprzętu.

Początkiem każdego nowego projektu jest wykorzystanie możliwości warstwy Cocoa Touch, a w szczególności frameworka UIKit. Korzystanie z niższych warstw powinno być ograniczone do przypadków, gdy brakuje nam potrzebnej funkcjonalności na wyższych poziomach. Projektując interfejs aplikacji należy korzystać z rad i wytycznych iPhone Human Interface Guidelines.

Programowanie pod iPhone OS

By móc tworzyć aplikacje pod iPhone musisz mieć komputer klasy Mac z systemem Mac OS X, zainstalowany pakiet iPhone SDK, oraz do testów: iPhona lub iPoda Touch. Wszystko znajdziemy na iPhone dev center (wymagana darmowa rejestracja do pobrania SDK).

iPhone SDK obsługuje tworzenie aplikacji z graficznym interfejsem, które działają natywnie pod iPhone OS. Aplikacje, które tworzysz dostępne są wraz z innymi aplikacjami na "domowym" ekreanie użytkownika. Po uruchomieniu twojej aplikacji jest ona (poza kernelem i kilkoma nisko poziomowymi demonami) jedyną działającą aplikacją w systemie. W czasie działania aplikacja zajmuje cały ekran i oczekuje akcji użytkownika. Zyskujesz wyłączny dostęp do wszystkich elementów systemu i sprzętu.

Jako że interakcja użytkownika z aplikacją na urządzeniu mobilnym jest zupełnie inna od interakcji z aplikacją działającą na zwykłym komputerze - inne są sposoby projektowania aplikacji pod iPhone OS niż dla np. OS X. Cała aplikacja zawiera się w jednym oknie (nie ma wielu okien), przez co całą jej zawartość należy stosowanie zaprezentować i zorganizować.

Także podejście do obsługi zdarzeń jest inne. Nie ma zdarzeń ze strony klawiatury, czy myszy. Ich miejsce zajęły zdarzenia dotykowe. Zdarzenie dotykowe (touch event) może zdarzyć się w dowolnym czasie i w połączeniu z innymi zdarzeniami dotyku. Kombinacje te mogą służyć do zaznaczania lub przenoszenia elementów, lub do wykonywania złożonych gestów i interakcji, np pomniejszanie i powiększanie (zoom) za pomocą odpowiednio zsuwania i rozsuwania palców na ekranie dotykowym.

Poza technicznymi zagadnieniami dotyczącymi projektowania interfejsu aplikacji należy także wziąć pod uwagę sposób, w jaki użytkownicy będą używać aplikacji. Będąc "w ruchu" użytkownik nie będzie miał czasu na szukanie informacji pośród wielu ekranów i formularzu. Informacja musi być łatwo i szybko dostępna, a interfejs czysty i skupiony na funkcji jaką dana aplikacja spełnia.

Od czego zacząć?

Stworzenie prostej aplikacji pod iPhone jest relatywnie proste dzięki wbudowanym w Xcode szablonom. Stworzenie jednak pożytecznej aplikacji, który wygląda dobrze i robi coś wartościowego wymaga, przynajmniej na początku przejrzenia dokumentacji. Podstawą jest wykorzystywanie dostępnych narzędzi i frameworków zaczynając od tych z najwyższego stopnia abstrakcji. Programiści nie znający jeszcze Cocoa i Objective-C mogą zacząć od Cocoa Fundamentals Guide, po czym przejść do dokumentacji związanej bezpośrednio z iPhone: iPhone Application Programming Guide.

RkBlog

12 June 2009;

Comment article