Görüntü İyileştirme

PWA'nızın dönüşümünü ve kullanımını iyileştirebilecek birçok geliştirme vardır.

Uygulama kısayolları

Uygulama kısayolları, PWA'nıza yönelik derin bağlantıların statik bir listesidir ve manifestinize yazılır. Web uygulaması manifest spesifikasyonu. PWA'nızdaki farklı bölümlere veya özelliklere yönelik bir kısayol listesi tanımlamanıza olanak tanır. Bu kısayollar, sık erişilen bölümlere gitmeyi hızlandırır.

Uygulama kısayolları, WebAPK ile birlikte çoğu masaüstü işletim sisteminde ve Android'de kullanılabilir. Bu kısayollar, ana ekrandaki, dock'taki veya görev çubuğundaki uygulama simgesinin bağlam menüsünde görünür.

Android ve macOS'te uygulama kısayolları

Kullanıcıların bu menüye erişmek için PWA'nın simgesini sağ tıklaması veya simgeye uzun basması gerekir.

Kısayollar, manifestin shortcuts üyesinde tanımlanır. Aşağıdaki özelliklere sahip bir üye dizisi alır:

name
Kullanıcıya gösterilecek metin (genellikle bağlam menüsünde).
url
Kullanıcı, PWA'yı bu kısayoldan başlattığında PWA'nın yüklemesi gereken URL. PWA kapsamınızdaki bir URL olmalı ve name veya short_name ile açıklanan özelliğe derin bağlantı vermelidir.
short_name
(İsteğe bağlı) name alanının tam değerini göstermek için yeterli alan olmadığında kullanılan daha kısa bir ad.
description
(İsteğe bağlı) Bu kısayolun ne yapacağına dair bir açıklama
icons
(İsteğe bağlı) Kısayolu hangi resimlerin temsil etmesi gerektiğini açıklayan src, type, sizes ve isteğe bağlı purpose alanlarını içeren bir simge nesneleri dizisi

Uygulama kısayollarını, en iyi çabayı gösterme özelliği olarak değerlendirmelisiniz. Bu nedenle, bu kısayolların tutarlı bir şekilde görünmesine güvenemezsiniz. Kısayollar görünse bile kaç kısayolun görüneceğini veya platformun tarayıcıların takdirine bağlı olarak simgeleri yoksayıp yoksaymayacağını bilemezsiniz. Platform bazında tam bir tartışma bu makalenin kapsamı dışındadır ancak aşağıda Android ve masaüstünde nasıl çalıştığına dair bir fikir edinebilirsiniz. Bu belirsizlikle başa çıkmanın en iyi yolu, öğeleri önceliğe göre sıralamaktır.

iOS ve iPadOS

PWA'ları yayınlarken iOS/iPadOS'te Safari kullanıcılarının deneyimini iyileştirebilecek bazı geliştirmeler vardır.

Başlangıç ekranları

Web Uygulaması Manifesti bölümünde belirtildiği gibi Android, manifestin değerlerine göre otomatik olarak başlangıç ekranları oluşturur. iOS ve iPadOS'te durum böyle değildir. Bu cihazlarda, açılış ekranlarını HTML'de <link> öğelerini kullanarak statik resimler olarak tanımlamanız gerekir.

Bu resimler, Apple cihazlarda başlangıç resimleri olarak bilinir ve şu örnekte olduğu gibi rel özelliğini apple-touch-startup-image değeriyle kullanır:

<link rel="apple-touch-startup-image" href="ios-startup.png">

Buradaki zorluk, başlangıç resminin, PWA'nızın açıldığında sahip olacağı pencere boyutuna tam olarak sahip olması gerektiğidir. Bu nedenle, farklı iOS ve iPadOS cihazlar için farklı resimler gerekir. iPad'de daha fazla durumun ele alınması gerekiyor. Örneğin, yatay/dikey açılışlar ve PWA'nın çoklu görev modunda (ekranın 1/3'ü, 1/2'si veya 2/3'ü gibi) oluşturulması.

iOS ve iPadOS ekran boyutlarının güncellenmiş listesini Apple Human Interface Guidelines'da bulabilirsiniz.

Başlangıç resminin farklı sürümleri, media özelliği içindeki bir medya sorgusuyla ayarlanabilir:

<link rel="apple-touch-startup-image" href="ios-startup.png"
      media="orientation: portrait">
<link rel="apple-touch-startup-image" href="ios-startup-landscape.png"
      media="orientation: landscape">

iOS başlangıç resimleri için tasarım kalıpları

Başlangıç resimlerini tanımlamak zor bir iştir. Bu nedenle, otomatik oluşturma ve yapılandırma için birkaç aracımız vardır:

  • Statik oluşturma, derleme sisteminizle entegre olur, tüm PNG statik resimlerini oluşturur ve dokümanınıza yerleştirebileceğiniz <link> öğelerini içeren HTML kodunu size verir. PWA Asset Generator bu tür araçlara örnek olarak verilebilir.
  • İstemci tarafı oluşturucu, başlangıç resminin bir veya daha fazla base64 sürümünü, mevcut cihazın türüne ve ekran boyutuna göre <link> öğelerine yerleştirebilen bir JavaScript aracıdır. Bellek içi bir tuval kullanabilir, resmi oluşturabilir ve PNG dosyasıyla data: URI'sine dönüştürebilirsiniz. PWA Compat kitaplığı, Android'in tipik başlangıç ekranını klonlayarak bu işlemi gerçekleştiren, kullanımı kolay bir istemci tarafı kitaplığıdır.

Apple mobil platformlarında PWA'ları algılama

PWA'nızda aşamalı geliştirme ve özellik algılama kullanmanız gerekse de kullanıcıların Apple mobil platformlarında PWA'da olup olmadığını bilmemiz gereken bazı uç durumlar olabilir. Örneğin, yükleme talimatları sunmak veya yalnızca iOS'e özel platforma özgü uygulamalara bağlantılar eklemek istediğinizde bu durum geçerlidir.

Kullanıcı aracısı dizesini okumaktan kaçınmak için navigator nesnesinin standalone özelliğini kontrol edin. Bu, standart dışı bir özelliktir ve yalnızca iOS ile iPadOS'teki WebKit motorunda kullanılabilir.

  • navigator.standalone undefined ise kullanıcının iPadOS veya iOS cihaz kullanmadığı anlamına gelir.
  • navigator.standalone false ise kullanıcının PWA'yı tarayıcıda açtığı ve orada kullandığı anlamına gelir.
  • navigator.standalone true ise kullanıcının PWA'yı ana ekrandan açtığı ve bağımsız PWA deneyimi yaşadığı anlamına gelir.

Tam ekran desteği

iOS ve iPad'lerdeki Safari'de PWA'nız için görüntüleme modu olarak yalnızca display: standalone desteklenir.

Sonraki resimde, solda tema rengi içeren varsayılan bağımsız bir tasarım, sağda ise içerikleri durum çubuğunun arkasında oluşturmanıza olanak tanıyan tam ekran iOS moduyla bir PWA görebilirsiniz.

Bağımsız bir varsayılan davranış (sol) ve tam ekran bir iOS ekranı (sağ).

HTML'nize aşağıdaki etiketi eklerseniz iOS ve iPadOS'teki PWA'nız tam ekran moduna girer ancak bu, Android'den farklıdır.

<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent">

Bu modda, cihazın durum çubuğu (saati, pil seviyesini ve bildirim simgelerini gördüğünüz üst kısım) görünür olmaya devam eder ancak içeriğinizin üzerinde şeffaf bir arka planla oluşturulur.

Bu modu kullanırken tasarımınıza dikkat edin. İşletim sistemi, simgeleri her zaman beyaz olarak oluşturur. Bu nedenle, ekranın üst kısmındaki arka planlarınızda her zaman açık renkli içeriklerle kontrast oluşturmalısınız. Ayrıca, Uygulama Tasarımı Bölümü'nde gösterildiği gibi, içeriği güvenli alanda oluşturmak için CSS ortam değişkenlerini kullanmak da önemlidir.

Görüntü alanınızın en üstteki 0 pikseli varsayılan olarak durum çubuğunun altında yer alır. Siyah yarı saydam bir meta etiketi eklerseniz görüntü alanınızın en üstteki 0 pikseli ekranın fiziksel üst kısmıyla eşleşir.

Yükleme güvenilirliği

iOS ve iPadOS 15.4'ten önceki sürümlerde manifest dosyası yalnızca kullanıcı, tarayıcıdaki paylaş simgesini kullanarak paylaşım sayfasını açtığında ağdan yüklenir, sayfa yüklendiğinde yüklenmez. Bu nedenle, tarayıcı o ana kadar web sitenizin PWA olup olmadığını kontrol etmez. Bu durum, manifestin yüklenememesine veya çok uzun sürmesine ve tarayıcının manifesti yok saymasına neden olabilir.

Tarayıcı, manifesti zamanında yükleyemediğinde "Ana ekrana ekle"ye basıldığında ana ekrana bir simge yerleştirilir ancak uygulama deneyimi sağlanmaz. Bu simge yalnızca bir tarayıcı sekmesine giden kısayol olur.

Kaynaklar