W tej notce postaram się w miarę krótko i zwięźle opisać proces tworzenia aplikacji dla platformy iPhone OS. Nie będę rozpisywał się w szczegółach, ponieważ nie jest to celem tego wpisu, ma on za zadanie przedstawić ciekawą platformę dla ludzi, którzy nie mieli wcześniej z nią styczności. Przez wiele osób uwielbiana i prawdopodobnie przez tyle samo znienawidzona platforma przedstawiła nowy poziom tworzenia aplikacji na urządzenia mobilne, zagmatwane procesy produkcji aplikacji na inne platformy i godziny wyrywania sobie włosów z głowy, żeby napisać prostą aplikację poszły w niepamięć (programiści Symbiana wiedzą o co chodzi ;) ). Ale jak mówi polskie przysłowie, nie wszystko złoto, co się świeci.

Niezbędnik

Pierwsza z kilku rzeczy, jaka jest potrzebna do rozpoczęcia przygody z iPhone OS to maszyna, na której nasz kod będzie produkowany, wspierana jest niestety tylko jedna słuszna według Apple platforma, ich własna: Mac OS, co najważniejsze tylko na maszynach z procesorem Intela. Jeśli chcemy tylko się pobawić w pisanie aplikacji na iPhone to wystarczy nam sam komputer z Mac OS, ponieważ z systemem jest już dostarczane darmowe środowisko programistyczne i emulator, w którym możemy uruchamiać napisane przez nas aplikacje. Jednak do prawdziwej produkcji aplikacji, dzięki której będziemy mieli znacznie więcej możliwości, jest nam potrzebne konto developerskie oraz samo urządzenie, iPhone lub iPodTouch.

Aby na poważnie rozpocząć produkcję oprogramowania konieczne jest założenie konta na stronach programu developerskiego. Możemy wybrać z dwóch wersji: Standard Program ($99) i Enterprise Program ($299). Standardowy program jest przeznaczony dla ludzi lub firm celujących w sprzedaż aplikacji w App Store. Po uiszczeniu opłaty dostajemy możliwość dystrybucji aplikacji płatnych lub darmowych poprzez sklep, oraz bezpośredniego wysyłania aplikacji wybranej liczbie użytkowników, których możemy posiadać maksymalnie 100. Zazwyczaj będą to urządzenia testerów lub developerskie.

Enterprise jest pomyślany jako wyłączna dystrybucja aplikacji wewnątrz firmy lub instytucji posiadających 500 lub więcej pracowników.

Implementacja

Jeśli szybko chcemy opublikować swój produkt, pomocny będzie Interface Builder dzięki któremu zaprojektujemy interfejs użytkownika i tym samym skrócimy proces produkcji. Podczas tworzenia bardziej zaawansowanych aplikacji może się okazać, że jesteśmy w stanie zaprogramować bardziej elastyczną aplikację rezygnując z tego narzędzia. Aplikacje na iPhone pisze się w Objective-C, który jest rozszerzeniem C. Język ten nie jest zbyt popularny – poza wykorzystaniem go do pisania aplikacji na MacOS i iPhone OS nie jest on szerzej wykorzystywany. Jeśli nie mieliśmy styczności z tym językiem polecam zapoznanie się z wprowadzeniem przygotowanym przez Apple, podanym na końcu tej notki. Na rynku znajduje się już kilka ciekawych pozycji książkowych poświęconych pisaniu aplikacji na iPhone OS, niestety większość z nich jest po angielsku.

Testowanie

Testowanie jest bardzo ważnym etapem produkcji każdego oprogramowania. Nie posiadając iPhone lub iPodTouch naszym jedynym środowiskiem do uruchomienia i testowania aplikacji będzie emulator, jednak powinno się przetestować aplikację także na fizycznym urządzeniu, nie na emulatorze. Emulator może być pomocny w pierwszym etapie testów, ale im testy stają się bardziej detaliczne – emulator staje się bardziej zdradliwym i aplikacja często działa inaczej niż na właściwym urządzeniu, na którym wręcz może nie działać wcale. Najczęściej obserwowaną różnicą jest wolniejsze działanie fizycznego urządzenia, ponieważ emulator korzysta z zasobów komputera, których jest znacznie więcej.

Aby przetestować aplikację na urządzeniu musimy być członkami programu developerskiego, dzięki któremu będziemy mieli możliwość wygenerowania certyfikatu pozwalającego na podpisanie aplikacji i wgranie jej na urządzenie. Bardzo pomocnym narzędziem podczas testowania jest Instruments: aplikacja działa z podłączonym urządzeniem dzięki czemu możemy naprawdę zmierzyć kilka ważnych rzeczy, które znacząco wpływają na szybkość naszej aplikacji oraz jej stabilność.

Poniżej kilka rad pozwalających zwiększyć niezawodność aplikacji.

  • Wycieki pamięci: iPhone OS nie posiada automatycznego zarządzania pamięcią, więc sami musimy o nią dbać – szukajmy więc wycieków pamięci, bo nawet niewielkie (np. w pętli) mogą sprawić iż nasza aplikacja przestanie odpowiadać, a w najgorszym wypadku system ją zamknie. Kiedy takie wycieki się zdarzają? Wtedy gdy stworzymy jakiś obiekt, a później nie zostanie on usunięty. Pamiętajmy więc o zwalnianiu niepotrzebnie zajętej pamięci.
  • Ładujmy w danej chwili tylko te dane które są nam potrzebne: im mniej pamięci potrzebuje aplikacja tym lepiej.
  • Jeśli aplikcja nie musi wykonywać skomplikowanych obliczeń niech tego nie robi – jeśli to jest możliwe, lepiej żeby te operacje wykonał serwer.

Dystrybucja

Aplikacja jest gotowa, była testowana noce i dnie. Co teraz? Podpisujemy aplikację specjalnym certyfikatem dystrybucyjnym i wysyłamy do recenzji, która zazwyczaj trwa około dwóch tygodni. Jest wiele mitów dotyczących tego jak aplikacje są recenzowane, dlaczego tak długo to trwa – niestety najlepsza rada to uzbroić się w cierpliwość i czekać. Jeśli jednak aplikacja zostanie odrzucona uważnie przestudiujmy przyczynę odrzucenia, poprawmy i wyślijmy jeszcze raz do recenzji.
Pewnego ranka budzimy się rano i widzimy aplikację dostępną w sklepie – satysfakcja gwarantowana.

Przydatne linki

Najlepszym źródłem informacji na temat pisania aplikacji na iPhone jest iPhone Developer Center - możemy tu znaleźć wszystko co jest potrzebne do rozpoczęcia programowania iPhone. Strona ta przydatna będzie także dla bardziej zaawansowanych programistów. Zanim przystąpicie do pisania swojej pierwszej aplikacji przydatne będzie przeczytanie kilku dokumentów:

Wszystkie te materiały są ogólnie dostępne i do zapoznania się z nimi nie jest wymagane posiadanie konta developerskiego.

Aplikacje Onet.pl w AppStore

Pierwsza aplikacja została wydana w dosyć krótkim czasie po premierze iPhona w Polsce. Dzięki prośbom i komentarzom użytkowników została wydana druga wersja, bardziej rozbudowana i spełniająca ich wymagania. Jeśli masz iPhona lub iPodaTouch zapraszam do jej pobrania: Onet.pl Wiadomości w iTunes. Już wkrótce powinny pojawić się następne aplikacje z logo Onetu – czekamy na ich pozytywną recenzję.

Sebastian Oleniacz
programista