Cómo creamos una aplicación móvil para seis países

El proyecto emblemático ID Finance es un servicio de préstamo alternativo en línea MoneyMan. Trabaja en siete países: Polonia, España, México, Brasil, Georgia, Kazajstán y Rusia. Cuando lo lanzamos por primera vez en Rusia en 2015, no podíamos ignorar las plataformas móviles: la proporción de usuarios de teléfonos inteligentes entre los rusos era del 67% del número total de usuarios de teléfonos móviles. Como mostró un estudio interno, el 80% de los clientes usaban teléfonos inteligentes en la plataforma Android, la elección de la plataforma para desarrollar la primera aplicación se hizo evidente

imagen


¿Por qué el outsourcing no funciona?


Al principio, se decidió externalizar el desarrollo de la aplicación y al mismo tiempo reclutar un equipo de desarrollo: teníamos recursos limitados y queríamos obtener la aplicación lo más rápido posible.

El outsourcing de desarrollo resultó ser costoso y lento, no había nadie dentro de la compañía que siguiera al equipo de desarrollo externo, después de la publicación, la calificación de la aplicación en la tienda era terriblemente baja: 1.2 de 5. Todos estaban insatisfechos: tanto clientes como negocios. Era necesario cambiar algo y la subcontratación se abandonó a favor de un pequeño equipo de desarrolladores de Android dentro de la empresa, que al principio constaba de dos personas.

imagen

Los proyectos subcontratados, además de la mala calidad, están plagados de otros problemas.

La aplicación de los subcontratistas, como era de esperar, llegó en un estado desagradable, no tenía arquitectura en principio, había una sensación de que fue hecha por un joven en su rodilla en tres meses. En la clase de aplicación, los desarrolladores encontraron un comentario completamente mágico, cuya versión censurada suena como: "API - g *** oh, sácalo de aquí". Luego, la API cambió aproximadamente una vez cada dos semanas, y a pocas personas les gustó: es difícil de mantener, los analistas de negocios no informaron los cambios, el backend tampoco estaba muy dispuesto a compartir lo que estaba sucediendo con ellos.

Según la historia de los commits, estaba claro que los tipos lo sabían más o menos, pero no sabremos por qué la aplicación resultó tan mala.

Lo que arreglamos


Comenzamos a rehacer la aplicación e hicimos una capa separada, que es la única responsable de las interacciones de red. Esto hizo posible no reescribir la mitad de la aplicación para cambios menores. Hemos implementado con éxito la arquitectura en la que la aplicación Moneyman duró tres años sin ningún problema. Ya no es relevante, pero sigue vivo, y luego nos permitió expandirnos rápidamente, en 2016 de un país a dos (Rusia y Kazajstán), y en 2017-2018 la aplicación se lanzó en cuatro países más, ahora está previsto lanzar otro en uno

imagen

Diagrama de interacción del componente de aplicación

Después del lanzamiento en Kazajstán, se hizo evidente que el número de países solo crecerá y será muy difícil de mantener, se decidió crear un marco común. Aquí cometimos un error evolutivo: en este marco sacamos todo lo que era común entre las aplicaciones. Sí, los paquetes para países se han vuelto ligeros y delgados, pero nos enfrentamos al hecho de que nuestro negocio en diferentes países se está desarrollando de manera muy diferente, y las características de las aplicaciones en un punto son muy diferentes. Comenzaron a eliminar algo del marco, transferirlo nuevamente a paquetes, a veces de forma redundante. Ahora en la aplicación hay un equilibrio, cuando el marco tiene sentido y contiene todo lo que las aplicaciones en diferentes países tienen en común, y en la aplicación para cada país puede cambiar fácilmente algo sin recurrir a la reescritura. La prueba más importante para nuestro marco fue el lanzamiento de dos países en un mes, que pasó con éxito. Esto se debió en gran parte al hecho de que una parte importante de la funcionalidad se implementó en el marco.

Sistema de diseño


La solución de diseño existente, aunque era coherente con las directrices, era obsoleta y no correspondía a los conceptos modernos de diseño. Entonces había un sistema de diseño de componentes. Ahora está en proceso de desarrollo, el primer país en el que se mantendrá el sistema de diseño será España.

Un sistema de diseño también es un marco responsable de la interfaz de usuario y no se refiere a la lógica empresarial. El patrón del sistema de diseño no implica el uso por parte del desarrollador de elementos que viven fuera de él. Si el desarrollador de repente quiere hacer que el botón tenga un tono naranja ligeramente más cálido, tendrá que agregar este botón al sistema de diseño y pasar por todas las etapas de coordinación con este botón y solo después de la confirmación, este botón estará disponible para todas las aplicaciones en el sistema. Por lo tanto, el desarrollador no podrá disonar la apariencia de la aplicación y todas las aplicaciones en el ecosistema serán consistentes.

imagen
La pantalla a la izquierda es la antigua aplicación para España, a la derecha es la nueva. A primera vista, puede parecer que los cambios son cosméticos, pero el sistema de diseño nos permitirá mantener la consistencia de todas las aplicaciones de Moneyman sin mucho esfuerzo.

Desafortunadamente, un sistema de diseño completo es bastante costoso y puede resultar en un proyecto separado, con su propio backend, frontend, personal de diseñadores, etc., pero incluso con recursos limitados funciona bien.

Actualizaciones para actualizaciones


Actualizamos las aplicaciones según sea necesario. A veces cada dos semanas. Pero a menudo los cambios se refieren solo al backend, y, aunque esto está "fuera de proceso", estas actualizaciones a veces se omiten en el sprint.

Desde lo desagradable: practicamos la actualización forzada, que impide que el usuario use la aplicación hasta que la actualice a la última versión. Usamos esto cuando la API cambia y algunas funciones de la aplicación pueden dejar de funcionar. En el lado del backend, el sistema es muy grande y el mantenimiento de la compatibilidad para todas las versiones de la API es costoso.

Aplicación Moneyman ahora:


  • lanzado en 6 países
  • el número de instalaciones de aplicaciones tiende a 500,000
  • La calificación promedio de la aplicación es 4.6.
  • Más de 8 mil reseñas en la tienda rusa.
  • Un equipo de cinco desarrolladores está trabajando en la aplicación.

Los planes incluyen el lanzamiento de la aplicación Moneyman en otro país y la introducción de un diseño de sistema para aplicaciones Moneyman en todos los países.

Source: https://habr.com/ru/post/es419397/


All Articles