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
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.