Enviar respuesta 
 
Calificación:
  • 0 votos - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
Simplificar mappings para varias plataformas
17-09-2015, 05:12 PM
Mensaje: #1
Simplificar mappings para varias plataformas
Hola,
recientemente he adaptado una aplicación que inicialmente funcionaba sólo en WM, para que también funcione en Android. En general, la adaptación ha sido relativamente sencilla, salvo en los contents. Dada la gran diferencia que hay en la representación gráfica en estas plataformas se hace muy complicado. En muchos de los casos, el cliente ha preferido que la información que se muestra en cada plataforma sea distinta para ahorrar espacio en pantalla y ver más registros simultáneamente. Y lo que es peor, el orden de los datos distinto. Soluciones hay varias, por ejemplo:
- Duplicar los contents y mostrar uno u otro en función de la plataforma. El gran inconveniente es que necesitas dos colecciones para lo mismo y, si los hay, complica los scripts que trabajan sobre esos contents.
- Otra solución es mostrar u ocultar props de la coleccion content en función de la plataforma. El disablevisible no funciona para esto y hay que hacerlo con el atributo class. El inconveniente es que no soluciona el problema del orden. Además obliga a usar una clase diferente para cada prop, por lo que el .css crece bastante.
Finalmente la opción que he utilizado es:
- Usar una única colección para ambas plataformas.
- Dentro de la colección duplicar los props visibles. Los visibles en WM les he puesto class="VisibleWM" y los visibles en android les he puesto class="VisibleAndroid"
Con esto consigo el objetivo sin complicar demasiado el proyecto, pero por otra parte pierdo el poder aprovechar el atributo class para temas de colores, fuentes, etc. Dentro de poco tengo que hacer lo mismo con otro proyecto. Está en WM y debe funcionar también en android, por lo que ¿hay alguna manera más sencilla de hacer esto? Una forma que ayudaría y mucho, y no sólo para este caso de los contents en varias plataformas, sino también el los proyectos en general sería poder usar el atributo class, por ejemplo de esta forma class="Clase1;Clase2;Clase3". ¿Sería viable?

Un saludo
Encuentra todos sus mensajes
Cita este mensaje en tu respuesta
17-09-2015, 05:23 PM (Este mensaje fue modificado por última vez en: 17-09-2015 07:15 PM por Manuel_Chaves.)
Mensaje: #2
RE: Simplificar mappings para varias plataformas
Existen varios niveles de CSS, que son: por defecto, por plataforma general, por orientación, por tamaño del dispositivo.
En ese sentido, lo que tienes que hacer es poner los atributos generales para todos las plataformas o formas en el mappings y a partir de ahí, ponerlo en distintos CSS según sea tu caso.
Encuentra todos sus mensajes
Cita este mensaje en tu respuesta
18-09-2015, 02:14 PM (Este mensaje fue modificado por última vez en: 18-09-2015 02:16 PM por Juan Carlos.)
Mensaje: #3
RE: Simplificar mappings para varias plataformas
Puedes usar la herencia de CSS a tu favor.

Supón que tienes los siguientes CSS:
Código:
<style url="default.css" encoding="ISO-8859-1" />
<style url="android_phone_vertical.css" conditions="android:phone:vertical" encoding="UTF-8" />
<style url="ios_phone_horizontal.css" conditions="ios:phone:horizontal" encoding="UTF-8" />

default.css
Código:
.estiloCampoNormal
{
    hola:Soy el estilo por defecto;
    adios:Este atributo solo está en default.css;
}

android_phone_vertical.css
Código:
.estiloCampoNormal
{
    hola:Soy un android en vertical;
}

ios_phone_horizontal.css
Código:
.estiloCampoNormal
{
    hola:Soy un iphone en horizontal;
}

Cuando el framework pregunte por el atributo hola, devolverá el específico de cada plataforma, cuando pregunte por adios, devolverá el mismo siempre. Como siempre los atributos definidos en el mappings tendrán preferencia.

Recordar que en Android existen "hiphone" y "mini" también como condiciones de dispositivo, para distintas densidades de pantalla, siendo el primero el más común.

Juan Carlos Rabanal Villalobos.
Computer Global Software - CGSoft
Encuentra todos sus mensajes
Cita este mensaje en tu respuesta
Enviar respuesta 


Salto de foro:


Usuario(s) navegando en este tema: 1 invitado(s)

Contáctanos | XOne | Volver arriba | Volver al contenido | Archivo (Modo simple) | Sindicación RSS