Software do komórek
Programowanie smartfonów
Tworzenie aplikacji do smartfonów to zadanie tylko dla profesjonalistów? Nieprawda! Istnieje mnóstwo narzędzi, za pomocą których widżety mogą tworzyć również laicy. W artykule prezentujemy najpopularniejsze środowiska programistyczne i objaśniamy podstawy pisania aplikacji do komórek.
|
iPhone mocno zamieszał na rynku smartfonów – nowatorski interfejs i intuicyjna obsługa były wyjątkowe od początku. Lecz prawdziwym strzałem w dziesiątkę okazał się App Store – internetowy sklep Apple’a, za pośrednictwem którego niezależni producenci rozpowszechniają oprogramowanie do tego urządzenia. Dzięki miniaplikacjom użytkownik może wyposażyć iPhone’a w zupełnie nowe funkcje. Popyt jest ogromny: portal zaksięgował ponad miliard pobrań w okresie krótszym niż rok. Nic dziwnego, że konkurencja próbuje podążać tym tropem: przede wszystkim Google oferujący system operacyjny do smartfonów – Android, oraz Palm ze swoim webOS-em. Ale bez niezależnych twórców nie ma narzędzi. Dlatego producenci starają się ich zachęcić do korzystania ze swoich platform, minimalizując wymagania wstępne. Jak to się odbywa? Po prostu każdy system pojawia się wraz z odpowiednim pakietem developerskim. CHIP wyjaśnia, jak takie pakiety działają, i pokazuje na podstawie prostej aplikacji, jak zbudowane są programy do komórek. Niektóre z narzędzi programistycznych zamieszczamy na naszej płycie. SDK: Solidne rusztowanieAby developer mógł stworzyć aplikację do jakiegoś systemu, musi wiedzieć, jak ten system funkcjonuje, w jakim został napisany języku, oraz znać udostępnione przez niego interfejsy. To zadanie wykonuje tzw. Software Development Kit (SDK), oddający do dyspozycji programisty symulację otoczenia na urządzeniu docelowym, ze wszystkimi potrzebnymi komponentami. SDK zawiera odpowiednie narzędzia, biblioteki, dokumentację, jak również przykładowe aplikacje oraz często emulator. Do programowania urządzeń przenośnych potrzebna jest także platforma, która z góry określa strukturę ramową docelowego otoczenia aplikacji. Składa się ona z predefiniowanych wzorców, które dostosowują tworzony kod do wymogów konkretnego systemu. Kod wprowadza się w kompatybilnym edytorze, który wraz ze środowiskiem określa się jako IDE (Integrated Development Environment). IDE wspiera SDK podczas tworzenia aplikacji na wielu poziomach: od zarządzania projektem poprzez autouzupełnianie kodu aż do podświetlania syntaktyki. Pisząc aplikację, developer może jednocześnie szybko lokalizować błędy w kodzie za pomocą debuggera (od angielskiego „bug” – błąd w aplikacji), nadzorującego przebieg programu i podnoszącego alarm po natrafieniu na polecenia, których nie potrafi zinterpretować. Ten proces, znany jako Bugfix, skutecznie eliminuje błędy. Jednak pisanie software’u może być bardzo skomplikowane, gdy nie są dostępne gotowe moduły: biblioteki. Zapewniają one programiście możliwość korzystania z predefiniowanych funkcji, wspólnych dla aplikacji w danym systemie. W Windows biblioteki przechowywane są w plikach z rozszerzeniem DLL (Dynamic Link Library) i lepiej znane jako DLL-e. Aby kod był rozpoznany jako program, potrzebny jest dodatkowo kompilator, który analizuje tekst źródłowy, obrabia go i tłumaczy na język zrozumiały dla docelowego systemu operacyjnego. Utworzony software testuje się na emulatorze, aby uniknąć kłopotliwego przenoszenia kodu na smartfon po każdej kompilacji. Jednakże emulator przydaje się też do próbnych przebiegów na urządzeniu docelowym. Tak dzieje się na przykład, gdy symuluje on obsługę architektury ARM, często stosowanej w telefonach komórkowych. iPhone: Język Objective-CPisząc software do iPhone’a albo iPoda touch, programista stosuje dwie metody, wynikające z polityki Apple’a. Na początku firma nie udostępniła bowiem żadnego SDK dla swego systemu – można było więc tworzyć jedynie widżety uruchamiane za pomocą przeglądarki Safari. Dopiero po hakerskim epizodzie, który pokazał, jak ominąć zabezpieczania, korporacja z logo jabłka zezwoliła na tworzenie aplikacji natywnych. SDK jest dostępny za darmo, ale może być uruchomić tylko na Macach z architekturą x86. W efekcie developerzy pracują w środowisku programistycznym Xcode. Napisano je w Objective-C, języku C rozszerzonym o techniki obiektowe. Jako interfejs systemowy (API) wykorzystuje się Cocoa touch. Oprócz SDK wielu programistów posługuje się alternatywnymi narzędziami, takimi jak np. darmowe Framework iPhone User Interface (iUI). Co prawda, ta platforma pozwala na tworzenie jedynie aplikacji używających jako interfejsu przeglądarki, ale za to potrzebne do pisania kodu edytory są niezależne od systemu Mac OS X. Ograniczenia licencyjne Apple’a są bardzo silne i z tego powodu często krytykowane. Dla przykładu programiści nie mogą ingerować w procesy tła. Nawet w przypadku dystrybucji napotkamy na przeszkody: aby samodzielnie napisane narzędzie uruchamiało się nie tylko w emulatorze, ale również w iPhonie czy iPodzie touch, musi zawierać cyfrowy certyfikat. Żeby go otrzymać, należy się zarejestrować w organizacji Developer Program (roczna opłata od 99 dolarów). Co więcej, w przypadku sprzedaży narzędzia przez App Store, Apple zabiera producentowi 30 proc. przychodu. Aby to ominąć, stosuje się jailbreak – złamanie systemu pozwalające na przechytrzenie mechanizmów zabezpieczających Apple’a (Crackowanie telefonów iPhone 3G i 2G) – wskutek czego w iPhonie uruchamiają się również aplikacje niepodpisane. Warto jednak pamiętać, że zhakowany system to większe ryzyko związane z obniżeniem bezpieczeństwa. webOS: Język HTMLCiągle nie wiadomo, czy SDK przeznaczony do nowego webOS-u Palma będzie darmowy – do tej pory programiści musieli za niego płacić. Wiadomo natomiast, że będzie można w nim pisać kod przy użyciu popularnych języków sieciowych: HTML, CSS i JavaScript. Dobry edytor HTML powinien do tego celu wystarczyć. Jednak gdyby ktoś chciał przetestować stworzone narzędzie, musi się obyć bez emulatora. Co więcej, jedynie SDK zwane Mojo pozwala na dystrybucję podpisanych pakietów, a będzie je można sprzedawać tylko przez jeden kanał, mobilny sklep Palma – App Catalog. Nie wiadomo także, kiedy pojawią się w pełni ukończone, kompleksowe narzędzia developerskie – na stronie developer.palm.com ciągle mówi się o wersjach beta, a te udostępnione są podzielone na grupy przystosowane do tworzenia określonych typów programów, konkretnej platformy oraz języka. Punktem wyjściowym każdej aplikacji przeznaczonej do Palma jest plik index.html, w którym definiuje się np. przyciski i grafikę. Globalny arkusz stylów umożliwia kompleksowe dopasowanie tworzonego programu do całego systemu telefonu. W tle działa biblioteka SQLite, którą obsługujemy przez interfejs API w języku JavaScript. Bezpośredni dostęp do jądra systemu, Core OS, nie jest dozwolony. Zgodnie z zaleceniami Palma aplikacje komunikują się przez platformę Mojo z User Interface (UI) System Manager. Ten ostatni służy jako interfejs do serwisów webOS, które kontrolują dostęp do usług systemowych, takich jak sieć czy urządzenia audio. Android: Język JavaAndroid to system rozwijany przez organizację Open Handset Alliance tworzoną przez Google i 33 inne podmioty. Jednak siłą napędową tego aliansu nieodmiennie od lat pozostaje Google. Jako że platformę oparto na licencji Apache 2.0, jest ona dostępna za darmo i może być przenoszona na dowolne urządzenie przenośne. W związku z tym wielu niezależnych developerów pracuje obecnie nad stworzeniem własnego „Google mobile”. Bazę Androida stanowi jądro Linuksa, zawierające podstawowe moduły, takie jak obsługa sieci, klawiatury, urządzeń audio, a nawet kamery. Jako interfejs do komunikacji pomiędzy sprzętem a poszczególnymi aplikacjami służy Dalvik Virtual Machine, bazująca na środowisku uruchomieniowym Javy (patrz grafika poniżej). SDK składa się z platformy uruchomieniowej dla aplikacji, bibliotek, środowiska Android, jak również emulatora. Kod źródłowy jest pisany i kompilowany w Javie. Aby aplikacja uruchamiała się później w Androidzie, dostosowuje się ją za pomocą asemblera krzyżowego (cross-assembler) do konkretnego urządzenia. Każdy, kto ma podstawową wiedzę o Javie, może bez problemów pisać narzędzia do Androida – prosty przykład omawiamy w ramce. Programowanie smartfonów jest proste we wszystkich SDK i na każdej platformie. Z drugiej strony trzeba mieć do tego podstawową wiedzę. Tę ostatnią zdobędziemy, gdy odważmy się wejść w świat mobilnych aplikacji – pomoże nam w tym ogromna społeczność programistów w Sieci, każdy z nich przecież musiał kiedyś napisać swój pierwszy widżet.
|

Kup Najtaniej