Google Home, kilitlenmelerin 1. sebebini %33 azalttı

Google Home uygulaması Google Home, Google Nest ve Chromecast cihazlarınızı ve ayrıca lambalar, kameralar, termostatlar gibi binlerce bağlı ev ürününü kurmanıza, yönetmenize ve kontrol etmenize yardımcı olur.

Google Home uygulamasının arkasındaki mühendislik ekibi, mühendislik üretkenliğini artırmak ve geliştiricilerin mutlu olmasını sağlamak için Kotlin ve Android Jetpack kitaplıklarını kullanıyor.

Ne yaptılar?

Google Home ekibi, programlamayı daha verimli hale getirmek ve var/val, akıllı yayınlar ve eş yordamlar gibi modern dil özelliklerinin kullanılmasını sağlamak için Kotlin'i kod tabanına dahil etmeye karar verdi. Haziran 2020 itibarıyla kod tabanının yaklaşık% 30'u Kotlin ile yazılmıştır ve tüm yeni özellikler için Kotlin geliştirilmesi teşvik edilir.

Ekip ayrıca geliştirici hızını artırmak, ortak kod bakımı ihtiyacını ve gerekli kod miktarını azaltmak için Jetpack kitaplıklarını da kullandı. Jetpack kitaplıkları, daha net işlevsel sınırlar ve API'ler olduğundan kodlarının daha test edilebilir olmasına da yardımcı oldu.

Sonuçlar

"Verimlilik ve daha az kod yazmak, daha çok iş getiren, Kotlin ile elde edebileceğiniz "hız" artışıdır." - Jared Burrows, Google Home Yazılım Mühendisi

Kotlin'e geçmek, gerekli kod miktarının mevcut Java kod eşdeğerine kıyasla azalmasını sağladı. Veri sınıflarının ve Parcelize eklentisinin kullanımı buna örnek olarak verilebilir: Java'da elle yazılmış 126 satırdan oluşan bir sınıf artık Kotlin'de yalnızca 23 satırla temsil edilebilir. Bu da% 80 azalma sağlar. Ayrıca, eşitlik ve paketleme yöntemleri otomatik olarak oluşturulabilir ve güncellenebilir. İç içe yerleştirilmiş birçok döngü ve filtreleme kontrolü de Kotlin'deki işlevsel yöntemler kullanılarak basitleştirildi.

Kotlin, null değerini dilin bir parçası haline getirebildiğinden, Java'da nullability ek açıklamalarının tutarsız kullanımının gözden kaçmış bir hataya yol açabileceği gibi yanıltıcı durumlardan kaçınılabilir. Ekip, Kotlin ile yeni özellikler geliştirmeye başladığından beri NullPointerExceptions'da% 33'lük bir düşüş gördü. Bu, Google Play Console'daki en yaygın kilitlenme türü olduğu için kilitlenmelerin azaltılması kullanıcı deneyimini önemli ölçüde iyileştirdi.

Google Home gibi bir milyondan fazla kod satırı içeren büyük ve olgun bir uygulamada Jetpack kitaplıklarını kademeli olarak eklemek faydalıdır. Bunların dahil edilmesi, ekibin bazen tek bir kitaplıkta bile özel olarak uyarlanmış çözümleri birleştirmesine ve değiştirmesine olanak tanıdı. Jetpack kitaplıkları, mühendislerin en iyi uygulamaları takip etmelerine ve daha az ayrıntılı olmalarına yardımcı olabildiğinden (örneğin, Room veya ConstraintLayout kullanarak) okunabilirlik de artırıldı. Ekip, her ikisi de Google Home kod tabanında yoğun olarak kullanılan ViewModel ve LiveData dahil, yeni Jetpack kitaplıklarının çoğunun "olmazsa olmaz" olduğunu düşünüyor.

Google Home uygulama ekibi, Kotlin eş yordamlarıyla Jetpack KTX entegrasyonlarının özellikle faydalı olduğunu gördü. Ekip artık eş yordamları ViewModel gibi yaşam döngüsüne duyarlı bileşenlerle ilişkilendirerek zorlu eşzamansız programlama hatalarından kaçınabiliyor.

Java, Oracle ve/veya satış ortaklarının tescilli ticari markasıdır.

Başlayın

Kotlin'de Android uygulamaları yazma ve Android Jetpack kitaplıklarını kullanma hakkında daha fazla bilgi edinin.