Yinelemeli kod geliştirme

Mobil geliştirici olarak genellikle her şeyi bir kerede geliştirmek yerine uygulamanızın kullanıcı arayüzünü adım adım geliştirirsiniz. Android Studio, Jetpack Compose ile bu yaklaşımı benimser. Değerleri incelemek, değiştirmek ve nihai sonucu doğrulamak için tam derleme gerektirmeyen araçlar sağlar.

Canlı Düzenleme

Canlı Düzenleme, emülatörlerdeki ve fiziksel cihazlardaki bileşenleri gerçek zamanlı olarak güncellemenize olanak tanıyan bir özelliktir. Bu işlev, uygulamanızı yazma ve derleme arasında bağlam geçişlerini en aza indirerek kesintisiz olarak daha uzun süre kod yazmaya odaklanmanızı sağlar.

Canlı düzenlemenin üç modu vardır:

  • Manuel: Kod değişiklikleri, Control+' (macOS'te Command+') kullanılarak manuel olarak itildiğinde uygulanır.
  • Kaydetme sırasında manuel: Kod değişiklikleri, Control+S (macOS'te Command+S) kullanılarak manuel olarak kaydedildiğinde uygulanır.
  • Otomatik: Bir derlenebilir işlevi güncellediğinizde değişiklikler cihazınıza veya emülatörünüze uygulanır.

Canlı düzenleme, kullanıcı arayüzü ve kullanıcı deneyimiyle ilgili kod değişikliklerine odaklanır. Canlı düzenleme, yöntem imza güncellemeleri, yeni yöntem ekleme veya sınıf hiyerarşisi değişiklikleri gibi değişiklikleri desteklemez. Daha fazla bilgi için Canlı Düzenleme'nin Sınırlamaları listesine göz atın.

Bu özellik, uygulamanızı oluşturma ve çalıştırma veya Değişiklikleri Uygulama'nın yerini almaz. Bunun yerine, Compose kullanıcı arayüzünü oluşturmak, dağıtmak ve geliştirmek için iterasyon yaparken iş akışınızı optimize etmek üzere tasarlanmıştır.

En iyi uygulama iş akışı aşağıdaki gibidir:

  1. Uygulamanızı çalıştırılabilir hale getirin.
  2. Uygulama çalışırken yeni yöntemler ekleme gibi, Canlı Düzenleme'nin desteklemediği bir değişiklik yapmanız gerekene kadar mümkün olduğunca Canlı Düzenleme'yi kullanın.
  3. Desteklenmeyen bir değişiklik yaptıktan sonra uygulamanızı yeniden başlatmak ve Canlı Düzenleme'yi devam ettirmek için ÇalıştırRun
icon tıklayın.

Canlı düzenlemeyi kullanmaya başlama

Başlamak için aşağıdaki adımları uygulayarak boş bir Oluşturma Etkinliği oluşturun, projeniz için Canlı Düzenleme'yi etkinleştirin ve Canlı Düzenleme ile değişiklik yapın.

Yeni projenizi oluşturma

  1. Başlamadan önce Android Studio Giraffe veya sonraki bir sürümün yüklü olduğundan ve fiziksel cihazınızın ya da emülatörünüzün API düzeyinin en az 30 olduğundan emin olun.

  2. Android Studio'yu açın ve Android Studio'ya Hoşgeldiniz iletişim kutusunda Yeni Proje'yi seçin. Açık bir projeniz varsa Dosya > Yeni > Yeni Proje'ye giderek yeni bir proje oluşturabilirsiniz.

  3. Telefon ve Tablet için Boş E-posta Oluşturma Etkinliği şablonunu seçin ve Sonraki'yi tıklayın.

    Android Studio'da şablon seçimi
    Şekil 1. Seçebileceğiniz şablonlar. Canlı düzenleme için Boş Oluşturma Etkinliği'ni seçin.
  4. Yeni Proje iletişim kutusunu ad, paket adı, kayıt konumu, minimum SDK ve derleme yapılandırma dili gibi gerekli bilgilerle doldurun.

    Android Studio'ya girilen 4. adımdaki örnek proje ayarları
    Şekil 2. Örnek proje ayarları.
  5. Son'u tıklayın.

Canlı düzenlemeyi etkinleştirme

  1. Canlı Düzenleme'yi etkinleştirmek için ayarlara gidin.

    • Windows veya Linux'ta Dosya > Ayarlar > Düzenleyici > Canlı Düzenleme'ye gidin.
    • macOS'te Android Studio > Ayarlar > Düzenleyici > Canlı Düzenleme'ye gidin.
  2. Ayarlar bölümünden Canlı Düzenleme seçeneğini ve çalıştırmak istediğiniz modu belirleyin.

    Manuel modda, Ctrl+' (macOS'te Command+') tuşlarına her bastığınızda kod değişiklikleriniz gönderilir. Kaydetme işleminde manuel modda, kod değişiklikleriniz Ctrl+S (macOS'te Komut+S) tuşlarını kullanarak her manuel kaydetme işleminde uygulanır. Otomatik modda, kod değişiklikleriniz siz değişiklikleri yaparken cihazınıza veya emülatörünüze uygulanır.

    Android Studio ayarlarındaki Canlı Düzenleme onay kutusu kullanıcı arayüzü
    Şekil 3. Canlı düzenleme ayarları.
  3. Düzenleyicide, uygulamanızın giriş noktası olan MainActivity dosyasını açın.

  4. Uygulamanızı dağıtmak için ÇalıştırKullanıcı arayüzü düğmesitıklayın.

  5. Canlı Düzenle'yi açtıktan sonra Çalışmakta Olan Cihazlar araç penceresinin sağ üst kısmında Güncel yeşil onay işareti görünür:

    Canlı Düzenleme yeşil onay işareti kullanıcı arayüzü

Değişiklik yapma ve inceleme

Düzenleyicide desteklenen değişiklikleri yaptığınızda sanal veya fiziksel test cihazı otomatik olarak güncellenir.

Örneğin, MainActivity içindeki mevcut Greeting yöntemini aşağıdaki gibi düzenleyin:

@Composable
fun Greeting(name: String) {
    Text(
        text = "Hello $name!",
        Modifier
            .padding(80.dp) // Outer padding; outside background
            .background(color = Color.Cyan) // Solid element background color
            .padding(16.dp) // Inner padding; inside background, around text)
    )
}

Değişiklikleriniz, Şekil 4'te gösterildiği gibi test cihazında anında görünür.

Bir cihazda karşılama yönteminde yapılan değişiklikler
Şekil 4. Greeting yönteminde Canlı Düzenleme değişikliklerini gösteren test cihazı.

Canlı düzenlemeyle ilgili sorunları giderme

Düzenlemelerinizi test cihazında görmüyorsanız Android Studio, düzenlemelerinizi güncelleyememiştir. Canlı Düzenleme göstergesinde 5. resimde gösterildiği gibi Güncel Değil ifadesinin olup olmadığını kontrol edin. Bu, derleme hatası olduğunu gösterir. Hata hakkında bilgi edinmek ve hatayı nasıl çözeceğinize dair öneriler almak için göstergeyi tıklayın.

Canlı düzenleme için güncel olmayan simge
Şekil 5. Canlı düzenleme durumu göstergesi.

Canlı düzenlemenin sınırlamaları

Mevcut sınırlamaların listesi aşağıda verilmiştir.

  • [Yalnızca Android Studio Giraffe ve sonraki sürümler için geçerlidir] Canlı Düzenleme özelliği için Compose Runtime 1.3.0 veya sonraki bir sürüm gerekir. Projenizde Düzenle'nin daha eski bir sürümü kullanılıyorsa Canlı Düzenleme devre dışıdır.

  • [Yalnızca Android Studio Giraffe ve sonraki sürümler için geçerlidir] Canlı Düzenleme özelliği için AGP 8.1.0-alpha05 veya sonraki sürümler gerekir. Projenizde AGP'nin daha eski bir sürümü kullanılıyorsa Canlı Düzenleme devre dışıdır.

  • Canlı düzenleme özelliğini kullanmak için API düzeyi 30 veya üstünü çalıştıran fiziksel bir cihaz ya da emülatör gerekir.

  • Canlı düzenleme yalnızca işlev gövdesinin düzenlenmesini destekler. Yani işlev adını veya imzasını değiştiremez, işlev ekleyip kaldıramaz ya da işlev dışı alanları değiştiremezsiniz.

  • Canlı Düzenleme, bir dosyada ilk kez Oluştur işlevini değiştirdiğinizde uygulamanın durumunu sıfırlar. Bu durum yalnızca ilk kod değişikliğinden sonra gerçekleşir. Uygulama durumu, söz konusu dosyada Compose işlevlerinde yaptığınız sonraki kod değişiklikleriyle sıfırlanmaz.

  • Canlı düzenlemeyle değiştirilen sınıflar performans açısından bazı cezalara tabi olabilir. Performansını değerlendiriyorsanız uygulamanızı çalıştırın ve temiz bir sürüm derlemesi kullanın.

  • Hata ayıklayıcının, Canlı Düzenleme ile değiştirdiğiniz sınıflarda çalışabilmesi için tam çalıştırma yapmanız gerekir.

  • Canlı düzenleme özelliğiyle düzenlediğiniz çalışan bir uygulama kilitlenebilir. Bu durumda, Çalıştır Kullanıcı arayüzü düğmesi düğmesini kullanarak uygulamayı yeniden dağıtabilirsiniz.

  • Canlı Düzenleme, projenizin derleme dosyasında tanımlanan herhangi bir bayt kodu değiştirme işlemini gerçekleştirmez. Örneğin, proje Derle menüsündeki seçenekler kullanılarak veya Derle ya da Çalıştır düğmeleri tıklanarak derlenirken uygulanacak bayt kodu değiştirme işlemleri.

  • Kompozit olmayan işlevler cihazda veya emülatörde canlı olarak güncellenir ve tam yeniden kompozisyon tetiklenir. Tam yeniden derleme, güncellenmiş işlevi çağırmayabilir. Kompozit olmayan işlevler için yeni güncellenen işlevleri tetiklemeniz veya uygulamayı yeniden çalıştırmanız gerekir.

  • Canlı Düzenleme, uygulama yeniden başlatıldığında devam etmez. Uygulamayı tekrar çalıştırmanız gerekir.

  • Canlı Düzenleme yalnızca hata ayıklama yapılabilen işlemleri destekler.

  • Canlı Düzenleme, derleme yapılandırmasında kotlinOptions altında moduleName için özel değerler kullanan projeleri desteklemez.

  • Canlı düzenleme, birden fazla dağıtım yapılan dağıtımlarda çalışmaz. Bu nedenle, bir cihaza dağıttıktan sonra başka bir cihaza dağıtamazsınız. Canlı Düzenleme yalnızca uygulamanın dağıtıldığı son cihaz grubunda etkindir.

  • Canlı Düzenleme, çok cihazlı dağıtımlarda (hedef cihaz açılır listesinde Birden fazla cihaz seç aracılığıyla oluşturulan birden fazla cihaza dağıtımlar) çalışır. Ancak bu özellik resmi olarak desteklenmez ve sorun yaşanabilir. Sorun yaşarsanız lütfen bildirin.

  • Değişiklikleri Uygula/Kod Değişikliklerini Uygula, Canlı Düzenleme ile uyumlu değildir ve çalışan uygulamanın yeniden başlatılmasını gerektirir.

  • Canlı Düzenleme şu anda Android Automotive projelerini desteklememektedir.

Canlı Düzenleme hakkında sık sorulan sorular

  • Canlı düzenlemenin mevcut durumu nedir?

    Canlı düzenleme özelliği Android Studio Giraffe'ta kullanılabilir. Bu özelliği etkinleştirmek için Dosya > Ayarlar > Düzenleyici > Canlı Düzenleme'ye gidin (macOS'te Android Studio > Ayarlar > Düzenleyici > Canlı Düzenleme'ye gidin).

  • Canlı düzenlemeyi ne zaman kullanmalıyım?

    Kullanıcı deneyimi öğelerindeki güncellemelerin (değişken güncellemeleri ve animasyonlar gibi) genel uygulama deneyimi üzerindeki etkisini hızlıca görmek istediğinizde Canlı Düzenleme'yi kullanın.

  • Canlı Düzenleme'yi ne zaman kullanmamam gerekir?

    Canlı düzenleme, kullanıcı arayüzü ve kullanıcı deneyimiyle ilgili kod değişikliklerine odaklanır. Yöntem imza güncellemeleri, yeni yöntem ekleme veya sınıf hiyerarşisi değişiklikleri gibi değişiklikleri desteklemez. Daha fazla bilgi için Canlı Düzenleme'nin sınırlamaları başlıklı makaleyi inceleyin.

  • Oluşturma Önizlemesi'ni ne zaman kullanmalıyım?

    Tek tek kompozisyonlar geliştirirken Oluşturma Önizlemesi'ni kullanın. Önizleme, Oluştur öğelerini görselleştirir ve kod değişikliklerinin etkisini göstermek için otomatik olarak yenilenir. Önizleme, koyu tema, yerel ayarlar ve yazı tipi ölçeği gibi farklı yapılandırmalar ve durumlarda kullanıcı arayüzü öğelerinin görüntülenmesini de destekler.

Compose ile iteratif kod geliştirme

Compose Multiplatform için Canlı Düzenleme ve Hızlı Yeniden Yükleme, Compose ile geliştirirken size zaman kazandırıp üretkenliğinizi artırabilecek özelliklerdir. Ancak bu iki yaklaşım, farklı geliştirme türlerinin ihtiyaçlarını karşılar:

  • Canlı Düzenleme, Android uygulamaları için Jetpack Compose ile iteratif geliştirmeyi destekler. Bu özellik, emülatörlerdeki ve fiziksel cihazlardaki bileşenleri gerçek zamanlı olarak güncellemenize olanak tanır. Bu işlev, uygulamanızı yazma ve oluşturma arasında bağlam geçişlerini en aza indirerek kesintisiz olarak daha uzun süre kod yazmaya odaklanmanıza olanak tanır.

  • Compose Hızlı Yeniden Yükleme de aynı ihtiyacı karşılar ancak Compose Multiplatform ile oluşturulan masaüstü uygulamalarını destekler. Bu özellik, Compose Çok Platformlu uygulamasında kullanıcı arayüzü kodunuzda değişiklik yapmanıza ve kodunuz her değiştiğinde kodunuzu akıllıca yeniden yükleyerek sonuçları anlık olarak görmenize olanak tanır.

Bu iki özellik, Compose motorunda birçok teknolojiyi paylaşır ve birçok benzer kullanım alanını destekler. Ancak farklı Compose geliştirme türleri için geçerli olduklarından aynı özelliklere sahip değildirler.

Android uygulaması geliştiriyorsanız geliştirme sürecinizi hızlandırmak için Canlı Düzenleme'yi kullanmalısınız. Compose Multiplatform'u kullanarak masaüstü uygulaması geliştiriyorsanız Compose Hot Reload'u kullanmanız gerekir.

Değişkenleri canlı düzenleme (desteği sonlandırıldı)

Android Studio, önizlemeler, emülatör ve fiziksel cihazlardaki bileşenlerde kullanılan bazı sabit değişmezleri anında güncelleyebilir. Desteklenen türlerden bazıları şunlardır:

  • Int
  • String
  • Color
  • Dp
  • Boolean

Kullanıcının kaynak koddaki değişmez değerleri değiştirdiği ve önizlemenin dinamik olarak güncellendiği video

Dizelerin canlı düzenlemesi kullanıcı arayüzü göstergesi aracılığıyla değişmez dizeleri etkinleştirerek derleme adımı olmadan anlık güncellemeleri tetikleyen sabit dizeleri görüntüleyebilirsiniz:

Değişken olmayan değerlerin canlı olarak düzenlenmesini etkinleştirme

Değişiklikleri Uygulama

Değişiklikleri Uygulama, uygulamanızı bir emülatöre veya fiziksel cihaza yeniden dağıtmak zorunda kalmadan kodu ve kaynakları güncellemenize olanak tanır (bazı sınırlamalar vardır).

Herhangi bir zaman bileşen eklediğinizde, değiştirdiğinizde veya sildiğinizde Kod Değişikliklerini Uygula düğmesini tıklayarak uygulamanızı yeniden dağıtmak zorunda kalmadan güncelleyebilirsiniz:

Kullanıcının "Değişiklikleri uygula" düğmesini tıklaması