Una solució híbrida

  • Revision slug: Web_Development/Mobile/A_hybrid_approach
  • Revision title: Una solució híbrida
  • Revision id: 364443
  • Created:
  • Creator: trevorh
  • Is current revision?
  • Comment Move translated content from English page

Revision Content

Les bales de plata costen de trobar en el desenvolupament web — és molt més probable que empris estratègies que fan ús de vàries tècniques segons les circumstàncies. I això ens du a la nostra tercera solució pel desenvolupament web amigable amb el mòbil, que tracta d'evitar les deficiències de les altres dues solucions (diferents webs i única web amb disseny sensible), combinant-les.

Aquest enfoc híbrid se centra en atacar per separat cada un dels tres objectius del desenvolupament web per als mòbils, i aplicar les millors solucions tècniques disponibles a cada un d'ells. Aquest article presenta aquí una potencial combinació de tècniques, però en altres circumstàncies pot convenir una combinació diferent. El concepte clau que cal recordar i entendre és que per resoldre les teves necesitats concretes pots combinar les tècniques que calgui de banda del servidor amb les aplicades al navegador.

Avantatges

El disseny sensible (responsive design) està força bé — ara mateix [NT: juny 2011] és la millor tècnica disponible per a fer que els nostres layouts web es vegin bé en una àmplia varietat de circumstàncies. Si l'ús que se li ha de donar a les versions mòbil i de PC de la teva web són suficientment similars, llavors aquesta és la solució preferible pels teus layouts. Encara que -no s'ha d'oblidar- pot ser una mica cansat continuament usar tècniques (CSS i Javascript) per modificar la presentació de continguts que es presenten segons el context.

Afortunadament, no hi ha motius tècnics que ens forcin a emprar tècniques de la banda del navegador per a aquesta tasca: tenim l'opció de fer servir la detecció del user-agent des de la banda del servidor per a escollir el contingut que volem mostrar a l'usuari. Això no reduirïa la complexitat d'alterar el contingut des de la banda del servidor, però encara permetria que els nostres layouts es beneficiessin de la flexibilitat i futura llegibilitat del disseny sensible.

L'ús de la detecció del user-agent pel contingut i no pas pel layout també et permetria tenir una única URL per a ambdós continguts, puix que el contingut pot adaptar la seva disposició al navegador de l'usuari. Això normalment es veu com a una bona solució. En lloc de mantenir dues versions completament diferents de la web, simplement redirigim els usuaris a les planes amb el contingut que els hi escau. I donat que el disseny és sensible, saps que cada plana es veurà tan bé com és possible a la pantalla de l'usuari.

També podem donar solució a alguns dels problemes de rendiment del disseny sensible incorporant certes tècniques des de la banda del servidor. Per exemple, un dels punts més criticats als dissenys sensibles és que les imatges són enviades a tots els dispositius amb la mateixa resolució, incloent telèfons els quals redimensionen les imatges inteligentment. Una tècnica per a evitar aquest inconvenient empra la detecció del user-agent des del servidor juntament amb la llibreria de detecció de capacitat del dispositiu de WURFL per a enviar una imatge ja reescalada segons el dispositiu de l'usuari. Estan sorgint una àmplia gama de productes que proporcionen això com a webservice. És clar, aquesta tècnica pateix els desavantatges associats a la deteccció del user-agent. Però inclús si això no funciona, el rendiment no és pitjor que emprant només imatges fluides.

Combinant les tècniques ja mencionades, podem obtenir una estratègia de desenvolupament web mòbil que és més flexible que les webs fetes diferents (mòbil vs. PC) i té millor rendiment que un disseny sensible pur.

Inconvenients

Un inconvenient de les solucions híbrides és que poden conduir a un augment en el nombre de vies de codi que treballen en paralel, tant del costat del navegador com del servidor. Això és tradueix en un molt probablement major consum de temps en programació que d'altres solucions. Encara que amb la correcta planificació, podem tenir el codi organitzat d'una manera asequible per les tasques de manteniment.

Un altre inconvenient és que com que aquesta solució romàn sobre l'ús d'un disseny sensible, és més factible i eficaç per a projectes de nova planta o que ja disposen d'un layout flexible, però no és així per a webs que ja tenen la versió d'escriptori ben construida. De igual forma, puix que emprem la detecció del user-agent, hauràs d'actualitzar les regles de detecció amb el temps continuament. [NT: donat que ja s'ha esmentat que hi ha web services que faciliten aquesta tasca amb un grau òptim de fiabilitat i amb facilitat d'integració en qualsevol CMS com una extensió o llibreria, no li veig al què a aquest inconvenient... és una opinió personal].

Quan és adient escollir aquesta solució

Sempre té sentit considerar combinar tecnologies del costat del navegador i del servidor; n'hi ha tantes opcions disponibles en aquest sentit que convé calibrar els pros i els contres de cada tècnica que emprem.

En molts casos, no és necesària la complexitat afegida del model híbrid. Per exemple, potser ni necesites ajustar el contingut en funció del dispositiu emprat per l'usuari —podria ser suficient sabent si una característica és present al seu navegador. Això ho podries discernir des del costat del navegador emprant una detecció per javascript. No pot fer mal excavar una mica i preguntar-te al voltant de quin eix vols centrar el teu contingut en cada cas.

Hem parlat d'afegir tècniques del costat del servidor a un disseny sensible, però també hi ha formes d'implementar un sistema híbrid per a casos on necesites que les versions mòbil i d'escriptori siguin diferents. Podries, per exemple, augmentar la flexibilitat d'amdós versions incorporant a cada una d'elles media queries [NT: indicar al navegador que carregui i apliqui diferents fulls d'estils CSS segons les característiques físiques del navegador] i un layout flexible. D'aquesta forma podries fer que la teva versiò mòbil treballés millor -més adaptativament- sobre les tabletes.well.

Exemples

webowonder_mobile_and_desktop-300x225.jpgPer a la web demo de Mozilla O’ Wonder, vam provar una versió bàsica de solució híbrida, amb resultats positius. Vam emprar alguns elements de disseny web sensible per donar a la web un layout mòbil, mentres que empràvem la deteccció de user-agent per a oferir videos amigables amb el mòbil i per a re-ordenar les demos si l'usuari era en un telèfon. Fes una ullada al seu codi si vols, que tenim al github.

Ben aviat podríem estar fent més desenvolupaments en aquesta línia! De fet, una possible via per a la web principal de Mozilla s'ha esbossat amunt a la secció "Avantatges":

  • Emprant la detecció de user-agent, dirigir als visitants a una plana de benvinguda per a la versió de Firefox del seu dispositiu.
  • Cada plana de la web hauria de veure's genial a una àmplia varietat de resolucions de pantalla, construint-se amb un disseny sensible en ment.
  • Hi ha plans futurs de provar de servir imatges adaptades a diferents user-agent.

De moment no hi ha gaire que veure pel mòbil, puix que encara som a la etapa de planificació del desenvolupament, però sempre pots visitar i veure com creix el nou mozilla.org al github. Suscriu-te al bloc Mozilla Webdev per assebentar-te dels progressos que fem.

Resum

No hi ha una solució única per tots els casos. Les aplicacions web que pels usuaris de la versió mòbil necesiten adaptar molt els continguts o les funcionalitats que ofereixen probablement hauran de desenvolupar una web diferent a la d'escriptori. En canvi, planes orientades al contingut que no necesiten modificar el contingut pels usuaris mòbils quedaran bastant satisfets amb un disseny web sensible. Si el que necesites és canviar només lleugerament el missatge pels usuaris mòbils, i vols conservar els beneficis d'un disseny sensible, una solució híbrida pot ser la teva millor opció. Decisions com aquesta són al cor del desenvolupament de webs mòbils: sigues concret en quan al que t'agradaria aconseguir, i escull una solució pràctica sient conscient dels avantatges i inconvenients. Bona sort!

Enfocs del desenvolupament de webs mòbils

Llegeix els articles següents per a entendre el fons i les estratègies de desenvolupament per a mòbils.

Informació del document original

Aquest article va ser publicat originalment al 27 de Juny de 2011, al bloc Mozilla Webdev com "Approaches to Mobile Web Development Part 4 – A Hybrid Approach", per Jason Grlicky.

 

Revision Source

<p>Les bales de plata costen de trobar en el desenvolupament web — és molt més probable que empris estratègies que fan ús de vàries tècniques segons les circumstàncies. I això ens du a la nostra tercera solució pel desenvolupament web amigable amb el mòbil, que tracta d'evitar les deficiències de les altres dues solucions (<a href="/ca/Web_Development/Mobile/Separate_sites" title="en/Web development/Mobile/Separate sites">diferents webs</a> i <a href="/ca/Web_development/Mobile/Responsive_design" title="en/Web_development/Mobile/Responsive_design">única web amb disseny sensible</a>), combinant-les.</p>
<p>Aquest enfoc híbrid se centra en atacar per separat cada un dels <a href="/ca/Web_Development/Mobile/Mobile-friendliness" title="en/Web development/Mobile/Mobile-friendliness">tres objectius del desenvolupament web per als mòbils</a>, i aplicar les millors solucions tècniques disponibles a cada un d'ells. Aquest article presenta aquí una potencial combinació de tècniques, però en altres circumstàncies pot convenir una combinació diferent. El concepte clau que cal recordar i entendre és que per resoldre les teves necesitats concretes pots combinar les tècniques que calgui de banda del servidor amb les aplicades al navegador.</p>
<h2 id="The_Good">Avantatges</h2>
<p>El disseny sensible (<em>responsive design</em>) està força bé — ara mateix [NT: juny 2011] és la millor tècnica disponible per a fer que els nostres <em>layouts</em> web es vegin bé en una àmplia varietat de circumstàncies. Si l'ús que se li ha de donar a les versions mòbil i de PC de la teva web són suficientment similars, llavors aquesta és la solució preferible pels teus <em>layouts</em>. Encara que -no s'ha d'oblidar- pot ser una mica cansat continuament usar tècniques (CSS i Javascript) per modificar la presentació de continguts que es presenten segons el context.</p>
<p>Afortunadament, no hi ha motius tècnics que ens forcin a emprar tècniques de la banda del navegador per a aquesta tasca: tenim l'opció de fer servir la detecció del <em>user-agent</em> des de la banda del servidor per a escollir el contingut que volem mostrar a l'usuari. Això no reduirïa la complexitat d'alterar el contingut des de la banda del servidor, però encara permetria que els nostres <em>layouts</em> es beneficiessin de la flexibilitat i futura llegibilitat del disseny sensible.</p>
<p>L'ús de la detecció del <em>user-agent</em> pel contingut i no pas pel <em>layout</em> també et permetria tenir una única URL per a ambdós continguts, puix que el contingut pot adaptar la seva disposició al navegador de l'usuari. Això normalment es veu com a una <a class="external" href="http://www.w3.org/TR/mobile-bp/#OneWeb" title="W3C One Web Recommendation">bona solució</a>. En lloc de mantenir dues versions completament diferents de la web, simplement redirigim els usuaris a les planes amb el contingut que els hi escau. I donat que el disseny és sensible, saps que cada plana es veurà tan bé com és possible a la pantalla de l'usuari.</p>
<p>També podem donar solució a alguns dels problemes de rendiment del disseny sensible incorporant certes tècniques des de la banda del servidor. Per exemple, un dels punts més criticats als dissenys sensibles és que les imatges són enviades a tots els dispositius amb la mateixa resolució, incloent telèfons els quals redimensionen les imatges inteligentment. <a class="external" href="http://wurfl.sourceforge.net/utilities/imageserver.php" title="WURFL Image Server">Una tècnica</a> per a evitar aquest inconvenient empra la detecció del <em>user-agent</em> des del servidor juntament amb la llibreria de detecció de capacitat del dispositiu de <a class="external" href="http://wurfl.sourceforge.net/" title="WURFL device capability library">WURFL</a> per a enviar una imatge ja reescalada segons el dispositiu de l'usuari. Estan sorgint una <a class="external" href="http://imgble.com/" title="IMGBLE">àmplia gama</a> de <a class="external" href="http://www.sencha.com/products/io/" title="Sencha IO">productes</a> que proporcionen això com a webservice. És clar, aquesta tècnica pateix els desavantatges associats a la deteccció del <em>user-agent</em>. Però inclús si això no funciona, el rendiment no és pitjor que emprant només <a class="external" href="http://unstoppablerobotninja.com/entry/fluid-images/" title="Fluid Images">imatges fluides</a>.</p>
<p>Combinant les tècniques ja mencionades, podem obtenir una estratègia de desenvolupament web mòbil que és més flexible que les webs fetes diferents (mòbil vs. PC) i té millor rendiment que un disseny sensible pur.</p>
<h2 id="The_Bad">Inconvenients</h2>
<p>Un inconvenient de les solucions híbrides és que poden conduir a un augment en el nombre de vies de codi que treballen en paralel, tant del costat del navegador com del servidor. Això és tradueix en un molt probablement major consum de temps en programació que d'altres solucions. Encara que amb la correcta planificació, podem tenir el codi organitzat d'una manera asequible per les tasques de manteniment.</p>
<p>Un altre inconvenient és que com que aquesta solució romàn sobre l'ús d'un disseny sensible, és més factible i eficaç per a projectes de nova planta o que ja disposen d'un <em>layout</em> flexible, però no és així per a webs que ja tenen la versió d'escriptori ben construida. De igual forma, puix que emprem la detecció del <em>user-agent</em>, hauràs d'actualitzar les regles de detecció amb el temps continuament. [NT: donat que ja s'ha esmentat que hi ha web services que faciliten aquesta tasca amb un grau òptim de fiabilitat i amb facilitat d'integració en qualsevol CMS com una extensió o llibreria, no li veig al què a aquest inconvenient... és una opinió personal].</p>
<h2 id="When_it_is_right_to_choose_this_option">Quan és adient escollir aquesta solució</h2>
<p>Sempre té sentit considerar combinar tecnologies del costat del navegador i del servidor; n'hi ha tantes opcions disponibles en aquest sentit que convé calibrar els pros i els contres de cada tècnica que emprem.</p>
<p>En molts casos, no és necesària la complexitat afegida del model híbrid. Per exemple, potser ni necesites ajustar el contingut en funció del dispositiu emprat per l'usuari —podria ser suficient sabent si una característica és present al seu navegador. Això ho podries discernir des del costat del navegador emprant una detecció per <a class="external" href="http://www.modernizr.com/docs/#s2" title="Features Detected by Modernizr">javascript</a>. No pot fer mal excavar una mica i preguntar-te al voltant de quin eix vols centrar el teu contingut en cada cas.</p>
<p>Hem parlat d'afegir tècniques del costat del servidor a un disseny sensible, però també hi ha formes d'implementar un sistema híbrid per a casos on necesites que les versions mòbil i d'escriptori siguin diferents. Podries, per exemple, augmentar la flexibilitat d'amdós versions incorporant a cada una d'elles <em>media queries</em> [NT: indicar al navegador que carregui i apliqui diferents fulls d'estils CSS segons les característiques físiques del navegador] i un <em>layout</em> flexible. D'aquesta forma podries fer que la teva versiò mòbil treballés millor -més adaptativament- sobre les tabletes.well.</p>
<h2 id="Examples">Exemples</h2>
<p><img align="right" alt="webowonder_mobile_and_desktop-300x225.jpg" class="internal rwrap" src="/@api/deki/files/5895/=webowonder_mobile_and_desktop-300x225.jpg" />Per a la web demo de Mozilla O’ Wonder, vam provar una versió bàsica de solució híbrida, amb resultats positius. Vam emprar alguns elements de disseny web sensible per donar a la web un <em>layout</em> mòbil, mentres que empràvem la deteccció de <em>user-agent</em> per a oferir videos amigables amb el mòbil i per a re-ordenar les demos si l'usuari era en un telèfon. Fes una ullada al seu codi si vols, que tenim al <a class="link-https" href="https://github.com/mozilla/webowonder/" title="Mozilla's Web O' Wonder Source Code">github</a>.</p>
<p>Ben aviat podríem estar fent més desenvolupaments en aquesta línia! De fet, una possible via per a la web principal de Mozilla s'ha esbossat amunt a la secció "Avantatges":</p>
<ul>
  <li>Emprant la detecció de <em>user-agent</em>, dirigir als visitants a una plana de benvinguda per a la versió de Firefox del seu dispositiu.</li>
  <li>Cada plana de la web hauria de veure's genial a una àmplia varietat de resolucions de pantalla, construint-se amb un disseny sensible en ment.</li>
  <li>Hi ha plans futurs de provar de servir imatges adaptades a diferents <em>user-agent</em>.</li>
</ul>
<p>De moment no hi ha gaire que veure pel mòbil, puix que encara som a la etapa de planificació del desenvolupament, però sempre pots visitar i veure com creix el nou mozilla.org al <a class="link-https" href="https://github.com/mozilla/bedrock" title="New Mozilla.com Source Code">github</a>. Suscriu-te al bloc <a class="external" href="http://blog.mozilla.com/webdev/" title="http://blog.mozilla.com/webdev/">Mozilla Webdev</a> per assebentar-te dels progressos que fem.</p>
<h2 id="Summary">Resum</h2>
<p>No hi ha una solució única per tots els casos. Les aplicacions web que pels usuaris de la versió mòbil necesiten adaptar molt els continguts o les funcionalitats que ofereixen probablement hauran de desenvolupar una web diferent a la d'escriptori. En canvi, planes orientades al contingut que no necesiten modificar el contingut pels usuaris mòbils quedaran bastant satisfets amb un disseny web sensible. Si el que necesites és canviar només lleugerament el missatge pels usuaris mòbils, i vols conservar els beneficis d'un disseny sensible, una solució híbrida pot ser la teva millor opció. Decisions com aquesta són al cor del desenvolupament de webs mòbils: sigues concret en quan al que t'agradaria aconseguir, i escull una solució pràctica sient conscient dels avantatges i inconvenients. Bona sort!</p>
<h2 id="Approaches_to_mobile_Web_development">Enfocs del desenvolupament de webs mòbils</h2>
<p>Llegeix els articles següents per a entendre el fons i les estratègies de desenvolupament per a mòbils.</p>
<ul>
  <li><a href="/ca/Web_Development/Mobile/Mobile-friendliness" title="Wat is CSS">Què és una web amigable amb els mòbils?</a></li>
  <li><a href="/ca/Web_Development/Mobile/Separate_sites" title="en/Web development/Mobile/Separate sites">Diferents webs per la versió mòbil i la de PC</a></li>
  <li><a href="/ca/Web_Development/Mobile/Responsive_design" title="en/Web development/Mobile/Responsive design">Un únic disseny sensible per la teva web</a></li>
</ul>
<div class="originaldocinfo">
  <h3 id="Original_document_information">Informació del document original</h3>
  <p>Aquest article va ser publicat originalment al 27 de Juny de 2011, al bloc Mozilla Webdev com "<a class="external" href="http://blog.mozilla.com/webdev/2011/06/27/approaches-to-mobile-web-development-part-4-%E2%80%93-a-hybrid-approach/" title="http://blog.mozilla.com/webdev/2011/06/27/approaches-to-mobile-web-development-part-4-%E2%80%93-a-hybrid-approach/">Approaches to Mobile Web Development Part 4 – A Hybrid Approach</a>", per Jason Grlicky.</p>
</div>
<p>&nbsp;</p>
Revert to this revision