MVP por un solo desarrollador

Con la enorme competencia de los productos digitales y la alta velocidad de lanzamiento de nuevos, es necesario probar rápida y económicamente la viabilidad de las ideas de productos. En este artículo hablaré sobre la experiencia de crear MVP internamente, es decir de hecho, por un desarrollador de iOS. Sobre cómo busqué el equilibrio al crear MVP, sobre herramientas, dificultades y su solución. Si planea implementar los primeros proyectos en el desarrollo móvil o desea agregar una nueva rama de funcionalidad a un producto existente, entonces este artículo es para usted.

imagen

Primero recordemos qué es MVP.

MVP ( producto mínimo viable) es un producto que tiene características mínimas pero suficientes para satisfacer a los primeros consumidores.

La tarea principal de MVP es obtener retroalimentación para formular hipótesis para un mayor desarrollo y, en general, evaluar su idoneidad. Aquellos. debería ser lo más barato posible en caso de falla y al mismo tiempo viable en un escenario positivo. Por lo tanto, la tarea principal puede reducirse a la notoria búsqueda de equilibrio en cada etapa del desarrollo.

Funcionalidad de la aplicación




Entonces, necesitaba hacer una aplicación móvil con el siguiente conjunto de funciones básicas:

  • autorización;
  • conferencias de voz;
  • panel de administración y lado del servidor pequeño;
  • carga de contenido por parte de los usuarios;
  • visualización sincronizada de contenido;
  • Analítica básica.

Tiempo y recursos humanos


Los recursos mínimos para este proyecto son un desarrollador de iOS y 2 meses para desarrollo y pruebas. Más como un desafío. ¡Pero sin pánico! Por supuesto, utilicé desarrollos confeccionados. MVP definitivamente no vale la pena desarrollar sus propias bibliotecas. Por lo tanto, dedicamos unos días a la selección de soluciones preparadas y los proyectos necesarios de código abierto.

Diseño


Una de las cosas menos obvias del conjunto mínimo para MVP es el diseño. Parece que para él es suficiente enumerar los nombres de las pantallas y de qué son responsables. Pero, en realidad, una interfaz cuidadosamente diseñada acelera significativamente el proceso, permitiendo al desarrollador deshacerse de muchas incertidumbres en el trabajo. El desarrollo del diseño en las primeras etapas proporciona una comprensión más clara del flujo de usuarios, le permite eliminar innecesarios y concentrarse en una funcionalidad mínimamente suficiente para la primera implementación del proyecto.

Por supuesto, el enfoque no debe cambiar hacia animaciones complejas, ¡pero la primera impresión solo se puede hacer una vez! Por lo tanto, una interfaz simple pero agradable y un tutorial intuitivo son lo que necesitamos.

En mi caso, el diseño final de la aplicación estaba casi listo para comenzar el desarrollo.

Arquitectura


Probablemente sea fácil adivinar que estaba trabajando en un cliente iOS, y esta es la parte que necesitaba guardarse y desarrollarse más en este proyecto. Por lo tanto, establecemos una arquitectura sólida y seleccionamos en los módulos aquellas partes mínimamente viables que serán reemplazadas en las próximas etapas de desarrollo.

En base a estos requisitos, también está claro que la aplicación necesita no solo el cliente, sino también la lógica básica en el back-end. Aquellos. necesita autorización, la lógica de unirse y salir de ellos, la formación y gestión de contenido, el envío de notificaciones push.

Busca una solución


Una de las herramientas necesarias es una base de datos en la nube. Para esto, comparé varias de las opciones más populares.



De la tabla anterior está claro que Firebase es una excelente solución integrada de Google, capaz de cubrir la mayoría de las necesidades de la aplicación desarrollada. 

Dichas soluciones le permiten mantener todos los controles en un solo lugar: cuentas de usuario, una lista de salas y su configuración, análisis e información sobre bloqueos. Y en este caso, también puede administrar salas y su contenido a través del panel de administración de Firebase, es muy conveniente. En algún momento, incluso podría pensar que se trata de un anuncio, pero realmente me gustó y, lo más importante, este conjunto de herramientas ayudó.

Además, el servicio es gratuito (sujeto a límites), y para MVP deberían ser suficientes con un margen. Buena documentación, ya hay un montón de artículos y tutoriales en todos los servicios, hasta sus propios videos tutoriales en YouTube, simplemente no dejan ninguna posibilidad de resolverlos.

Como resultado, de Firebase tomé:

  • autorización 'Firebase / Auth';
  • Base de datos en la nube 'Firebase / Firestore';
  • backend 'Firebase / Funciones';
  • Almacenamiento 'Firebase / Storage'
  • análisis 'Firebase / Analytics';
  • Crashlytics Crash Report.

Así es como se ve la autorización:



para las tareas asignadas, la autorización anónima se simplificó bastante, cuando al usuario se le asigna solo una ID única.

Así es como se ve la configuración de notificaciones push en el cliente:



solo tomará unas pocas líneas. Debe suscribirse a un tema específico, que, a su vez, envía retrocesos desde atrás.

Así es como se ve el envío a TypeScript (JavaScript) a través de Firebase SDK:



todo lo que quedaba era encontrar una solución barata para conferencias de voz, pero aquí no era tan obvio. Firebase, desafortunadamente, no puede cubrir esta funcionalidad. 

Los requisitos principales son multiplataforma y fácil integración. Aquí hay una pequeña selección de herramientas similares.

La atención atrajo a Jitsi- Este es un proyecto de código abierto con soporte para iOS / Android, chats de audio y video en WebRTC. Para comenzar, su alojamiento gratuito es suficiente, y en el futuro puede moverse. Además, las conferencias en sí pueden probarse directamente en la versión web, lo que simplificó enormemente la depuración de las llamadas.



Jitsi tiene una integración muy simple y el lanzamiento de la conferencia en sí. Pero después del inicio de la llamada, la conferencia se gestiona directamente a través de Webview, solo puede finalizar la conversación mediante programación. En la etapa de selección de esta herramienta, no se pensó que usar los métodos disponibles en el código, por ejemplo, sea imposible silenciar / activar el sonido. Por lo tanto, tuve que refinar y agregar estos métodos a la biblioteca, así como configurar la interacción con los controles. También tuve que ajustar algunos parámetros por mí mismo. Por supuesto, tomó un poco más de tiempo, tomó una semana extra, pero aún es varias veces menos de lo que tomaría escribir su decisión. 

Resumen


Después de un mes y medio, la aplicación estaba lista, agregamos los análisis necesarios para medir los indicadores de productos de interés. Se necesitaron dos semanas para las pruebas y las mejoras posteriores. Por lo tanto, el desarrollo tomó 2 meses, según lo previsto. Observo que incluso en proyectos pequeños parece que todavía puedes arreglar algo, intenta encontrar una mejor solución. Estos deseos se alejan de la tarea principal de MVP.

Desafortunadamente, la compañía no recibió las métricas necesarias, y esto significó el cierre del proyecto. Pero este es uno de los resultados: probamos la hipótesis y, lo más importante, de forma rápida y económica.

Y una vez más, te recordaré los puntos principales a tener en cuenta al desarrollar una aplicación MVP para iOS:

  • ahorre en todo, pero no en calidad;
  • el diseño terminado acelerará enormemente el proceso;
  • MVP ;
  • .

All Articles