Google Pay

Google Pay

A expansão global do Google Pay com o Flutter

Métricas de sucesso

70%

de redução no esforço de engenharia

35%

de redução nas linhas de código

Objetivo

Com 100 milhões de usuários em dezenas de países, o Google Pay permite que pessoas do mundo todo paguem, economizem, gerenciem despesas e muito mais. Mas, para isso, a equipe dependia de 1,7 milhão de linhas de código entre seus aplicativos para Android e iOS — uma quantidade que não parecia sustentável à medida que o Google Pay continuava a se expandir para novos países, cada um exigindo seus próprios recursos exclusivos.

Para tornar as coisas ainda mais desafiadoras, muitas dessas novas regiões tinham um grande número de usuários de iOS, enquanto seus usuários existentes eram quase exclusivamente de Android. Isso significava que não só precisariam contratar mais engenheiros de iOS, como teriam de continuar construindo cada recurso duas vezes — uma para Android e outra para iOS.

Então, em vez disso, optaram por investir em um framework multiplataforma que lhes permitisse fazer mais com menos: o Flutter.

Por que o Flutter?

A equipe testou inicialmente o Flutter como uma possibilidade de Add-to-app, mas a oportunidade de reescrever todo o aplicativo era grande demais para ser ignorada.

Embora isso significasse um investimento inicial pesado de recursos de engenharia, permitiria à equipe unificar sua liderança de engenharia, afastar o trabalho do remendo interminável de problemas e aumentar a velocidade e a eficiência do desenvolvimento do cliente, com tempos de resposta e implementação mais rápidos.

Acima de tudo, migrar para o Flutter possibilitaria escalar o Google Pay pelo mundo de forma rápida e eficiente em recursos. Enquanto desenvolver recursos tanto para Android quanto para iOS exigia o dobro do esforço, o Flutter exigiria apenas cerca de 1,2 vez mais trabalho. Então decidiram arriscar.

A solução

Reconstruir o Google Pay em Flutter não veio sem desafios. Primeiro, precisariam recapacitar a equipe em uma nova linguagem, plataforma e abordagem para a interface do usuário. Depois, teriam de reescrever o aplicativo enquanto ele mudava, porque estava sendo atualizado constantemente. E, por fim, precisariam passar por todas as revisões e auditorias de segurança necessárias uma segunda vez, nos lugares em que o aplicativo já havia sido lançado.

Mas, antes de qualquer coisa, tinham de provar o conceito. Então, em 2019, passaram vários meses construindo a justificativa para migrar o Google Pay para o Flutter. Uma pequena equipe de três engenheiros de software sêniores de Android e iOS se uniu, escrevendo e reescrevendo até ter uma fatia vertical do aplicativo — página inicial, chat e pagamentos (com plugins nativos críticos).

Em seguida, realizaram alguns sprints curtos para que outros engenheiros tivessem a oportunidade de dar feedback. O Flutter foi um sucesso — a equipe adorou poder obter feedback instantâneo durante o desenvolvimento, bem como a quantidade de widgets de alta qualidade que podiam aproveitar para facilitar o desenvolvimento.

Assim que receberam o sinal verde da alta gerência, trouxeram 50 engenheiros e lhes deram seis meses para se recapacitar e reescrever o aplicativo para um lançamento beta em Singapura.

O lançamento foi um sucesso. Animados, trouxeram mais 100 engenheiros para ajudá-los a relançar o Google Pay na Índia e nos EUA também sobre a base de código do Flutter. Foi uma corrida contra o tempo: precisavam reescrever um aplicativo existente com quase 300 recursos e testá-lo em beta, para então lançá-lo a mais de 100 milhões de usuários ativos mensais, tudo isso enquanto mantinham o aplicativo legado.

“Todos adoraram o Flutter — dava para ver a empolgação no rosto das pessoas enquanto falavam sobre como era rápido construir uma interface de usuário.”

- David Ko, Diretor de Engenharia, Google Pay

Resultados

Apesar desses desafios, a equipe lançou o Google Pay para testes beta na Índia no início de agosto.

O aplicativo reconstruído do Google Pay é menor, mais eficiente de gerenciar e mais fácil de atualizar. Apesar de adicionar vários novos recursos, a nova base de código é 35% menor do que as implementações originais — 1,1 milhão de linhas de código em vez de 1,7 milhão. Ao mesmo tempo, a equipe estima ter economizado cerca de 60-70% do tempo de seus engenheiros, porque o Flutter é simplesmente muito mais fácil de gerenciar.

A equipe — agora com quase 180 engenheiros de software — ainda está coletando feedback sobre o teste beta na Índia, mas os resultados parecem promissores. O beta na Índia será disponibilizado para todos os mais de 100 milhões de usuários indianos ainda neste ano, trazendo consigo uma interface de usuário renovada e todos os recursos que seus usuários passaram a conhecer e amar.

Com o Flutter, o Google Pay 3.0 poderá escalar de forma rápida e eficiente em iOS e Android, começando com um grande relançamento do Google Pay nos EUA neste ano. Essa tecnologia fornece uma base sobre a qual a equipe pode construir à medida que expande o Google Pay 3.0 para o resto do mundo em 2021.