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.
Produkt | Zalety | Wady |
J2ME | dostępność wirtualnej maszyny Javy w większości współczesnych aparatów; uniwersalność tworzonych aplikacji | mała wydajność środowiska |
Symbian OS | standard wspierany przez największych producentów telefonów komórkowych; wbudowana wirtualna maszyna Javy | |
In-Fusio | duż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 |
BREW | uniwersalność środowiska | konieczność korzystania tylko z Visual Studio |