Participe do evento ⁠#Android11: apresentação de lançamento da versão Beta no dia 3 de junho.

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 eram específicos de uma atividade. Eles não tinham uma estrutura consistente para lidar com tarefas, como ordenar os Cursor em objetos de domínio, fazer migrações do banco de dados ou realizar consultas de maneira consistente.

O que eles fizeram

Figura 1: foto de uma fotógrafa no Tinder

O Tinder recorreu aos componentes de arquitetura do Android em busca de soluções para atualizar o código. Eles usaram o Lifecycle para permitir que um View observasse o ciclo de vida da atividade do host e o LifecycleObserver para facilitar uma arquitetura de plug-in descentralizada e evitar excessos 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, enquanto a implementação do Room para o SDK de anúncios internos levou apenas dois dias.

"Não precisamos mais investir tempo significativo gerenciando o ciclo de vida de atividade dentro de plug-ins ou visualizações", diz 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 removidas do MainActivity por meio da arquitetura de plug-in LifecycleObserver

Primeiros passos

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