Yinelemeli kod geliştirme

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ştiriyorsunuz. Android Studio, değerleri incelemek, değiştirmek ve nihai sonucu doğrulamak için tam derleme gerektirmeyen araçlar sunarak bu yaklaşımı Jetpack Compose ile benimser.

Canlı Düzenleme

Canlı Düzenleme, composable'ları emülatörlerde ve fiziksel cihazlarda gerçek zamanlı olarak güncellemenize olanak tanıyan bir özelliktir. Bu işlev, uygulama yazma ve uygulama oluşturma arasındaki bağlam geçişlerini en aza indirerek kesintisiz bir şekilde daha uzun süre kod yazmaya odaklanmanızı sağlar.

Canlı Düzenleme'de üç mod vardır:

  • Manuel: Kod değişiklikleri, Control+\ (macOS'te Command+\) kullanılarak manuel olarak aktarıldığında 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: Değişiklikler, composable bir işlevi güncellediğinizde 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öntemler ekleme veya sınıf hiyerarşi değişiklikleri gibi değişiklikleri desteklemez. Daha fazla bilgi için Canlı Düzenleme Sınırlamaları listesine bakın.

Bu özellik, uygulamanızı oluşturup çalıştırmanın veya Değişiklikleri Uygula'nın yerine geçmez. Bunun yerine, siz Compose kullanıcı arayüzünü geliştirirken, dağıtırken ve iterken 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 sık Canlı Düzenleme'yi kullanın.
  3. Desteklenmeyen bir değişiklik yaptıktan sonra ÇalıştırÇalıştır simgesi tıklayarak uygulamanızı yeniden başlatın ve Canlı Düzenleme'yi devam ettirin.

Canlı Düzenleme özelliğini kullanmaya başlama

Başlamak için boş bir Oluşturma Etkinliği oluşturmak, projeniz için Canlı Düzenleme'yi etkinleştirmek ve Canlı Düzenleme ile değişiklik yapmak üzere aşağıdaki adımları izleyin.

Yeni projenizi oluşturun

  1. Başlamadan önce, Android Studio Giraffe veya sonraki bir sürümün yüklü olduğundan ve fiziksel cihazınızın veya emülatörünüzün API seviyesinin 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. Zaten açık bir projeniz varsa Dosya > Yeni > Yeni Proje'ye giderek yeni bir proje oluşturabilirsiniz.

  3. Telefon ve Tablet için Boş Yazma Etkinliği şablonunu seçin ve İleri'yi tıklayın.

    Android Studio'da şablon seçimi
    Şekil 1. Aralarından seçim yapabileceğiniz şablonlar. Canlı Düzenleme için Oluşturma Etkinliğini Boşalt'ı seçin.
  4. Yeni Proje iletişim kutusunu gerekli bilgilerle doldurun: ad, paket adı, kayıt 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ştir

  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. Ayarlardan Canlı Düzenleme seçeneğini ve çalıştırmak istediğiniz modu seçin.

    Manuel modda, Control+\ (macOS'te Command+\) tuşlarına her bastığınızda kod değişiklikleriniz aktarılır. Kaydetme sırasında manuel moddayken, kod değişiklikleriniz Control+S (macOS'te Command+S) tuşlarını kullanarak manuel olarak her kaydettiğinizde uygulanır. Otomatik modda, kod değişiklikleriniz değişikliklerinizi yaparken cihazınıza veya emülatörünüze uygulanır.

    Android Studio ayarlarında 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üğmesi tıklayın.

  5. Canlı Düzenleme'yi açtıktan sonra, Çalışan Cihazlar araç penceresinin sağ üst tarafı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şiklikleri 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.

Cihaza uygulanan Karşılama mesajı yönteminde yapılan değişiklikler
Şekil 4. Greeting yönteminde yapılan Canlı Düzenleme değişikliklerini gösteren test cihazı.

Canlı Düzenleme sorunlarını giderme

Yaptığınız düzenlemeleri test cihazında görmüyorsanız Android Studio, düzenlemelerinizi güncelleyememiş olabilir. Canlı Düzenleme göstergesinin, Şekil 5'te gösterildiği gibi Eski yazıp yazmadığını kontrol edin. Bu, derleme hatası olduğunu gösterir. Hata hakkında bilgi ve hatanın nasıl çözüleceğine dair öneriler için göstergeyi tıklayın.

Canlı Düzenleme güncel değil simgesi
Şekil 5. Canlı Düzenleme durum göstergesi.

Canlı Düzenleme Sınırlamaları

Aşağıda, mevcut sınırlamalara ilişkin bir liste bulunmaktadır.

  • [Yalnızca Android Studio Giraffe ve sonraki sürümleri için geçerlidir] Canlı Düzenleme, Compose Çalışma Zamanı 1.3.0 veya sonraki sürümlerini gerektirir. Projenizde Oluşturma'nın eski bir sürümü kullanılıyorsa Canlı Düzenleme devre dışı bırakılır.

  • [Yalnızca Android Studio Giraffe ve sonraki sürümleri için geçerlidir] Canlı Düzenleme için AGP 8.1 veya üstü gerekir. Projenizde daha düşük bir AGP sürümü kullanılıyorsa Canlı Düzenleme devre dışı bırakılır.

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

  • 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 ekleyemez ya da kaldıramaz ya da işlevsiz alanları değiştiremezsiniz.

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

  • Canlı Düzenleme'de değiştirilen sınıflar bazı performans cezalarına neden olabilir. Uygulamanızı çalıştırın ve performansını değerlendiriyorsanız 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 gerçekleştirmeniz gerekir.

  • Çalışan bir uygulama, Canlı Düzenleme ile düzenlediğinizde kilitlenebilir. Böyle bir 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 işlemi gerçekleştirmez. Örneğin, proje Derleme menüsündeki seçenekler kullanılarak veya Oluştur ya da Çalıştır düğmeleri tıklanarak oluşturulduğunda uygulanan bayt kodu değiştirme işlemi gerçekleştirmez.

  • Oluşturulamayan işlevler cihazda veya emülatörde canlı olarak güncellenir ve tam bir yeniden oluşturma tetiklenir. Tam yeniden oluşturma işlemi, güncellenmiş işlevi çağırmayabilir. Oluşturulamayan 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 ettirilmiyor. Uygulamayı tekrar çalıştırmanız gerekir.

  • Canlı Düzenleme yalnızca hata ayıklanabilir 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, çoklu dağıtım dağıtımlarıyla çalışmaz. Yani bir cihaza, ardından başka bir cihaza dağıtım yapamazsınız. Canlı Düzenleme, yalnızca uygulamanın dağıtıldığı son cihaz grubunda etkindir.

  • Canlı Düzenleme, çoklu cihaz dağıtımlarıyla (hedef cihaz açılır menüsündeki Birden fazla cihaz seçin seçeneği üzerinden oluşturulmuş birden fazla cihaza yapılan dağıtımlar) birlikte çalışır. Ancak, resmi olarak desteklenmediğinden sorunlar yaşanabilir. Sorun yaşarsanız lütfen bunları 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 hakkında sık sorulan sorular

  • Canlı Düzenleme'nin şu anki durumu nedir?

    Canlı Düzenleme, Android Studio Giraffe'ta kullanılabilir. Özelliği etkinleştirmek için macOS'te Dosya > Ayarlar > Düzenleyici > Canlı Düzenleme (Android Studio > Ayarlar > Düzenleyici > Canlı Düzenleme) bölümüne gidin.

  • Canlı Düzenleme özelliğini ne zaman kullanmalıyım?

    Kullanıcı deneyimi öğelerinde yapılan güncellemelerin (değiştirici güncellemeleri ve animasyonlar gibi) genel uygulama deneyimi üzerindeki etkisini hızlı bir şekilde görmek istediğinizde Canlı Düzenleme'yi kullanın.

  • Canlı Düzenleme özelliğini kullanmaktan ne zaman kaçınmalıyım?

    Canlı Düzenleme, kullanıcı arayüzü ve kullanıcı deneyimiyle ilgili kod değişikliklerine odaklanır. Yöntem imzası güncellemeleri, yeni yöntemler ekleme veya sınıf hiyerarşisi değişiklikleri gibi değişiklikleri desteklemez. Daha fazla bilgi için Canlı Düzenleme Sınırlamaları bölümüne bakın.

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

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

Değişmez değerleri Canlı Düzenleme (kullanımdan kaldırıldı)

Android Studio; önizlemeler, emülatör ve fiziksel cihazdaki composable'larda kullanılan bazı sabit değerleri gerçek zamanlı olarak güncelleyebilir. Desteklenen türlerden bazılarını aşağıda bulabilirsiniz:

  • Int
  • String
  • Color
  • Dp
  • Boolean

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

Değişmez değerlerin Canlı Düzenleme kullanıcı arayüzü göstergesi aracılığıyla değişmez değerleri etkinleştirerek derleme adımı olmadan gerçek zamanlı güncellemeleri tetikleyen sabit değerleri görüntüleyebilirsiniz:

Yazıların Canlı Düzenlemesini
Etkinleştirme,

Değişiklikleri Uygulama

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

composable'ları her eklediğinizde, değiştirdiğinizde veya sildiğinizde, yeniden dağıtmak zorunda kalmadan Kod Değişikliklerini Uygula düğmesini tıklayarak uygulamanızı güncelleyebilirsiniz:

"Değişiklikleri uygula" düğmesini
tıklayan kullanıcı