MVP por um único desenvolvedor

Com a enorme concorrência de produtos digitais e a alta velocidade de lançamento de novos produtos, é necessário testar de forma rápida e barata a viabilidade das idéias de produtos. Neste artigo, falarei sobre a experiência de criar MVP internamente, ou seja, de fato, por um desenvolvedor iOS. Sobre como eu procurei equilíbrio ao criar o MVP, sobre ferramentas, dificuldades e suas soluções. Se você planeja implementar os primeiros projetos no desenvolvimento móvel ou deseja adicionar uma nova ramificação de funcionalidade a um produto existente, este artigo é para você.

imagem

Vamos primeiro lembrar o que é MVP.

MVP ( produto mínimo viável) é um produto que possui recursos mínimos, mas suficientes para satisfazer os primeiros consumidores.

A principal tarefa do MVP é obter feedback para formular hipóteses para maior desenvolvimento e, em geral, avaliar sua adequação. Essa. deve ser o mais barato possível em caso de falha e ao mesmo tempo viável em um cenário positivo. Portanto, a tarefa principal pode ser reduzida à notória busca de equilíbrio em cada estágio do desenvolvimento.

Funcionalidade do aplicativo




Então, eu precisava criar um aplicativo móvel com o seguinte conjunto de funções básicas:

  • autorização;
  • conferências de voz;
  • painel de administração e lado pequeno do servidor;
  • carregamento de conteúdo pelos usuários;
  • visualização sincronizada de conteúdo;
  • análise básica.

Tempo e Recursos Humanos


Os recursos mínimos para este projeto são um desenvolvedor iOS e 2 meses para desenvolvimento e teste. Mais como um desafio. Mas sem pânico! Claro, eu usei desenvolvimentos prontos. Definitivamente, o MVP não vale a pena desenvolver suas próprias bibliotecas. Por isso, aguardamos alguns dias na seleção de soluções prontas e nos projetos de código aberto necessários.

Projeto


Uma das coisas menos óbvias do conjunto mínimo para MVP é o design. Parece que, para ele, basta listar os nomes das telas e o que eles são responsáveis. Mas, na realidade, uma interface cuidadosamente projetada acelera significativamente o processo, permitindo que o desenvolvedor se livre de muitas incertezas no trabalho. O desenvolvimento do design nos estágios iniciais fornece uma compreensão mais clara do fluxo do usuário, permite remover desnecessários e focar na funcionalidade mínima suficiente para a primeira implementação do projeto.

Obviamente, o foco não deve mudar para animações complexas, mas a primeira impressão pode ser feita apenas uma vez! Portanto, uma interface simples, mas agradável, e um tutorial intuitivo são o que precisamos.

No meu caso, o design final do aplicativo estava quase pronto para iniciar o desenvolvimento.

Arquitetura


Provavelmente é fácil adivinhar que eu estava trabalhando em um cliente iOS, e essa é a parte que precisava ser salva e desenvolvida posteriormente neste projeto. Portanto, estabelecemos uma arquitetura sólida e selecionamos as partes minimamente viáveis ​​nos módulos que serão substituídos nos próximos estágios de desenvolvimento.

Com base nesses requisitos, também está claro que o aplicativo precisa não apenas do cliente, mas também da lógica básica no back-end. Essa. você precisa de autorização, a lógica de ingressar e sair deles, a formação e o gerenciamento de conteúdo, enviando notificações por push.

Procure uma solução


Uma das ferramentas necessárias é um banco de dados em nuvem. Para isso, comparei várias das opções mais populares.



Na tabela acima, fica claro que o Firebase é uma excelente solução integrada do Google, capaz de atender a maioria das necessidades do aplicativo desenvolvido. 

Essas soluções permitem manter todos os controles em um só lugar: contas de usuário, uma lista de salas e suas configurações, análises e informações sobre falhas. E, nesse caso, você também pode gerenciar as salas e seu conteúdo através do painel de administração do Firebase - é muito conveniente. Em algum momento, você pode até pensar que isso é um anúncio, mas eu realmente gostei e, o mais importante, esse conjunto de ferramentas ajudou.

Além disso, o serviço é gratuito (sujeito a limites) e, para o MVP, deve ser suficiente com uma margem. Boa documentação, já existem vários artigos e tutoriais em todos os serviços, até os seus próprios tutoriais em vídeo no YouTube, - eles simplesmente não deixam chance de serem resolvidos.

Como resultado, do Firebase eu peguei:

  • autorização 'Firebase / Auth';
  • Banco de dados em nuvem 'Firebase / Firestore';
  • back-end 'Firebase / Funções';
  • Armazenamento 'Firebase / Storage'
  • análise 'Firebase / Analytics';
  • Crashlytics Crash Report.

É assim que a autorização se parece:



Para as tarefas atribuídas, a autorização anônima foi bastante simplificada, quando o usuário recebe apenas um ID exclusivo.

É assim que as configurações de notificação por push no cliente são exibidas:



serão necessárias apenas algumas linhas. Você precisa se inscrever em um tópico específico, que, por sua vez, envia retrocessos pela parte traseira.

É assim que o envio para TypeScript (JavaScript) via Firebase SDK se parece:



Tudo o que restava era encontrar uma solução barata para conferências de voz, mas tudo acabou não sendo tão óbvio. Infelizmente, o Firebase não pode cobrir essa funcionalidade. 

Os principais requisitos são multiplataforma e fácil integração. Aqui está uma pequena seleção de ferramentas semelhantes.

Atenção atraiu Jitsi- Este é um projeto de código aberto com suporte para iOS / Android, bate-papos de áudio e vídeo no WebRTC. Para começar, a hospedagem gratuita é suficiente e, no futuro, você pode se mudar. Além disso, as próprias conferências podem ser testadas diretamente na versão web, o que simplificou bastante a depuração de chamadas.



Jitsi tem uma integração e lançamento muito simples da própria conferência. Porém, após o início da chamada, a conferência é gerenciada diretamente pelo Webview, você só pode encerrar a conversa programaticamente. No estágio de seleção dessa ferramenta, não se pensava que, usando os métodos disponíveis no código, por exemplo, é impossível ativar / desativar o som. Portanto, tive que refinar e adicionar esses métodos à biblioteca, além de configurar a interação com os controles. Eu também tive que ajustar alguns parâmetros para mim. Claro, demorou um pouco mais de tempo - demorou uma semana extra, mas ainda é várias vezes menos do que seria necessário para escrever sua decisão. 

Sumário


Após um mês e meio, o aplicativo ficou pronto, adicionamos as análises necessárias para medir os indicadores de interesse do produto. Foram necessárias duas semanas para testes e melhorias subseqüentes. Assim, o desenvolvimento levou 2 meses, conforme planejado. Observo que, mesmo em pequenos projetos, parece que você ainda pode consertar algo, tente encontrar uma solução melhor. Esses desejos se afastam da tarefa principal do MVP.

Infelizmente, a empresa não recebeu as métricas necessárias, e isso significou o encerramento do projeto. Mas este é um dos resultados: testamos a hipótese e, o mais importante, de forma rápida e barata.

E mais uma vez, lembrarei os principais pontos a serem lembrados ao desenvolver um aplicativo MVP para iOS:

  • economize em tudo, mas não em qualidade;
  • o design final acelerará bastante o processo;
  • MVP ;
  • .

All Articles