JetPack'deki Yenilikler


Görsel Referansı


Android Jetpack yüksek kaliteli uygulamalar yazabilmenizi sağlayan kütüphaneler bütünüdür. Eski-yeni fark etmeksizin android’in eski versiyonlarında da verimli çalışabilen uygulamalar yazmanızı sağlar. Android JetPack’in duyurulmasının üzerinden 2 yıl geçti. Bu 2 yıl içinde uygulamaların, Jetpack kütüphanelerine uyum sağladığı görüldü.


Jetpack içerisinde yeni kütüphaneler duyuruldu. Android Jetpack’deki yenilikleri Android Teknik Lider’i Yiğit Boyar’ın anlatımıyla da şuradan izleyebilirsiniz. https://www.youtube.com/watch?v=R3caBPj-6Sg&feature=emb_logo



Hilt - JetPack Onaylı Dependency Injection


Hilt, dependency injection işlemini basitleştiren yeni bir kütüphanedir. Hilt dependency injection işleminin karmaşıklığıyla uğraşmadan önemli bileşenlerin kullanılmasına odaklanmanızı sağlar. Hilt, Dagger’ın derleme zamanı doğruluğunu, daha iyi runtime performansını ve ölçeklenebilirliğini sunar. Hilt, Jetpack kütüphaneleri ve Android framework class’larıyla entegre olur. Örneğin parametreleri viewmodel’e inject etmek istiyorsanız, ViewModel yapılandırıcı metodunu @ViewModelInject annotation’ı ile kullanabilirsiniz.


Hilt hakkında daha fazla bilgi için: https://medium.com/androiddevelopers/dependency-injection-on-android-with-hilt-67b6031e62d



Paging 3 - Kaydırdıkça Yükle ve Göster


Paging kütüphanesi data’yı küçük parçalar halinde yükleyip göstermenizi sağlar. Yeni tanıtılan Paging 3 Kotlin Coroutines kullanılarak tamamen yeniden yazıldı. Bu yeni versiyonda, sıklıkla kullanılan, seperatörler, header ve footerlar, listenin yükleniyor olma durumu metodları, yeniden dene ve refresh durumları yüksek verimlilikte çalışır hale getirildi.


Paging 3 ile bir örnek vermek gerekirse; veri, tanımlanmış olan PagingSource class’ının load ve suspend fonksiyonları ile aşağıdaki gibi kullanılır;

Paging hakkında daha fazla bilgi için:

https://codelabs.developers.google.com/codelabs/android-paging/#0



App Startup - Uygulama Açıldığında, Bileşenleri Hazır Hale Getir


App Startup kütüphanesi, uygulama açıldığında gerekli bileşenlerin yüklenmesini sağlar. Kullandığınız her bir content provider’ı başlatmak için ayrı bir ifade tanımlamak yerine, App startup sayesinde paylaşılan tek bir content provider ile işlemi tamamlayabilirsiniz. Bu uygulama açılış hızını önemli ölçüde arttırır.


Daha fazla bilgi için:

https://developer.android.com/topic/libraries/app-startup



Auto-fill IME Entegrasyonu


Android 11 ile duyurulan yeniliklerden bir ide otomatik doldurma özelliğidir. Password manager uygulamaları gibi otomatik doldurma seçenekleri klavyenin üzerinde gösterilmektedir. JetPack’in otomatik doldurma Api’si InlineSuggestion class’ını kullanarak klavyeler için otomatik doldurmayı kolaylaştırır. Otomatik doldurma servisleri InlineSuggestions class’ını kullanarak uygun önerileri klavyeyi özelleştirerek sunabilmektedir.

Görsel Referansı



CoreAnimation ve SeekableAnimatedVectorDrawable ile Daha Kolay Animasyonlar


Animasyonları kolayca implemente etmek ve test etmek için kullanabileceğiniz 2 adet kütüphane eklendi. androidx.core:core-animation ve androidx.core:core-animation-testing kütüphanelerini kullanabilirsiniz. Ayrıca, androidx.vectordrawable’ın bir parçası olan SeekableAnimatedVectorDrawable kütüphanesi de duyuruldu.

SeekableAnimatedVectorDrawable, core-animation temellidir ve AnimatedVectorDrawable’ın yeni bir alternatifidir. AVD(AnimatedVectorDrawable) ile aynı formattadır. Seek,Pause ve resume playback yeteneklerine sahiptir.


Android Studio’daki Database Inspector ile Veritabanını Debug Etme


Android 4.1 Beta versiyonu ile gelen Database Inspector özelliği ile veritabanını kolayca debug edebilirsiniz. Bu araç sayesinde sorguları uygulayıp SQLite veritabanınız çalışır vaziyetteyken değişiklikler yapabilirsiniz. Yine de SQLite ya da Room kullanıyorsanız, menu bar’daki View>Tool Windows>Database Inspector seçeneği ile veritabanı debug ekranına ulaşabilirsiniz.



WindowManager - Cihaz Form Faktörleri için Daha iyi Destek


WindowManager kütüphanesi ile katlanabilir, menteşeli ve daha bir çok farklı faktördeki ekranları destekleyebilmeleri için geliştiricilere yardımcı bir araç ortaya çıkarılıp, Jetpack’e eklenmiştir. WindowManager ile farklı özellikteki ekranları tek bir api arayüzü ile kontrol etmek mümkündür.



MotionLayout- Android’de Akıcı ve İnteraktif Animasyonlar


MotionLayout ConstraintLayout’un yeteneklerini taşımaktadır. Geliştiricilerin karmaşık hareketleri ve widget animasyonlarını yönetmelerine yardımcı olur. Android Studio 4.0 animasyonlar için motion editör barındırmaktadır.


Görsel Referansı


MotionLayout hakkında daha fazla bilgiyi burada bulabilirsiniz; https://developer.android.com/training/constraint-layout/motionlayout


Mevcut Kütüphanelerdeki Yenilikler

  • Navigation Uygulamanın ilk yüklenme boyutunu düşürmek için, kullanıcıya gerekli paketlerin ve modüllerin indirilmesini sağlayan araçtır. Navigation 4.3 ile birlikte SavedStateHandle üzerinde back stack yönetim imkanı sağlanmıştır. Navigation ile Back Stack üzerindeki önceki ekranlara erişip varsayılan hedef olarak back stack değişikliği yapabilirsiniz.

  • WorkManager WorkManager’ın son versiyonu ile, uzun süre çalışan veya önemli işler yapan, işletim sistemi verilerini tutması gereken arkaplan servisleri için destek imkanı sağlanmıştır. WorkManager task’larını yönetmeniz ve izleyebilmeniz için yeni diagnostics Api eklenmiştir ve bu api üzerinden logları görüntüleyebilirsiniz.

  • BenchMark Benchmark kütüphanesinin yayınlanan alpha versiyonu ile Android Studio üzerinde GPU profiling durumlarını izleyebilirsiniz. Bununla beraber memory allocation izleme özelliği ile geliştiriciler zaman, yükleme ve garbage collection(Java’da boşta kalan değişkenlerin bellekten temizlenmesi) işlemlerini optimize edebilirsiniz.

Görsel Referansı

  • Permissions Tanıtılan yeni ActivityResult Api’si ile izinler ile çalışmak artık daha kolay haklde. Bu api requestPermisions’ın yeni hali RequestPermissions ile kullanıcılardan izin istemek basitleştirilmiştir. Ortak intentler için tip korumalı olarak, örneğin fotoğraf çek veya doküman aç gibi… kullanıcıya sorulur. Fotoğraf çekmek için izin istenmişse dönen değişken fotoğraf tipinde veya doküman için dönen veri tipi pdf,doc,xls… şeklinde olacaktır.

  • Games SDK Bu yılın başlarında tanıtılan Games SDK artık JetPack’in bir parçası haline gelmiştir. Google Maven Repo içerisinde kullanılabilir durumdadır. Bu api Frame Pacing APi ve Android Performance Tuner desteklemektedir. Games SDK hakkında daha fazla bilgiyi buradan bulabilirsiniz: https://developer.android.com/games/sdk

  • CameraX Android cihazlardaki kameraların bir çok çeşidi vardır. CameraX ise tüm bu kamera çeşitlerinin %90’ında çalışır. Geçtiğimiz şubat ayında CameraX’in beta versiyonu çok geniş çapta kullanımı ulaştı. CameraX’in otomatize edilmiş testleri 400M üzerinde aktif cihazda çalıştırıldı. Yeni versiyon, PreviewView widget’ı için geliştirmeler getirmektedir. Ayrıca SurfaceView kullanarak performans ve güç verimliliği açısından optimize edilmiştir. CameraX hakkında daha fazla bilgiyi buradan bulabilirsiniz: https://developer.android.com/training/camerax

  • Güvenlik JetPack’in güvenlik kütüphanesi, dosya bazlı olarak kullanılabilen, güvenli ve kolay entegre edilebilen EncryptedFile ve EncryptedSharedPreferences özelliklerini kullanıma sunmaktadır. JetPack Security Marshmallow 2. Versiyonu için Marhmallow üzeri ve 1.1.0 alpha versiyonu için Lollipop üzeri cihazlarda çalışmaktadır.

  • Webkit JetPack Webkit kütüphanesinin yayınlanan 1.2.0 versiyonu ile içeriklerin dark mode’a geçirilmesi zorlanmaktadır. Yani Api aktif edilirse webview otomatik olarak sayfaları dark mode gibi gösterir. Otomatik olarak renkleri dark mode karşılıklarına çevirir.

  • JetPack Compose - Android’in yeni UI Toolkit’i Jetpack Compose, Android’in yeni arayüz geliştirme aracıdır. Developer Preview 2 versiyonu ile yayınlanmıştır. ConstraintLayout desteği, dark mode desteği, yeni ui testing araçları içermektedir. Observable değişkenler ile beraber durum yönetimi imkanı da sağlamaktadır. Compose hakkında daha fazla bilgiyi buradan bulabilirsiniz. https://www.youtube.com/watch?v=U5BwfqBpiWU


Bu inceleme kaynağından çevrilmiştir.


#newsJetPack #JetpackCompose #WhatsNewJetpack #jetpack

0 yorum

Son Paylaşımlar

Hepsini Gör