2020'de izlenecek en iyi 5 Android geliştirme teknolojisi

Programlama ortamında her gün yeni değişiklikler olsa da, Android şüphesiz en sık güncelleme ve yinelemedir, her yıl ve hatta her ay yeni şeylerle. Bu makale, geliştiricilerin 2020'de dikkat etmesi gereken en iyi 5 Android geliştirme teknolojisini tanıtıyor.

Pek çok Android geliştirme ekibinin katıldığı Droidcon London 2019 konferansında bir dizi yeni teknoloji göz kamaştırıyor. Joe Birch tarafından sunulan engelsiz akıllı gitardan yaklaşan Jetpack Compose kütüphanesine kadar, ana akım topluluğun kaybolmamak için birkaç temel teknoloji bulması gereken pek çok yenilik var.

Bu makale, herkesin odaklanılması gereken bazı temel teknolojilere bir göz atmasını sağlayacak.Aynı zamanda, bu makale bu teknolojilerin neden önce uygulanması gerektiğini ve bunları başarmanın bazı ilk yollarını açıklayacak. Bu teknolojileri uygulamak, son kullanıcılarınızı şaşırtmasa da, geliştiricilerin çarpıcı özellikler oluşturmasına ve geliştiricilere daha hoş bir kod tabanı sağlamasına yardımcı olabilir!

1. Kotlin

Kotlin genellikle Google ve JetBrains (Android Studio geliştiricileri) tarafından desteklenen bir sonraki Java olarak kabul edilir. Java, başlangıçtan beri Android uygulamaları için tercih edilen geliştirme dili olmuştur, ancak Kotlin son yıllarda hızla popülerlik kazanmıştır ve şu anda 10.000 Google Play uygulamasının yaklaşık% 60'ı Kotlin kullanmaktadır. Altta yatan yerel koda erişmeniz gereken birkaç durumda, C ++ kullanılmaya devam edecek; ancak diğer durumlarda Kotlin Java'nın yerini alabilir.

Kotlin'in ana avantajı, Java ile tam birlikte çalışabilirliktir; bu, geliştiricilerin tüm uygulamayı tamamen yeniden yazmak zorunda kalmadan eski kodu olabildiğince fazla taşıyabileceği anlamına gelir. İki dil çok uyumludur ve Android Studio, Java'dan Kotlin'e otomatik olarak dönüşebilir.

Daha temiz bir sözdizimi ve yüzlerce küçük iyileştirmeyle birleşen bu uyumluluk, Kotlin'i StackOverflow'un 2019 Geliştirici Anketi'nde dördüncü en "en popüler" ve beşinci en "aranan" programlama dili yaptı. Tüm mobil programlama dilleri arasında en yüksek sırada yer almaktadır.

Mevcut uygulamaları taşımanın iyi bir yolu, mevcut Java dosyalarını değiştirirken Kotlin'e dönüştürmektir. Bu, sık sık düzenlenen dosyaları dönüştürmeniz gerektiği anlamına gelse de, bu da kod incelemesinin karmaşıklığını artıracaktır (örneğin, olası çakışmalarla karşılaşacaksınız), ancak dönüştürülen alan gözden geçirilebildiği için herhangi bir sorunun bulunabilmesini sağlayabilirsiniz.

Şu anda, Candyspace'de kullanılan Kotlin kodu% 86'lık bir paya sahip (ve büyümeye devam ediyor) ve kalan% 14, birkaç yıldır değiştirilmeyen yardımcı program / geçiş kodudur.

2. Jetpack

Google'ın AndroidX / Jetpack kitaplığı, genel uygulama gereksinimlerini basitleştirmek için tasarlanmış bir dizi yardımcı araçtır. Örneğin, cihazdaki veritabanı için kullanılan Oda veya temel alınan veriler değiştiğinde görüntülenen içeriği güncellemek için kullanılan LiveData.

Jetpack kitaplığıyla, yeni proje tekerleği yeniden keşfetme zahmetinden kurtarıyor ve diğer geliştiricilerin uygulamalarını açık kaynak kodlu yapmasını beklemek zorunda kalmıyor.Artık her geliştirici bu temel öğeleri alabilir. Bu kitaplıklar sık sık güncellenir, yeni özellikler sürekli olarak sunulur ve hata düzeltmeleri zaman içinde yayınlanacaktır. Bu kitaplıklar birlikte çalışmak üzere oluşturulduğundan, AndroidX kitaplıklarının daha fazla kullanılması, uygulamanızdaki kazaları en aza indirmeye yardımcı olabilir.

Jetpack kitaplığını geliştirme çalışmasının başlangıcından itibaren kullanmak yüzlerce saat zaman kazandırabilir, ancak mevcut uygulamaları Jetpack kitaplığına da taşıyabiliriz. Kullanışsız görünse de, bu kütüphaneler çok popüler olduğundan, geçiş çalışmaları için kılavuzlar bulmak kolaydır. En azından, temeldeki Android öğeleri (görünümler, parçalar vb.) Otomatik olarak dönüştürülebilir.

Candyspace'de Veri Bağlama ve ViewModel kullanıyoruz ve yakında Oda ve Navigasyona katılabiliriz.

3. Modüler tasarım

Uzun bir süredir uygulama, tüm uygulama için gerekli olan her şeyi içeren devasa bir "uygulama" modülü olarak oluşturulmuştur. Bu, kaynakları paylaşmayı kolaylaştırsa da, uygulamanın bazı bölümlerinin diğer uygulamalar / açık kaynaklı projeler tarafından yeniden kullanılamayacağı anlamına gelir; daha da önemlisi, uygulamada değişiklik yapıldığında kod tabanının tamamı yeniden derlenmelidir.

Tersine, uygulama birçok küçük modülden oluşuyorsa, yalnızca değişiklikleri yapan kodu yeniden derlemeniz gerekir, bu da derleme süresini büyük ölçüde azaltır. Ek olarak, modüler tasarım, gelişmiş Android özelliklerine sahip uygulamaların da kapısını açar (örneğin, kullanıcılar uygulamanızın bazı işlevlerini hiçbir şey yüklemeden ve dinamik özellikler istek üzerine uygulamanın çeşitli bölümlerini yükleyerek kullanabilir).

Mevcut bir uygulamayı birden fazla modüle bölmek çok karmaşık bir görev olabilir, çünkü daha önce gizli sorunları bulacaktır ("DateUtility nedir? Neden her sınıf buna ihtiyaç duyar !?"); ancak Dönüşüm tamamlandığında, kod tabanı daha sağlıklı bir duruma girecektir. Ek olarak, yeni bir uygulama benzer işlevler gerektiriyorsa, mevcut modülleri hızla yeniden kullanabilirsiniz, bu da büyük ölçüde zaman kazandırır!

Modüler uygulama mimarisi örneği (kaynak: bu makalenin yazarı tarafından oluşturulmuştur!)

Modüler bir mimari tasarlamak karmaşık bir görev olsa da, daha önce Nikits Kozlov'un modülerlik ve yapım süresi hakkındaki makalesinden esinlenerek bazı yol gösterici ilkeler yazmıştım. Plaid ayrıca, modüler tasarıma geçiş konusundaki deneyimlerini tanıtan bir makale yazdı.

Candyspace'de uygulama tasarımımız, geliştirme çalışmasının yapım süresi nedeniyle kesintiye uğramasını en aza indirmek için tamamen modülerdir.

4. Uygulama Paketi

Uygulamaları kullanıcıların cihazlarına dağıtmak için geleneksel APK'lar kullanılırken, tüm cihazlar için tüm kaynakların yüklenmesi gerekir. Bu, her bir bitmap görüntüsünün 5 kopyası (farklı ekran hassasiyetleri için), farklı aygıt mimarileri için birden çok kitaplık sürümü ve hatta birden çok kenar boşluğu ve dolgu değeri kümesi olabileceği anlamına gelir.

Bir uygulamayı dağıtmak için App Bundle'ı kullanırken, kullanıcı tarafından indirilen APK yalnızca gerçekten ihtiyaç duydukları kaynakları içerir. Bu şekilde, ortalama uygulama boyutu% 20 azalacak ve optimize edilmemiş bir uygulamanın formatı değiştirildikten sonra uygulama boyutu daha önemli ölçüde küçülecektir.

Uygulama boyutunu küçültme örneği (Kaynak: https://events.google.com/io2018/)

App Bundle 18 ay önce doğdu, ancak uygulama yüklemelerinin% 25'inden fazlası bu biçimi kullanıyor! Bu, Google tarafından önerilen biçimdir ve çoğu uygulama bu biçimi neredeyse hiç değişiklik yapmadan kullanabilir. Yalnızca Play Store'da App Bundle imzasını işlemeniz gerekir.

Candyspace'de, mevcut iş akışımızı kesintiye uğratmamaya çalışırken (Slack, QAing derlemesi, Google Play dışı kurulum) App Bundles'a geçiş yapıyoruz. Alistair Sykes'in makalesi harika bir geçiş referans materyalidir. Makale, CI sunucusu, Slack ve Google Play dahili uygulama paylaşımını dikkate alır.

5. Test etme

Evet, test edin. Elbette, test etmek parlak yeni bir özellik veya kullanıcıların görebileceği bir şey değildir, ancak belirli bir kullanıcı tabanına sahip bir uygulamanın güvenilirliğini sağlamak için uygulamanızı kapsamlı bir şekilde test etmeniz gerekir. Kilitlenme oranı Play Store puanınızı doğrudan etkilediğinden (ve kesinlikle aşağı çekeceğinden!), Onu düşük tutmaya çalışmalısınız.

Test Piramidi (Kaynak: developer.android.com)

Android için en yaygın üç test türü şunlardır (azalan sırada):

  • Birim testi, örneğin: Karekök fonksiyonum bir karekök döndürecektir?

Bu testler, test sürecinizin çoğunu oluşturacaktır ve belirli bir kod parçasının (bir işlev gibi) beklendiği gibi çalışmasını sağlamak için kullanılırlar. Bir bileşene güvendikten sonra, onu ...

  • Entegrasyon Testi. Örneğin: Matematik modülüm pozisyon modülü ile çalışabilir mi?

Bu testler, çeşitli kod alanlarınızın (modüller veya katmanlar) normal şekilde birlikte çalışabilmesini sağlar. Uygulamanızın bileşenlerinin birbirleriyle doğru bir şekilde iletişim kurabildiğini öğrendikten sonra, ekleyebilirsiniz ...

  • Örneğin, otomatik UI testi: kullanıcı uygulamada bir konumu işaretleyebilir mi?

Bu testler yalnızca cihaz veya emülatörde çalıştırılır ve uygulamanın beklendiği gibi eksiksiz bir kullanıcı deneyimi sağlamasını sağlar. Bu testler genellikle diğer test türlerine göre çok daha yavaştır (ve çalıştırılması daha zahmetlidir).

Google, test dağıtımının% 70 birim testleri,% 20 entegrasyon testleri ve% 10 büyük ölçekli testler olarak ayarlanmasını önerir. Nispeten küçük bir parça daha uzun yürütme süresi, bakım süresi ve uygulama süresi gerektirir.

En iyi test kaynağı resmi belgelerdir, çünkü her tür teste giriş ve bunların projeye nasıl uygulanacağına dair öğreticiler sağlar.

Candyspace'de, tüm yeni davranış türlerinin öngörülebilir olmasını sağlamak için Google'ın önerdiğinden daha büyük bir oranı oluşturan birim testine odaklanıyoruz. Manuel teste olan bağımlılığı azaltmak için şu anda otomatik kullanıcı arayüzü testini geliştiriyoruz.

Herhangi bir programlama alanında, bir sorunu çözmenin en iyi yolu hakkında yüzlerce farklı görüş vardır; ancak Android'in mutlak bir avantajı vardır: Android'in büyük bir geliştirici topluluğu vardır, bu da çok iyi bir yeni teknolojinin hızla geliştirileceği anlamına gelir Bunlar arasında popüler. İnternette bir yabancıdan yardım istediğinizde, "Web geliştirici arkadaşından önceki bir geliştirici tarafından kopyalanan ve dönüştürülen bir kitaplık" yerine "Jetpack LiveData" yı arıyorsanız, yanıtı alma şansı çok yüksek olacaktır. Çok!

Sağlıklı bir kod tabanı oluşturmanın anahtarı, bu değişen standartlara uyum sağlayabilmek ve mevcut projeleri yeniden düzenlemektir. En son Android geliştirme uygulamalarını ve en iyi uygulamaları anlamak için, Android Geliştirici Blogunu, / r / AndroidDev alt dizini ve Parçalanmış podcast'i takip etmenizi tavsiye ederim.

2020, kişisel gizlilik korumasında devrim yılı
önceki
Bir Yılbaşı partisi 5 milyar yuan kazandı. B İstasyonu mikro hizmet yönetimini nasıl araştırıyor ve uyguluyor?
Sonraki
Hubei İl Kızıl Haç Parti Sekreteri ve 3 kişi cezalandırıldı
Wenchuan'daki PLA tarafından kullanılan Fangcang sığınma evi hastanesi Wuhan'da bir gecede açıldı.
Huoshenshan Hastanesine kabul edilen ilk hasta grubu koğuşa girdi
Shanting Bölgesi, salgın önleme ve kontrol savaşına ve ekonomik kalkınma için aktif mücadeleye odaklanmaktadır.
Mozi'nin Memleketi: Mushi Kasabasının İleriye Doğru Gelişimi
Xuecheng Bölgesi Konut ve Kentsel-Kırsal İnşaat Bürosu, salgın sırasında inşaat işletmelerinin çalışmalarının yeniden başlamasını ve üretimini sıkı bir şekilde kontrol etmek için birden fazla önlem a
Zaozhuang Electric Power'ın büyük verileri, işin yeniden başlamasına ve üretimin şehir liderleri tarafından tanınmasına yardımcı oluyor
Zaozhuang Şehir Pazarı Denetim İdaresi pazarı tam olarak kontrol eder ve işletmelerin iş ve üretime devam etmesini destekler
Jinan'da anaokulları, ilkokullar ve ortaokullar gibi birçok yeni okul var.
Topluluk güvenlik görevlileri ve sakinlerden elektrikli araçlar çalıyor
Performans Bülteni | NetDragon'un 2019 geliri beklentiler doğrultusunda, oyun sektörünün gelir katkısı 3 yılda ilk kez eğitimi geçti
Vergi Propagandası Ayı Linyi geçen ay vergi beyannamesi için eyalette birinci oldu, nasıl oldu?
To Top