Ugrás a főmenüre.
Web 2010.05.10.

Egy alternatív mobilos megoldás

Vége a szép időknek, amikor egy weboldalt elég volt 1024x768-ra tervezni, ma már érzékelhető forgalom érkezik mobil eszközökről. Erre az első válasz a mobil változatok megjelenése volt, de ez szerintem nem elég, nem így kellene. A Media2Radio-val már két hónapja kísérletezünk egy másik megközelítéssel.

A következő problémáim vannak a "klasszikus" mobil változatokkal:

  • A fenntartása drágább, hiszen minden front-end dologból új kell neki (HTML, CSS, interfész-tervezés), duplán dolgozunk.
  • A duplán dolgozást sokszor elfelejtik, a mobilos változat "mostohagyerek", nem követi a desktop változat változásait. Előfordul, hogy rosszul működik, régen jó volt, de valami kimenet megváltozott a desktop miatt, így hibával száll el.
  • Eszközspecifikus mobil változatok, például iPhone skin: a többi mobilon nem biztos, hogy jó ez, csak egyfajta mobilra készülünk? Ne már! (Pedig iPhone-buzi vagyok.)
  • Macerás többféle eszközre tervezni, márpedig ezekből egyre többféle van. Egy oldalnak ma már egészen hihetetlen felbontásokban is kell menni, a mindenféle kézi-kütyük pedig összevissza méretekben érkeznek, ráadásul forgathatók. Ez egyre "rosszabb" lesz.
  • A mobilos (handheld) stylesheet nem igazán működik, egyre több mobil böngészője hazudja magát desktop-nak. Olvasd el az A List Apart vonatkozó cikkét, tragikusan kaotikus a dolog, a cikkben lévő megoldási javaslat bonyolult, nehezen tartható karban.

A Media2Radio-nál kísérletezett megoldásról

A Media2Radio egy "klasszikus" elrendezésű weboldal, ezekből a részekből áll: fő tartalom, kiegészítő tartalom, navigáció, fejléc és lábléc. A fő és kiegészítő tartalom alkotja az oldal "törzsét", két oszlopban. A kiegészítő tartalomban vannak a keresztbeajánlások és egyéb kevésbé fontos "bizbaszok", a fejléc szerepe leginkább az, hogy szép legyen, a lábléc pedig azért van, hogy "ne lógjon az oldal a levegőben", és oda tettünk néhány kevésbe fontos navigációs elemet is.

Első lépésként érdemes a fentiek szerint felosztani a tartalmat, mert egyből nyilvánvalóvá válik, hogy mit kell a mobilos részből kidobni: a kiegészítő részt és a fejlécet. A mobilos megjelenés a navigációval kezd, ami lehetőleg csak néhány pontból álljon, senki nem fog 6-7 elemnél több lehetőségben böngészgetni, nem kényelmes. A tartalmi részben minden rugalmas szélességű legyen, így jól fog megjelenni a desktop változat kb. 500 pixel szélességű dobozában és egy mobil képernyőjén is. A mobilos megjelenés végén ismét a lábléc érkezik, a kevésbé fontos linkekkel.

Csak egyféle CSS-t készítettünk, nincs handheld és @media, meg egyebek. A lehető legtöbb elem mérete em-ekkel lett megvalósítva, hogy mindenhol rugalmasan jó legyen. És most a legfontosabb:

Mindenhol a mobilos változat az első, a CSS és a HTML kimenet is így lett megírva, csak akkor érkeznek a desktop elemek, ha a képernyő szélessége elég nagy.

Minden munkamenet elején megnézzük JavaScript-tel a screen.width tulajdonságot, ez szerencsére minden böngészőben elérhető és jól működik. Ha nagyobb 800-nál, akkor jelenítjük meg (szintén JavaScript-tel) a többi tartalmat. Ezeket nem húzzuk be mondjuk egy AJAX kéréssel, hanem ott van már a JavaScript kódban sima változóban tárolt HTML kódként, hogy gyors legyen. Amúgy is csak néhány kByte.

Mi van, ha nincs JavaScript? No problem, akkor csak a mobilos változat látszik, attól még használhatók maradunk.

A CSS kód nem változik, mindössze a body tag kap egy 'bigscreen' class-t. A CSS úgy van megírva, hogy a végén található néhány sornyi body.bigscreen kivétel, így lesz a mobilos CSS-ből desktop. Bumm.

Egyéb apróságok, in no particular order

A margók mindenhol meg lettek növelve, szép nagy white-space-ek vannak mindenhol azért, hogy tapiképernyőn is könnyen lehessen a bumfordi ujjakkal nyomkodni.

Az űrlapokat lerövidítettük, csak a legszükségesebb mezőket tartalmazzák, mert mobilon nehézkes a kitöltés, és desktop-on is lusta mindenki. 2010-ben már pláne nem szabad olyan modellekben gondolkodni, ami sok mezőn alapul.

Csak egeres dolgoknál van mouse over, mindennek működnie kell anélkül is, maximum nem lesz olyan szép.

Ha embed-delünk valami objektumot (hogy legyen zoxigén), akkor tegyük alá/mellé a tartalomra mutató direkt linket is, mert ahány mobil eszköz, annyiféle képpen eszi az ilyesmit. Példa: egy YouTube videónál az embed kód alá kerüljön a videó saját oldalára mutató link, hogy azok az eszközök, amik nem jelenítenek meg ilyesmit, el tudják indítani a saját YouTube appjukat, ha van nekik olyan.

Másik példa: az mp3-akat Flash lejátszókban mutatjuk, de adunk direkt mp3 linket is, ha nincs a gépen Flash (és nem, a HTML5 audio player-ek sem működnek minden mobilos eszközön!). A noembed és egyéb alternatív tartalom csacsiságok sajnos nem működnek minden mobilos böngészővel, ezért kell ez a fapados megoldás.

Képek

Érthető, hogy minél kisebb letöltési méret kell, de sokan nem gondolnak a memóriaigényre.

A mobilos böngészők általában nagyon kevés RAM-ot használhatnak (a desktop-hoz képest), és hiába a kis letöltési méret (mondjuk 3 kB), a képek általában a felbontásuknak megfelelő szeletet hasítják ki a memóriából, pl. egy 100x100-as 4 csatornás PNG rögtön 40 kB-ot. Ha ezekből több van, akkor pillanatok alatt el lehet érni a több mB méretet, a böngésző pedig elszáll. Hányszor dobott ki a mobilos böngésződ emiatt, ugyeugye?

Miért jó ez nekünk?

Biztos van még valami, amit kifelejtettem, de a lényeget olvashattátok. A végére itt a slusszpoén, hogy miért érte meg ezt az egészet csinálni azon kívül, hogy többféle eszközön is kábé használhatók maradunk: állandó, tartós növekedést eredményezett a látogatásokban (17%), az oldalon eltöltött idő pedig 23%-kal nőtt.

3 hozzászólás

  1. idézem 2010.05.10. 16:48
    • goldhand
    Éppen most lesz 1 projectem ahol lehetőséget kell adni, hogy mobilkészüléken is eltudják érni az oldalt a felhasználók, úgyhogy ez a cikk most épp kapóra jött. ;)

    Viszont nálunk fordult a kocka, először ugyanis az asztali környezetre terveztük az oldalt, majd most jön a mobilos környezet, hogy mennyivel lesz vesződségesebb... majd meglátjuk :)

    Cikk jó. Köszönjük.

    gh
  2. idézem 2010.05.10. 21:45
    • fm
    Nagyon tetszik az ötlet! Ráadásul így (megfelelően megoldva) a keresők is a lényeges tartalmat fogják látni…

    Hányszor belefutottam már, hogy egy oldalon kerestem valamire, és mindenféle találatot kiadott a Google, amikor az oldalsávon (akkor!) hivatkoztak a keresett dokumentumra – persze, amikor én betöltöttem, már más volt az ajánló boxban…
  3. idézem 2010.06.02. 15:30
    • bpelhos
    Régen jártam erre, de ezért érdemes volt.
    Jó megoldások és jó összefoglaló a témáról.
Új hozzászólás
A sortörések automatikusak. Csak az üzenet kitöltése kötelező, a többi mező opcionális. A megadott e-mail címet nem tesszük közzé. Engedélyezett HTML tagek: p, a, strong, em, blockquote, ul, ol, li, dl, dt, dd.

Legutolsó hozzászólások

Diszkórobbanás a 90-es években és a legendás Campari diszkó: Árpika Palotáról: Szia ZooLou :-9 Te melyik részen melóztál?

Teh early agez... (így kezdődött) 1990-1992: Tamás Hölzer: Szia Gábor! Hozzájárulsz, hogy a http://zenci-blog.blogspot.com/p/disco-story.html blogban linkeljem a diszkó "történelmed"? Üdv; tamás

Diszkórobbanás a 90-es években és a legendás Campari diszkó: ZooLou: Finucsi, PG, Függöny, Dj Tökimanó, Barbi, Kacsa, Virág, Feri, Erzsi, Jana, és még sokan a csapatból! Én is lehúztam egy kis időt ott,...

A csatlakozás az iPhone Developer Program-hoz szívás: Nyéki Zoltán: Sziasztok, Arról nincs információtok vagy tanácsotok, hogy egy magyarországi kisvállalkozásnak hogy kell regisztrálnia az Applenél, hogy...

Rólam és a blogról: Szanto Peter: Szia, en is szeretnek veled app fejlesztes ugyben beszelni:) Ha aktualis szamodra uj projekt befogadasa, akkor kerlek irj. koszi, p

iMect means internet, media and other cool things. We're a small company located in Hungary. There is a big footer on every page where you can discover what we do and what happens with us.

Az iMect jelentése: internet, média és egyéb király dolgok. Egy kis magyar cég vagyunk. Minden oldalon van egy nagy lábléc, ahol felfedezheted, hogy mivel foglalkozunk.