Web uygulamalarınızı daha iyi bir şekilde güncelleme

Dan Murphy
Dan Murphy
Dibyajyoti Pal
Dibyajyoti Pal

Yayınlanma tarihi: 21 Ocak 2026

Chrome 144'ten itibaren, web uygulaması manifesti olan yüklenebilir web uygulamalarının güncelleme süreci daha basit hale getirilerek daha belirleyici, öngörülebilir ve verimli hale getirildi. Bu yayında, mevcut yaklaşım ve bu yaklaşımı iyileştirmek için yaptığımız değişiklikler açıklanmaktadır.

Önceki yaklaşım (Chrome 144'ten önce)

Chrome 144'ten önce web uygulamalarında güncellemeleri proaktif olarak tetikleyecek belirli bir etkinlik yoktu. Bunun yerine, geliştiriciler uygulama manifestosunu veya ilişkili simgelerini değiştirdiğinde güncellemeler yapılabilir. Güncelleme süreci, bir kullanıcı aracısı manifest bağlantısı kullanarak bir manifest aldığında başlar. Bu genellikle bir kullanıcı bir siteyi ziyaret ettiğinde veya bir uygulamayı (bu manifest'in bağlı olduğu) başlattığında gerçekleşir. Güncelleme gerekip gerekmediğini belirlemek için sistem, mevcut manifest ve simgeleri daha önce kaydedilen durumla karşılaştırır. Bu prosedür, bit eşlem karşılaştırması yapmak için her zaman ağdan simge indirilmesini gerektirdiğinden kaynak yoğun bir işlemdi.

Chrome, simge indirmelerinden kaynaklanan sunucu yükünü azaltmak için bu kontrolleri uygulama başına günde bir kez olacak şekilde sınırlayan bir sınırlama uyguladı ancak toplam bant genişliği tüketimi yüksek kalmaya devam etti. Ayrıca, kontrollerin günde bir kezle sınırlandırılması geliştirme ve test sırasında tutarsızlıklara neden olurken geliştiricilerin, güncellemeleri almamış kullanıcılara güvenilir çözümler sunmasını da engeller.

Bu yaklaşımla geliştiriciler, güvenlik açısından hassas değişiklikler (ör. uygulamanın adında veya simgesinde yapılan güncellemeler) uygularken karmaşık süreçlerle uğraşmak zorunda kalıyordu. Bu değişikliklere genellikle uygulama kimliği değişiklikleri denir. Web uygulamalarında, güncellemeleri inceleyecek Google Play gibi merkezi bir otorite bulunmadığından bu değişikliklerin onay için kullanıcılara net bir şekilde sunulması gerekir. Ancak kullanıcıları bu değişiklikler hakkında bilgilendirmek için en uygun zamanı belirlemek zorlu bir süreç olmaya devam etti.

Güncelleme iletişim kutusunun önceki sürümleri de, kullanıcılara görsel olarak aynı görünmelerine rağmen simgelerin değiştiğini iddia ederek sık sık kafa karışıklığına neden oluyordu. Bu sorun, genellikle önemsiz farklılıkları işaretleyen doğrudan piksel karşılaştırmalarına dayanmaktan kaynaklanıyordu. Bazı varyasyonlar geliştiricilerin kasıtlı olarak yaptığı ince ayarlardan kaynaklanırken çoğu, CDN'lerin resimleri dinamik olarak yeniden kodlamasından kaynaklanıyordu. Onay iletişim kutusunun bu kadar sık tetiklenmesi, Chrome 91'de simge güncellemelerinin devre dışı bırakılmasına neden oldu.

Android için Chrome'da bu sorunu çözmek amacıyla birkaç yıl önce görsel farklılık eşiği kullanıma sunuldu. Bu sayede, kullanıcı onayı yalnızca simge değişiklikleri önemliyse istenir. Bu iyileştirme, özellik masaüstü Chrome'da devre dışı kalmaya devam etse de Android'de simge güncellemenin yeniden etkinleştirilmesine olanak tanıdı.

Simge değişikliğini gösteren bir uyarı ve değişikliği onaylama veya uygulamayı kaldırma düğmelerini içeren, kullanıcıyı uyaran bir mesaj.
Masaüstü (91 ve sonraki sürümlerde gönderilmeyen Chrome)
Simge değişikliğini gösteren bir mobil uyarı ve kullanıcıyı uyaran bir mesaj. Bu mesajda, değişikliği onaylamak veya uygulamayı kaldırmak için düğmeler bulunur.
Android (mevcut)

Web uygulaması güncellemelerinde yapılan değişikliklerle ilgili kısıtlamalar ve hedefler

Yeni güncelleme sürecinin geliştirilmesinde aşağıdaki hedefler göz önünde bulundurulmuştur:

  • Kullanıcı beklentilerini koruma: Bir uygulamanın kimliği, kaynağıyla doğal olarak bağlantılı olduğundan adı ve simgesi, kullanıcının açık onayı olmadan değiştirilmemelidir.
  • İşlevsel tutarlılığı sağlama: Uygulamalar, işlevsel tutarlılığı sağlamak için tüm kullanıcılar açısından mümkün olduğunca güncel kalmalıdır.
  • Öngörülebilir kullanıcı deneyimi ve iletişim kutuları sunma: Geliştiriciler, kullanıcıların uygulama adları veya simgelerindeki güncellemelerle ilgili arayüz istemleriyle ne zaman karşılaşacağını kolayca tahmin edebilmelidir.
  • Ağ kullanımını optimize etme: Güncelleme mekanizması, gereksiz veri trafiğini en aza indirmelidir.

Chrome 144'te neler değişti?

Ad ve simge güncellemeleri artık isteğe bağlı

Geçmişte kullanıcılar, uygulamayı kaldırmalarını veya simge ve ad değişikliklerini hemen kabul etmelerini gerektiren rahatsız edici bir iletişim kutusuyla karşılaşıyordu. Bu özellik, genişletilmiş 3 noktalı menüden erişilebilen daha kullanıcı dostu bir öneriyle değiştirildi. Kullanıcılar, bu değişiklikleri tercih etmeleri durumunda tamamen yok sayabilir.

Çoğu manifest güncellemesi hemen uygulanırken güvenlik açısından hassas üyeler olarak kabul edilen uygulama simgeleri ve adları ayrı olarak saklanır. Bu sayede kullanıcılar, bu belirli değişiklikleri istedikleri zaman inceleyip uygulayabilir.

"Uygulama güncellemesini incele" seçeneğinin gösterildiği menü.

Uygulama güncellemesini incele'yi tıkladığınızda düzeltilmiş iletişim kutusu gösterilir. Başlık, hangi öğelerin güncellendiğine bağlı olarak değişir.

Kullanıcıdan simge ve ad güncellemelerini incelemesini isteyen masaüstü iletişim kutusu.

Simgeler alanında değişiklik yoksa simgeler indirilmez.

Manifestteki icons alanı, son uygulanan sürümle aynı kalırsa simgeler artık değişmemiş olarak kabul edilir. Bu yeni mantık uyarınca Chrome, görsel karşılaştırma için simge indirmekten kaçınır ve simge URL'lerini Cache-Control:immutable olarak değerlendirir. Simge güncellemesini tetiklemek için geliştiricilerin artık meta verileri veya simge URL'sini değiştirmesi gerekiyor.

Güncelleme sınırlamasının kaldırılması

Chrome artık yüklü bir uygulamanın manifestiyle karşılaştığında simgeleri her seferinde indirmediğinden, güncelleme kontrollerini günde bir kezle sınırlayan önceki kısıtlama kaldırıldı. Geliştiriciler artık tüm güvenlik açısından hassas olmayan üyeler için güncellemenin hemen gerçekleşeceğine güvenebilir.

Platformlar genelinde küçük simge varyasyonlarını yönetme

Kullanıcı deneyimini iyileştirmek için Chrome artık piksel piksel karşılaştırmada% 10'dan daha az fark gösteren simge güncellemelerini otomatik olarak uyguluyor. Bu sayede, CDN yeniden kodlamasından kaynaklananlar gibi küçük varyasyonların kullanıcı için kafa karıştırıcı bir güncelleme iletişim kutusunu tetiklememesi sağlanır.

Bu izin, olası kötüye kullanımı önlemek için günde bir kez olacak şekilde sınırlandırılmıştır. Bu süre içinde başka değişiklikler olursa simge standart bir güncelleme olarak kabul edilir ve kullanıcıdan değişikliği onaylaması istenir.

Simge ve ad güncelleme örneği

{
  "name": "Example App",
  "short_name": "App",
  "id": "https://www.example-app.com/",
  "start_url": "https://www.example-app.com/index.html",
  "scope": "https://www.example-app.com/",
  "icons": [
    {
      "src": "https://www.example-app.com/img/app.png",
      "sizes": "512x512",
      "type": "image/png",
      "purpose": "any"
    }
  ],

  ... other attributes omitted ...
}

Simge URL'sini değiştirmek, kullanıcının simgeyi değiştirmek için bir güncelleme iletişim kutusu görmesini sağlar.

{
  "name": "Example App",
  "short_name": "App",
  "id": "https://www.example-app.com/",
  "start_url": "https://www.example-app.com/index.html",
  "scope": "https://www.example-app.com/",
  "icons": [
    {
      "src": "https://www.example-app.com/img/app-NEW-URL.png",
      "sizes": "512x512",
      "type": "image/png",
      "purpose": "any"
    }
  ],

  ... other attributes omitted ...
}