iPhone OS – tutorial część 1
Autor: sparhawk dnia 27 - Wrzesień - 2008
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
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
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
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?”






[...] iPhone OS – tutorial część 1 [...]
[...] iPhone OS – tutorial część 1 [...]
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.
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ć ;)
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.
Ś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ą ;)
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.
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;)
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! :)
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?
Jedynie jak będziesz sobie sam kompilował aplikacji, bez wspomagania IDE … Więc można uznać, że odpowiedzią jest: nie ;)