En los últimos años hemos visto cómo ha evolucionado el terminal de pagos de tradicional y con un sistema operativo integrado propio a ser un punto de ventas (POS) de código abierto que utiliza Android. Este nuevo paradigma surgió de la ambición por acelerar la transformación digital para los clientes y dar una nueva forma al punto de ventas tradicional para que se convierta en un “punto de interacción”.
Android es un gigante que no necesita presentación. Este sistema operativo de código abierto basado en Linux se desarrolló y lanzó en 2008 y ha sido un gran éxito en todo el mundo. En 2019, Google anunció que en ese año 2.500 millones de dispositivos funcionaban con Android. En la actualidad, Android es considerado un estándar de facto para la industria de los teléfonos móviles, aunque también ha penetrado la industria de dispositivos electrónicos como vehículos, entretenimiento y dispositivos de vestir. De hecho, Android es uno de los actores principales en el mercado de dispositivos electrónicos, ya que ofrece su servicio a usuarios finales y simplifica el uso a través de su interfaz de usuario y funciones de comunicación.
Android y Tetra: dos propuestas líderes del mercado para dos propósitos diferentes
Ingenico, una marca Worldline, entiende el valor de esta evolución y como respuesta lanzó AXIUM – sus terminales de pago de nueva generación que funcionan con Android - para hacer frente a la oferta más tradicional de sistemas operativos propios, Tetra. Ambas arquitecturas cumplen con los estándares más estrictos de la industria de pagos (EMV y PCI-PTS). Entonces ¿en qué se diferencian estas arquitecturas?
La diferencia principal entre Tetra y AXIUM refleja el propósito para el cual fueron diseñadas. Tetra se basa en un sistema operativo centrado en los pagos. AXIUM fue creada para agilizar el desarrollo y la portabilidad de la aplicación, lo cual les abre el camino a diferentes actores.
El sistema operativo propio de Tetra está personalizado para las necesidades de la industria de pagos. Al funcionar con hardware personalizado, admite cualquier método de pago y mejora la experiencia del cliente con servicios multimedia y de valor añadido en HTML5. El desarrollo para el sistema operativo propietario Tetra requiere conocimientos avanzados de desarrollo en C o C++ y un conocimiento detallado de periféricos y bibliotecas de gráficos dedicados. Aunque esto les da a los desarrolladores una gran libertad, es una barrera para los terceros que desean desarrollar sus propias aplicaciones para usar en sus propios terminales o como servicios de valor añadido para estos propietarios de terminales.
AXIUM es un sistema operativo que funciona por completo en Android. Su innovación consiste en coexistir con un sistema operativo abierto con los estrictos niveles de seguridad de EMV y PCI-PTS. Aunque se requieren algunos conocimientos específicos para aprovechar el procesamiento de pagos con tarjeta, (lectores, EMV) la mayor parte del entorno de desarrollo en los terminales AXIUM será familiar para los desarrolladores de Android existentes, con sus habilidades casi instantáneamente transferibles y abriendo el terminal como una plataforma para aplicaciones empresariales.
El éxito de Android se basa en Java, APIs y un código fuente abierto. Tiene disponible por defecto funciones que no son de fácil acceso en sistemas integrados tradicionales, como bases de datos, marcos de comunicación ricos, JSON/XML, cámara y gestión de código QR, gráficas mejoradas, A2A, entre otros. Esto aumenta la posibilidad de integración, reduciendo el tiempo y los costos de desarrollo y agregando funciones impresionantes a las aplicaciones.
Independientemente de la tecnología, las aplicaciones Tetra y Android tienen un punto clave en común: como la arquitectura de ambos es segura, las aplicaciones se deben registrar en una herramienta de Ingenico para que se puedan cargar en los terminales de pago.
También es importante tener en cuenta que todas las funciones de Android que podían poner en riesgo los requerimientos de seguridad PCI-PTS han sido eliminadas. Por ejemplo, Google Play Services no se encuentra disponible en AXIUM. De forma similar, las aplicaciones de Android registradas con la herramienta de Ingenico no se pueden cargar en Google Play y viceversa. En cambio, el servicio de distribución de software es proporcionado por el Estate Manager de Ingenico, lo que permite a los desarrolladores gestionar la evolución de la aplicación de forma remota en todos los productos Ingenico.
El desarrollo en Android se ha convertido en una habilidad “común”
Cuando vemos los datos estadísticos de Google sobre Android, una de las cifras que llaman la atención es el impresionante número de aplicaciones publicadas en Play Store. Recientemente se estableció que son un poco más de 3 millones de aplicaciones, muy por encima del millón de aplicaciones registradas en julio de 2013.
Esta es una evidencia contundente de que la comunidad de desarrolladores trabaja de forma masiva en Android. Además, se puede acceder a estos recursos desde cualquier lugar del mundo, ya que el sitio de Google para desarrolladores cuenta con documentación en varios idiomas, lo que proporciona una fuente rica en muestras de código.
La comunidad de desarrolladores de Android es muy activa, tienen foros, blogs, video tutoriales y capacitaciones gratuitas, lo que constituye mecanismos de soporte listos para facilitar los procesos de desarrollo. Los desarrolladores pueden elegir entre una amplia variedad de lenguajes de programación, que van desde NDK con C/C++ hasta entornos de tiempo de ejecución controlado más abstractos como Java y Kotlin, pero también C#, Python, y Ruby etc.
… gracias a los recursos accesibles para los desarrolladores.
Existen muchos recursos disponibles para los desarrolladores, a continuación algunos de los más importantes a considerar:
- Android Studio, un estupendo RAD en un IDE de código abierto basado en IntelliJ IDEA. Ofrece gestión de componentes (Gradle/Maven), emuladores de Android ROM, Android Debug Bridge (ADB) para ejecutar aplicaciones y funciones útiles como diseño de materiales. Es una gran herramienta que evoluciona de forma constante para ofrecer soporte en su comunidad.
- “Hello world!” son aplicaciones que se pueden crear con solo un par de clics en el IDE y también soporta depuración de programas. ¡Entrar al mundo de los desarrolladores nunca fue tan fácil!
- Para demos y tutoriales de muestras de código GitHub ofrece muchos recursos para código abierto que inspiran a cualquiera.
Por eso es que desarrollar en Android se ve como algo tan sencillo…
Android ofrece la tranquilidad de ser una tecnología preparada para el futuro. Por ejemplo, es sentido común considerar que tecnologías recientes como 5G funcionarán en nuevas versiones de Android. De hecho, cuando se considera el número de proveedores que se siguen integrando con los sistemas operativos, Android es una apuesta segura en lo que respecta a los diseños de aplicaciones.
Android sigue desarrollando y liderando el arte de la experiencia de usuario; el diseño de la interfaz de usuario, la accesibilidad de las pantallas táctiles, el modo de funcionamiento de los controles gráficos, los widgets, los teclados virtuales, los estilos, la multimedia, etc. Cada innovación hace su gran entrada y recibe la bienvenida de millones de usuarios finales.
Los desarrolladores hábiles pueden implementar una aplicación simple en Android en tan solo un par de días. Ya se han destacado varios recursos para los desarrolladores, sin embargo, las competencias de la pila completa son clave para encontrar formas simplificadas de hacer las cosas de forma sencilla.
Todo esto forma parte del proceso de innovación; las habilidades de desarrollo full-stack, las soluciones y las carteras de recursos gráficos son capaces de impulsar el rendimiento y los resultados del desarrollo de Android, ayudando a reducir el tiempo de comercialización y mejorando la calidad del software.
… ofrecer ventajas indiscutibles
- La reutilización del código es una ventaja clave de la plataforma Android, en especial debido al soporte que Java ofrece solo para Android. La pila de desarrollo en el terminal de pago se beneficia de las bibliotecas de código abierto, añadiendo nuevos conceptos de desarrollo como la inyección de dependencias, la programación reactiva y la persistencia de datos, lo que aumenta la complejidad de la solución para satisfacer diversas necesidades.
- Las aplicaciones de Android se pueden diseñar para pruebas, con una amplia variedad de herramientas ofrecidas para gestionar la automatización de pruebas. Estas pueden usarse para potenciar la calidad de las aplicaciones y el valor para el usuario.
- El diseño de servicios de APIs puede acelerar integraciones con servicios externos o gestionar comunicaciones de aplicación a aplicación. Android también ofrece la posibilidad de utilizar funciones de aplicaciones a través de terceros, abriendo potencial para otros flujos de ingresos al revender los servicios de aplicaciones a otros.
- El ambiente de desarrollo de Android as otro beneficio clave, provee formatos gráficos estándar que incluyen funciones integradas para diseñar interfaces de usuario, ingresar y depurar ayudas de código en línea y fuera de línea y procesos de resolución de problemas. Además, tiene el soporte de una biblioteca que ejecuta multihilo, sincronización, excepciones y marcos de bases de datos.
Pero, ¿existe un puente entre Tetra y Android?
El primer propósito de usar un terminal basado en Android es ofrecer una cartera rica en aplicaciones empresariales. Estas aplicaciones se pueden desarrollar desde ceros, pero también se pueden apalancar de un ambiente existente. Después de algunas mejoras, las aplicaciones abiertas de Android se convierten en ejecutables en terminales de puntos de venta que cumplen con los niveles de seguridad más estrictos.
También está la posibilidad de considerar todas las aplicaciones existentes de Tetra. ¿Es posible trasladarlas a Android?
Para los desarrolladores que ya se han familiarizado con los terminales Tetra de Ingenico, una de las preguntas clave es si es más sencillo desarrollar en Android. No obstante, no hay una respuesta sencilla, ya que están en juego muchas variables en ambos procesos de desarrollo: habilidades, arquitectura de aplicaciones, complejidad, expectativas y experiencia.
Un conocimiento sólido de Android y un portafolio de aplicaciones existentes podría traer una ventaja significativa y acelerar el proceso de desarrollo. Combinar esto con acceso a soluciones de ejemplo gratuitas que cubren los problemas más comunes del desarrollo de aplicaciones, hace que Android comience a adquirir un valor considerable.
Una de las opciones a considerar al trasladar una aplicación de Tetra a Android es explorar la conversión del código fuente de Tetra de C/C++ a las bibliotecas para proyectos nativos de Android. La portabilidad de una gran cantidad de aplicaciones empresariales lógicas podría beneficiarse de este enfoque, incluso si al final tiene las mismas desventajas en su arquitectura.
De manera más general, rescribir toda una aplicación usando un lenguaje más reciente y más abstracto como Java/Kotlin tiene beneficios no tan conocidos. Los aceleradores de codificación, como el recolector de basura automático, la sintaxis concisa, el operador Elvis (seguridad nula) y la expresión lambda cubren aspectos del desarrollo que consumirían mucho tiempo en C++. Invertir tiempo en aprender estas nuevas técnicas puede acelerar el desarrollo y reducir la carga de trabajo. Sin embargo, ciertos atributos, como el ciclo de vida de las aplicaciones (gestión en segundo plano), las tareas, la gestión de datos, la comunicación y la gestión de activos, utilizan modelos completamente diferentes en Android: esto debe entenderse y aceptarse.
Ingenico tiene el compromiso de mantener el soporte para la gama de terminales Tetra que funcionan con terminales de sistemas operativos propietarios y continúan siendo producto de la elección de ambientes en los que las aplicaciones empresariales no son necesarios. El terminal es una herramienta de pago disfrazada. Pero para algunos comercios y entornos, una serie de aplicaciones empresariales y de productividad en el terminal aportará importantes beneficios a las empresas y a la experiencia del usuario.
La gama AXIUM basada en Android cuenta con una experiencia de usuario familiar y una plataforma abierta en la que una gran cantidad de desarrolladores hábiles en Android y la gran cantidad de aplicaciones de Android listas para ser trasladadas, ofrecen un futuro brillante para el "humilde" terminal, como plataforma segura y de confianza para los pagos... y más.