Mobile Detect?
Sziasztok! Szerintetek mennyire elfogadható megoldás az, hogy szerver oldalon állapítom meg, hogy a kliens mobil telefon, tablet vagy asztali számítógép?
Egy lehetséges megvalósítás: http://mobiledetect.net/
■ Egy lehetséges megvalósítás: http://mobiledetect.net/
Elterjedt
Más megoldás?
A kérdés mindenképpen arra vonatkozott, hogy ez mennyire járható, ha nem ez a megoldás, akkor mi? JavaScript-ből könnyebben meg tudom állapítani, hogy mobil telefonon vagyunk-e vagy sem? (a tablet jelenleg nem aktuális kérdés, ám ha foglalkozunk az azonosítással, akkor jó lenne ezt is tisztázni a későbbi fejlesztések miatt, de jelenleg erről még nincs szó)
Nem mondom, hogy jó megoldás,
Mi egyik projektben modernizr touch és kijelző orientáció alapján mondtuk azt, hogy mobil nézetben vagyunk-e.
Tehát ha van touchscreen és álló a kép, akkor toltuk a mobil verziót.
A felesleges cuccokat meg js-sel inicializáld, ha már biztos, hogy nem mobil vagy.
Ettől függetlenül rakj ki nézet váltási lehetőséget.
Esetleg csinálhatsz vmi performance tesztet js-sel és az alapján is támogathatod a döntést, hogy mi jelenjen meg. (csak ugye sok mindentől függhet, hogy épp mennyire teker a proci, egyebek)
Mintha volna lehetőség olyan header küldésére, hogy asztali nézetet kérek (nekem a tableten chrome-ban legalábbis van ilyen), ennek is nézz utána.
Nem biztos, hogy jó ötlet amúgy különválasztani a mobil és asztali nézet fejlesztését.
Ha px alapú designban gondolkozol nézz utána az em-nek, beállítasz (vagy nem) a bodynak egy betűméretet, és minden méret ennek a függvénye lesz. egy kényelmesen olvasható bekezdés kb 35em széles 1.7 - 1.9 em sormagassággal, az alapnál kicsit nagyobb szóközökkel.
Mobil nézet mondjuk 35em széles legyen úgy állítsd be a font-size értékét (a sokféle kijelző különböző pixelsűrűségét ezzel le is tudtad, van olyan meta tag, hogy initial-scale, ez legyen 1), a desktop nézet meg legye 75em pl, aztán csinálhatod amit szoktál..
Ebből egy vitaindító lett, úgy látom. Amúgy ki hogyan csinálja manapság?
Különválasztás?
Eddig csak azért nem választottuk ketté a két verziót, mert nem volt erre kellő kapacitás, igazából semmilyen hasznát nem látjuk a közös kiindulópontnak. (lesznek persze közös JS fájlok, meg a szerver oldal közös, de a közös HTML oldal jelenleg inkább csak akadály)
Az egyszerűség kedvéért beszéljünk a GMail-ről, azt a példát mindenki ismeri, illetve ekkor nem kell irreleváns részletekbe belemenni.
Az alapfunkciót mindegyik verzió tudja, de mégis a külalakja jelentősen eltér, illetve a mobil verzióból számtalan extra funkció hiányzik. A cél nálunk is pont ugyanez. Az Ajax hívások válaszai ugyanazok lesznek, de már szerintem magát a megjelenítő listát sem ugyanaz a JavaScript fogja generálni.
Alkalmazás
És nem arra akarok célozni, hogy könnyebben megállapíthatod hogy telefon, vagy tablet, elvégre annak semmi értelme sincs. Amire támaszkodni kell: mekkora a képernyő, és van-e érintés támogatás, illetve a felhasználó használja-e. A felhasználói felületet igazából csak ezekre kellene alapozni, nem arra, hogy telefon-e vagy nem. Ezen kívül minden verziót gyorsítani illik, nem csak a mobil-t. Mennyiben különlegesebb a mobil, mint a nem mobil? Lassú processzor, lassú internet és kicsi képenyő asztali gépen is előfordul, sőt egyes mobiloknak jobb a felbontása és internet sebessége mint egyes asztali gépekenk.
feature detect?
Miért alapértelmezett, hogy üres a HTML, ha alkalmazást készítünk?
Mi van, ha különböző platformon különböző JS keretrendszert akarunk használni? Nincs még semmi sem eldöntve, de a mobil verzióhoz a Sencha Touch elsőre szimpatikusnak tűnt, ám ahogy nézem már Firefox-on sem teljesen százaz, IE-ról nem is beszélve.
Mennyire megbízható a
'ontouchstart' in document.documentElement
JavaScript ellenőrzés? Számtalan ilyen és hasonló ellenőrzéseket látok, de nem tudom, hogy megbízhatunk-e benne?Érzékelés
Ennek nem sok hasznát látom, mert egy szolgáltatást akkor többször kell implementálni és tesztelni. Minél egységesebb a kód, annál könnyebb lesz az egészet karbantartani.
Egér, touch kezelésére ajánlom figyelmedbe például a Hammer.js-t, ami nagyszerűen egyesíti a bevitelek kezelését.
Hammer.js?
Ha például elkezdeném használni a Hammer.js -t, akkor minden egyes kattintást ezen a rendszeren keresztül kellene megvalósítani, hogy biztosan minden készüléken megfelelően működjön? Ez hatalmas munkának tűnik. Pedig nem is a kattintást gondoltam a legnagyobb problémának, alkalmazásunkban a scrollbar hiánya miatt használhatatlan a jelenlegi verzió. Ám gondolom még vagy ezernyi apróság van, ami miatt az eddigieket újra kell írni...
Mindenképpen szükséged lenne
Igazad lehet…
Különbségek
Utána megyek majd…
Fejleszd tovább
Fejleszd tovább, ma már több kell.
Jó lehet az is, ha választhat a kliens és lemented egy sütibe, vagy userid alapján.
Hirtelen inkább sütire szavaznék, mert több gépről is jöhet.
Itt is UserAgent.
$this->CI->agent->is_mobile()
A kérdés pont az, hogy megállapítható szerver oldalon, hogy mobilról beszélünk-e, illetve mennyire jól állapítható meg? Ha jól veszem ki, akkor te is ezt a verziót használod, kiegészítve, hogy a váltás lehetőségét meghagyod. Fejlesztés alatt meg arra gondolsz, hogy session helyett sütiben tartani az értéket?
Azt azért nem tartom annyira jó ötletnek, hogy meg sem próbáljuk kitalálni a készülék típusát, minden új felhasználót nem akarok választás elé állítani.
igen
Ezért kell még a választási lehetőség is, és ha már kiválasztotta (ez maradt ki a cikkből), "illik" megjegyezni, hogy mit akart. Aztán ha visszavált, azt jegyzed meg.