Actualidad

06/09/2022

/ , , , , ,

Arquitecturas CSS

Introducción

Normalmente cuando queremos empezar el desarrollo de una aplicación, solemos pensar en el lenguaje de programación que vamos a usar tanto en la parte de front-end como en la parte de back-end. Una vez elegidos, continuamos pensando en la arquitectura que van a tener ambas partes.

Centrándonos en la parte de front, además de pensar en la arquitectura del lenguaje de programación elegido, tendremos que plantearnos la arquitectura de nuestro código CSS y que nos va a permitir agilizar todo el desarrollo.

Eso sí, no hay que confundir arquitectura con metodología en CSS. Mientras que la arquitectura se va a encargar de organizar las carpetas del proyecto, la metodología se va a encargar de especificar en cómo se va a nombrar las clases.

Teniendo claro esto, he indagado en las diferentes arquitecturas CSS que existen y de las cuales he seleccionado dos para analizar en este artículo: la arquitectura SMACSS y la arquitectura ITCSS. Estas dos arquitecturas se centran en organizar el CSS dependiendo de su función en una categoría o capa.

Arquitectura SMACSS

SMACSS (Scalabre and Modilar Architecture for CSS) nos va a permitir que el código CSS que desarrollemos sea escalable y modular como indica su «imaginativo» nombre. Para conseguirlo, empezamos observando los patrones que caracteriza a cada una de las categorías. Esto se hace, ya que cuando comencemos el desarrollo, sepamos en que categoría agruparlo. Las categorías son las siguientes:

Base

Son aquellos estilos que aplican directamente a los propios elementos HTML y que vamos a usar para establecer los estilos por defecto en nuestra aplicación. También se incluyen aquellos estilos que nos van a permitir eliminar o restablecer las bases a aplicar en todos los navegadores. Esto último hay que planteárselo bien, ya que, si se va a restablecer de nuevo algún valor por defecto en los elementos reseteados, no tiene sentido que se restablezca en primer lugar.

Layout

Son aquellos estilos que tienen por objecto aplicarse sobre los componentes de estructura de nuestra aplicación. Por ejemplo, el header o el footer. Para aplicarle los estilos, se hace mediante el uso del selector ID. Sin embargo, hay veces en que el layout tiene que adaptarse a las preferencias del usuario, para ello se usará una clase con el prefijo ‘l-’. Para el caso de los IDs, se nombran con precisión y sin usar un espacio en la nomenclatura. Esto ayuda a identificar fácilmente la categoría de estos estilos y a separarlos de las categorías module y state.

Module

Son aquellos estilos que aplican sobre los diferentes componentes de nuestra aplicación. Por ejemplo, la barra de navegación y el carrusel de imágenes. Estos se ubican normalmente dentro de los componentes layout aunque también pueden ubicarse dentro de otros componentes module. Para garantizar la flexibilidad, los componentes modules deben de estar diseñados para existir como componentes independientes. Para aplicarles los estilos, se hace mediante nombres de clase y hay que evitar usar IDs y selectores de elementos.

State

Son aquellos estilos que modifican los estilos de un componente cuando se da una condición. Por ejemplo, una sección de un acordeón puede estar oculta o desplegada. Hay bastantes similitudes entre un estilo aplicado a un sub-module y a un state. Ambos modifican el aspecto de un componente, pero se diferencia en lo siguiente:

  • Las reglas de state se pueden aplicar tanto a las reglas layout como a las reglas module.
  • Las reglas de state indican una dependencia con Javascript.

Las reglas de state se aplican mediante el uso de las clases. También está permitido el uso del ‘!important’, pero sólo cuando sea estrictamente necesario y evitando usarse para todas las demás reglas.

Theme

Son aquellos estilos que definen los colores y las imágenes que le dan su apariencia a nuestra aplicación. Se debe separar cada tema en su propio conjunto de estilos. Esta categoría puede afectar a las demás y se aplica mediante el uso de clases. Debe tener un nombre que especifique el tema que es y se recomienda tener un archivo por cada tema.

Arquitectura ITCSS

ITCSS (Inverted Triangle architecture for CSS) es una arquitectura CSS que nos va a permitir que el código CSS que desarrollemos sea escalable y manejable. Esto se consigue mediante la organización de los ficheros CSS de tal manera que nos permita manejar la especificidad de estos. Según su especificidad, se separa el código CSS en varias capas que se pueden representar como las secciones de un triángulo invertido. Estas capas son las siguientes:

Settings

Se utiliza con preprocesadores y es donde colocaremos el código de declaración de variables. Por ejemplo, las fuentes y las definiciones de colores.

Tools

Se utiliza con preprocesadores y es donde colocaremos los mixins y las funciones de uso global. En esta capa y en la anterior es importante no generar ningún código CSS.

Generic

Se utiliza para reiniciar y/o normalizar los estilos de los elementos HTML de nuestra aplicación. A partir de esta capa, empezaremos a generar código CSS.

Elements

Se utiliza para establecer los estilos de los elementos HTML de nuestra aplicación. A diferencia de la anterior capa, esta no tiene por objecto convertir los elementos HTML en lienzos en blanco, sino busca darle los valores por defecto a los mismos elementos HTML orientándolo a la propia aplicación.

Objects

Se utiliza para establecer los estilos de los componentes de estructura de nuestra aplicación. Por ejemplo, el header, el grid, el container y el wrap. La capa objects se aplica mediante el uso de las clases con el prefijo ‘o-’.

Components

Se utiliza para establecer los estilos de los componentes de la interfaz de usuario. Por ejemplo, la barra de búsqueda o el botón de una red social. La capa components se aplica mediante el uso de las clases con el prefijo ‘c-’.

Utilities

Se utiliza para sobrescribir o anular los estilos establecidos anteriormente en las demás capas. Es la única capa en la que está permitido el uso del ‘!important’. La capa utilities se aplica mediante el uso de las clases con el prefijo ‘u-’.

Proyectos

01/09/2022

/ , , , , , ,

Planes de salud digitales

Contexto

Sanitas ofrece a sus asegurados distintos planes de prevención de salud, categorizados como digitales y no digitales. Los asistenciales son aquellos que el asesor puede dar de alta el plan a un cliente, y los digitales son aquellos en los que el cliente se da de alta sobre dicho programa desde la app.

Con el objetivo de ofrecer el mejor servicio a sus clientes, los asesores realizan un seguimiento individualizado de los objetivos en sus planes contratados. Sin embargo, este seguimiento resulta muy costoso para los asesores, ya que implica utilizar aplicaciones distintas dependiendo del tipo de plan, y no existe sincronización entre ambas aplicaciones.

Por ello, Sanitas se plantea el objetivo de desarrollar una única aplicación que a los asesores la gestión de todos los planes de forma conjunta, simplificando el proceso de gestión y mejorando la usabilidad del sistema.

Retos

La actualización tecnológica de un sistema no solo depende de la tecnología, es muy importante la metodología de trabajo en un proyecto de migración de entornos obsoletos a entornos actualizados. Adicionalmente, en este caso se añadía la complejidad del tiempo, ya que la nueva aplicación debería estar lista con el inicio del año fiscal.

Para la gestión de los programas digitales y asistenciales se necesita encontrar una plataforma única, flexible y escalable que le permita abordar el desarrollo de nuevos programas y la evolución y mantenimiento de los actuales, además de permitir dar de alta a no asegurados.

Además, se desea aprovechar para la creación de un nuevo programa digital preventivo para ayudar a los asegurados en la prevención de enfermedades, trabajando áreas como la nutrición, la actividad física y la promoción de hábitos saludables. Dicho plan se une a otros planes digitales que se han ido elaborando en los últimos años como nutrición, entrenador personal, embarazo o salud infantil.

La solución debe permitir mejorar los costes de licenciamiento y de servicios profesionales necesarios para el desarrollo y mantenimiento de los sistemas para poder optimizar los presupuestos disponibles.

Por último, el sistema debe sincronizarse con sistemas terceros para la actualización periódica de los datos clientes, estado de los planes, etc., facilitar al explotación de datos y el reporte de información.

La solución

Para llevar a cabo una modernización exitosa de estas aplicaciones debemos hacer un acercamiento mixto. Por un lado, colaborar activamente con los responsables de las aplicaciones para conocer todo el alcance funcional, recoger los nuevos requisitos y definir correctamente todas las integraciones entre ellas y con los sistemas corporativos. Por otro lado, analizar en profundidad el código fuente de las aplicaciones ya existentes mediante el uso de herramientas.

Con este acercamiento podemos tener un conocimiento completo de las aplicaciones para su ejecución, que se plantea en tres grandes líneas:

  • Migración de planes asistenciales al nuevo modelo de datos unificado.
  • Creación de un MVP del nuevo plan preventivo digital, incorporando funcionalidades de forma progresiva.
  • Migración de los planes digitales.

Como solución técnica se desarrolla un front-end en Angular 12, comunicado con el back-end mediante una arquitectura de microservicios Java Spring Boot sobre Docker Swarm.

Adicionalmente, se desarrollaron procesos batch (Spring Batch) para la sincronización con los sistemas terceros.

Resultados

Desde el punto de vista de los asesores, se mejora su productividad y rendimiento la disponer de un entorno unificado, mejorando la visión 360 del cliente, la gestión y la usabilidad del sistema.

Desde el punto de vista global de Sanitas, se consigue un ahorro de costes en licencias al dejar de utilizar Dynamics para la gestión de los planes asistenciales, así como una mejora importante en el time-to-market en la integración de nuevos planes.

Actualidad

01/06/2022

/ , , ,

Incorporamos un sistema de retribución flexible

La retribución de los trabajadores constituye una de las funciones con mayor valor estratégico dentro de una compañía, por lo que el diseño, selección e implantación del sistema de retribución más adecuado en cada momento es clave para el crecimiento de ITERIAM.

Las empresas pueden elegir entre diferentes tipos de retribución: modelos de retribución fija, modelos de retribución variable, reparto de beneficios corporativos y retribuciones en especie o sistemas de retribución flexible.

Hasta la fecha en ITERIAM teníamos un sistema de retribución fija (salario fijo) al que sumar el reparto de beneficios corporativos más una serie de ventajas sociales como el seguro médico y dental y un seguro de vida. Adicionalmente damos acceso a nuestros empleados a diferentes iniciativas formativas: formación individualizada y/o grupal por proyectos, acceso a la plataforma Openwebinars o iniciativas como la formación en idiomas.

Para nuestros empleados de Españan vamos a mejorar ese sistema de retribución fija cambiando a un sistema de retribución flexible.

Básicamente, el sistema de retribución flexible permite ofrecer a los empleados un producto o servicio a menor coste del precio de mercado. Así el empleado podrá decidir qué servicios de los ofertados le interesan más y qué parte de su salario quiere destinar a cada uno de ellos.

Los productos y servicios que incluimos en nuestra retribución flexible serán:

  • Comida. El trabajador puede hacer uso de una tarjeta virtual con hasta 11€ diarios para gastos de comida que quedarían exentos de retención de IRPF para el trabajador.
  • Guardería. Los cheques guardería suponen una importante mejora en la compensación de empleados con hijos que todavía estén en el primer ciclo de educación infantil. Algunas bondades de este tipo de beneficio son:
    • Mejora la conciliación laboral y familiar de los empleados con niños.
    • Reduce el absentismo laboral.
    • Mejora la productividad y el clima laboral en la empresa.
  • Transporte. El transporte puede suponer uno de los principales gastos para un empleado. El empleado podrá beneficiarse de un importe máximo de 136,36€ al mes (1.500€ por año).
  • Formación adicional. Posibilidad de contratar formación adicional a la que ofrece la compañía en cualquier escuela o centro formativo (físico u online).
  • Seguro de jubilación. Aportaciones a un seguro de jubilación corporativo con exención del 100% de IRPF por las cantidades aportadas y sin los límites máximos que tienen actualmente los planes de pensiones individuales.

Quedan fuera de esta retribución flexible el seguro médico y de vida que seguirán siendo asumidos por la compañía como un beneficio social adicional así como las iniciativas de formación corporativa antes mencionadas. 

Este nuevo sistema ofrece como ventajas:

  • Libertad de decidir sobre tu retribución. En un modelo de retribución flexible, tienes la capacidad de decidir qué parte de tu salario deseas cobrar en dinero y qué parte quieres cambiar por productos o servicios que te facilitan su vida diaria y que, además, le aportan ventajas fiscales. De esta forma, serás capaz de adaptar tu salario a tus intereses y necesidades personales.
  • Ahorro. Una vez que los servicios en especie se ingresan en tu nómina, éstos se descuentan del salario bruto. Obtienes por tanto un ahorro importante en servicios de uso cotidiano (comida, transporte público y guardería) reduciendo tu base imponible y, por lo tanto, pagando menos impuestos.
  • Mejora de tu calidad de vida. La conciliación y el equilibrio son aspectos clave para mejorar tu vida y tu motivación. Con un plan de retribución flexible, no solo disfrutas de mayor poder adquisitivo, sino que además puedes ver cubiertos servicios de primera necesidad como comida, guardería o transporte.

Y este sistema es totalmente voluntario, porque puedes elegir si beneficiarte o no de la retribución flexible.

Para la gestión de estos temas utilizaremos Cobee, una plataforma digital que consta de una a app para la gestión individualizada por cada empleado de los productos y servicios que quiera utilizar como retribución flexible.

Otra razón más para trabajar con nosotros. Be happy, be ITERIAM.

Actualidad

30/05/2022

/ , , ,

Reunión General de Primavera

Desde los tiempos de la pandemia nos vimos obligados a cambiar las fechas previstas para las dos reuniones presenciales que celebrábamos cada año con todos los empleados. La reuniones pasaron de verano y Navidad a otoño y primavera para poder plantearnos siempre una reunión al aire libre.

El pasado viernes 27 de mayo nos volvimos a juntar en Madrid empleados de diferentes localizaciones de España con el fin de celebrar la Reunión General de Primavera. El lugar elegido en esta ocasión fue el Restaurante Habanera situado en la calle Génova 28 de Madrid.

En la misma, el CEO de la compañía Ricardo Romero pudo avanzar los números del primer semestre de 2022, repasar los últimos proyectos ganados, dar la bienvenida a los compañeros incorporados en los últimos meses y apuntar algunas novedades importantes que se producirán a partir del mes de septiembre.

Una fiesta donde prácticamente no hubo ausencias y que se prolongó hasta altas horas de la noche.

Actualidad

03/05/2022

/ , , ,

Programa de formación en inglés para empleados

En consecuencia con la política corporativa de ITERIAM de ir mejorando la formación que reciben nuestros empleados, vamos a empezar a ofrecer la posibilidad de recibir clases de inglés de forma individual y online.

Para esta formación vamos a contar con la plataforma Iboux Education, una escuela de idiomas en línea con la misión de ayudar a cada empleado-estudiante a alcanzar su máximo potencial en sus objetivos de aprendizaje del idioma inglés, mediante una experiencia de aprendizaje personal, asequible y de alta calidad.

A parte de completar tu perfil profesional, la impartición de esta formación apuntala la estrategia de internacionalizar nuestros clientes, siendo el inglés el idioma que se utilizará en algunos de los proyectos que estamos abordando o que nos gustaría ejecutar en el futuro.

Las características de este programa de formación de idiomas para empresas son:

  • Profesores calificados y certificados.
  • Plan de Estudios Personal basado en las necesidades de estudio y los objetivos personales de cada estudiante.
  • Disponibilidad de profesores 24/7 para que los alumnos programen sus clases (sujeto a demanda)
  • Cuestionario de autoevaluación.
  • Evaluación de nivel y de las necesidades específicas de cada alumno durante su primera clase.
  • Programa educativo de Iboux basado en competencias.
  • Asesor académico disponible para apoyar y ayudar a cada estudiante a alcanzar sus objetivos de aprendizaje y actuar como único punto de contacto ante cualquier inconveniente o asunto, ya sean pedagógicos, administrativos o técnicos.
  • Reporte de clases adquiridas, clases asignadas y clases tomadas.
  • Aula virtual de vanguardia que facilita y optimiza la experiencia de aprendizaje.

Iremos publicando diferentes ediciones del programa de formación en inglés para ir dando cobertura a todos los empleados interesados. La primera edición de este programa se lanzará el 1 de junio de 2022. Posteriormente iremos lanzando nuevas convocatorias. ​​​​​​​​​

Otra razón más para trabajar con nosotros. Be happy, be ITERIAM.

Actualidad

07/03/2022

/ , , , , ,

Acuerdo de colaboración con Kymatio

A pesar del enfoque en la tecnología y la innovación, el factor humano es clave para aumentar la ciberseguridad de las organizaciones. Las herramientas son importantes, pero los atacantes son maestros en sortearlas.

Para ser eficaz, la ciberseguridad requiere de una combinación de personas, procesos y tecnología. En el apartado de personas, el empleado se ha convertido en un objetivo claro de los ciberdelincuentes, aprovechando sus vulnerabilidades. Actualmente el 90% de los incidentes de seguridad involucran al personal interno de la organización, siendo resultado directo de negligencias o fraudes de ingeniería social.

ITERIAM ha firmado un acuerdo de colaboración con Kymatio para aumentar nuestro porfolio de soluciones y servicios que prestamos en ciberseguridad en un ámbito que nos parece muy relevante en los tiempos actuales.

Kymatio es un SaaS de gestión integral de ciberriesgo de empleados que fomenta la formación continua en seguridad de la siguiente manera:

  • Mediante sesiones de chatbots evalúa periódicamente el estado de alerta y el nivel de concienciación de los empleados (quincenal, mensual o bimensual, a tu elección).
  • Con los resultados lanza un programa de concienciación en seguridad de la información automático (nano-micro learning) personalizado para cada empleado, poniendo foco en las temáticas que no dominan (desde puesto de trabajo hasta malware, pasando por ingeniería social).
  • Comprueba en la práctica cómo se desenvuelven con los ataques, lanzando simulaciones de phishing de nueva generación (NeuroPhishing).
  • Analiza periódicamente si las credenciales han sido expuestas (correo y contraseña) en alguna brecha de servicios de tercero y están disponibles online, y lo utiliza para mitigar el riesgo y concienciar al empleado.
  • También incorpora un potente dashboard que aporta métricas de todos estos aspectos para ver el estado actual de la compañía y su evolución a lo largo del tiempo.

Por último, comentar que todo lo que se hace es completamente automatizado de forma que no consuma más tiempo del necesario, ni al empleado ni a la persona que se encargue de gestionarlo y hacer seguimiento (Seguridad, RRHH etc).

Si quieres más información sobre esta solución, no dudes en escribirnos a [email protected].

Actualidad

16/01/2022

/ , , , , ,

Cómo usar videos en una web correctamente

Introducción

Corría el  año 1895 cuando unos hermanos apellidados Lumiere desataron un fenómeno mundial que revolucionó la forma de ver la vida y de llevar mensajes a cualquier parte. Cuando hablamos de “video” englobamos todas las artes en que se transforma (cine, televisión, series, etc.) y una enorme lista de recursos en las que por medio de imágenes a gran velocidad conseguimos transmitir un mensaje.

En los últimos años el video ha evolucionado de tal forma que actualmente. Según el CISCO el 80% del trafico de la red es video. Puede resultar un dato impresionante pero si te digo nombro a Netflix, Zoom, Youtube, Tiktok, Facebook, PrimeVideo… ya entiendes que el video es el recurso preferido para comunicarse en el medio preferido por los usuarios: internet.

En este artículo vamos a hablar del video y de la importancia de saber configurarlo correctamente en tu proyecto web. Verás que hay muchas cosas que no sabías y estabas pasándolas por alto. Conocer bien el producto te hará tratarlo con más confianza.

Primeros pasos, lo más importantes

Como no podía ser de otra manera el primer paso es que pienses detenidamente en el destino del video que vas a usar. Es evidente que cada video es un mundo y por tanto cada video, o listado de videos tienes que estudiarlos. El resultado es que en producción ver estos vídeos sea un paseo en barca donde disfrutas de su contenido. Pero sabemos que en ocasiones no es así y esta mala planificación provoca que el usuario no obtenga una buena experiencia en tu sitio web.

A continuación veremos los aspectos más importantes a tener en cuenta a la hora de planificar un proyecto web que incluya vídeos.

Poster

Cuando ponemos un vídeo en una web no siempre queremos que se reproduzca.

Hay videos cortos que se reproducen en bucle y asumen un papel de background, pero si se trata de un video que quieres que se vea porque su contenido es importante has de configurarle un poster . Se trata de esta etiqueta:

<video src="videofile.ogg" autoplay poster="posterimage.jpg"></video>

Obtenemos dos ventajas al establecerse como un poster:

  • La pantalla de portada será más atractiva. Probablemente tu video tenga el primer frame en negro, así que si no configuras un poster, tu cuadro de video será una pantalla negra vacía.
  • Este poster carga al instante y puede que el vídeo, si es muy pesado, tarde un poco en cargar. Conseguimos enmascarar esa carga en segundo plano. Si tienes muchos vídeos en una misma URL que cargan a la vez es un proceso lento así que  puedes hacer que cargue al reproducirlo. Esto lo conseguimos con la etiqueta preload:
<video src="videofile.ogg" autoplay preload="none"></video>

Está de más decir que el poster ha de tener las mismas dimensiones en px que el video y una resolución de 72ppx. Y por supuesto ha de ser atractivo si quieres que vean el video.

Resoluciones

La palabra resolución, cuando hablamos de video, sufre un mal uso constante. La resolución de un video no es mas que la cantidad de píxeles de alto por ancho. No podemos llamar resolución a .H264 o a 16:9. Por tanto, aclarado lo que es la resolución, veamos cuales son los estándares más usados:

  • FHD, 1920x1080px. La más usada, aunque el 4k empieza a comer terreno.
  • HD, 1280x720px. Era la más usada pero la desbancó en poco tiempo FHD.
  • 4k, 3840 x 2160px. Aún en crecimiento porque precisa una gran tasa de datos y una pantalla con mucha densidad de pixeles.

La resolución es junto con el formato quien marcará el peso del vídeo por segundo.

Aquí es donde hemos de tener un gran tacto pues un video muy pesado puede afectar gravemente la usabilidad de la web. En este caso y al igual que pasará con la relación de aspecto, necesitamos una resolución diferente para cada dispositivo. Pero cuidado en este tema porque las pantallas están cambiando y cada vez tienen mayor densidad de píxeles. Por ejemplo, una pantalla de un desktop estándar podríamos decir que está en FHD. ¿Y una pantalla mobile? Pues aquí se ha desatado la locura y por ejemplo IPhone12 tiene 2340×1080 así que menos de FHD sería un error.

Lo aconsejable es hacer un desarrollo donde detectemos la resolución en ancho de la pantalla y en función de eso carguemos los vídeos con las resoluciones óptimas a ese dispositivo. Un código similar a este sería lo aconsejable:

<video id="video">

   <source src="movie.webm" type="video/webm;">

   <source src="movie.mp4" type="video/mp4;"/>

   <source src="movie.ogv" type="video/ogg;"/>

</video>

<script type="text/javascript">

   var srcRes = null;

   if (screen.width > 1920){

       srcRes = "_4k.";

   } else if (screen.width > 1280) {

       srcRes = "_FHD.";

   } else {

       srcRes = "_HD.";

   }

   document.querySelectorAll('source').forEach(el => el.src = el.src.replace(".", srcRes));

 </script>

Este código detecta el ancho de la pantalla del dispositivo, no la ventana del navegador. Para que funcione el código simplemente has de tener tu video en diferentes resoluciones y con un nombre igual para todos pero con la matiz de la resolución: _HD, _FHD o _4K.

Formatos

Este es uno de los temas más conflictivos a la hora de cargar un vídeo. Con el resto de ajustes el video se verá mejor o peor, tardará más en cargar o menos, pero por el formato del vídeo puede pasar que se vea o no el video dependiendo del dispositivo o navegador que uses. El formato hace referencia únicamente al tipo de archivo que exportamos.

Del formato podemos diferenciar la extensión y el códec. La extensión es el paquete que engloba ese formato (.mov, .mp4, .avi, etc.) y el códec es el leguaje de compresión que se usa para hacer que el video pese menos (MPEG2, H264, WebM, etc.).

En este caso la etiqueta video cuenta con una sub-etiqueta source y en su atributo src se puede colocar el formato de video. Así para una etiqueta de video, tenemos varios src y cada uno aporta el video en diferente formato.

<video>

  <source src="movie.webm" type="video/webm;"/>

  <source src="movie.mp4" type="video/mp4;" />

  <source src="movie.ogv" type="video/ogg; " />

<video>

Relaciones de aspecto

La relación de aspecto es la relación proporcional entre el ancho y el alto del frame. En esencia, es la forma del video. Hay multitud de estándares para configurar esta relación de aspecto entre los que vamos a destacar los más usados:

  • 16:9. Se trata del estándar más usado actualmente tanto en web como en dispositivos. Su resolución más usada sería FHD 1920x1080px.
  • 4:3. Es una relación que está perdiendo popularidad pues nos ofrece un frame muy cuadrado y el vídeo se aprecia más atractivo en formatos panorámicos. Su resolución mas usada sería 1280x960px, aunque el origen de esta relación proviene del sistema PAL que todos hemos tenido en casa, 720x576px.

Aunque lo normal es usar un estándar hay ocasiones en que el proyecto precisa unas relaciones de aspecto diferentes en cada dispositivo. Por ejemplo un banner en desktop con un video de fondo puede tener una relación de aspecto muy panorámica. Sin embargo en mobile su relación de aspecto será cuadrada o vertical. Aquí es donde entra en juego CSS y sus ajustes para background.

Veamos el siguiente ejemplo:

En este caso el video de fondo lo hemos configurado con la posición absoluta y en cada dispositivo jugamos con top, bottom, right, left y márgenes automáticos. En ocasiones hay que tener videos demasiado versátiles para que la perdida de información que se da de un dispositivo a otro sea asumible.

Reproductor

Por último veamos el modo en que queremos que el usuario interactúe con el video que le presentamos. Como hemos hablado anteriormente, si el video es un background, no tiene sentido que tenga botones, y si no quieres que salgan corriendo de tu página, tampoco debería tener sonido. Por eso vamos a hablar de los vídeos con los que el usuario debe interactuar. La etiqueta video nos ofrece estos atributos:

  • Autoplay: Booleano para que el video se reproduzca automáticamente tras cargarse.
  • Controls: Booleano para mostrar o no el panel de control del video de tu explorador.
  • Muted: Booleano para iniciar el vídeo sin sonido.
  • Loop: Booleano para indicar la reproducción en bucle del vídeo.

Hay casos en los que hay que desarrollar un estilo personalizado de reproductor. Para ello basta con no poner el atributo controls y configurarlos tu mismo con js y css. Os muestro un pequeño ejemplo:

<div class="container-video">

  <video id="video" src="movie.mp4"></video>

  <button onclick="reproducir()">Reproducir</button>

  <button onclick="pausar()">Parar</button>

</div>

<script type="text/javascript">

  window.reproducir = function() {

      document.getElementById("video").play();

  };

  window.pausar = function() {

      document.getElementById("video").pause();

  };

</script>

Conclusión

El vídeo es un elemento complejo al que prestar mucha atención porque configurarlo bien nos devolverá una experiencia positiva de nuestro desarrollo.

Por supuesto hay muchos temas que no hemos hablado en este video relativos al video como los fps (fotogramas por segundo), la tasa de bits de video o los campos (i o p), pero quizás esos temas sean parte del diseño del propio video y no de la implementación.

Para terminar me gustaría dejar ese fragmento del que empecé hablando porque como dicen es importante saber de dónde vienes para saber quién eres:

https://www.youtube.com/watch?v=E6OhpB4cnHU

Actualidad

18/11/2021

/ , , , ,

Primeros pasos con SVELTE

Introducción

Svelte  (o SvelteJS) es un framework para desarrollar aplicaciones JavaScript por Rich Harris y basado en componentes para crear aplicaciones reactivas.

A diferencia de otros frameworks como Angular, Vue o React, el código es compilado previamente para que el navegador pueda entenderlo.

Si visitamos la web principal de Svelte podemos desatacar sus tres características principales:

  • Write Less Code. Una de las principales características es que podemos crear componentes con menos líneas de código, que por ejemplo React, donde su creador asegura que si comparamos componentes iguales, estamos ahorrando hasta un 40% de código. Svelte utiliza el principio de Single File Component en el cual, en un mismo archivo tendremos el HTML, Javascript y Css. Esto te puede resultar familiar si has utilizado Vue.
  • No virtual DOM. Lo más interesante de Svelte es, que como hemos comentado, es precompilado. No hace uso del Virtual DOM para realizar cambios en nuestra aplicación, sino que se aprovecha de la previa compilación para realizar los cambios de estados y propiedades.
  • Truly reactive. La programación reactiva es la base de cualquier framework de javascript, donde simplemente es que la interfaz del usuario va cambiando según se vayan modificando los datos de éste.

Vamos a ver paso a paso cómo empezar con un proyecto utilizando Svelte 3.

Instalación

Vamos a ver como crear un proyecto sencillo en Svelte y para ello, seguiremos los pasos que nos indican en la web oficial.

Arrancamos una terminal y ejecutamos el siguiente comando:

npx degit sveltejs/template proyecto-svelte

Con este comando lo que estamos haciendo es hacer una copia del repositorio de Github de sveltejs, pero sin la carpeta .git.

El siguiente paso será situarnos dentro de nuestro proyecto: cd proyecto-svelte y hacer un: npm install para instalar las dependencias del proyecto.

Una vez instaladas todas las dependencias podemos ver los distintos ficheros que nos ha creado.

Estructura del proyecto

Si abrimos nuestro proyecto con un editor, nos encontraremos con la siguiente estructura:

Uno de los ficheros a destacar es rollup.config.js , el cual es una herramienta que lo que hace es compilar todo nuestro código en un solo fichero, más grande y complejo (lo que se llama Bundle) como puede ser Webpack o Parcel.

Seguimos analizando nuestro proyecto y vemos el  fichero package.json . Como podemos ver, tiene una configuración bastante sencilla con pocas dependencias y los diferentes scripts que podemos ejecutar:

Creación de una sencilla aplicación:

Vamos a crear una pequeña aplicación para ver alguna de las características más importantes de este framework:

Empezamos analizando el fichero main.js, el cual es el fichero de entrada de nuestra aplicación. En él, estamos creado una prop que pasaremos a nuestro componente App.svelte.

En el siguiente ejemplo crearemos un pequeño componente donde habrá un contador y en el que veremos algunas de las características de este framework:

Lo primero que haremos es exportar la propname’, donde estamos indicando que es un parámetro del componente. Después crearemos una propiedad llamada contador, y un botón el cual llamará a una función para que cada vez que se haga click en él, el contador se incremente. En este botón hemos añadido la directiva on:click, que será el evento que se lance cada vez que pulsemos sobre él.

Aquí lo interesante que tiene Svelte, es que como tiene un paso previo de compilación, está deduciendo que la variable ‘contador’ es un estado, y cada vez que el valor cambie, vuelve a renderizar el componente.

En la siguiente imagen vemos como traduce Svelte nuestro código:

Arrancar el proyecto

Arrancaremos nuestro proyecto y lo ejecutaremos en modo ‘dev’. Para ello ejecutamos el comando: npm run dev y se nos indicará una dirección localhost con el puerto 5000, el cual no llevará a nuestro entorno de desarrollo.

Así se vería nuestro proyecto en el navegador:

Conclusión

Hasta aquí hemos podido ver como configurar nuestro entorno para trabajar con Svelte y algunas de las ventajas que tiene como son la simplicidad de su código, reactividad y que tiene una curva de aprendizaje muy baja.

Podemos ver ejemplos concretos en su misma página, analizarlos y comprobar la potencia que puede llegar a darnos este framework en el desarrollo de nuevas aplicaciones.

Actualidad

25/10/2021

/ , , ,

Nos volvemos a ver

El pasado viernes 22 de octubre volvimos celebrar de nuevo un evento presencial con todos los empleados de ITERIAM.

Con cambio de fecha provocado por la pandemia, la Reunión General de Otoño junto a compañeros de diferentes localizaciones en el Club Las Encinas de Boadilla después de prácticamente 2 años de la última ocasión.

Un momento ideal para compartir de nuevo un rato juntos después de un tiempo complicado.

Actualidad

20/08/2021

/ , , , , ,

Onboarding 100% digital con Mobbeel

Actualmente todos los clientes valoran de forma muy positiva disponer de servicios sin necesidad de desplazarse a oficinas físicas.

Hace unos años esto era complicado, la legislación no lo permitía y la tecnología no estaba lo suficientemente madura, pero hoy en día procesos como el alta de clientes o la contratación de productos son servicios que se ofrecen de forma digital por algunas compañías.

ITERIAM plantea en muchos de los proyectos de transformación digital a nuestros clientes cambiar procesos de contratación tradicionales a lo que es un onboarding digital para lo que hemos desarrollado una plataforma base específica.

Como pieza fundamental de esa plataforma, firmamos un acuerdo de colaboración con Mobbeel para utilizar sus soluciones para ofrecer una experiencia 100% digital en todos los procesos antes mencionados:

  • MobbScan. Permite la verificación de identidad a través del escaneo de documentos de identidad, tanto desde dispositivos móviles como en un entorno web, extraer información de ellos así como validar su autenticidad e incluso la identidad de la persona que lo presenta si fuese necesario.
  • MobbSign. Permite a los usuarios firmar legalmente y con sencillez cualquier documento y en cualquier dispositivo digital con su firma manuscrita y sin necesidad de ningún tipo de certificado.
  • MobbID. Permite la autenticación multibiométrica en entornos digitales, que de forma cómoda y segura verifica la identidad de los usuarios de smartphones usando una o varias de sus sus características únicas combinadas sin necesidad de sensores externos. MobbID tiene la flexibilidad de utilizar todos los métodos de reconocimiento biométrico: reconocimiento de cara, voz, firma y huella.

Con estas soluciones de Mobbeel que se suman a otros acuerdos firmados anteriormente, ponemos a disposición de nuestros clientes una solución de onboarding con unos tiempos de lanzamiento muy rápidos, posibilidades de integración ilimitadas, una experiencia de usuario óptima y adaptable en cuanto a legalidad y confirmación de la identidad digital en cada caso práctico.

Si quieres más información sobre esta solución, no dudes en escribirnos a [email protected].