Tinder, yeni insanlarla tanışmak için dünyanın en popüler uygulamasıdır. İnsanların buluşma ve buluşma şeklini değiştirmesiyle bilinen bu uygulama, kullanıcıların başkalarıyla bağlantı kurmak ve sohbet etmek için sağa kaydırmasına olanak tanır. Tinder, günde 26 milyondan fazla maç yapıyor ve 2012'deki lansmandan bu yana 20 milyardan fazla maç yapılıyor.
Şirketin, kullanıcı talebine göre uygulamayı hızla büyütmesi gerekiyordu, ancak veritabanı uygulamaları daha ilk günlerden kalmamıştı ve genişlemek giderek daha karmaşık hale geliyordu.
Ayrıca yaşam döngüsündeki karmaşıklıkları azaltmak için çok fazla görüntüleme içeren bir mimariye sahiptiler ancak hangi yaşam döngüsü olaylarının bir etkinliğe özgü olduğunu bilmeleri gerekiyordu. Cursor
nesnelerini alan nesnelerine ayırma, veritabanı taşıma işlemleri yapma veya tutarlı şekilde sorgu yürütme gibi görevleri yürütmek için tutarlı bir çerçeveye sahip değillerdi.
Ne yaptılar?
Tinder, kodlarını yükseltmeye yönelik çözümler için Android Mimari Bileşenleri'ni kullandı. Bir View
'in ana makine etkinliğinin yaşam döngüsünü gözlemleyebilmesi için Lifecycle
; merkezi olmayan bir eklenti mimarisini kolaylaştırmak ve Presenter
, Activity
ile View
nesnelerinde şişmeyi önlemek için de LifecycleObserver
kullanıldı. Oda sürekliliği kitaplığı, yerel veritabanlarını tanımlamak, yönetmek ve sorgulamak için kullanıma hazır bir yöntem sağladı.
Tinder geliştirme ekibi, LifecycleObserver
ve eklenti mimarisini yalnızca iki haftada uygulamayı başardı. Dahili Ads SDK'sı için Room'u sorunsuz bir şekilde uygulamak ise yalnızca iki gün aldı.
Tinder'da Android Yöneticisi olarak çalışan Andy Lawton,"Artık eklentilerin veya görünümlerin dışında, Etkinlik Yaşam Döngüsü'nü yönetmek için önemli ölçüde zaman ayırmak zorunda değildik" diyor. "Odanın tasarımı iyi düşünülmüş ve kalıcılık katmanımızın uygulanmasını kolaylaştırıyor. Dahili Ads SDK'sı için Oda'nın kullanılması, ön geliştirmede muhtemelen bir hafta zaman kazandırdı."
Sonuçlar
Tinder, Ads SDK'sından o kadar memnun kaldı ki veritabanı katmanının tamamını Room'a taşıyor. Testler kolaydı ve Room'un bellek sızıntılarını azaltan bir şeyin kaydını unutmaya karşı koruması da vardı. Android Mimari Bileşenleri de daha küçük bellek ayak izleri oluşturulmasına yardımcı oluyor.
Lawton, "Android Mimari Bileşenleri, geliştiricilerin tüm farklı ölçeklerde karşılaştığı sorunların birçoğunu çözmek için bir reçete sağladı" diyor. "Tinder, yaşam döngüsüne duyarlı bileşenler sayesinde hem geliştirici üretkenliğini, test edilebilirliği ve modülerliği iyileştirmeyi hem de görüntülemeye öncelik veren bir mimari için elverişli olmasını başardı. Room, SQLite yönetimi için diğer çözümlere duyulan ihtiyacı ortadan kaldırıyor ve veritabanı yönetimi ile sorgulamayı yapılandırmada bir egzersize dönüştürüyor."
Metrik
LifecycleObserver
/ eklenti mimarisi aracılığıyla MainActivity
ürününden 500'den fazla kod satırı kaldırıldı
Başlayın
Android Mimari Bileşenleri, Android Jetpack'in bir parçası olarak tüm geliştiricilere açıktır. Android Mimarisi Bileşenleri'ni kullanmaya başlayın.