iPhone 3G – jedna z najbardziej oczekiwanych premier tego roku. Ponad 40 tyś. osób zarejestrowanych na przedsprzedaż i kolejki przed salonami. To wszystko jest obrazem trwającego już ponad 2 tygodnie szału iPhone’a. I nic dziwnego, sam go używam i jest imponujący. Ale co jeśli chcę czegoś więcej niż telefon dla zwykłego użytkownika? Co jeżeli chcę napisać na niego parę aplikacji?
Tutaj już sprawa nie wygląda tak różowo. O ile iPhone jest naprawdę udanym produktem zarówno pod względem projektu, ergonomii, funkcjonalności czy wydajności (tak, dobrze widzicie: te 400 MHz z Mac OS X na pokładzie sprawdza się o niebo lepiej niż 500 MHz w Windows Mobile 6 Professional, sprawdzałem osobiście i szczerze mówiąc: nie ma porównania, iPhone deklasuje każdy telefon z systemem Windows, ponieważ to wina braku wydajności samego systemu, ale nie o tym chciałem tutaj pisać, więc wróćmy do tematu), o tyle jest beznadziejny jeżeli chodzi o programistów. Chcąc pisać i udostępniać/sprzedawać aplikacje na iPhone’a czy iPod’a Touch musimy spełnić szereg warunków, które po samym zapoznaniu się z nimi, powodują, że odrazu odeche nam się cokolwiek próbować.
Zaczniemy od licencji. Licencja developerska Apple to jedna wielka porażka. W skórcie ujmę to tak:
- jest niekompatybilna z definicjami wolnego oprogramowania, więc zapomnijcie o używaniu bibliotek opartych o GPLv3;
- zawiera tzw. non-disclousure agreement (umowa o poufności), który mówi, iż nie możemy dzielić się ze światem naszą wiedzą na temat API iPhone’a, a dokładniej mówiąc o sposobie jego użycia w naszych aplikacjach, a przynajmniej nie bez przyzwolenia ze strony Apple (zasadniczo rzecz biorąc: nie wolno nam się chwalić jak napisaliśmy własne aplikacje);
- określa sposób dostępu do zasobów urządzenia przez naszą aplikację, blokując dostęp do innych aplikacji czy systemu plików, a także zmuszając nas do projektowania naszej aplikacji tak, żeby zamknęła się na naciśnięcie przycisku Home, aby żadna aplikacja nie pozostawała w tle (zasada łamana przez oprogramowanie iPod, które potrafi działać w tle);
- dodatkowo mówi, iż nasza aplikacja nie może zawierać żadnych innych wbudowanych interpreterów języków (więc so long firefox on iphone… a czemu? ponieważ FF posiada wbudowany interpreter JavaScript, no cóż… kolejna zasada łamana przez rdzenne oprogramowanie Apple, czyli Safari);
Tyle uroków licencyjnych. Informacje te pochodzą z różnych źródeł (między innymi z wypowiedzi ludzi z Free Software Foundation na temat licencji developerskiej Apple). Jako iż wiedza ta pochodzi z ogólnie rozumianego internetu i nie jest zweryfikowana, jako całkowicie zgodna z prawdą, możecie wypowiadać się na jej temat, krytykować, poprawiać, zgadzać się z nią, bądź nie. Jeżeli przedstawicie mi odpowienie dowody, że jest tak, a nie inaczej, uwzględnie je w tym artykule.
Przejdźmy teraz do samego SDK. Żeby z niego korzystać należy oczywiście spełnić parę warunków (czemu nie jestem zdziwiony?):
- trzeba zarejestrować się w Developer Connection, specjalnym serwisie Apple dla programistów (to jest jeszcze do przeżycia);
- trzeba posiadać system Mac OS X w najnowszej wersji (10.5.4 o ile mnie pamięć nie zawodzi), więc użytkownicy Windows’a i Linux’a, a także starszych wersji Mac OS X: macie powód do zjednoczenia się i ogólnie zapomnienia o jakichkolwiek nadziejach na użycie iPhone SDK na systemie innym niż Mac OS X w powyższej wersji (albo lećcie kupić komputerek Apple’a z Leopard’em na pokładzie);
- aby móc uruchamiać swoje aplikacje testowo na iPhone’ie (a nie tylko na symulatorze z SDK) musimy być zapisani do programu developerskiego Apple, który – poza tym, że jest płatny - przyjmuje kandydatów… … … (i jeszcze trochę krępującej ciszy) … … tylko ze Stanów Zjednoczonych, więc jeżeli nie mieszkacie w USA, to zapomnijcie, że w najbliższym czasie dostaniecie możliwość dołączenia to ADP (Apple Developer Program) i umieszczania swoich aplikacji w AppStore;
Podsumowując: Apple po raz kolejny zrobiło super produkt, ale też tak określiło warunki jego rozwoju, że zablokowało tysiące potencjalnych programistów na całym świecie. Zastanawia mnie po co w ogóle wydawali SDK, skoro nie pozwalają ludziom pisać i udostępniać aplikacji z niego korzystających?
Generalnie rzecz biorąc nie powinienem i nie narzekam, ponieważ jestem zadowolony z tego telefonu, pozatym jestem w stanie pisać sobie takie aplikacyjki. Mam Mac’a Mini w domku (z de facto zainstalowanym na nim Ubuntu, ale płytka Mac OS X Leopard gdzieś tam sobie leży i się kurzy), więc nic nie stało by na przeszkodzie, żeby wypróbować to SDK, ale jaki to ma sens, jeżeli nie będę mógł nikomu udostępnić swoich aplikacji?
Ogólnie określe to jednym słowem: żenada…
Aktualizacja:
Apple do list kontrowersyjnych warunków tworzenia aplikacji na iPhone dorzuciło jeszcze zapis mówiący o tym, że w przypadku odrzucenia aplikacji z AppStore, jej twórcom nie można także o tym fakcie rozmawiać z innymi. Więcej na ten temat mówi portal Heise Online. Według mnie jest to po prostu sposób Apple na ucięcie komentarzy developerów, których aplikacje zostały odrzucone. No i co z tego, że funkcjonalność się dubluje? Użytkownik ma prawo wyboru z czego chce korzystać. I tak samo jest ze smartphone’ami. Jak sytuacja się nie zmieni, to w niedługim czasie liczba użytkowników iPhone może zacząć maleć.


Jako roczny użytkownik Iphone 3G. Muszę stwierdzić, że jest to bardzo dobry telefon pod kątem wykonania. Iphone może i ulega uszkodzeniom powierzchniowym, za to cała konstrukcja wewnętrzna jest tak dobra, że iphonem można rzucać, topić go w wodzie a on i tak będzie działał. Miałem takie sytuacje a Iphone nadal po roku dobrze działa. Jedyna cecha, której nie lubię w Iphone 3G to słaba szybka od ekranu, która pęka od byle uderzenia.