Tinder resolve pontos problemáticos do app de namoro com componentes de arquitetura do Android

O Tinder é o app mais popular do mundo para conhecer novas pessoas. Conhecido por mudar a forma como as pessoas se conhecem e marcam encontros, ele permite que os usuários se conectem e conversem diretamente com outras pessoas. O Tinder gera mais de 26 milhões de matches por dia, totalizando mais de 20 bilhões desde o lançamento, em 2012.

A empresa precisava ampliar o app rapidamente com base na demanda dos usuários, mas a implementação do banco de dados foi deixada de lado desde o início, o que dificultava cada vez mais a expansão dele. Além disso, a empresa tinha uma arquitetura de visualização pesada para reduzir as complexidades do ciclo de vida, mas precisava saber quais eventos do ciclo de vida eram específicos de uma atividade. A equipe não tinha um framework consistente para gerenciar tarefas, como ordenar os objetos Cursor como objetos de domínio, fazer migrações do banco de dados ou realizar consultas de maneira consistente.

O que a equipe fez

Imagem de um
       perfil

Figura 1: foto de uma fotógrafa no Tinder

O Tinder recorreu aos Componentes da arquitetura do Android para buscar soluções para atualizar o código. Foram usados Lifecycle para permitir que um View observasse o ciclo de vida da atividade do host, além de LifecycleObserver para facilitar uma arquitetura de plug-in descentralizada e evitar a sobrecarga em objetos Presenter, Activity e View. A biblioteca de persistência Room forneceu um método pronto para definir, gerenciar e consultar o banco de dados local.

A equipe de desenvolvimento do Tinder conseguiu implementar o LifecycleObserver e a arquitetura de plug-in em apenas duas semanas. Já a implementação da Room para o SDK de anúncios internos levou apenas dois dias.

"Não precisamos mais investir tempo significativo gerenciando o ciclo de vida da atividade nos plug-ins ou visualizações", disse Andy Lawton, chefe de Android da Tinder. "O design do Room é bem pensado e facilita a implementação da nossa camada de persistência. Usar o Room para o SDK de anúncios internos provavelmente economizou uma semana no desenvolvimento inicial."

Resultados

O Tinder ficou tão satisfeito com os resultados do SDK de anúncios que está migrando toda a camada do banco de dados para o Room. O teste foi fácil e a proteção do Room contra o esquecimento de cancelar inscrições reduziu os vazamentos de memória. Os componentes de arquitetura do Android também estão ajudando a reduzir o espaço exigido da memória.

"Os componentes de arquitetura do Android forneceram uma solução para muitos dos pontos problemáticos que os desenvolvedores enfrentam em diferentes níveis", diz Lawton. "Com o uso de componentes que reconhecem o ciclo de vida, o Tinder conseguiu melhorar a produtividade, a capacidade de teste e a modularidade do desenvolvedor, ao mesmo tempo que propiciou uma arquitetura de visualização inicial. O Room elimina a necessidade de outras soluções para gerenciar o SQLite e transforma o gerenciamento do banco de dados e a consulta em um exercício na configuração."

Métrica

Mais de 500 linhas de código foram removidas da MainActivity usando a arquitetura de plug-in e o LifecycleObserver

Primeiros passos

Os componentes de arquitetura do Android estão abertos para todos os desenvolvedores como parte do Android Jetpack. Comece a usar os Componentes da arquitetura do Android.