Tinder memecahkan masalah aplikasi kencan dengan Komponen Arsitektur Android

Tinder adalah aplikasi terpopuler di dunia untuk bertemu orang-orang baru. Dikenal karena mengubah cara orang bertemu dan berkencan, aplikasi ini memberdayakan pengguna untuk langsung terhubung dan mengobrol dengan orang lain. Tinder memicu lebih dari 26 juta pencocokan sehari, dan telah membuat lebih dari 20 miliar pencocokan sejak diluncurkan pada tahun 2012.

Perusahaan ini perlu memperluas skala aplikasinya dengan cepat, berdasarkan permintaan pengguna, tetapi implementasi database mereka masih merupakan sisa-sisa dari peluncuran awal sehingga sulit untuk diperluas. Mereka juga memiliki arsitektur view-heavy untuk mengurangi kompleksitas siklus proses, tetapi perlu mengetahui peristiwa siklus proses mana yang spesifik untuk suatu aktivitas. Mereka tidak memiliki framework yang konsisten untuk menangani tugas-tugas seperti mengarahkan objek Cursor ke objek domain, membuat migrasi database, atau menjalankan kueri secara konsisten.

Yang mereka lakukan

Gambar
       profil

Gambar 1: Foto seorang fotografer di Tinder

Tinder memilih Komponen Arsitektur Android untuk solusi upgrade kode mereka. Mereka menggunakan Lifecycle untuk mengizinkan View mengamati siklus proses aktivitas host-nya, dan menggunakan LifecycleObserver untuk memfasilitasi arsitektur plugin terdesentralisasi dan untuk mencegah penggelembungan di objek Presenter, Activity, dan View. Library persistensi Room menyediakan metode siap pakai untuk menentukan, mengelola, dan mengkueri database lokal.

Tim pengembangan Tinder mampu mengimplementasikan LifecycleObserver dan arsitektur plugin hanya dalam dua minggu, sekaligus mengimplementasikan Room untuk Ads SDK internal dengan lancar hanya dalam waktu dua hari.

"Kami tidak perlu lagi mencurahkan banyak waktu untuk mengelola Siklus Proses Aktivitas di dalam plugin atau tampilan," kata Andy Lawton, Head of Android di Tinder. "Desain Room dipikirkan dengan matang dan memudahkan implementasi lapisan persistensi kami. Menggunakan Room untuk Ads SDK internal menghemat waktu seminggu dalam pengembangan di muka."

Hasil

Tinder sangat puas dengan hasil Ads SDK sehingga mereka memigrasikan seluruh lapisan database-nya ke Room. Pengujian dapat dilakukan dengan mudah, dan perlindungan Room dari lupa untuk membatalkan pendaftaran sesuatu mengurangi kebocoran memori. Komponen Arsitektur Android juga membantu menghasilkan jejak memori yang lebih kecil.

"Komponen Arsitektur Android memberikan resep untuk memecahkan banyak masalah yang dihadapi developer pada berbagai skala," kata Lawton. "Melalui penggunaan komponen yang memperhatikan siklus proses, Tinder dapat meningkatkan produktivitas developer serta testabilitas dan modularitas kode, dengan tetap mempertahankan lingkungan yang kondusif untuk arsitektur view-first. Room menghilangkan kebutuhan akan solusi lain untuk mengelola SQLite, dan mengubah pengelolaan database serta pembuatan kueri menjadi latihan mengonfigurasi."

Metrik

500+ baris kode dihapus dari MainActivity melalui LifecycleObserver / arsitektur plugin

Mulai

Komponen Arsitektur Android tersedia untuk semua developer sebagai bagian dari Android Jetpack. Mulai menggunakan Komponen Arsitektur Android.