Yinelemeli kod geliştirme

Bir mobil geliştirici olarak, genellikle her şeyi tek seferde 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üzenleme'nin üç 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ı deneyimi ile 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ü geliştirirken, dağıtırken ve yineleme yaparken iş akışınızı optimize edecek şekilde tasarlanmıştır.

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

  1. Uygulamanızı çalıştırılabilecek şekilde ayarlayın.
  2. Canlı Düzenleme'nin desteklemediği bir değişiklik (ör. uygulama çalışırken yeni yöntemler eklemek) gerekene kadar mümkün olduğunca Canlı Düzenleme yapı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. Aralarından seçim yapabileceğiniz şablonlar. Canlı düzenleme için Boş Oluşturma Etkinliği'ni seçin.
  4. Yeni Proje iletişim kutusunu şu bilgilerle doldurun: ad, paket adı, kaydetme konumu, minimum SDK ve derleme yapılandırma dili.

    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öntemindeki Canlı Düzenleme değişikliklerini gösteren test cihazı.

Canlı Düzenleme sorunlarını giderme

Düzenlemelerinizi test cihazında görmüyorsanız Android Studio, düzenlemelerinizi güncelleyememiştir. Şekil 5'te gösterildiği gibi Canlı Düzenleme göstergesinde Eski (Derleme hatası) ifadesinin bulunup bulunmadığını kontrol edin. 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üzenleme ile ilgili 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 Zürafa ve sonraki sürümler için geçerlidir] Canlı Düzenleme, AGP 8.1.0-alpha05 veya sonraki sürümleri gerektirir. Projenizde daha eski bir AGP sürümü kullanılıyorsa Canlı Düzenleme devre dışıdır.

  • Canlı Düzenleme, API düzeyi 30 veya üzerini çalıştıran fiziksel bir cihaz ya da emülatör gerektirir.

  • Canlı Düzenleme yalnızca işlev gövdesinin düzenlenmesini destekler. Yani, işlev adını veya imzayı 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 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ışması 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 oluşturma, 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ımlarla (hedef cihaz açılır listesindeki Birden çok cihaz seçin yoluyla oluşturulmuş 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 bunları bildirin.

  • Değişiklikleri Uygulama/Kod Değişikliklerini Uygulama özelliği, 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üzenleme'nin şu anki durumu nedir?

    Canlı düzenleme özelliği Android Studio Giraffe'ta kullanılabilir. Bu özelliği açmak için Dosya > Ayarlar > Düzenleyici > Canlı Düzenleme (macOS'te Android Studio > Ayarlar > Düzenleyici > Canlı Düzenleme) bölümüne gidin.

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

    Kullanıcı deneyimi öğelerinde yapılan güncellemelerin (değiştirici güncellemeler ve animasyonlar gibi) genel uygulama deneyimi üzerindeki etkisini hızlı bir şekilde görmek istiyorsanız 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 kullanıcı arayüzü göstergesi aracılığıyla sabit literalleri canlı düzenleme özelliğini etkinleştirerek derleme adımı olmadan gerçek zamanlı güncellemeleri tetikleyen sabit literalleri görüntüleyebilirsiniz:

Değişkenler için canlı düzenlemeyi 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ı