Od arkusza do “strzelanki”

Mogłoby się wydawać, że taka sytuacja to prawdziwy raj dla programistów – mnóstwo zleceń oznacza masę pracy i górę pieniędzy do zarobienia. Niestety, napisanie aplikacji dla komórki nie jest wcale tak łatwe. Nie wystarczy doskonała znajomość języków, takich jak C/C++ lub Java, poparta doświadczeniem w przygotowywaniu aplikacji dla Windows. Programista podczas pracy z kodem przeznaczonym do uruchomienia w aparacie przenośnym musi się liczyć z trudnościami nieznanymi twórcom software’u kierowanego na rynek komputerów osobistych.

Wynikają one z kilku powodów. Przede wszystkim nie istnieje nic takiego jak “telefon standardowy”. Aparaty znacznie różnią się od siebie pod względem konstrukcyjnym, a grupa telefonów bazujących na tym samym typie głównego procesora jest zazwyczaj bardzo mała. Ta różnorodność utrudnia pracę nie tylko osobom piszącym oprogramowanie dla komórek pochodzących od różnych producentów – zdarza się bowiem i tak, że modele dostarczone przez jednego wytwórcę sprzętu mają odmienną konstrukcję.

W efekcie nie ma co liczyć na to, że przygotowana aplikacja zadziała na każdym telefonie.Z faktu, że liczba użytkowników komórek sięgnie niebawem dwóch miliardów, wcale nie wynika więc, że program napisany dla przenośnego telefonu znajdzie dwa miliardy potencjalnych nabywców. Teoretycznie mniejszy, bo składający się z kilkuset milionów odbiorców, rynek oprogramowania dla komputerów osobistych okazuje się nieraz znacznie bardziej atrakcyjny.

Przynajmniej częściowym rozwiązaniem problemu z niekompatybilnym sprzętem stałby się wspólny system operacyjny wykorzystywany przez wszystkie komórki. Gdyby taki powstał, można by było pisać aplikacje, nie martwiąc się o problemy związane z zachowaniem kompatybilności oprogramowania z różnymi modelami aparatów. Nic z tego. Uniwersalnego, a przynajmniej powszechnie wykorzystywanego systemu operacyjnego (takiego jak Windows czy Linux) nie ma.

Producenci telefonów oraz niezależne firmy deweloperskie postanowili zaradzić opisanym wyżej kłopotom. Remedium na wszystkie bolączki stały się platformy programistyczne dla aparatów komórkowych. Najważniejsze z nich postaram się scharakteryzować w niniejszym artykule.

Między “softem” a słuchawką

Platforma programistyczna to warstwa pośrednia pomiędzy aplikacją a telefonem. Aplikacja napisana dla konkretnej platformy wykorzystuje jedynie jej interfejs programistyczny (API – Application Programming Interface), nie używając żadnych funkcji specyficznych dla danego telefonu. Dzięki temu, pisząc program dla aparatu wyprodukowanego przez firmę Nokia, przynajmniej teoretycznie nie będziemy mieli problemów z przeniesieniem software’u na telefony Siemensa. Piszę “przynajmniej teoretycznie”, ponieważ to, czy uruchomimy aplikację na innym telefonie, jest uzależnione jeszcze od parametrów komórki – na przykład od rozdzielczości wyświetlacza. Poza tym może się okazać, że platforma programistyczna jest tylko częściowo zgodna z konkretnym modelem telefonu.

Podejmując decyzję o pisaniu aplikacji dla tej, a nie innej platformy, musimy wziąć pod uwagę jeszcze kilka czynników. Przede wszystkim wybór wiąże się z użyciem określonego języka programowania. Do dyspozycji mamy Javę, C/C++ lub – bardzo rzadko – asembler wirtualnej maszyny. Ten ostatni jest zazwyczaj wykorzystywany w przypadku tworzenia programów o dużej wydajności.

ProduktZaletyWady
J2MEdostępność wirtualnej maszyny Javy w większości współczesnych aparatów;
uniwersalność tworzonych aplikacji
mała wydajność środowiska
Symbian OSstandard wspierany przez największych producentów telefonów komórkowych;
wbudowana wirtualna maszyna Javy
In-Fusioduży wybór funkcji ułatwiających pisanie gier;
pomoc podczas dystrybucji oprogramowania pisanego z myślą o In-Fusio
kłopotliwe tworzenie aplikacji użytkowych dla środowiska
Mophunłatwe tworzenie gier;
+ przenoszenie aplikacji na inne modele telefonów bez konieczności modyfikowania kodu
niewielka liczba telefonów obsługujących środowisko
BREWuniwersalność środowiskakonieczność korzystania tylko z Visual Studio
Więcej:bezcatnews