eBay

eBay

Encantando os engenheiros da eBay com o Flutter

Métricas de sucesso

98,3%

de código compartilhado

70%

dos desenvolvedores acreditam que o desenvolvimento é 2x mais rápido que soluções nativas

100%

dos desenvolvedores dizem preferir em vez de iOS ou Android

Objetivo

Durante anos, os entusiastas de automóveis confiaram no eBay para comprar e vender carros difíceis de encontrar, mas não havia uma experiência de aplicativo exclusiva para eles. Por isso, em 2018, a equipe da eBay Motors foi incumbida de desenvolver um novo aplicativo para Android e iOS, com um conjunto completo de recursos e a mesma aparência do aplicativo principal do eBay — tudo em menos de um ano.

A equipe sabia que, com seu tamanho limitado, construir dois aplicativos nativos separados nesse prazo era impossível, então buscaram uma solução multiplataforma que pudesse ajudá-los a cumprir o prazo.

Por que o Flutter?

A equipe tinha ouvido muita coisa sobre o Flutter, que havia acabado de lançar sua primeira versão completa algumas semanas antes. Embora o eBay não tivesse se impressionado com outros SDKs multiplataforma que havia pesquisado no passado, o Flutter parecia uma alternativa promissora. Como a equipe precisava trabalhar rápido e manter uma sensação nativa, ficaram especialmente animados com a economia de tempo e os recursos de design do Flutter, então decidiram experimentar.

A solução

Com o interesse aguçado, o eBay passou um mês tentando encontrar lacunas nas capacidades do Flutter. Para sua surpresa e satisfação, o Flutter foi capaz de lidar com tudo o que conseguiram imaginar.

Animada, a equipe da eBay Motors agendou uma série de workshops para capacitar a equipe de Engenharia em Flutter. Ninguém tinha experiência prévia, então se inscreveram no Flutter Bootcamp da AppBrewery e realizaram uma série de workshops práticos internamente.

Desde o início, a equipe ficou empolgada com o Flutter. Todos acharam a experiência de desenvolvimento muito mais divertida e descobriram que era muito mais rápido construir com o Flutter do que com as ferramentas nativas que haviam usado no passado. Por exemplo, no desenvolvimento nativo para Android e iOS, os desenvolvedores podem levar vários minutos para ver seu código refletido no emulador. Com o Flutter, leva segundos.

Também ficaram muito impressionados com o suporte a testes pronto para uso do Flutter, que superou em muito suas expectativas. Eles até decidiram exigir 100% de cobertura de código dali em diante, o que garantiram automatizando seus pull requests.

E, claro, o nível de compartilhamento de código entre plataformas foi um enorme atrativo. O Flutter permitiu que a equipe compartilhasse código para quase tudo: a interface, a lógica de negócios, os modelos de domínio, a análise de dados, a pilha de rede e até o pipeline de CI. Também havia muitos plugins para ajudá-los a integrar as APIs do dispositivo de que precisavam e, nas poucas ocasiões em que a equipe precisou escrever os seus próprios, o trabalho foi concluído em poucas horas.

No fim, o maior desafio foi descobrir como unificar suas equipes de Android e iOS, que sempre haviam trabalhado de forma independente. Mas, com um planejamento cuidadoso, conseguiram se unir como uma única equipe, dando a eles uma voz mais forte e consistente dentro da empresa.

“O Flutter não apenas atendeu às nossas expectativas — ele as superou drasticamente.”

- Corey Sprague, Engenheiro de iOS Sênior, eBay

Resultados

Ao reduzir drasticamente o tempo de desenvolvimento, a equipe da eBay Motors cumpriu todos os prazos de seu cronograma de produção. Lançaram uma versão beta dentro de três meses após a solicitação inicial e disponibilizaram um aplicativo completo em produção apenas alguns meses depois.

Melhor ainda, o novo aplicativo da eBay Motors recebeu ótimos comentários dos usuários — e também foi um sucesso entre os desenvolvedores. Em uma pesquisa interna, 100% dos desenvolvedores da equipe da eBay Motors disseram que gostavam mais de desenvolver com Flutter do que com iOS ou Android, e 70% disseram achar que era “pelo menos duas vezes mais rápido”.

De fato, graças ao Flutter, a eBay Motors agora envia uma nova versão de seu aplicativo para as duas lojas toda semana e conseguiu adicionar novos recursos como chat ao vivo, custódia (escrow) e fóruns da comunidade às duas plataformas de uma só vez. Ao reunir toda a equipe de desenvolvimento sob o mesmo teto, também conseguiram economizar muito tempo. Agora que seus aplicativos compartilham 98,3% do código, o app da eBay Motors tem uma única fonte de verdade — o que significa um único conjunto de reuniões, um único conjunto de designs, uma única fila de backlog e uma única equipe para gerenciar.

A maior velocidade também permitiu que substituíssem protótipos em papel por protótipos funcionais para testes com usuários, dando-lhes resultados muito mais confiáveis. E, como a automação de testes é tão robusta, a equipe transformou seus dois engenheiros de QA em engenheiros de software.

Se você perguntar à equipe de engenharia da eBay Motors, eles dirão que o Flutter fez mais do que apenas melhorar seu fluxo de trabalho. Na verdade, ele mudou fundamentalmente a forma como a equipe opera, tornando-a não apenas mais produtiva, mas também mais feliz e mais animada com o trabalho.