Jetpack Compose Nedir? -1-

Hasan Polat
Mobiroller Tech
Published in
4 min readApr 19, 2022

Selamlar, bu yazıda, Jetpack Compose hakkında araştırma yapıp öğrendiğim bilgileri sizinle paylaşacağım. Bu kısımda anlatacaklarım part-1 olacak. 3 part olacak şekilde anlatmayı düşünüyorum. Umarım keyif alırsınız..

Jetpack Compose Nedir?

Öncelikle Android’in tanımını sizinle paylaşmak istiyorum.

Jetpack Compose is Android’s modern toolkit for building native UI.

Kısaca “Native Android UI’ları oluşturmayı sağlayan modern bir toolkit.” olarak kendisinden bahsediyor ve geliştiricilere aşağıdaki kolaylıkları sağladığını belirtiyor.

  • Daha az kod
  • Sezgisel
  • Geliştirmeyi hızlandırın
  • Güçlü

Daha az kod ->

Daha az kod yazmak, geliştirmenin tüm aşamalarını etkiler. Örneğin, bir geliştirici olarak, daha az test ve daha az hata olasılığı elde edebilirsiniz. Aynı şekilde bir gözden geçiren veya bakımcı olarak okumak, anlamak, gözden geçirmek ve sürdürmek için daha az kodunuz var.

Sezgisel ->

Compose, bildirime dayalı bir API kullanır. Yapmanız gereken tek şeyin kullanıcı arayüzünüzü tanımlamak olduğu anlamına gelir. Compose gerisini halleder.

Geliştirmeyi hızlandırın ->

Compose tüm kodunuzla uyumludur. En popüler kütüphaneler olan Navigation, ViewModel, ve Kotlin Coroutines; Compose ile çalışır. Böylece istediğiniz zaman ve istediğiniz yerde kullanmaya başlayabilirsiniz.

Güçlü ->

Android platform API’lerine doğrudan erişim ve Materyal Tasarımı, Karanlık tema, animasyonlar ve daha fazlası için yerleşik desteğe sahip güzel uygulamalar oluşturmanıza olanak tanır.

Peki bu kolaylıkları nasıl sağlıyor gelin bunlardan bahsedelim.

1- Uygulama geliştirirken kullandığımız view’lar kendisine bağlı bir üst view ’dan miras alır. Jetpack Compose’ da ise, kullanılan view miras süreçlerine dahil olmadan direkt olarak kullanılabilir biçimde oluyor

2- Yazdığınız kodu anında görüntüleyebilirsiniz.

3- Declarative UI yaklaşımıyla Jetpack Compose kullanarak kodladığımızda daha basit ve daha az satır kodla geliştirme yapabilirsiniz.

Declarative UI Nedir?

Uygulama içerisinde, kullanıcının herhangi bir etkileşimi sonrası mevcut UI’ ı güncellememiz gerekebilir. Bu durumda gözüken view’ları manuel olarak güncellemek hata yapmamıza ve bundan dolayı uygulamamızın çökmesine sebep olabilir.

Jetpack Compose, UI güncellemelerinde bahsettiğim bu karışıklığı ortadan kaldırabilecek bir kolaylık sağlıyor.

Peki bu kolaylığı nasıl sağlıyor?

State kavramı ile sağlıyor. Örnek olarak UI’da gösterdiğimiz herhangi bir view’ in visible veya inVisible olmasını istiyorsak state ile kontrol ederek yapmamız gerekir.

Bu yapı, tüm ekranı sıfırdan tekrar oluşturarak veya sadece gerekli durumlarda değişiklikler uygulayarak çalışıyor.

Bu durumun maliyetli olabileceği düşünülebilir fakat Compose bunu sadece güncellemesi gereken UI parçasını recomposition yaparak, yani düzenleyerek(oluşturarak) yapıyor ve bu şekilde sanılanın aksine çok maliyetli bir durum gibi gözükmüyor.

Kurulum

Android studio üzerinde yeni bir proje oluşturmaya başlayalım.

New project tıkladıktan sonra Empty Compose Activity seçiyoruz.

Açılan pencerede oluşturacağımız proje ile ilgili ayarları değiştirebilirsiniz.

1- Oluşturacağımız proje için minimum SDK olarak API 21: Android 5.0 (Lollipop) seçilebilir

2- Jetpack Compose, Kotlin ile geliştirildiği için desteklenen dil olarak sadece Kotlin seçeneğini göreceğiz.

Sonrasında, finish’e basarak projemizi oluşturuyoruz.

Burada ilk olarak MainActivity içerisinde ki setContent kısmından bahsetmek istiyorum. Bu kısım da bir activity’e ait layout dosyasını (.xml) inflate etmek yerine Composable fonksiyonlar çağırır ve bu şekilde UI oluştururuz.

Composable Function Nedir?

UI’da bir şeyler oluşturmak için @Composable etiketi kullanırız. Bundan dolayı ekranda bir text veya button gibi ögeler oluşturacaksınız bunların composable fonksiyon olması gerekiyor.

1- Tüm composable fonksiyon’lar bu etikete sahip olmalıdır; bu açıklama, Compose derleyicisine bu işlevin verileri kullanıcı arayüzüne dönüştürmeyi amaçladığını bildirir.

2- UI oluşturma işini üstlendiklerinden dolayı geriye hiçbir değer döndürmezler.

3- Composable fonksiyonları, composable fonksiyonlar içerisinden çağırmanız gerek. Bu durum Kotlin suspend fonksiyon kullanımına benziyor.

Diğer yandan @Preview etiketinden bahsedecek olursak;

Composable fonksiyonlarınıza bu etiketi eklediğinizde Default Preview kısmından anlık olarak yapılan değişikliği görüntüleyebilirsiniz.

Bu şekilde geliştirmeyi ciddi anlamda hızlandırdığını düşünüyorum.

Şimdilik bu kısımda anlatacaklarım bu kadar. Bir sonraki yazımda biraz daha detay verip örnek bir uygulama geliştirmeye çalışacağız.

--

--