tutaj
Transkrypt
tutaj
M a r ius z L is ieck i student UAM, programista iPhone niefanatyczny użytkownik produktów Apple :) P ozna ń, dnia jeszcze nie wiem P la n pr ezen ta cji ● Kwestie techniczne: urządzenie, wymagania ● Prezentacja narzędzi ● Pierwszy iPhonowy „ Hallo, die Welt!” ● iPhone API i komponenty UI ● Tworzenie gier na iPhone'a: ● ● silnik Cocos 2 d for iP h on e Wdrażanie aplikacji na App Store Dyskusja S pecyfik a cja ur z ądzen ia ● Trzy modele: (Original), 3G, 3GS + iPod Touch (też kilka generacji) ● Procesor: ARM 620 MHz -> 412 MHz (3 G S : ARM 833 MHz -> 600 MHz) ● ● Pamięć: 128 MB (3 G S : 256 MB) Grafika: PowerVR MBX Lite 3D + OpenGLES 1.1 (3 G S : PowerVR SGX + OpenGLES 2.0) ● Flash (pamięć oczywiście:P) 4, 8, 16, 32 GB (zależnie od modelu) W ym a ga n ia Śr odowis k o + s ym ula tor ● ● ● System operacyjny M a c OS w wersji 1 0 .5 +, co (teoretycznie) implikuje: Komputer typu M a c (Darmowa) rejestracja na iPhone Dev Center F izyczn e ur z ądzenie + A ppS tor e ● iPhone lub iPod Touch :) ● Rejestracja w programie deweloperskim ● 9 9 $ za roczną subskrypcję N a r z ędzia ● IDE: Xcode 3.0+ (z iPhone SDK) ● iPhone Simulator ● Interface Builder ● Instruments (Profiler) ObjectiveC ● Nakładka (nadzbiór) na język C ● ● ● ● Można swobodnie przeplatać kod w języku C (lub C++) z kodem w ObjectiveC W momencie wejścia iPhone'a na rynek znało go ok. 0,05% ludzi --- a teraz już ponad 1% :) Dwa główne rozszerzenia: symbole [] oraz @ ● [] - wywoływanie metod ● @ - definicje specyficzne dla języka ObjectiveC Jest GarbageCollector, ale niedostępny dla iPhone Core Library ● Trzeba ręcznie zarządzać pamięcią M etody w ObjectiveC ● metody: Java Vs ObjectiveC ● deklaracja: + (float) countAreaOfTriangleWithBase: (float)baseLength andHeight:(float)height; (public) static float countAreaOfTriangle(float baseLength, float height); ● wywołanie: float area = [Triangle countAreaOfTriangleWithBase:10.5 andHeight:6]; K la s y w ObjectiveC ● Deklaracja klasy (plik Car.h) @interface Car : NSObject { Engine *engine; } @property (nonatomic, retain) Engine *engine; - (void) startEngine; @end K la s y w ObjectiveC ● Implementacja klasy (plik Car.m) #import „Car.h” @implementation Car @synthesize engine; - (void) startEngine { //do sth } @end Cza s n a H dW ! Cechy a plik a cji iP h on owych ● Brak wielozadaniowości... ● ● ● ● jedyne aplikacje działające w tle są od Apple ... ale jest wielowątkowość wewn ątr z aplikacji około 4 0 M B RAMu (nie dotyczy 3GS) dla aplikacji, później Memory Warning aplikacja może otrzymać nakaz wyjścia w dowoln ym momencie – przycisk HOME – trzeba to mieć na uwadze... ● np. w przypadku gier konieczne zapisywanie stanu aplikacji w momencie otrzymania nakazu wyjścia A P I iP h on e'a ● ● ● ● UIApplicationDelegate – główny zarządzający aplikacją Kontrolery widoków i widoki – podklasy UIViewController oraz UIView Zapisywanie danych aplikacji: ● SQLite3 ● NSUserDefaults ● Core Data UIAccelerometerDelegate (nie używany jednak zbyt często) W a żn iejs ze k om pon en ty UI ● UINavigationController ● UITableViewController ● UITabBarController ● UIToolbar ● UIWebView ● UIAlertView ● UIActionSheet ... na przykładzie ;) Cocos 2 D for iP h on e ● OpenSource'owy silnik do tworzenia gier 2D ● ● ● ● ● ● setki (tysiące?) aplikacji napisanych z jego wykorzystaniem Grafika: Warstwy, sprite'y, animacje, wiele innych Dźwięki: muzyka, efekty Fizyka: zintegrowane silniki: Box2D i Chipmunk wiele innych napisany w ObjectiveC na bazie OpenGLES 1.1 Cocos 2 D n a pr zyk ła dzie E m pir es A t W a r A ppS tor e ● Jeden sklep na ca ły świa t ● ponad 1 5 0 0 0 0 tysięcy aplikacji ● ponad 3 0 0 0 0 0 0 0 0 0 pobrań ● ● Naśladowany przez innych 'wielkich': M icr os oft, N ok ia , G oogle Genialnie pr os ty w obsłudze ● Klikam 'Kup' i podaję hasło ● Aplikacja się ściąga ● Klikam ikonkę i uruchamiam aplikację N a ds yła n ie do A ppS tor e ● ● Trzeba mieć dostęp do programu deweloperskiego (99 $) Konieczne wygenerowanie Certyfikatów i Profili ● ● Nadsyłamy do AppStore i czekamy na recenzję ● ● skomplikowane tylko za pierwszym razem WSZYSTKO jest teoretycznie recenzowane przez Apple Review Team Po pozytywnym przejściu przez etap recenzji aplikacja jest dostępna na całym świecie ● pozostaje liczyć miliony dolarów ... w teorii W a dy A ppS tor e ● Apple pobiera 3 0 % od każdej sprzedaży ● ● Ceny są mocno 'wywindowane' w dół ● ● ● w porównaniu z cenami aplikacji Javowych na komórkę Ciężko się wybić ● ● Ale sporo ludzi uważa że to nie jest tak dużo... chyba że jesteś wielkim studiem: EA, Gameloft, Ciężko odpowiadać na zarzuty (często niesłuszne) użytkowników Czarna skrzynka... A ppS tor e vs A n dr oid M a r k et ● Android Market nie ma recenzji ● ● ● ● łatwiej się dostać, ale też użytkownik jest m n iej bezpieczn y Kilka różnych sklepów, poza kontrolą Google – np. w Chinach mają zostać otworzone 3 niezależne sklepy W Polsce płatne aplikacje n iedos t ępn e (legalnie) w ciągu k ilk u najbliższych la t ... Subiektywna ocena: B a -ła -ga n !! :) :) :) :) D zi ęk uj ę za uwa g ę! ● ● Pytania? Posiadaczy iPhone'a zachęcam do bliższego zapoznania się z wymienionymi aplikacjami:) ● Empires At War (dostępna wersja Lite) ● SuperMemo (darmowa, płatne kursy)