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üncellemenizi sağlayan 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 yineleme 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. Canlı Düzenleme'nin desteklemediği bir değişiklik (ör. uygulama çalışırken yeni yöntemler ekleme) 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. Manuel modda kaydetme işleminde, 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 şekilde 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, Şekil 5'te 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ğinizle ilgili ö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 daha eski bir AGP 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şiklikleri tarafından sıfırlanmaz.

  • Canlı düzenlemeyle değiştirilen sınıflar performans açısından ceza alabilir. 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 yöntem resmi olarak desteklenmez ve sorunlar 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.

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 gerçek zamanlı olarak 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

Düzenleme sabitlerinin canlı düzenleme kullanıcı arayüzü göstergesi aracılığıyla sabit süslemeleri etkinleştirerek derleme adımı olmadan gerçek zamanlı güncellemeleri tetikleyen sabit değişmezler 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ı kısıtlamalar 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ı