Como criamos um aplicativo móvel para seis países

O principal projeto ID Finance é um serviço de empréstimo alternativo online MoneyMan. Ele trabalha em sete países - Polônia, Espanha, México, Brasil, Geórgia, Cazaquistão e Rússia. Quando o lançamos na Rússia, em 2015, não podíamos ignorar as plataformas móveis: a parcela de usuários de smartphones entre os russos era de 67% do número total de usuários de celulares. Como um estudo interno mostrou, 80% dos clientes usavam smartphones na plataforma Android, a escolha da plataforma para o desenvolvimento do primeiro aplicativo tornou-se óbvia

imagem


Por que a terceirização não funciona


No início, foi decidido terceirizar o desenvolvimento do aplicativo e, ao mesmo tempo, recrutar uma equipe de desenvolvimento: tínhamos recursos limitados e queríamos obter o aplicativo o mais rápido possível.

A terceirização do desenvolvimento acabou por ser cara e lenta, não havia ninguém dentro da empresa para acompanhar a equipe de desenvolvimento externa, depois que a publicação da classificação do aplicativo na loja era assustadoramente baixa - 1,2 em 5. Todos estavam insatisfeitos: clientes e negócios. Foi necessário mudar alguma coisa e a terceirização foi abandonada em favor de uma pequena equipe de desenvolvedores de Android dentro da empresa, que no início era composta por duas pessoas.

imagem

Projetos terceirizados, além de baixa qualidade, estão repletos de outros problemas

A aplicação dos terceirizados previsivelmente veio em um estado repugnante, não tinha arquitetura em princípio; havia uma sensação de que foi feita por um júnior no joelho em três meses. Na classe do aplicativo, os desenvolvedores encontraram um comentário completamente mágico, cuja versão censurada soa algo como: "API - g *** oh, tire isso daqui". Em seguida, a API mudou uma vez a cada duas semanas e poucas pessoas gostaram: é difícil manter, os analistas de negócios não relataram alterações, o back-end também não estava muito disposto a compartilhar o que estava acontecendo com eles.

Pela história dos commits, ficou claro que os caras tinham mais ou menos conhecimento, mas não saberemos por que o aplicativo foi tão ruim.

O que consertamos


Começamos a refazer o aplicativo e criamos uma camada separada, a única responsável pelas interações de rede. Isso tornou possível não reescrever metade do aplicativo para pequenas alterações. Implementamos com sucesso a arquitetura na qual o aplicativo Moneyman durou três anos sem problemas. Não é mais relevante, mas ainda está vivo e, em seguida, nos permitiu expandir rapidamente, em 2016, de um país para dois (Rússia e Cazaquistão), e em 2017-2018 o aplicativo foi lançado em mais quatro países, agora está planejado lançar outro em um.

imagem

Diagrama de interação do componente de aplicativo

Após o lançamento no Cazaquistão, tornou-se óbvio que o número de países só aumentará e será muito difícil de manter, decidiu-se criar uma estrutura comum. Aqui cometemos um erro evolutivo: nesse contexto, extraímos tudo o que era comum entre aplicativos. Sim, os pacotes para os países se tornaram leves e limitados, mas estamos diante do fato de que nossos negócios em diferentes países estão se desenvolvendo de maneira muito diferente, e os recursos dos aplicativos em um ponto são muito diferentes. Eles começaram a remover algo do framework, transferi-lo de volta para os pacotes, às vezes de forma redundante. Agora, no aplicativo, há um equilíbrio: quando a estrutura faz sentido e contém tudo o que os aplicativos em diferentes países têm em comum, e no aplicativo de cada país, você pode alterar facilmente algo sem recorrer à reescrita. O maior teste para nossa estrutura foi o lançamento de dois países em um mês, pelo qual passou com sucesso. Isso ocorreu em grande parte pelo fato de uma parte significativa da funcionalidade ter sido implementada na estrutura.

Sistema de design


A solução de design existente, embora consistente com as diretrizes, era obsoleta e não correspondia aos conceitos modernos de design. Portanto, havia um sistema de design de componentes. Agora, está em processo de desenvolvimento, o primeiro país em que o sistema de design será mantido será a Espanha.

Um sistema de design também é uma estrutura responsável pela interface do usuário e não diz respeito à lógica de negócios. O padrão do sistema de design não implica o uso pelo desenvolvedor de elementos que vivem fora dele. Se de repente o desenvolvedor quiser tornar o botão um tom de laranja um pouco mais quente, ele precisará adicionar esse botão ao sistema de design e passar por todos os estágios de coordenação com esse botão e somente após a confirmação esse botão estará disponível para todos os aplicativos do sistema. Portanto, o desenvolvedor não poderá dissonar a aparência do aplicativo e todos os aplicativos no ecossistema serão consistentes.

imagem
A tela à esquerda é o antigo aplicativo da Espanha, à direita é o novo. À primeira vista, pode parecer que as mudanças são cosméticas, mas o sistema de design nos permitirá manter a consistência de todas as aplicações Moneyman sem muito esforço.

Infelizmente, um sistema de design completo é uma coisa bastante cara e pode resultar em um projeto separado, com seu próprio back-end, front-end, equipe de designers, etc., mas mesmo com recursos limitados, funciona bem.

Atualizações para atualizações


Atualizamos os aplicativos conforme necessário. Às vezes a cada duas semanas. Mas muitas vezes as mudanças dizem respeito apenas ao back-end e, embora isso seja "fora de processo", essas atualizações às vezes são ignoradas no sprint.

Do desagradável - praticamos a atualização forçada, que impede o usuário de usar o aplicativo até que ele seja atualizado para a versão mais recente. Usamos isso quando a API é alterada e algumas funções do aplicativo podem parar de funcionar. No lado de back-end, o sistema é muito grande e a manutenção da compatibilidade para todas as versões da API é cara.

Aplicativo Moneyman agora:


  • lançado em 6 países
  • o número de instalações de aplicativos tende a 500.000
  • A classificação média do aplicativo é 4,6.
  • Mais de 8 mil críticas na loja russa
  • Uma equipe de cinco desenvolvedores está trabalhando no aplicativo

Os planos incluem o lançamento do aplicativo Moneyman em outro país e a introdução de um design de sistema para aplicativos Moneyman em todos os países.

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


All Articles