Jag har de senaste veckorna arbetat med en ny tjÀnst för mobiltelefoner (ett uppdrag jag tagit över efter min kollega Mikael). Som ni förstÄr sÄ Àr det alltsÄ Java Microedition som det hela byggs i. Nu var det ett tag sen jag kodade nÄgot i Java ME pÄ riktigt sÄ jag hade glömt en hel del detaljer. Uppenbarligen Àr det lika illa stÀllt med Java pÄ mobiltelefoner idag som det var för ett par Är sedan. Om du ska skriva en applikation som du hoppas pÄ att mÄnga ska anvÀnda sÄ behöver den fungera pÄ flera olika tillverkares telefoner, och det Àr hÀr problemen börjar. För att din applikation ska kunna fÄ göra nÄgot mer avancerat Àn att visa bilder och text sÄ behöver den signeras (ok, den mÄste inte signeras, men anvÀndaren kommer bli nipprig pÄ alla frÄgor om att lÄta applikationen göra ditt och datt). Nu tycker man kanske att det bara vore att anvÀnda samma signeringsverktyg som finns i Java SE, och i princip ska det vara likadant. Dock har olika mobiltelefontillverkare bestÀmt sig för att hitta pÄ egna lösningar och metoder för det hela. Att signera en applikation som ska köras pÄ en Motorola-telefon krÀver ett speciellt certifikat frÄn Motorola, Samsung vill signera allting sjÀlv (alltsÄ, skicka in ditt program till ddem och fÄ tillbaka det ett par veckor senare) och sÄdÀr fortsÀtter karusellen. Den enda telefontillverkare som försökt hÄlla sig till standarden Àr SonyEricsson (som för övrigt lyckats följa de olika Java ME standarderna bÀst).
NÀr du vÀl kommit runt problemen med signering sÄ har vi APIerna som telefonerna hÀvdar att de stödjer. Ta JSR-234 (Advanced Multimedia Supplements) som kort och gott syftar till att tillhandahÄlla lite mer avancerade funktioner för media i telefonen. Det finns klasser för 3D ljud, video, kameran och FM radio. LÄter spÀnnande, eller hur? Problemet Àr bara att det enda som mobiltelefontillverkarna valt att stödja i det APIet Àr kamera-funktionerna, pÄ sin höjd. Om nu telefonen har en FM radio, stöd för 3D ljud och möjlighet att spela upp video, vaför kan jag inte fÄ accessa dessa funktioner i Java ME dÄ?! SÄhÀr Àr det med mÄnga av de mer intressanta JSRer som finns för Java ME. Vanligtvis Àr det Äterigen SonyEricsson som har bÀst stöd, men det Àr en ganska klen tröst nÀr de Àr lÄngt ifrÄn de vanligaste telefonerna pÄ marknaden (Ätimstone utanför Sverige).
Det kÀnns lite som att mobiltelefontillverkarna (och i viss mÄn Àven operatörerna som lÄser och begrÀnsar enheterna) medvetet sÀtter krokben för tredjeparts-tillverkare. Idag Àr det oerhört svÄrt för en utomstÄende att fÄ in sin applikation pÄ mobiltelefon-marknaden. Det trÄkiga Àr att Java ME Àr det enda reellla alternativet, Symbian C++ Àr Ànnu vÀrre att koda i och fungerar sÀllan likadant pÄ olika telefoner och .NET har ett ytterst begrÀnsat stöd pÄ dagens mobiltelefoner. Flash-applikationer hade varit ett alternativ, men det Àr tyvÀr fortfarande en alltför begrÀnsad platform.
Jag hoppas att nÀsta version av MIDP (3.0) som Àr pÄ vÀg kommer lösa mÄnga av dessa problem som vi utvecklare stöter pÄ. Dock tror jag att vi Àven i framtiden kommer behöva slÄss bÄde mot mobiltelefontillverkarnas ovilja att följa standarder.
…och dĂ„ har jag inte ens nĂ€mt hela dramatiken kring DRM-skyddat material och Java ME..