Bir mobil geliştirici olarak, uygulamanızın kullanıcı arayüzünü, genellikle her şeyi tek seferde geliştirmek yerine 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 Jetpack Compose'da bu yaklaşımı benimser.
Canlı Düzenleme
Canlı Düzenleme, emülatörlerdeki ve fiziksel cihazlardaki besteleri gerçek zamanlı olarak güncellemenize olanak tanıyan bir özelliktir. Bu işlev, yazma ile uygulamanızı oluşturma arasındaki bağlam geçişlerini en aza indirir. Böylece, kesintisiz olarak daha uzun süre kod yazmaya odaklanabilirsiniz.
Canlı Düzenleme'nin iki modu vardır:
- Manuel: Kod değişiklikleri, Ctrl+S (macOS'te Command+S) kullanılarak manuel olarak kaydedildiğinde uygulanır.
Otomatik: Oluşturulabilir bir 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ö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 Uygulama'nın yerine geçmez. Bunun yerine, Compose kullanıcı arayüzünü geliştirmek için oluştururken, dağıtırken ve iterken iş akışınızı optimize edecek şekilde tasarlanmıştır.
En iyi uygulama iş akışı aşağıdaki gibidir:
- Çalıştırılabilmesi için uygulamanızı ayarlayın.
- Canlı Düzenleme'nin desteklemediği bir değişiklik (uygulama çalışırken yeni yöntemler eklemek gibi) yapmanız gerekene kadar mümkün olduğunca canlı düzenleme yapın.
- Desteklenmeyen bir değişiklik yaptıktan sonra, uygulamanızı yeniden başlatmak ve Canlı Düzenlemeyi devam ettirmek için Çalıştır'ı
tıklayın.
3. Şekil. Otomatik modda, Canlı Düzenleme tarafından desteklenen her düzenleme yaptığınızda, cihazınızda veya emülatörünüzde çalışan uygulama gerçek zamanlı olarak güncellenir.
Canlı Düzenleme'yi kullanmaya başlama
Başlamak için aşağıdaki adımları izleyerek 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şturun
Başlamadan önce bilgisayarınızda 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.
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 proje oluşturabilirsiniz.
Telefon ve Tablet için Boş Yazma Etkinliği şablonunu seçin ve İleri'yi tıklayın.
4. Şekil. Seçebileceğiniz şablonlar. Canlı Düzenleme için Oluşturma Etkinliğini Boşalt'ı seçin.
Yeni Proje iletişim kutusunu aşağıdaki gerekli bilgilerle doldurun: ad, paket adı, kayıt konumu, minimum SDK ve derleme yapılandırma dili.
Şekil 5. Örnek proje ayarları.
Son'u tıklayın.
Canlı Düzenlemeyi Etkinleştir
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.
Ayarlardan, Canlı Düzenleme seçeneğini ve çalıştırmak istediğiniz modu seçin.
Manuel modda, kod değişiklikleriniz manuel olarak her kaydettiğinizde Control+S (macOS'te Command+S) tuş kombinasyonunu kullanarak uygulanır. Otomatik modda, değişiklikleriniz sırasında kod değişiklikleriniz cihazınıza veya emülatörünüze uygulanır.
Şekil 6. Canlı Düzenleme ayarları.
Düzenleyicide, uygulamanızın giriş noktası olan
MainActivity
dosyasını açın.Uygulamanızı dağıtmak için Çalıştır'ı
tıklayın.
Canlı Düzenleme'yi açtıktan sonra, Çalışan Cihazlar araç penceresinin sağ üst kısmında yeşil renkli Güncel onay işareti görünür:
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 7'de gösterildiği gibi test cihazında anında görünür.
7. Şekil. Greeting
yöntemindeki 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 8'de gösterildiği gibi derleme hatası olduğunu belirten Eski ifadesinin olup olmadığını kontrol edin. Hata hakkında bilgi ve hatanın nasıl çözüleceğine dair öneriler için göstergeyi tıklayın.
8. Şekil. 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 bir sürümü gerektirir. Projeniz, Oluşturma'nın daha düşük bir sürümünü kullanıyorsa Canlı Düzenleme devre dışıdır.
[Yalnızca Android Studio Giraffe ve sonraki sürümleri için geçerlidir] Canlı Düzenleme, AGP 8.1 veya üstünü gerektirir. Projeniz AGP'nin daha düşük bir sürümünü kullanı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. Bu nedenle, işlev adını veya imzayı değiştiremez, işlev ekleyemez ya da kaldıramaz veya işlevsiz alanları değiştiremezsiniz.
Canlı Düzenleme, bir dosyada Oluşturma 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şiklikleri nedeniyle sıfırlanmaz.
Canlı Düzenleme ile 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
düğmesini kullanarak uygulamayı tekrar dağıtabilirsiniz.
Canlı Düzenleme, projenizin derleme dosyasında tanımlanan bayt kodu değiştirme işlemi gerçekleştirmez. Örneğin, Derleme menüsündeki seçenekler kullanılarak veya Derleme ya da Çalıştır düğmeleri tıklanarak proje oluşturulduğunda uygulanacak 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 işlemi 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ı tekrar ç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ıklaması yapılabilecek işlemleri destekler.
Canlı Düzenleme, derleme yapılandırmasında
kotlinOptions
altındamoduleName
için özel değerler kullanan projeleri desteklemez.Canlı Düzenleme, çoklu dağıtım dağıtımlarıyla çalışmaz. Bu, bir cihaza, ardından başka bir cihaza dağıtım yapamayacağınız anlamına gelir. Canlı Düzenleme yalnızca uygulamanın dağıtıldığı son cihaz grubunda etkindir.
Canlı Düzenleme, birden fazla cihaz üzerinden yapılan dağıtımlarla (hedef cihaz açılır listesindeki Birden fazla cihaz seçin seçeneği kullanılarak oluşturulmuş birden fazla cihaza yapılan dağıtımlar) birlikte çalışır. Ancak, resmi olarak desteklenmediği için sorunlar yaşanabilir. Sorun yaşarsanız lütfen bunları bildirin.
Canlı Düzenleme hakkında sık sorulan sorular
Canlı Düzenleme'nin şu anki durumu nedir?
Android Studio Giraffe'ta Canlı Düzenleme 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 ne zaman kullanmamalıyım?
Canlı Düzenleme, kullanıcı arayüzü ve kullanıcı deneyimi ile ilgili kod değişikliklerine odaklanır. 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ı bölümüne bakın.
Oluşturma Önizlemesi'ni ne zaman kullanmalıyım?
Oluşturulacak içerikleri tek tek geliştirirken Önizleme Oluşturma özelliğini kullanın. Önizleme, Oluşturma öğelerini görselleştirir ve kod değişikliklerinin etkisini görüntülemek 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 (kullanımdan kaldırıldı)
Android Studio; önizlemeler, emülatör ve fiziksel cihazdaki bestelerde kullanılan bazı sabit değerleri gerçek zamanlı olarak güncelleyebilir. Desteklenen türlerden bazıları şunlardır:
Int
String
Color
Dp
Boolean
Değişmez değerlerin kullanıcı arayüzü göstergesinin Canlı Düzenlemesi aracılığıyla harflerden oluşan süslemeleri etkinleştirerek derleme adımı olmadan gerçek zamanlı güncellemeleri tetikleyen sabit değerleri görüntüleyebilirsiniz:
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.
Oluşturulabilir öğe eklediğinizde, değiştirdiğinizde veya sildiğinizde, uygulamanızı yeniden dağıtmak zorunda kalmadan Kod Değişikliklerini Uygula düğmesini tıklayarak güncelleyebilirsiniz:
Sizin için önerilenler
- Not: Bağlantı metni JavaScript kapalıyken gösterilir
- Animasyonları özelleştirme {:#customize-animations}
- Değere dayalı animasyonlar
- Parametre ekleme