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

Canlı Düzenleme

Canlı Düzenleme, emülatörlerde ve fiziksel cihazlarda gerçek zamanlı composable'ları güncellemenizi sağlayan bir özelliktir. Bu işlev, uygulamanızı yazma ve derleme arasındaki bağlam geçişlerini en aza indirerek kesintisiz bir şekilde daha uzun 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 aktarıldığında uygulanır.
  • Manuel Olarak Kaydetme: Kod değişiklikleri, Control+S (macOS'te Command+S) kullanılarak manuel olarak kaydedildiğinde uygulanır.
  • Otomatik: Bir composable 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 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ı 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, 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ırÇalıştır
simgesi tıklayın.

Canlı Düzenleme'yi 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şiklikler yapmak üzere bu adımları izleyin.

Yeni projenizi oluşturun

  1. Başlamadan önce, cihazınızda Android Studio Giraffe veya daha yeni bir sürümün yüklü olduğundan ve fiziksel cihazınızın veya 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. Halihazırda açık bir projeniz varsa Dosya > Yeni > Yeni Proje bölümüne giderek yeni bir proje oluşturabilirsiniz.

  3. Telefon ve Tablet için Boş Yazma Etkinliği şablonunu seçin ve ardından İ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 ş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ş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 belirleyin.

    Manuel modda, Control+\ (macOS'te Command+\) tuşlarına her bastığınızda kod değişiklikleriniz aktarılır. Manuel kaydetme modunda kod değişiklikleriniz, Control+S (macOS'te Command+S) kullanılarak manuel olarak yaptığınız her kaydetme işleminde uygulanır. Otomatik modda, kod değişiklikleriniz siz değişikliklerinizi yaparken cihazınızda veya emülatörünüzde uygulanır.

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

  4. Uygulamanızı dağıtmak için Run'ı (Çalıştır) kullanıcı arayüzü düğmesi tıklayın.

  5. Canlı Düzenleme'yi etkinleştirdikten sonra, Çalışan Cihazlar aracı 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şiklikler yaptıkça 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)
    )
}

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

Bir cihaza, 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ş olabilir. Ş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 sorunun çözümüne yönelik ö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 ile ilgili sınırlamalar

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

  • [Yalnızca Android Studio Zürafa ve sonraki sürümler için geçerlidir] Canlı Düzenleme için Oluşturma Çalışma Zamanı 1.3.0 veya sonraki bir sürüm gerekir. Projenizde Oluşturma uygulamasının daha eski bir sürümü kullanılıyorsa Canlı Düzenleme devre dışı bırakılı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 AGP'nin daha eski bir sürümü kullanılıyorsa Canlı Düzenleme devre dışı bırakılı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. Bu, işlev adını veya imzayı değiştiremeyeceğiniz, işlev ekleyip kaldıramayacağınız ya da işlev olmayan alanları değiştiremeyeceğiniz anlamına gelir.

  • Canlı Düzenleme, bir dosyada Oluştur işlevini ilk kez 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 dosyadaki Compose işlevlerinde yaptığınız sonraki kod değişiklikleriyle sıfırlanmaz.

  • Canlı Düzenleme ile değiştirilmiş 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ışması için tam çalıştırma yapmanız 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şlemesini gerçekleştirmez. Örneğin, proje Build menüsündeki seçenekler kullanılarak veya Derleme ya da Çalıştır düğmeleri tıklanarak oluşturulduğunda uygulanan bayt kodu değiştirme işlemi.

  • 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üncellenen 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 etmiyor. Uygulamayı tekrar çalıştırmanız gerekiyor.

  • Canlı Düzenleme yalnızca hata ayıklaması yapılabilir 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ında çalışmaz. Bu durumda, bir cihaza daha sonra 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, ç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, resmi olarak desteklenmediği için bazı sorunlar söz konusu olabilir. 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, Android Studio Giraffe'ta kullanılabilir. Bu özelliği açmak için Dosya > Ayarlar > Düzenleyici > Canlı Düzenleme'ye (macOS'te Android Studio > Ayarlar > Düzenleyici > Canlı Düzenleme) gidin.

  • Canlı Düzenleme'yi 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 özelliğini hangi durumlarda kullanmaktan kaçınmalıyım?

    Canlı Düzenleme, kullanıcı arayüzü ve kullanıcı deneyimi ile 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 ile ilgili sınırlamalar bölümüne bakın.

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

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

Değişmez değerleri Canlı Düzenleme (desteği sonlandırılmış)

Android Studio önizlemelerde, emülatörde ve fiziksel cihazda bulunan composable'larda kullanılan bazı sabit değerleri 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

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

Yazılı harflerin canlı
düzenlemesini etkinleştirme

Değişiklikleri Uygulama

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

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

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