iPhone OS – tutorial część 1

W związku z premierą iPhone w Polsce chciałbym rozpocząć cykl postów z małym tutorialem do pisania programów na to urządzenie. Część rzeczy będę starał się tłumaczyć przez analogię do innych języków (w szczególności PHP). Zatem zaczynajmy.

Tutorial część 1

Co musimy posiadać?

System operacyjnym/komputer

Komputer Mac

Komputer Mac

Niestety wymaganiem by rozpocząć przygodę z programowaniem na iPhone jest posiadanie komputera Mac z systemem operacyjnym Mac OS 10.5. I to chyba jest największe ograniczenie moim skromnym zdaniem. Powoduje to, że firmy/osoby prywatne muszą zainwestować w dodatkowy sprzęt by rozpocząć pracę nad oprogramowaniem dla iPhone. Jest to zapewne świadome działanie firmy Apple na rzecz rozpowszechniania ich systemy kosztem ilości osób zaangażowanych w tworzenie aplikacji na iPhone. Z drugiej jednak strony eliminują także domorosłych programistów, którzy chcieliby w prosty sposób zarobić na słabej jakości aplikacjach.

Konto w iPhone Dev Center – dostęp do materiałów

iPhone Dev Center

iPhone Dev Center

Pierwsze kroki w przygodzie z iPhone można rozpocząć za darmo poprzez rejestrację w iPhone Dev Center. Rejestracja na tej stronie umożliwi nam pobranie ogromnej ilości tutoriali, przykładów czy też screencastów (poprzez iTunes). Ogrom materiałów może na początku przytłaczać, w szczególnie ilość poszczególnych elementów do opanowania na samym początku. Swoją drogę najlepiej rozpocząć od tego artykułu.

Środowisko programistyczne

XCode i Interface Builder

XCode i Interface Builder

Apple dostarcza w swoim centrum dla programistów paczkę SDK (obecnie – iPhone SDK for iPhone OS 2.1 ). Po pobraniu SDK dostajemy w pakiecie:

  • XCode – środowisko programistyczne
  • Interface Builder – środowisko do graficznego projektowania interfejsu
  • Instruments – oprogramowanie do testowania aplikacji.
  • interface simulator – symulator iPhone na Maca

Na początek to koniec

Na początek jest to całkowicie wystarczający zestaw potrzebny do zapoznania się z „iPhone programing”. Dalej to już tylko nauka i 99$ na dołączenie do iPhone Developer Program (by umieścić program w App Store). Testy na urządzeniu można przeprowadzić bez opłaty co opisze w 3 części tego tutoriala. Byłbym zapomniał trochę to ironiczne, ale nie potrzebujemy iPhona! (No chyba, że przymierzamy się do testów na prawdziwym urządzeniu).

Specyfika programowania na iPhone

Mamy jeden ekran

Przede wszystkim aplikacje na telefonie zakrywają cały ekran. Jest to o tyle ważne, że jeżeli użytkownik rozpoczyna pracę z daną aplikacją to musi widzieć co, jak i gdzie może zrobić? Nie są widoczne żadne inne ekrany lub podpowiedzi.

Użytkownik pracujący na iPhonie jest skupiony na zadaniu, dla którego włączył tą aplikację. Z tego właśnie powodu chce jak najszybciej tego dokonać. Stąd aplikacje często korzystają ze standardowych elementów interfejsu iPhone, które są znane dla ich użytkowników. Elementy te można obejrzeć po uruchomieniu Interface Buildera.

Zmiana sposobu reprezentacji danych dokonuje się zazwyczaj poprzez zmianę widoku, który przesłania stary ekran. W porównaniu do aplikacji Webowych, gdzie użytkownik dostaje za każdym razem ten sam szablon strony ze zmienioną zawartością, tutaj zmienia się prawie cały ekran poza elementem wspólnym takim jak nagłówek nawigacyjny. Trzeba tym samym zwrócić szczególną uwagę by użytkownicy wiedzieli, gdzie są.

Mamy cały system

Uruchamiając aplikację dostajemy do dyspozycji cały system będący uruchomiony na komórce. Mamy tym samym dostęp do kamery, żyroskopu sprzętowego wspomagania grafiki. Dostępne są także ustawienia telefonu czy też albumy zdjęć. Ale z drugiej strony użytkownik ma przycisk wyjścia z aplikacji, którego może użyć w dowolnej chwili.

Multitouch

Użytkownicy iPhone dostali do dyspozycji ekran dotykowy z wykrywaniem wielu punktów dotykowych. Tym samym programiści muszą zwrócić uwagę by elementy, które można dotknąć są wystarczająco duże. Na szczęście standardowe elementy interfejsu podpowiadają swoją wielkością jakie są zalecenia ze strony Apple.

Dostajemy także nowe możliwości względem aplikacji na komputery. Urządzeniem wskazującym jest bardziej naturalna niż myszka dłoń(albo raczej palce). W aplikacjach mamy do dyspozycji zdarzenia pozwalające na reakcje na dotykanie(rozciąganie, zwężanie) dwoma placami na elementach interfejsu. Moim zdaniem daje to spore możliwości projektantom w operowaniu multimediami lub wykorzystania w grach.

Generalna zasada

Najprościej i najskuteczniej to obejrzeć przykłady aplikacji tudzież gotowe produkty dostępne w App Store. Obecnie poprzez wyprodukowane już programy formują się pewne standardy w interfejsie iPhone, dlatego o ile chcemy żeby produkt był użyteczny trzymajmy się standardów.

Podsumowanie

Pisanie oprogramowania na platformy mobilne to wiele szczegółów i niuansów, które są zauważalne dopiero jak się używa programu w środowisku docelowym. Prawdopodobnie, dlatego Apple udostępnił bardzo wierny symulator zachowania iPhona. Dlatego korzystajmy z wszystkich możliwości środowiska jakie dostarczył nam producent by tworzyć jak najlepsze oprogramowanie. Polecam także zapoznanie się z zaleceniami Apple w tworzeniu ludzkich interfejsów.

W następnych częciach przejdę do omówienia Objective-C, który jest głównym językiem programowania dostępny w iPhone SDK oraz do tworzenia pierwszej aplikacji czyli „Jak połączyć XCode Interface Builder i Simulator w celu uruchomiania aplikacji?”

Kolejne części samouczka

13 myśli nt. „iPhone OS – tutorial część 1

  1. Pingback: iPhone OS - tutorial część 2 | Sparhawk

  2. Pingback: iPhone OS - tutorial część 3 | Sparhawk

  3. mariusz

    Pytanie bardzo istotne!

    Czy pisząc aplikację dla Iphona według tutoriala jaki utworzyłeś, mogę liczyć na to, że te programy będą działać również na ipod touch? Oczywiście ograniczenia sprzętowe ipoda znam.

  4. sparhawk Autor wpisu

    Były one pisane pod iPhona. Jednak nie przypominam sobie, żeby którakolwiek z używanych metod miała zastrzeżenia co do iPoda Touch. Generalnia sytuacja wygląda tak, że czasem aplikacje działające na symulatorze nie działają na rzeczywistym urządzeniu. Zatem trzeba przetestować ;)

  5. Gregory

    Witam.
    Mam pytanko, nigdy nie pracowałem na MACu i niestety zupełnie się nie orientuję w ich oznaczeniach i wersjach. Czy mógłbym prosić o poradę jakiego MACa (wersję) wybrać żeby był w miarę tani i miał możliwość obsługi przynajmniej systemu 10.5. Niekoniecznie nowy i z bajerami. jak najtańszy i stabilny, tak żebym mógł spokojnie pisać programy na Iphone na nim.
    Pozdrawiam.

  6. sparhawk Autor wpisu

    Środowisko programistyczne jest dość wymagające a co za tym idzie praca na słabszym komputerze nie będzie przyjemnością. Kupowanie Mac jeżeli chcesz tylko spróbować chyba mija się z celem. Lepiej rozważ przesiadkę na Maca całkowicie. Co do sprzętu nie będę się wypowiadał, bo nie znam się na tyle, żeby poradzić Ci co będzie najlepsze. Ja pracuje na iMacu (nie pro), ale ze zwiększoną ilością pamięci RAM.

    PS. Apple to segment premium, zawsze musisz liczyć się z wyższą ceną ;)

  7. Gregory

    Dzięki za szybką odp. Postanowiłem że kupie zwykłego Mac booka albo Mac mini, jeszcze muszę zobaczyć jak będzie wyglądać mój budżet.
    Teraz kolejne pytanie czy znając podstawy programowania i całkiem nieźle php łatwo odnajdę się w środowisku Obj-C? Sprawia to jakieś większe problemy w ogólnym zrozumieniu?
    Dzięki za tutorial, jak już zaopatrze się w Maca to napewno wykorzysam twoje porady.

  8. sparhawk Autor wpisu

    Dzięki za komentarze. Pewnie Mac book powinnien wystarczyć czy mini nie wiem. Co do trudności łatwo nie będzie ;) ale do wszystkiego się da dojść. Mam nadzieję, że tutoriale pomogą;) Moim zdaniem najłatwiej z nauką mają programiści .NET ze względu na podobny styl programòw/podejścia;)

  9. Asia

    Dzięki za samouczki – po długich wędrówkach po sieci znalazłam Twój cykl, który jest dla mnie wprowadzeniem w trudny świat programowania na iPhone’a i miłą odskocznią od dość surowo-technicznych tutoriali Apple. Zajrzę tu jeszcze nie raz! :)

  10. Twin

    Niestety wymaganiem by rozpocząć przygodę z programowaniem na iPhone jest posiadanie komputera Mac z systemem operacyjnym Mac OS 10.5. I to chyba jest największe ograniczenie moim skromnym zdaniem

    Nadal nie ma możliwosci tworzenia aplikacji w Win?

  11. sparhawk Autor wpisu

    Jedynie jak będziesz sobie sam kompilował aplikacji, bez wspomagania IDE … Więc można uznać, że odpowiedzią jest: nie ;)

  12. Dark_red

    Uruchomiłem maszynę wirtualną z MacOSX na procesorze I5. Sam system nieraz przymula, ale środowisko programistyczne z Ios SDK chodzi bardzo dobrze.Mogę powiedzieć nawet że ten emulator chodzi ze 2 razy szybciej niż Androidowy. Oczywiście legalne jest uruchamianie maszyny wirtualnej z MacOSX jedynie na komputerach Apple. ;)

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *