Saltar al contenido

Tecnología · Lenguaje nativo de Android

Desarrollo de apps Android con Kotlin

Kotlin es el lenguaje en el que Google recomienda escribir las apps de Android. Es la opción cuando la app tiene que funcionar en el parque de dispositivos que de verdad tienes, teléfonos de varias marcas, tabletas y terminales de almacén, y hacer su trabajo aunque la pantalla esté apagada. Desarrollamos apps nuevas y modernizamos las que siguen en Java.

Fig. 01Estación del parque de dispositivosv2.4PARQUE · SEGUNDO PLANOEn bucle
La consola reparte la misma versión a un teléfono, un terminal de almacén y una tableta. Con las pantallas apagadas, el mecanismo de fondo sigue enviando los partes pendientes.

Situaciones

Qué puedes resolver con una app nativa en Kotlin

En Android el reto rara vez es la pantalla: es la variedad de aparatos, lo que cada fabricante hace con la batería y los periféricos que hay que manejar. Ahí es donde una app nativa da menos sorpresas.

  • Una app para los dispositivos que ya tienes

    Teléfonos de hace varios años, tabletas en un mostrador o terminales con lector integrado. Se desarrolla y se prueba en esos modelos, no en el último que ha salido.

  • Trabajo que no espera a que abran la app

    Subir fotos, sincronizar partes o registrar una ruta con la pantalla apagada y la app en segundo plano, respetando lo que el sistema permite para no gastar la batería.

  • Aparatos que hay que manejar desde la app

    Lectores de códigos, impresoras de etiquetas, básculas, datáfonos o sensores, por Bluetooth, USB o NFC. En nativo se usa el kit que da el fabricante, sin adaptadores.

  • Una app en Java que cuesta mantener

    Funciona, pero cada cambio es lento y las bibliotecas se han quedado atrás. Kotlin y Java conviven en el mismo proyecto, así que se moderniza por partes.

El mecanismo de fondo: trabaja con las pantallas apagadas

Qué conviene revisar al empezar

  • Qué modelos y qué versiones de Android hay en uso
  • Qué debe ocurrir con la app cerrada o la pantalla apagada
  • Qué periféricos se conectan y con qué kit del fabricante
  • Cómo se instalará: tienda pública, tienda privada o gestión de dispositivos

Servicios

Qué desarrollamos con Kotlin

Cuatro tipos de encargo. La interfaz se construye hoy con Jetpack Compose; aquí hablamos de lo que la app hace por debajo.

  • Módulo 1 · Bastidor de carga

    Apps nativas para Android

    La app completa: datos, sesión, navegación y conexión con tu servidor, escrita en Kotlin con las bibliotecas que Google mantiene. Se prueba en los modelos reales de tu parque.

    Ejemplos de entregables

    • App de reparto con rutas
    • Inventario en almacén
    • App de mantenimiento con fotos
  • Módulo 2 · Mecanismo de fondo

    Segundo plano y sincronización

    Tareas que se ejecutan solas cuando hay red y batería, que sobreviven a un reinicio y que no se repiten si algo falla a medias. Con un registro de qué se envió y qué queda pendiente.

    Ejemplos de entregables

    • Subida de fotos al volver la red
    • Sincronización nocturna
    • Seguimiento de una ruta en curso
  • Módulo 3 · Periféricos

    Periféricos y dispositivos dedicados

    Integración con lectores, impresoras, básculas y datáfonos, y apps que ocupan el aparato entero: un quiosco, un terminal de fichaje o una pantalla de pedidos.

    Ejemplos de entregables

    • Impresora de etiquetas por Bluetooth
    • Terminal con lector integrado
    • Tableta en modo quiosco
  • Módulo 4 · Consola

    Modernización y reparto privado

    Paso de Java a Kotlin por partes, adaptación a cada versión nueva de Android y el reparto a los dispositivos de la empresa sin pasar por la tienda pública.

    Ejemplos de entregables

    • Migración de Java a Kotlin
    • Adaptación al Android de este año
    • Tienda privada para empleados

Un ejemplo en funcionamiento

Cinco fotos por subir y un teléfono con poca batería

Demostración simulada con datos ficticios. Hay cinco fotos pendientes de enviar. Programa la subida y, mientras trabaja, quita el wifi, baja la batería, apaga la pantalla o reinicia el teléfono: mira qué hace la tarea en cada caso.

Demostración simulada · datos de muestra

El teléfono

La regla de la tarea

Subir las fotos pendientes solo con wifi y con batería suficiente. La pantalla no cuenta.

Fotos del parte

    Registro de la tarea

      No hay ningún teléfono detrás de esta demostración: la tarea y sus reglas están simuladas en tu navegador. El comportamiento es el que se programa en Android para el trabajo en segundo plano.

      Integración

      Cómo encaja con tus sistemas

      Una app en Kotlin habla con el aparato y sus periféricos por un lado y con tu empresa por el otro. En medio decide qué guarda en el dispositivo y cuándo lo envía.

      De dónde viene

      • El dispositivo Androidcámara, ubicación, sensores
      • Periféricoslector, impresora, datáfono
      KotlinApp nativa en Kotlintrabaja también en segundo plano

      A dónde llega

      Dependencias que conviene revisar

      • Qué restricciones de batería aplican los fabricantes de tus dispositivos
      • Qué kit ofrece el fabricante de cada periférico y con qué licencia
      • Si los dispositivos los gestiona la empresa o son de cada empleado
      • Qué versión mínima de Android deja fuera a qué aparatos

      Cómo trabajamos y qué entregamos

      Cómo trabajamos un encargo en Kotlin

      1. 01

        Revisión inicial

        Miramos el código si existe, los modelos de dispositivo en uso, los periféricos y cómo se instala hoy la app.

      2. 02

        Alcance

        Escribimos las pantallas, qué se hace en segundo plano, qué periféricos entran, la versión mínima de Android y lo que queda fuera.

      3. 03

        Primera entrega

        Una versión instalable en tus dispositivos, con el recorrido principal y un periférico real funcionando.

      4. 04

        Validación

        La pruebas en los modelos del parque y en el lugar de trabajo: sin cobertura, con poca batería y con la pantalla apagada.

      5. 05

        Documentación

        Cómo se compila, se firma y se reparte, y qué revisar cuando salga la próxima versión de Android.

      Qué recibes al cerrar el encargo

      • El código en un repositorio a tu nombre
      • La app publicada o repartida desde tu cuenta de Google
      • Una guía de compilación, firma y reparto
      • La lista de modelos probados y de lo que queda fuera

      Preguntas

      Preguntas sobre Kotlin

      ¿Falta la tuya? Escríbela a info@veodar.com y te respondemos con una pregunta concreta, no con un dossier.

      ¿Hace falta una app nativa o basta una para los dos sistemas?

      Si la app es sobre todo pantallas y datos, una base de código común suele bastar. Nativa en Kotlin compensa cuando depende de periféricos, de trabajo en segundo plano o de dispositivos dedicados, que es donde Android tiene más particularidades. Lo valoramos con tu caso.

      ¿Podéis continuar una app escrita en Java?

      Sí. Kotlin y Java conviven en el mismo proyecto y se llaman entre sí, así que no hay que reescribir nada de golpe. Lo nuevo se escribe en Kotlin y lo antiguo se migra archivo a archivo, empezando por lo que más cambia.

      ¿Por qué mi app deja de sincronizar en algunos teléfonos?

      Casi siempre por el ahorro de batería. Android limita lo que una app hace en segundo plano y algunos fabricantes añaden restricciones propias. Se resuelve usando el mecanismo que el sistema ofrece para tareas diferidas y explicando al usuario el ajuste que haga falta en cada marca.

      ¿La app tiene que estar en Google Play?

      No. Para clientes es lo normal, pero para un equipo hay otras vías: una tienda privada de la empresa, la instalación desde la gestión de dispositivos o un archivo instalable. Preparamos la que encaje con cómo gestionas tus aparatos.

      ¿Qué versión de Android hay que soportar?

      La de los dispositivos que la van a usar. En Android conviven muchas versiones a la vez, así que se decide con el inventario delante. Los terminales de trabajo suelen quedarse en versiones antiguas y eso se tiene en cuenta desde el principio.

      ¿Se puede compartir código con la versión de iPhone?

      La lógica, sí: Kotlin permite compartir reglas de negocio y acceso a datos con una app de iOS, dejando la interfaz nativa en cada sistema. No siempre compensa; depende de cuánta lógica haya y de quién la vaya a mantener.

      Actualizado:

      Otras tecnologías

      Con qué se combina

      Todas las tecnologías
      • Interfaces con Jetpack ComposePantallas que se adaptan del móvil a la tableta y al plegable, con el tema de tu marca. Interfaces nuevas o migración gradual desde vistas XML.
      • Datos sin conexión con SQLiteLa app guarda y consulta en el propio teléfono y sincroniza cuando vuelve la cobertura. Diseñamos el modelo local, la cola de cambios y el cifrado.
      • Notificaciones push a medidaAvisos que salen de tus sistemas y llegan al teléfono correcto en el momento oportuno, con permisos, segmentos y enlaces a la pantalla que toca.

      Empezar

      Cuéntanos qué dispositivos tienes y qué deben hacer.

      Con los modelos que usa tu equipo y la tarea que quieres resolver nos basta para una primera respuesta.

      Qué ayuda a valorarlo

      • Modelos y versiones de Android en uso
      • Qué periféricos se conectan
      • Si existe código anterior
      • Cómo se instalan hoy las apps en esos dispositivos

      ¿Antes de escribir? Mira cómo presupuestamos un proyecto o las soluciones por área de la empresa.

      Fig. 07Manipulador MorseH · O · L · A