Szerző: Gálffy Csaba

2014. augusztus 21. 13:21

Megkerülhetetlen az Apple érintős-böngészős API-ja?

Folyik tovább a nagy böngésző-háború, az új frontot az érintős bevitel kezelésére kidolgozott API-k jelentik. A Google ugyanis bejelentette, hogy a Microsoft által fejlesztett API-szettet nem támogatja tovább, helyette a széles körben elterjedt Touch Events-re fókuszál majd.

Kikerül a Blink böngészőmotor következő kiadásaiból a Microsoft-féle Pointer Events API támogatása - jelentette be a Google csendben, a Chromium projekt oldalán. Helyette inkább az Apple-féle Touch Events támogatására és kiterjesztésére fókuszál majd a cég, ezt az API-t a weboldalak igen széles köre használja már, a kérdést pedig a Google lépése gyakorlatilag el is dönti.

Nem mai történet

Az Apple mobilos Safari böngészőjében teljesen egyoldalúan vezette be a Touch Events API-t, az okostelefonos, később pedig a tabletes böngészési élmény javítására. A legtöbb weboldal ugyanis az egérrel való használatra épült, a böngészős technológiákból gyakorlatilag teljesen hiányzott az alternatív beviteli eszközök kezelése. A Touch Events támogatásával a weboldal fejlesztője támogathatott egyes gesztusokat (hosszú érintés, dupla érintés, kétujjas érintések, stb.), amelyeket a felhasználók a telefon más részein megszoktak és a böngészőben is elvárták annak működését, illetve a bevett egeres gesztusokat (például a mouse hover) helyettesíthették.

A Touch Events nem iparági szabvány, az Apple az általa kidolgozott API-t szabadalmakkal körbe is bástyázta. Ezért hiába született felkérés a szabványosításról, az Apple kategorikusan megtagadta a szabadalmak ilyenkor szükséges FRAND-licencelését, ezzel pedig hosszú időre megakasztotta a szabványosítási folyamatot. A World Wide Web Consortium azonban később úgy döntött, hogy a szabadalmak irrelevánsak, és a licencre így nincs szükség - ezzel elhárult az akadály a széleskörű támogatás és de facto iparági szabvánnyá válás elől.

Volt alternatíva

Abban az időszakban, míg a Touch Events szabadalmai körüli bizonytalanság tartott, a Microsoft saját API-t dolgozott ki a probléma megoldására. A Pointer Events egy egységes ernyő alá húzta be a legtöbb input-eszközt, és a fejlesztők legnagyobb örömére egységes API-t kínált. Ez fontos, mivel a legtöbb esemény kezelése így megoldható közös kódbázissal (függetlenül attól, hogy egérrel vagy ujjal indították azt), külön eseményeket csak oda kell írni, ahol az valóban szükséges. Az egységes API tehát egyszerűbb, kevesebb potenciális hibaforrást tartalmazó oldalakat eredményez, nem csoda, hogy a fejlesztők kifejezetten kérték ezt.

A Pointer Events azonban nem bizonyult áttörő sikernek. Egyrészt a választott működési mechanizmus teljesítményproblémákkal küzdött a Touch Events-szel szemben, másrészt az olyan alapvető koncepciókat megvalósítására volt alkalmatlan, mint a pull-to-refresh. Tehát míg a koncepció és az egységes megvalósítás jó megközelítésnek bizonyult, maga a elkészült megoldás már problémás lett.

"Nem látunk olyan utat, amellyel a Touch Events teljesen kiváltható lenne a weben" - mondja a Google képviselőjének kommentárja. Ennek prózai oka lehet, az Apple ugyanis a saját API-n kívül mást nem támogat a mobilos Safariban, így azt mindenképp támogatnia illik minden oldalnak. A Pointer Events és a Touch Events együttélése így elkerülhetetlen, ami az eredetileg ígért egyszerűséget és közös kódbázist bombázza szét, hiszen mindkét API-t támogatni kell.

Ez hosszabb távon fenntarthatatlan, így az okos enged elv alapján a Google feladta a Pointer Events-et. Azonban a Touch Events-et nem hagyja eredeti, Apple-féle formájában a cég, hanem igyekszik olyan API-vá fejleszteni, amely megvalósítja a Pointer Events által ígért egységes kezelést és ezzel az egyszerű, szimpla implementálhatóságot. Nagy kérdés persze, hogy a kiterjesztés milyen támogatást kap a fejlesztők részéről, a Blink elterjedtsége okán várhatóan nem lesz nehéz meggyőzni a fejlesztőket.

Touch Events mindenhol

Nem a Google az egyetlen cég egyébként, amely az elmúlt időszakban felfigyelt a Touch Events megkerülhetetlenségére. A Microsoft ugyanis a mobilos Internet Explorer 11 kiadásával maga is felvette az API-t a támogatott funkciók listájára, gyakorlatilag beismerve, hogy a telefonos weben a Pointer Events egyelőre nem rúg labdába - és az Apple megoldásának ilyen széles körű támogatásával úgy tűnik, nem is fog. A Mozilla egyébként a Microsoft mellett a Pointer Events támogatója maradt, nyilván az is kérdés, hogy meddig.

a címlapról