Google Pay

Google Pay

Expandindo globalmente no Google Pay com Flutter

Métricas de sucesso

70%

redução no esforço de engenharia

35%

redução em linhas de código

Objetivo

Com 100 milhões de usuários em dezenas de países, o Google Pay permite que usuários ao redor do mundo paguem, economizem, gerenciem despesas e muito mais. Mas para fazer isso, eles dependiam de 1,7 milhão de linhas de código entre seus apps Android e iOS — uma quantidade que não parecia sustentável à medida que o Google Pay continuava a expandir para novos países, cada um dos quais exigiria suas próprias funcionalidades únicas.

Para tornar as coisas ainda mais desafiadoras, muitas dessas novas regiões tinham um grande número de usuários iOS, enquanto seus usuários existentes eram quase exclusivamente Android. Isso significava que eles não apenas precisariam contratar mais engenheiros iOS, mas também precisariam continuar construindo cada funcionalidade duas vezes — uma vez para Android e uma vez para iOS.

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

Por que Flutter?

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

Embora isso significasse um grande investimento inicial de recursos de engenharia, permitiria que a equipe unificasse sua liderança de engenharia, desviasse seu trabalho de correções intermináveis, e aumentasse a velocidade e eficiência de seu desenvolvimento de cliente para tempos de resposta e implementação mais rápidos.

Acima de tudo, migrar para Flutter permitiria uma escalabilidade rápida e eficiente em recursos do Google Pay ao redor do mundo. Enquanto construir funcionalidades tanto em Android quanto em iOS exigia o dobro do esforço, Flutter exigiria apenas cerca de 1,2 vezes mais trabalho. Então eles decidiram dar o passo.

A Solução

Reconstruir o Google Pay em Flutter não veio sem seus desafios. Primeiro, eles precisariam retreinar a equipe em uma nova linguagem, plataforma e abordagem para a interface do usuário. Em seguida, eles precisariam reescrever o app enquanto ele estava mudando, porque estava sendo constantemente atualizado. E finalmente, eles precisariam passar por todas as revisões de segurança e auditorias necessárias pela segunda vez onde o app já estava lançado.

Mas antes de tudo isso, eles tinham que provar o conceito. Então, em 2019, eles passaram vários meses construindo o caso para migrar o Google Pay para Flutter. Uma pequena equipe de três engenheiros de software seniores de Android e iOS se reuniu, escrevendo e reescrevendo até que eles tivessem uma fatia vertical do app — página inicial, chat e pagamentos (com plugins nativos críticos).

Então eles executaram algumas sprints pequenas para outros engenheiros para dar-lhes a oportunidade de fornecer feedback. Flutter foi um sucesso — a equipe adorou que eles pudessem obter feedback instantâneo durante o desenvolvimento, bem como o número de widgets de alta qualidade que poderiam aproveitar para facilitar o desenvolvimento.

Uma vez que eles tiveram luz verde da alta gerência, eles trouxeram 50 engenheiros e deram a eles seis meses para retreinar e reescrever o app para um lançamento beta em Singapura.

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

"Todos amaram o Flutter — você podia ver a emoção nos rostos 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 app Google Pay reconstruído é menor, mais eficiente de gerenciar e mais fácil de atualizar. Apesar de adicionar várias novas funcionalidades, a nova base de código é 35% menor 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 que economizou 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 do teste beta na Índia, mas os resultados parecem promissores. O beta na Índia será lançado para todos os mais de 100 milhões de usuários indianos ainda este ano, trazendo consigo uma nova interface de usuário e todas as funcionalidades que seus usuários passaram a conhecer e amar.

Com Flutter, o Google Pay 3.0 será capaz de escalar rápida e eficientemente em iOS e Android, começando com um grande relançamento do Google Pay nos EUA este ano. Esta tecnologia fornece uma base para a equipe construir à medida que expandem o Google Pay 3.0 para o resto do mundo em 2021.