eBay

eBay

Encantando engenheiros no eBay com 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 que preferem em relação a iOS ou Android

Objetivo

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

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

Por que Flutter?

A equipe tinha ouvido muito burburinho sobre o Flutter, que tinha acabado de lançar sua primeira versão completa algumas semanas antes. Embora o eBay não tivesse ficado impressionado com outros SDKs multiplataforma que pesquisaram no passado, o Flutter parecia uma alternativa promissora. Como a equipe precisava trabalhar rápido e manter uma sensação nativa, eles ficaram especialmente animados com as capacidades de economia de tempo e design do Flutter, então decidiram experimentá-lo.

Sua solução

Com o interesse despertado, o eBay passou um mês tentando encontrar lacunas nas capacidades do Flutter. Para sua surpresa e alegria, o Flutter foi capaz de lidar com tudo que puderam pensar em testar.

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

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

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

E claro, o nível de compartilhamento de código multiplataforma foi um atrativo enorme. O Flutter permitiu que a equipe compartilhasse código para quase tudo: a interface de usuário, lógica de negócios, modelos de domínio, analytics, pilha de rede e até mesmo o pipeline de CI. Também havia muitos plugins para ajudá-los a integrar as APIs de dispositivo que precisariam, e nas raras ocasiões em que a equipe precisava escrever os próprios, o trabalho era feito em horas.

No final, o maior desafio foi apenas descobrir como unificar suas equipes de Android e iOS, que sempre trabalharam independentemente. Mas com planejamento cuidadoso, eles conseguiram se unir como uma única equipe, dando-lhes uma voz mais forte e consistente dentro da empresa.

"O Flutter não apenas atendeu nossas expectativas — ele as superou dramaticamente."

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

Resultados

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

Melhor ainda, o novo app do eBay Motors recebeu ótimos feedbacks dos usuários — e foi um sucesso com os desenvolvedores também. Em uma pesquisa interna, 100% dos desenvolvedores da equipe do eBay Motors disseram que gostaram mais do desenvolvimento com Flutter do que com iOS ou Android, e 70% disseram que acharam que era "pelo menos duas vezes mais rápido".

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

A velocidade aumentada também permitiu que eles substituíssem protótipos de papel por protótipos funcionais para testes de usuário, dando-lhes resultados muito mais confiáveis. E como a automação de testes é tão robusta, a equipe converteu ambos os engenheiros de QA em engenheiros de software.

Se você perguntar à equipe de engenharia do eBay Motors, eles dirão que o Flutter fez mais do que apenas melhorar seu fluxo de trabalho. Na verdade, mudou fundamentalmente a forma como a equipe opera, tornando-os não apenas mais produtivos, mas mais felizes e empolgados com seu trabalho.