Tinder risolve i problemi delle app di incontri con i componenti dell'architettura Android

Tinder è l'app più famosa al mondo per incontrare nuove persone. Noto per aver cambiato il modo in cui le persone si incontrano e si incontrano, consente agli utenti di scorrere verso destra per connettersi e chattare con gli altri. Tinder genera oltre 26 milioni di corrispondenze al giorno, con oltre 20 miliardi di corrispondenze create dal loro lancio nel 2012.

L'azienda aveva bisogno di fare rapidamente lo scale up dell'app, in base alla domanda degli utenti, ma l'implementazione del database era rimasta sin dall'inizio, rendendo sempre più difficile l'espansione. Inoltre, disponeva di un'architettura ricca di visualizzazioni per ridurre le complessità del ciclo di vita, ma aveva bisogno di sapere quali eventi del ciclo di vita erano specifici di un'attività. Mancavano di un framework coerente per la gestione di attività come il marshalling di oggetti Cursor negli oggetti di dominio, l'esecuzione di migrazioni di database o l'esecuzione costante di query.

Cosa hanno fatto

Immagine di un profilo

Figura 1: la foto di un fotografo su Tinder

Tinder ha adottato i componenti dell'architettura Android per trovare soluzioni per l'upgrade del codice. Ha utilizzato Lifecycle per consentire a View di osservare il ciclo di vita dell'attività host e ha utilizzato LifecycleObserver per facilitare un'architettura plug-in decentralizzata e per evitare sovrappeso negli oggetti Presenter, Activity e View. La libreria di persistenza delle stanze ha fornito un metodo pronto all'uso per la definizione, la gestione e l'esecuzione di query sul database locale.

Il team di sviluppo di Tinder è riuscito a implementare l'architettura LifecycleObserver e i plug-in in sole due settimane, mentre l'implementazione senza problemi di Room per il suo SDK per gli annunci interno ha richiesto solo due giorni.

"Non dovevamo più dedicare molto tempo alla gestione del ciclo di vita delle attività all'interno di plug-in o visualizzazioni", afferma Andy Lawton, Head of Android di Tinder. "Il design della stanza è ben strutturato e semplifica l'implementazione del livello di persistenza. L'utilizzo di Room per l'SDK Google Ads interno ha probabilmente consentito di risparmiare una settimana di tempo per lo sviluppo iniziale."

Risultati

Tinder è stata così soddisfatta dei risultati ottenuti con l'SDK per gli annunci che ha eseguito la migrazione dell'intero livello di database alla stanza virtuale. Eseguire test è stato facile e la protezione di Room contro l'annullamento della registrazione ha ridotto le perdite di memoria. Android Architecture Componenti contribuisce anche a produrre meno impronte di memoria.

"Android Architecture Componenti ha fornito una prescrizione per risolvere molti dei problemi che gli sviluppatori devono affrontare su scala diversa", afferma Lawton. "Grazie all'uso di componenti sensibili al ciclo di vita, Tinder è riuscita a migliorare la produttività, la testbilità e la modularità degli sviluppatori, favorendo al contempo un'architettura view-first. Room elimina la necessità di altre soluzioni per la gestione di SQLite e trasforma la gestione dei database e l'esecuzione di query in un esercizio di configurazione."

Metrica

Oltre 500 righe di codice rimosse da MainActivity tramite LifecycleObserver/ architettura dei plug-in

Inizia

I componenti dell'architettura Android sono aperti a tutti gli sviluppatori nell'ambito di Android Jetpack. Inizia a utilizzare i componenti dell'architettura Android.