MVP par un seul développeur

Avec l'énorme concurrence des produits numériques et la grande vitesse de lancement de nouveaux produits, il est nécessaire de tester rapidement et à moindre coût la viabilité des idées de produits. Dans cet article, je parlerai de l'expérience de création de MVP en interne, c'est-à-dire en fait, par un développeur iOS. À propos de la façon dont j'ai recherché l'équilibre lors de la création de MVP, des outils, des difficultés et de leur solution. Si vous prévoyez de mettre en œuvre les premiers projets de développement mobile ou si vous souhaitez ajouter une nouvelle branche de fonctionnalités à un produit existant, cet article est pour vous.

image

Rappelons d'abord ce qu'est MVP.

MVP ( minimum viable product) est un produit qui a des caractéristiques minimales mais suffisantes pour satisfaire les premiers consommateurs.

La tâche principale de MVP est d'obtenir des informations en retour afin de formuler des hypothèses pour un développement ultérieur et, dans l'ensemble, d'évaluer son opportunité. Ceux. il doit être aussi bon marché que possible en cas d'échec et en même temps viable dans un scénario positif. Par conséquent, la tâche principale peut être réduite à la recherche notoire de l'équilibre à chaque stade de développement.

Fonctionnalité de l'application




J'ai donc dû créer une application mobile avec l'ensemble de fonctions de base suivant:

  • autorisation;
  • conférences vocales;
  • panneau d'administration et petit serveur;
  • chargement de contenu par les utilisateurs;
  • visualisation synchronisée du contenu;
  • analyse de base.

Temps et ressources humaines


Les ressources minimales pour ce projet sont d'un développeur iOS et 2 mois pour le développement et les tests. Plus comme un défi. Mais pas de panique! Bien sûr, j'ai utilisé des développements prêts à l'emploi. MVP ne vaut certainement pas la peine de développer vos propres bibliothèques. Nous consacrons donc quelques jours à la sélection de solutions toutes faites et aux projets open source nécessaires.

Conception


L'une des choses les moins évidentes de l'ensemble minimal pour MVP est la conception. Il semble que pour lui il suffit de lister les noms des écrans et ce dont ils sont responsables. Mais en réalité, une interface soigneusement conçue accélère considérablement le processus, permettant au développeur de se débarrasser de nombreuses incertitudes dans le travail. Le développement de la conception dans les premiers stades donne une compréhension plus claire du flux d'utilisateurs, vous permet de supprimer les inutiles et de vous concentrer sur une fonctionnalité minimale suffisante pour la première mise en œuvre du projet.

Bien sûr, l'accent ne doit pas se déplacer vers des animations complexes, mais la première impression ne peut être faite qu'une seule fois! Par conséquent, nous avons besoin d'une interface simple mais agréable et d'un tutoriel intuitif.

Dans mon cas, la conception finale de l'application était presque prête à démarrer le développement.

Architecture


Il est probablement facile de deviner que je travaillais sur un client iOS, et c'est la partie qui devait être enregistrée et développée plus avant dans ce projet. Par conséquent, nous établissons une architecture solide et sélectionnons les pièces très peu viables dans les modules qui seront remplacés aux prochaines étapes de développement.

Sur la base de ces exigences, il est également clair que l'application a besoin non seulement du client, mais également de la logique de base sur le backend. Ceux. vous avez besoin d'une autorisation, de la logique de les rejoindre et de les quitter, de la formation et de la gestion du contenu, de l'envoi de notifications push.

Rechercher une solution


L'un des outils nécessaires est une base de données cloud. Pour cela, j'ai comparé plusieurs des options les plus populaires.



D'après le tableau ci-dessus, il est clair que Firebase est une excellente solution intégrée de Google, capable de couvrir la plupart des besoins de l'application développée. 

Ces solutions vous permettent de conserver tous les contrôles en un seul endroit: les comptes d'utilisateurs, une liste des salles et de leurs paramètres, des analyses et des informations sur les plantages. Et dans ce cas, vous pouvez également gérer les salles et leur contenu via le panneau d'administration Firebase - c'est très pratique. À un moment donné, vous pourriez même penser qu'il s'agit d'une publicité, mais j'ai vraiment aimé et, surtout, cet ensemble d'outils m'a aidé.

De plus, le service est gratuit (sous réserve de limites), et pour MVP ils devraient être suffisants avec une marge. Bonne documentation, il existe déjà un tas d'articles et de didacticiels sur tous les services, jusqu'à vos propres didacticiels vidéo sur YouTube - ils ne laissent tout simplement aucune chance de ne pas être triés.

En conséquence, de Firebase j'ai pris:

  • autorisation 'Firebase / Auth';
  • Base de données cloud 'Firebase / Firestore';
  • backend 'Firebase / Functions';
  • Stockage «Firebase / Storage»
  • analyse 'Firebase / Analytics';
  • Rapport de crash de Crashlytics.

Voici à quoi ressemble l'autorisation:



Pour les tâches attribuées, l'autorisation anonyme a été plutôt simplifiée, lorsque l'utilisateur n'est affecté qu'à un ID unique.

Voici à quoi ressemblent les paramètres de notification push sur le client:



cela ne prendra que quelques lignes. Vous devez vous abonner à un sujet spécifique, qui, à son tour, envoie des refoulements à l'arrière.

Voici à quoi ressemble l'envoi à TypeScript (JavaScript) via le SDK Firebase: il



ne restait plus qu'à trouver une solution bon marché pour les conférences vocales, mais tout s'est avéré moins évident. Firebase, malheureusement, ne peut pas couvrir cette fonctionnalité. 

Les principales exigences sont la multiplateforme et l'intégration facile. Voici une petite sélection d'outils similaires.

L'attention a attiré Jitsi- Il s'agit d'un projet open source avec prise en charge des conversations iOS / Android, audio et vidéo sur WebRTC. Pour commencer, leur hébergement gratuit suffit, et à l'avenir, vous pourrez vous déplacer. De plus, les conférences elles-mêmes peuvent être testées directement dans la version Web, ce qui a grandement simplifié le débogage des appels.



Jitsi a une intégration et un lancement très simples de la conférence elle-même. Mais après le début de l'appel, la conférence est gérée directement via Webview, vous ne pouvez terminer la conversation que par programme. Au stade de la sélection de cet outil, personne ne pensait qu'en utilisant les méthodes disponibles dans le code, par exemple, il était impossible de rendre muet / réactivé. Par conséquent, j'ai dû affiner et ajouter ces méthodes à la bibliothèque, ainsi que configurer l'interaction avec les contrôles. J'ai également dû modifier certains paramètres pour moi-même. Bien sûr, cela a pris un peu plus de temps - cela a pris une semaine supplémentaire, mais c'est encore plusieurs fois moins qu'il ne faudrait pour écrire votre décision. 

Sommaire


Après un mois et demi, l'application était prête, nous avons ajouté les analyses nécessaires pour mesurer les indicateurs de produits d'intérêt. Deux semaines ont été nécessaires pour les tests et les améliorations ultérieures. Ainsi, le développement a pris 2 mois, comme prévu. Je note que même sur de petits projets, il semble que vous pouvez toujours réparer quelque chose, essayez de trouver une meilleure solution. Ces désirs s'éloignent de la tâche principale du MVP.

Malheureusement, la société n'a pas reçu les mesures nécessaires, ce qui a entraîné la clôture du projet. Mais c'est l'un des résultats: nous avons testé l'hypothèse, et surtout - rapidement et à moindre coût.

Et encore une fois, je vais vous rappeler les principaux points à garder à l'esprit lors du développement d'une application MVP pour iOS:

  • économiser sur tout, mais pas sur la qualité;
  • la conception finale accélérera considérablement le processus;
  • MVP ;
  • .

All Articles