Jetpack Compose’da Ne Gibi Yenilikler Var?

Serkan Alc
Developer MultiGroup
5 min readMay 13, 2022

Jetpack Compose 1.0'ın piyasaya sürülmesinden bu yana neredeyse bir yıl geçti ve bir anda Android’in en dikkat çekici konusu haline geldi. Gelin bu süreçte neler oldu ve Jetpack Compose’da ne gibi yenilikler var inceleyelim.

Şirketlerde Compose

Birçok şirketin , uygulamalarının en yeni ve en cesur özellikleri için Compose’u geniş ölçekte benimsediğini biliyor muydunuz? Compose’u kullanan birkaç şirket ve ekiplerin Compose hakkındaki düşüncelerini gelin birlikte inceleyelim.

  • Compose’u ilk günlerde denemeye başlayan Play Store ekibi şu şekilde açıklıyor;
Daha fazla bilgi için “Play Time with Jetpack Compose” yazısını inceleyebilirsiniz.
  • Twitter’daki ekip, uygulamanın farklı bölümlerinde Jetpack Compose kullanıyor ve faydalarından yararlanıyorlar. İşte yorumları;
Daha fazla bilgi için “Twitter going all in on Jetpack Compose for feature development” yazısını inceleyebilirsiniz.
  • Airbnb ekibi de Compose’u benimseyen ekiplerden biri ;
Daha fazla örnek için “What developers are saying” sayfasını inceleyebilirsiniz

Compose’u büyük, karmaşık üretim ortamlarında dikkatle değerlendiren bu ekiplerin, kullanıcı arayüzü geliştirmelerinde yalnızca daha fazla eğlence ve netlik değil, aynı zamanda daha geniş mühendislik avantajları da deneyimledikleri görünüyor. Bunlar sadece birkaç örnek çünkü Play Store’daki en iyi 1000 uygulamanın 100'den fazlası artık Compose kullanıyor!

Jetpack Compose hakkında gelecekte bizi ne beklediğini merak ediyorsanız Jetpack Compose Roadmap’ı incelemenizi şiddetle tavsiye ederim.

Compose 1.2 Beta

Birçok özellik ve iyileştirme içeren Compose 1.2'nin ilk beta sürümü yayınladı. Gelin bu özellik ve iyileştirmeleri birlikte inceleyelim;

1. Text İyileştirmeleri

Yazı Tipi Dolgusu

Issue Tracker’da Compose hakkında en çok oy alan hatalardan biri olan Compose doesn’t provide equivalent of android: includeFontPadding’in düzenlenmesi adına includeFontPadding özelleştirilebilir bir parametre haline getirildi. Metnin layout içinde daha hassas hizalanmasını sağlayacağından, bu değeri false olarak ayarlamanız öneriliyor. Ayrıca, includeFontPadding’i false olarak ayarlandığınızda, lineHeightStyle parametresini ayarlayarak Composable Metninizin satır yüksekliğini uyarlayabilirsiniz.

Downloadable Fonts

Compose 1.2 sürümü, Compose’da indirilebilir yazı tiplerini de sunar. Google Yazı Tiplerine asenkron olarak erişmek, hatta herhangi bir karmaşık kurulum olmadan yedek yazı tiplerini tanımlamak için yeni Compose API’larını kullanabilirsiniz. İndirilebilir yazı tipleriyle APK boyutunuzu küçük tutabilir ve birden fazla uygulama bir sağlayıcı aracılığıyla aynı yazı tipini paylaşabileceği için kullanıcınızın sistem sağlığını iyileştirebilirsiniz.

Text Magnifier

Android text, metin seçmeyi kolaylaştıran bir magnifier widget sağlar. Artık Compose text magnifier’ı destekliyor!

Parmağınızın altında ne olduğunu görmenize yardımcı olmak için bir selection handle sürüklenirken magnifier gösterilir. Compose 1.1.0, magnifier’i text alanlarında seçime getirdi ve şimdi Compose 1.2.0, hem metin alanlarında hem de SelectionContainer’da magnifier’i destekliyor. Magnifier ayrıca, Layoutlar’deki Android magnifier’inin kesin davranışıyla eşleşecek şekilde geliştirildi.

2. Layout Özellikleri & İyileştirmeler

Lazy Layouts

LazyVerticalGrid ve LazyHorizontalGrid API’larının deneyselden çıkması ve LazyLayout adı verilen kendi özel lazy layoutları uygulamanıza olanak tanıyan yeni bir deneysel API eklenmesiyle lazy layoutlar gelişmeye devam ediyor. I/O’daki Lazy layouts in Compose sunumunda bu API’lar hakkında daha fazla bilgi edinebilirsiniz.

CoordinatorLayout İle Birlikte Çalışma

Görünüm sisteminden CoordinatorLayout’a bir scrolling composable embed ettiğinizde, artık scroll davranışlarının birlikte çalışabilir olduğundan emin olabilirsiniz. Bu, collapsible bir araç çubuğunun kurulumunu çok daha kolay hale getirir. Yeni deneysel RememberNestedScrollInteropConnection yöntemini çağırmanın sonucunu nestedScroll modifier’ına ileterek bu davranışı etkinleştirebilirsiniz. Bu yeni işlevselliği gösteren bir örnek için bu linki inceleyebilirsiniz.

Pencere Ekleri

Accompanist’teki ek kitaplık artık WindowInsets sınıfını kullanarak Compose Foundation kitaplığına taşındı. “Integrating Compose with your existing UI” dokümanını okuyarak bu konu hakkında daha fazla bilgi edinebilirsiniz.

Windows size classları

Resizable layoutları tasarlamayı, geliştirmeyi ve test etmeyi kolaylaştırmak için Windows size class’larını yayınlandı . Artık, Material 3 kitaplık setinin bir parçası olarak yeni bir kitaplık material3-window-size-class, alfa olarak mevcutturlar. Supporting different screen sizes documentation’ı inceleyip boyut sınıfları hakkında daha fazla bilgi edinebilir ve Crane’deki örnek bir uygulamaya göz atabilirsiniz.

3. Performansa İyileştirmeleri

Uygulama performansını anlamamız ve iyileştirmemize yardımcı olmak için yeni performans araçları ve rehberleri bizleri bekliyor. Bu kaynaklarla, uygulamanızın neden ve nerede gecikebileceğini anlamak çok daha kolay hale gelicektir.

Android Studio Dolphin’den başlayıp, Layout Inspector’ı kullanarak composable’larımızı ne sıklıkla recompose edildiğini inceleyebiliriz. Beklenmedik bir şekilde yüksek sayıda recomposition, bize optimize edilebilecek bir composable öğeye yönlendirebilir. Ek olarak, Android Studio Electric Eel artık hangi composable öğelerin ne zaman yeniden oluşturulacağını görmek için bir görsel yardım olan recomposition vurgulayıcı içerir. What’s new in Android Studio blogunda bu yeni araçlar hakkında daha fazla bilgi edinebilirsiniz.

Recomposition sayısını ve recomposition vurgulayıcısını gösteren Layout Inspector.

Compose, kullanıcı arayüzü yazma şeklinizi temel düzeyde değiştirir; bu nedenle, uygulamanızın performans gösterdiğinden emin olmak için benimseyebileceğiniz bazı en iyi uygulamalar vardır. Yeni yayınlanan documentation page, en iyi performans için Compose uygulamanızı nasıl yazacağınızı ve yapılandıracağınızı önerir. Yaygın performans hatalarını ve bunların nasıl düzeltileceğini konusunda daha fazla bilgi için I/O Common performance gotchas in Jetpack Compose sunumundan yararlanabilirsiniz.

4. Yeni Tool’lar

İyileştirmelerin yanı sıra, Compose’u daha etkili bir şekilde kullanmamıza yardımcı olacak yeni araç güncellemeleri de var. Artık Beta’da olan Android Studio Dolphin, Compose geliştirme için heyecan verici özellikler getiriyor. Yeni araçlar Recomposition sayımlarının ötesinde, tüm animasyonlarınızı aynı anda görebilmeniz ve gözden geçirebilmeniz için Animasyon Koordinasyonu ve birden çok ekran boyutu oluşturmanıza yardımcı olacak MultiPreview ek açıklamasını içeriyor. Daha hızlı yinelemenizi sağlamak için Android Studio Electric Eel (Kanarya’da) LiveEdit’i getiriyor.

Tüm ayrıntılar için What’s new in Android Development Tools’daki yeniliklere göz atmanız tavsiye edilir.

5. Wear OS için Compose

Compose’dan daha iyi bir şey varsa, o da daha çok Compose’dur! Compose for Wear OS’nin Beta’ya taşındığını görmek harika bir haber! Diğer Jetpack kitaplıkları ile aynı prensibi takip eden Beta, özelliklerin eksiksiz ve API’nin stabil olduğu anlamına gelir ve siz uygulamalarınızı üretime hazır bir şekilde geliştirmeye başlayabilirsiniz. Daha fazla bilgi için Announcing Compose for Wear OS Beta! dokümanını inceleyebilirsiniz.

6. Yeni Yararlı Kaynaklar

Bu yazımı What’s new in Jetpack Compose sunumunu temel alarak hazırladım.Umarım beğenmişsinizdir. Compose ile ilgi içerik üretmeye devam edeceğim. Compose’a ilgi duyuyor ve içeriklerimden daha hızlı haberdar olmak istiyorsanız, beni Twitter’dan takip edebilirsiniz

-Compose’lu günler dilerim…

--

--

Serkan Alc
Developer MultiGroup

Founder & Community Lead at Developer MultiGroup | Coffee, Community & Development ☀️