Przeskocz do:

Apple Blog.pl

9.03
2008
20:57
iPhone SDK – nie do końca tak pięknie

isdk

Oglądając czwartkową konferencję Apple większość odniosła wrażenie, że developerzy otrzymali prawie idealny zestaw narzędzi pozwalający na olbrzymią swobodę przy tworzeniu aplikacji. Owszem od strony technicznej SDK nie można wiele zarzucić – edytor kodu, integracja z SVN/CVS, narzędzie do tworzenia interfejsu, emulator, debugger, tony dokumentacji, świetne wsparcie na Apple Developer Connection itd. No prawdę każdy developer będzie w siódmym niebie.

Niestety, emocje opadły po pojawieniu się jednej bardzo istotnej informacji, która wywołała olbrzymie poruszenie wśród programistów – aplikacje firm trzecich NIE MOGĄ DZIAŁAĆ w TLE – jest to wymóg aby aplikacja znalazła się w App Store. Oznacza to nic innego jak to, że np. grając w jakąś grę ktoś do nas zadzwoni gra zostanie po prostu zamknięta, a nie jak to ma miejsce chociażby w telefonach S60 (Symbian) gra zostaje zatrzymana, przerzucona w tło, a po zakończeniu rozmowy możemy grać dalej. Co z komunikatorami? Odpada napisanie demona który cały czas będzie sprawdzał w tle czy otrzymaliśmy właśnie wiadomość i wyświetlał stosowne powiadomienie. Bez wątpienia zawęża to możliwości konkretnych aplikacji.

Z drugiej strony nie chce mi się wierzyć, że prezentowany na konferencji komunikator AIM nie może działać w tle, stawiam, że wybranym developerom Apple pozwoli na tę funkcjonalność.

Zbierzmy znane już fakty o obecnej wersji SDK i sposobie dystrybucji aplikacji:

  • SDK działa na Makach z procesorem Intela oraz PowerPC (wymagany Leopard).
  • W obecnej wersji nie ma Interface Buildera.
  • Emulator (iPhone Simulator) nie pozwala uruchamiać aplikacji korzystających z OpenGL.
  • Przykładowe aplikacje w SDK wymagają do uruchomienia iPhoneOS 2.0 który dostępny będzie w czerwcu.
  • Interfejs użytkownika musi być ściśle zgodny z wytycznymi Apple.
  • Aplikacje nie mogą korzystać z żadnych innych API niż te udostępnione przez Apple.
  • Aplikacje nie mogą działać w tle.
  • Testowanie aplikacji na urządzeniu wymaga wykupienia iPhone Dev Program – developer otrzymuje wtedy certyfikat którym podpisuje aplikację. Dev Program zawiera oprócz tego dostęp do wszystkich zasobów Dev Center, wsparcie programistów Apple na poziomie kodu oraz co najistotniejsze możliwość umieszczania aplikacji w App Store.
  • iPhone Dev Program dostępny jest w 2 wersjach – Standard za 99$ raz Enterprise za 299$.
  • Obecnie do iPhone Dev Program może przystąpić jedynie ograniczona ilość developerów do tego tylko z USA. Do tego pojawia się informacja, że dostępność programu zostanie rozszerzona w ciągu kilku miesięcy na kolejne kraje. Wygląda na to, że Apple może nie chce od razu pozwolić wszystkim zarabiać na aplikacjach dla iPhone tylko najpierw np. developerom z krajów gdzie iPhone jest oficjalnie dostępny.
  • Podział pieniędzy ze sprzedaży wygląda następująco – 30% dla Apple, 70% dla developera, wypłacane co miesiąc.

12 komentarzy do tego tekstu

  1. btd

    Czyli jailbreak i instaler beda dalej maly po co dzialac, a w dodatku piszacy tam programy dostali sdk.

  2. Paweł Nowak

    Mariusz, dzięki za tekst z podsumowaniem.

    To może w liście dlaczego w tej chwili robienie mojej wymarzonej aplikacji nie ma sensu:
    – Brak możliwości uruchomienia programu w tle to punkt numer jeden zabijający mój program
    – Nie mogę się zapisać do programu, nawet jeśli chciałbym zapłacić 1000 dolców (chciałbym)

    Myślę, że nawet jeśli program zostanie rozszerzony o inne kraje, to nie ma co liczyć na Polskę. Dla najbardziej zdesperowanych developerów z Polski zostanie założenie sobie konta w Niemczech (najbliżej) albo UK (najłatwiej) i używanie go do transakcji.

    No nic. Na razie mój program zostaje na etapie projektu.

  3. Paweł Nowak

    Aha, żeby nie było – jestem bardzo zadowolony z pojawienia się SDK i mimo licznych ograniczeń pozwoli na zabici konkurencji (nie, nie na marginalizacje, tylko na zabicie) :)

  4. jaco

    ograniczenie do programow nie dzialajacych w tle jest jakby nie bylo dobre. Telefon nie bedzie cial podczas rozmow (co juz teraz sie zdarza po odpaleniu kilku serwerow ;)) a jak ktos bedzie bardzo chcial i uzasadni ta chec pewnie to przeforsuje – jak np. Aim. W grach to zdecydowanie bez sensu. To, ze program zostal wylaczony na czas rozmowy nie znaczy ze bedziesz musial grac od nowa.

  5. BS

    sdk dziala na ppc
    http://blog.fotogenia.info/index.php/2008/03/09/pono-i-prawie-czyli-sdk-na-starszych-makach/

  6. Kritek

    Ahh… ostudzili zapał no ale przynajmniej bedzie czas pisanie i dobre przemyślenie projektów.

  7. Paweł Nowak

    Program może na bieżąco zapisywać swój stan do plików w systemie, więc jeśli chodzi o przerwanie/wznowienie bym się nie martwił.

    Jeśli chodzi o działanie w tle, to mimo mojego niezadowolenia, muszę oddać Apple, że ma to ręce i nogi z kilku powodów:
    – program w tle nie będzie ciągnął bez sensu prądu
    – program nie będzie wysyłał w tle np. naszych danych do autorów :P
    – i wreszcie program nie będzie (jak słusznie zauważył jaco) zżerał zasobów

  8. b4it

    Co tam, że programy nie mogą działać w tle. Najgorsze jest to, że jeśli Apple nie przypomni sobie o takim państwie jak Polska to możemy sobie tylko pomarzyć o aplikacjach na iPhona i żyć dalej z Installerem i Jailbreakiem.
    Kolejna sprawa to kasa. Ja coś czuję, że te aplikacje do tanich należeć nie będą… Tym bardziej to będzie odczuwalne, że do tej pory wszystko było za free.

  9. dadaista

    Ale marudzicie… Podajcie przykłady programów, które koniecznie MUSZĄ działać w tle. No słucham? Dla większości wystarczy zapis stanu programu do pliku podczas jego wyłączania. Po ponownym uruchomieniu program wczyta uprzednio zapisane dane i nawet nie zauważymy, że przez jakiś czas program nie działał. Bardzo prawdopodobne, że Apple wprowadziło też specjalną metodę delegacyjną, która jest odpalana w chwili przełączenia się na inną aplikację, co pozwoliłoby na odróżnienie przełączenia od wyłączenia aplikacji. Nie miałem jeszcze czasu by wgryźć się w nową dokumentację, więc to jak na razie tylko moje domysły.

  10. Mariusz Ostrowski

    Dadaista:
    – wszelkie komunikatory – nie będąc w aplikacji powiadamiają Cię np. o nowej wiadomości
    – wszelkie aplikacje które pobierają coś z serwera co określony czas i powiadamiają użytkownika
    – aplikacje których działanie opiera się na lokalizacji

    Mam jeszcze wymieniać? Brak tej jakże „zaawansowanej” funkcjonalności mocno ogranicza swobodę programistów.

  11. Oskar Krawczyk

    No to MobileScrobbler poszedł w odtawikę (tzn pójdzie). Ale nie przejmujcie się będzie hack.

  12. makojad

    Zgadzam się z przedmówcami, że Apple po prostu dba o stabilność systemu i wydajność baterii. Chce zapobiec sytuacjom typu „telefon zresetował się podczas rozmowy”. I ja bym się z tego akurat cieszył. Nie zapominajmy, że iPhone nie ma w sobie Core Duo, chłodzenia cieczą, ani ogniw wodorowych. Przynajmniej jeszcze nie. ;-)