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:
- Uygulamanızı çalıştırılabilecek şekilde ayarlayın.
- 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.
- 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'ı 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
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.
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.
Telefon ve Tablet için Boş Yazma Etkinliği şablonunu seçin ve ardından İleri'yi tıklayın.
Yeni Proje iletişim kutusunu şu bilgilerle doldurun: ad, paket adı, kaydetme konumu, minimum SDK ve derleme yapılandırma dili.
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 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.
Düzenleyicide, uygulamanızın giriş noktası olan
MainActivity
dosyasını açın.Uygulamanızı dağıtmak için Run'ı (Çalıştır) tıklayın.
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:
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.
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 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 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ındamoduleName
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
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:
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:
Sizin için önerilenler
- Not: JavaScript kapalıyken bağlantı metni gösterilir
- Animasyonları özelleştirme {:#customize-animations}
- Değere dayalı animasyonlar
- Parametre ekleme