most read
Life at Nu
Conheça a sede do Nubank em Pinheiros, São Paulo/Brasil jan 11
Design
A nova aparência do Nubank: conheça nossa nova logo maio 17
Culture & Values
Como os valores e a cultura da Nu moldam os produtos que criamos ago 7
Careers
We are building diverse teams with the most creative and innovative professionals for each position we open.



Há pouco mais de um ano, Alexandre Freire escreveu um artigo sobre como nós decidimos padronizar o desenvolvimento do nosso aplicativo móvel com o Flutter, nossas primeiras experiências com a plataforma e por que decidimos usá-la como nossa tecnologia principal para aplicativos multiplataforma.
Em uma entrevista recente com Nóra Bézi da Bitrise, Alexandre — junto com Noe Branagan, gerente de engenharia da equipe central do Flutter no Nubank, e outros engenheiros do Nubank — deu uma visão geral de como o Flutter nos ajudou a expandir o desenvolvimento do nosso aplicativo para suportar nosso hipercrescimento..
Por que o Flutter?
Conforme o Nubank cresceu e se tornou o maior banco digital independente fora da Ásia, desenvolver novos produtos além do cartão de crédito virou uma prioridade, e as novas equipes precisavam descobrir uma maneira de criar rapidamente aplicativos de alta qualidade.
Para se ater a apenas uma tecnologia, a equipe avaliou as opções em relação a uma série de prioridades definidas com base nesses cinco fatores:
Após coletar evidências, a equipe decidiu adotar o Flutter, graças às suas excelentes capacidades de testes, como infraestrutura de teste integrada para testes de Unidade, Integração e de ponta a ponta sem a necessidade de renderizar na tela. Em geral — em comparação com as outras opções —, eles também acharam que a experiência de desenvolvimento no Flutter era superior, com melhores capacidades de recarga automática, documentação oficial robusta e uma API mais estável.
Check our job opportunies
Após um ano, qual a qualidade de expansão do Flutter?
Nóra: Vocês ainda estão felizes com o Flutter?
Alexandre Freire, Diretor de Engenharia: Amamos o Flutter no Nubank. Ele se tornou 100% parte da nossa cultura quando falamos sobre desenvolvimento para celulares. Também estamos testando o Flutter Web, pois demonstrou muitas vantagens para melhorar a experiência do desenvolvedor. Tomamos muitas decisões estratégicas na nossa equipe de produtos que afetaram a nossa velocidade e a eficiência e deram a oportunidade para mais engenheiros colaborarem no nosso código-base compartilhando uma linguagem. Ficamos surpresos com quão fácil foi para nossas equipes adotarem a tecnologia e todos os novos recursos usando o Flutter. Estamos ficando mais experientes em Dart — pois virou parte do nosso arsenal para criar novas ferramentas para desenvolvimento para celulares, como o CLI que usamos para desenvolvedores móveis trabalharem no nosso monorepo.
Nóra: Desde que começaram a usar o Flutter, algo mudou no seu processo de desenvolvimento para celulares?
Noe Branagan, Gerente de Engenharia: Desde que adotamos o Flutter, adotamos uma ferramenta de desenvolvimento interno experimental usando Flutter Desktop para acelerar nosso desenvolvimento ainda mais. Ele reduz o uso de bateria do notebook ignorando emuladores e ajuda com testes rápidos em diferentes dimensões de dispositivos. Nossa infraestrutura móvel e eficiência de desenvolvimento ficaram cada vez melhores com Flutter, Dart e com os diversos novos recursos para desenvolvedores que foram introduzidos no ano passado.
Nóra: Há algo que você queria ter sabido na época?
Bruno Tavares, Gerente de Engenharia: Acho que fomos um pouco ingênuos em relação à capacidade de migrar um aplicativo tão grande e complexo que oferece suporte completo para quatro produtos diferentes. Ainda estamos na metade: nosso aplicativo ainda não é 100% Flutter. Recentemente finalizamos um mapa completo dos módulos de propriedade para as equipes e começamos os planos de acompanhamento para finalizar a migração. Estamos alinhando a empresa ao redor do objetivo técnico de finalizar a migração. Também estamos enfrentando decisões difíceis de priorização, especialmente em fluxos e telas que funcionam muito bem em seu estado atual (Objective-C nativo, Swift, Java, Kotlin ou React Native), para os quais não há planos de atualização em breve.
O mapa a seguir mostra todos os fluxos e telas do aplicativo, com o tamanho significando a complexidade do módulo. O roxo marca os que já foram migrados, e os verdes serão migrados este ano:
Nóra: Na sua opinião, qual é a qualidade de expansão do Flutter?
Noe Branagan, Gerente de Engenharia: Nossa equipe de engenharia está expandindo como resultado do hipercrescimento do Nubank — estamos sempre contratando. Isso também significa que precisamos aumentar a frequência de lançamento de novos recursos para os clientes, o que exige mais capacidade e recursos. Usar o Flutter como nossa principal tecnologia reduziu muito a barreira, permitindo que novos engenheiros possam contribuir com o nosso aplicativo em questão de dias após serem integrados. Em relação à eficiência, melhoramos muito nosso tempo de compilação; a taxa de sucesso na fusão é de 30% melhor em comparação com o nativo, com a fusão de PRs do Flutter levando 9,9 minutos para completar, em comparação com uma média geral de 70,45 minutos em todas as plataformas.
Reinaldo Moreira, Engenheiro Móvel: “O Flutter nos permitiu lançar o Seguro de Vida em apenas 3 meses. Antes de usar essa estrutura, desenvolver e lançar um novo produto levaria meses ou até mesmo um ano. Usar o Flutter nos ajudou a acelerar o desenvolvimento para as duas plataformas, e as ferramentas criadas a partir da nossa plataforma móvel também fizeram uma grande diferença. Não consigo imaginar esse recurso sendo feito sem usar o Flutter.”
Nóra: Quais são os principais recursos que tornam o Flutter tão adequado para o seu uso?
Lindsey Bleimes, VP da Engenharia: Ele oferece mais consistência na maneira como fazemos o desenvolvimento de produtos. Temos nosso próprio sistema de design, no qual as equipes de produtos podem ampliar e personalizar seus componentes de IU. Ele também oferece ferramentas orientadas por backend, como a função de ‘recarga automática’ e um suporte melhor para a localização. Criamos uma ferramenta para entregar dinamicamente novos conteúdos para o nosso aplicativo. Por exemplo: agora podemos gerenciar a localização sem precisar lançar uma nova versão do aplicativo ou sacrificar o desempenho. Usar o Flutter nos ajudou a criar uma infraestrutura melhor para observar, mandar alertas diretamente para a equipe responsável, medir o tamanho do aplicativo por recurso ou pacto e relacionar mais métricas com outros sistemas.
Marcelo Theodoro, Gerente de Engenharia: A maior vantagem é que até mesmo engenheiros não móveis ficavam produtivos em poucas semanas devido à rápida curva de aprendizagem do Flutter. Com a adoção de múltiplas equipes de produtos, todos percebemos ótimas novas práticas surgindo e começamos a padronizar nosso código-base.
Nóra: Há algo a mais a considerar ao migrar um aplicativo para o Flutter?
Alexandre Freire, Diretor de Engenharia: Vale a pena observar que, além do código do aplicativo em si, essa migração envolve muitas ferramentas e suporte. Criamos um serviço para cuidar de toda a cópia e localização do aplicativo, pois já operamos no Brasil e no México e anunciamos nossas operações na Colômbia. Também fizemos ferramentas de desenvolvimento como o CLI escrito em Dart e adaptamos nossos pipelines de compilação, testes e implantação contínua usando soluções internas, em grande parte. Precisamos nos adaptar a essa realidade de ter um aplicativo que existe em um estado misto (nativo, React Native e Flutter). Esperamos que, após a migração, seja possível simplificar o ecossistema.
Marcelo Theodoro, Gerente de Engenharia: Nem tudo é fácil. Como fomos os primeiros a adotar, não demorou muito até encontrarmos erros ao integrar com partes nativas antigas do aplicativo. O principal aprendizado é que ter uma equipe de plataforma focada em apoiar as equipes de produtos é essencial para resolver esses tipos de erros e alguns dos problemas complexos de desempenho. E para evitar que o aplicativo se torne um monstro do Frankenstein, consideramos importante fornecer um amplo treinamento para todas as equipes.”
Check our job opportunies