Aplicación Netflix para Android y iOS Studio, ahora con Kotlin Multiplatform | asistencia blog sobre tecnología Netflix Octubre de 2020

De acuerdo a David Henry Y Mel Yahya

En los últimos años, Netflix también ha estado desarrollando una aplicación móvil llamada Prodicle para la innovación.norte producción física de programas de televisión y películas. El mundo de la producción física es rápido y sus necesidades varían mucho entre países, regiones e incluso entre producciones individuales. La naturaleza del trabajo significa que desarrollamos software difícil de escribir en un entorno distribuido en dispositivos donde menos de la cuarta parte de nuestros usuarios tienen una conexión muy confiable mientras está configurada y con un margen de error limitado. Por estas razones, como un pequeño equipo técnico, hemos descubierto que es necesario optimizar la confiabilidad y la velocidad de entrega del producto para poder atender con éxito las necesidades de nuestros clientes en crecimiento.

La alta probabilidad de una conexión de red poco confiable nos llevó a confiar en una solución móvil para una sólida persistencia del lado del cliente y soporte fuera de línea. La necesidad de una entrega rápida del producto nos llevó a experimentar arquitectura multiplataforma. Ahora damos un paso más en este paso Multiplataforma Kotlin escribir lógica empresarial de plataforma agnóstica una vez v Kotlin y compile en la biblioteca Kotlin para Android y el marco universal nativo para iOS a través de Kotlin / Nativo.

Kotlin Multiplatform le permite utilizar una única base de código para la lógica empresarial de las aplicaciones iOS y Android. Solo necesita escribir código específico de la plataforma cuando sea necesario, como para implementar una interfaz de usuario nativa o cuando se trabaja con API específicas de la plataforma.

Kotlin Multiplatform aborda el desarrollo móvil en plataformas de manera diferente a algunas tecnologías bien conocidas en el espacio. Donde otras tecnologías abstraen o reemplazan completamente el desarrollo de aplicaciones específicas de la plataforma, Kotlin Multiplatform complementa las tecnologías específicas de la plataforma existentes y tiene como objetivo reemplazar la lógica empresarial agnóstica de la plataforma. Es una nueva herramienta en la caja de herramientas en lugar de reemplazar la caja de herramientas.

Este enfoque funciona bien para nosotros por varias razones:

  1. Nuestras aplicaciones de Android e iOS tienen una arquitectura compartida con una lógica empresarial similar o, en algunos casos, idéntica escrita en ambas plataformas.
  2. Casi el 50% del código de producción en nuestras aplicaciones de Android e iOS está separado de la plataforma base.
  3. Nuestro deseo de explorar las últimas tecnologías ofrecidas por las respectivas plataformas (Android Compose, Swift UI, etc.) no está limitado de ninguna manera.

Entonces, ¿qué estamos haciendo con él?

Como se mencionó anteriormente, las necesidades de nuestros usuarios varían mucho de un producto a otro. Esto se traduce en una gran cantidad de configuraciones de aplicaciones para cambiar la disponibilidad de funciones y optimizar el entorno en la aplicación para cada producción. Separar el código que administra estas configuraciones de las propias aplicaciones ayuda a reducir la complejidad a medida que crecen las aplicaciones. Nuestra primera encuesta de intercambio de código incluye la implementación de un SDK móvil para nuestra herramienta de gestión de experiencia interna de Hendrix.

En esencia, Hendrix es un lenguaje interpretado simple que expresa cómo se deben calcular los valores de configuración. Estas expresiones se evalúan en el contexto de la sesión de la aplicación actual y pueden acceder a datos tales como asignaciones de pruebas A / B, ubicación, atributos del dispositivo, etc. Para nuestro uso, configuramos la disponibilidad de producción, las versiones y áreas específicas del conjunto de características de la aplicación.

La mala conectividad de la red, junto con los valores de configuración que cambian con frecuencia en respuesta a la actividad del usuario, significa que la evaluación de las reglas del dispositivo es mejor que la evaluación del lado del servidor.

Esto nos llevó a crear el SDK ligero de Hendrix, un gran candidato para Kotlin Multiplatform, porque requiere una lógica comercial significativa y es completamente agnóstico en la plataforma.

En aras de la brevedad, omitiremos detalles específicos sobre Hendrix y tocaremos algunas diferencias cuando usemos Kotlin Multiplatform en lugar de Kotlin / Swift.

Para Android, funciona como de costumbre. El SDK multiplataforma de Hendrix se importa a través de gradle como una dependencia de proyecto de biblioteca de Android de la misma manera que cualquier otra dependencia. En el lado de iOS, el binario nativo se incluye en el proyecto XCode como marco universal.

El código fuente de Kotlin Multiplatform se puede modificar, recompilar y puede tener un depurador adjunto con puntos de interrupción en Android Studio y XCode (incluida la compatibilidad con lldb). Android Studio funciona desde el primer momento, la compatibilidad con XCode se logra a través de TouchLabs xcode-kotlin contratar.

Depurando el código fuente de Kotlin desde XCode.

Hendrix interpreta conjuntos de reglas: archivos configurables de forma remota que se descargan en el dispositivo. Usamos CualesHttpClient multiplataforma para insertar nuestro código de red en el SDK.

Por supuesto, es posible que una conexión de red no siempre esté disponible, por lo que los conjuntos de reglas descargados deben almacenarse en caché en el disco. Lo usamos para eso SQLDelight junto con controladores para Android y una base de datos nativa para la persistencia multiplataforma.

Durante los últimos años, hemos seguido de cerca el desarrollo de Kotlin Multiplatform y creemos que esta tecnología ha llegado a un punto de inflexión. La integración de herramientas y la construcción del sistema para XCode se han mejorado significativamente, por lo que las complejidades de la integración y el mantenimiento se compensan con la ventaja de que no tiene que escribir y mantener múltiples implementaciones específicas de la plataforma.

Hay muchas oportunidades para compartir más código entre nuestras aplicaciones de estudio de Android e iOS. Considerando que las posibles aplicaciones futuras de esta tecnología serán aún más interesantes Transpilación de JavaScript también es posible.

Estamos entusiasmados con la posibilidad de desarrollar nuestras aplicaciones móviles de estudio en capas delgadas de interfaz de usuario con lógica comercial compartida y continuaremos compartiendo nuestro conocimiento con usted en este viaje.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *