Android 2023'te web'deki yenilikler

Geliştiricilerin web'i Android'e taşımaları için pek çok neden vardır. Örneğin, bir Android uygulamasında bir web widget'ını yeniden kullanmak, birinci taraf veya üçüncü taraf içeriği dahil etmek, hatta web uygulamasının tamamını platforma getirmek bile olabilir. Kullanım alanı ne olursa olsun, Android bunu mümkün kılacak birçok araca sahiptir.

Bu araçlarla ilgili son güncellemeleri aşağıda bulabilirsiniz. Örneğin:

  • Gizlilik iyileştirmeleri ve WebView'nde resim sürükleme ve bırakma desteği gibi büyük ekranlar için daha iyi destek.
  • Özel Sekmeler artık kısmi özel sekmeleri desteklemektedir.
  • PWA için entegre özellikler (ör. Güvenilir Web Etkinliklerindeki Daha Zengin Yükleme Kullanıcı Arayüzü ve Play Faturalandırma API'si).

Şimdi biraz daha ayrıntıya girelim ve bu konuda daha fazla bilgi edinelim.

WebView

Android uygulamalarının büyük çoğunluğu Web Görünümü'nü kullandığından, Web Görünümü, Android uygulamalarına web içeriği yerleştirmenin en yaygın yöntemidir. Bu sayede web kullanıcı arayüzünü yerel Android uygulama deneyimlerine sorunsuz şekilde entegre edebilirsiniz. Örneğin, uygulamanıza reklamlar, widget'lar, hatta uygulama içi tarayıcılar gibi farklı web kullanıcı arayüzleri yerleştirebilirsiniz. WebView'un en güçlü yanlarından biri, yüklenmekte olan web içeriğini kontrol etmeye ve değiştirmeye yönelik güçlü API'dir. Web Görünümü'ndeki yenilikler

X-Requested-With başlığı

Öncelikle gizlilik ve X-Requested-With başlığının kullanımdan kaldırılması ile başlayalım. Bir kullanıcı, web içeriğini yerleştirmek için Web Görünümü kullanan bir uygulamayı yükleyip çalıştırdığında, Web Görünümü sunuculara gönderilen her isteğe X-Requested-With üstbilgisini ekler. Bu başlığın değeri, uygulamanın APK adıdır. Bu durum, her istekte kullanıcının web içeriğini tükettiği bağlam hakkında belirli bilgiler içerdiği ve uygulamanın kimliğinin online hizmete sızdırıldığı anlamına gelir. Web Görünümü ekibi, kullanıcı gizliliğini korumak için bu başlığı tüm Web Görünümü isteklerinden kaldıran bir kullanımdan kaldırma denemesi başlattı.

Peki uygulamanız X-Requested-With başlığını kullanıyorsa ne olur? Önerdiğimiz yöntem, istek başlığını seçerek belirli kaynaklara göndermenize olanak tanıyan yeni etkinleştirme API'sini kullanmaktır. Bu, iki platformdan da en iyi şekilde yararlandığınız anlamına gelir. Diğer tüm durumlarda kullanıcının gizliliğinin korunmasını sağlarken, bu başlığın üzerine oluşturulan mevcut özellikleri desteklemeye devam edebilirsiniz. Mevcut davranışı korumak istiyorsanız X-Requested-With Deprecation kaynak denemesine de kaydolabilirsiniz.

WebSettingsCompat.setRequestedWithHeaderOriginAllowList(
    demoWebview.getSettings(), Collections.singleton("https://example.com")
);

Web Görünümü testi

Sıradaki konumuz testler. Web geliştiricisiyseniz ve web siteleriniz Web Görünümlerinden çok miktarda trafik alıyorsa sizin için iki güncelleme vardır:

  1. WebView artık Chrome kaynak denemelerini destekliyor. Kaynak denemeleri, Chrome'daki yeni veya deneysel özelliklere erişmenizi sağlar. Bunları, yeni bir özelliği herkesin kullanımına sunulmadan önce denemek için kullanabilirsiniz. Kaynak denemeleri şimdiye kadar yalnızca masaüstü ve mobil Chrome'da kullanılabiliyordu ancak Chrome M110'dan itibaren kaynak denemeleri Web Görünümü'nde de kullanılabiliyor.

  2. WebView Beta'yı yüklemek artık çok daha kolay. Yeni Web Görünümü sürümlerinde düzgün çalıştığından emin olmak için web sitenizi Web Görünümü Beta kanalını kullanarak test etmenizi önemle tavsiye ederiz. Bunu yapmak için Google Play Store'da Web Görünümü Beta test programına katıldığınızda cihazınız otomatik olarak kaydettirilir.

WebView beta programına katılım web sitesinin ekran görüntüsü.

Büyük ekranlı cihaz desteği

Amacımız WebView'un büyük ekranlı cihazlarda iyi çalışmasını sağlamaktır. Bu doğrultuda atılacak adımlardan biri de WebView'un artık resim sürükle ve bırak özelliğini desteklemesidir. Örneğin, bölünmüş ekran görünümü modunda bir Web Görünümü'ndeki görseli farklı bir uygulamaya sürükleyebilirsiniz.

Web Görünümlerinize sürükle ve bırak işlemi eklemek çok kolaydır: Tek yapmanız gereken AndroidManifest'inizde bir DropDataProvider tanımlamanızdır.

<application...>
     ...
     <provider
         android:authorities="com.example.webviewdemo.DropDataProvider"
         android:name="androidx.webkit.DropDataContentProvider"
         android:exported="false"
         android:grantUriPermissions="true"/>
 </application>

Büyük ekranlı cihazlarda, Android U'daki Chrome ve WebView, HTML metin giriş alanlarında el yazısı ve metin silmek veya boşluk eklemek için kullanılan giriş hareketleri için tam destek sunacak. El yazısı desteği, One UI 5.1 yüklü tüm Samsung cihazlarda (ör. S23 Ultra) zaten mevcuttur. Android T kullanan diğer cihazlarda, HTML girişlerinde el yazısını Geliştirici seçenekleri altından etkinleştirebilirsiniz.

Jetpack JavaScript Engine

Bazı durumlarda (örneğin, iş mantığını web uygulamaları ve mobil uygulamalar arasında paylaşırken) herhangi bir web içeriği görüntülemek zorunda kalmadan uygulamanızda JavaScript'i çalıştırmanız gerekebilir. Bunu kolaylaştırmak için geçen yıl yeni JetPack JavaScript motorunun alfa sürümünü kullanıma sunduk. Bu kitaplık, Chrome'un JavaScript motoru olan V8'i kullanır ve uygulamanızın Web Görünümü örneği oluşturmadan JavaScript veya WebAssembly kodunu değerlendirmesine olanak tanır. Yeni JavaScript motorunun en iyi yönü, JavaScript'inizi farklı bir işlemde yürütmesi, uygulamanızda JavaScript'i çalıştırmak için güvenli ve dengeli bir yol sağlamasıdır. Ayrıca, Web Görünümü örneğine göre daha az kaynak gerektirir.

ListenableFuture<JavaScriptSandbox> jsSandboxFuture =
JavaScriptSandbox.createConnectedInstanceAsync(JavaScriptEngineActivity.this);
JavaScriptIsolate jsIsolate = jsSandboxFuture.get().createIsolate();
final String code =
"function sum(a, b) { let r = a + b; return r.toString(); }; sum(3, 4)";
ListenableFuture<String> resultFuture = jsIsolate.evaluateJavaScriptAsync(code);
…

Özel Sekmeler

Varsayılan stile sahip Android Özel Sekmesi.

Web Görünümü, web kullanıcı arayüzünü uygulamanıza entegre etmek için idealdir. Peki ya kullanıcıların uygulamanızdaki web içeriğine göz atmasına izin vermeli?

Bu, Özel Sekmeler için harika bir kullanım örneğidir. Kullanıcıların uygulamanızdaki web içeriğini görüntülemelerine olanak tanıyan bu reklamlar, güvenli ve kullanıcı dostu bir yöntemdir. En büyük avantajları, kullanıcıların en sevdikleri web sitelerine yeniden giriş yapmak zorunda olmamalarıdır. Çünkü bunlar kullanıcının varsayılan tarayıcısının ve paylaşılan çerezlerin örnekleridir ve kendisini destekleyen tarayıcı tarafından desteklenen tüm web platformu özelliklerini ve API'lerini sunarlar.

Bu aynı zamanda, varsayılan tarayıcınız Chrome ise Chrome'da özel bir sekme, varsayılan tarayıcınız Firefox ise Firefox'ta bir Özel Sekme açılır. Android'deki belli başlı tarayıcıların çoğu Özel Sekmeleri destekler ve varsayılan tarayıcı Özel Sekmeleri desteklemiyorsa bunun yerine tarayıcı uygulaması açılır.

Özel Sekmelerin en güzel yanı, bunları uygulamanızın görünümüne ve tarzına uyacak şekilde biçimlendirebilmeniz, işlemler ve kendi araç çubuklarınızla özel etkileşim eklemesidir.

Özel renk teması ve araç çubukları içeren Android Özel Sekmesi.

Kısmi Özel Sekmeler

Özel Sekme özelleştirmeleri, Kısmi Özel Sekmeler desteğiyle birlikte önemli bir güncelleme gerçekleştirdi. Kullanıcıların uygulamalar ve web arasında birden fazla işlem yapmasını sağlarlar. Şimdiye kadar, Özel Sekmeler kullanılırken tarayıcı sekmesi yer paylaşımı ekranın tamamını kapıyordu. Artık Özel Sekme yer paylaşımının yüksekliğini kontrol edebilirsiniz. Bu şekilde, kullanıcılar uygulamanızla ve web içeriğinizle aynı anda etkileşimde bulunabilir. Kullanıcınızın tarayıcısı Kısmi Özel Sekmeleri desteklemiyorsa kullanıcı desteklenen tam ekran Özel Sekmeyi görür.

Tek yapmanız gereken Özel Sekmeler Hizmeti'ne bağlanmak, oturumu CustomTabsBuilder'a iletmek ve setActivityHeight öğesini çağırmaktır.

CustomTabsSession customTabsSession;

// ...

CustomTabsIntent customTabsIntent = new CustomTabsIntent.Builder(customTabsSession)
  .setInitialActivityHeightPx(500)
  .setCloseButtonPosition(CustomTabsIntent.CLOSE_BUTTON_POSITION_END)
  // ...
  .build();

customTabsIntent.launchUrl(context, Uri.parse(url))

YouTube, doğrudan pazarlama reklamlarında yeniden boyutlandırılabilir satır içi Özel Sekmeleri başarıyla kullanıma sundu. Bu sayede, uygulamadaki organik deneyimi kesintiye uğratmadan reklamlarla ve web içeriğiyle etkileşime geçmek için yeni bir yol sunabildiler.

Kısmi Özel Sekmeler kullanan YouTube Doğrudan Yanıt Reklam deneyimi.

Peki ya tabletler ve diğer büyük ekranlı cihazlar? Chrome ekibi şu anda yatay mod ve büyük ekranlı cihazlar için yeni bir Özel Sekmeler deneyimi üzerinde çalışıyor. Bir ayrılma noktasıyla birlikte maksimum sekme genişliği belirlediğinizde Özel Sekme deneyimi, alt sayfa yer paylaşımı ile yan yana deneyim arasında otomatik olarak geçiş yapar. Bu özellik Canary'de zaten mevcuttur ve Temmuz 2003'te kullanıma sunulacaktır. Denemek isterseniz Chromium Özel Sekmeler örnek uygulamasının kaynak koduna göz atın.

Ana uygulama içeriğiyle yan yana gösterilen Özel Sekmeler.

Etkileşim sinyallerini ölçme

Özel Sekmeler'deki ikinci büyük güncelleme, oturuma özgü kullanıcı etkileşimini ölçmeyle ilgilidir. Uygulamanız kullanıcılarınıza düzenli olarak bağlantılar (ör. bir haber feed'inde) ile içerik gösteriyorsa kullanıcının hangi bağlantıları değerli bulup hangilerinin olmadığını söyleyebilseniz harika olmaz mıydı? Bu bilgiler, kullanıcılarınıza gösterilecek bağlantıları önceliklendirme açısından çok yararlı olabilir.

Chrome ekibi, Chrome Özel Sekmelerine oturuma özgü metrik görünürlüğü ekledi. Bir kullanıcının bir sayfada ne kadar süre kaldığına ek olarak, artık kaydırma mesafesi, kaydırma yönü ve web içeriğiyle genel etkileşimi de görebilirsiniz.

Etkileşim sinyalleri, Chrome 114 sürümünden itibaren kullanılabilir ve androidx.browser:browser:1.6.0-alpha01 destek kitaplığı veya sonraki sürümleri gerektirir. Daha fazla bilgi edinmek için etkileşim sinyalleri başlangıç kılavuzuna göz atın.

PWA

Web'de oluşturulup dağıtılan uygulama benzeri deneyimler oluşturmayı mümkün kılan bir dizi teknoloji olan PWA'da da güncellemeler var.

Android'de PWA kullanıldığında web uygulamanız yüklenebilir: Diğer platform uygulamalarıyla birlikte, ana ekranda, başlatıcıda, ayarlarda ve diğer yüzeylerde.

Web standartlarına göre geliştirilen PWA özellikleri, platformlar arası uyumluluğa odaklanır. Böylece geliştiricilere, web uygulamasını bir kez oluşturmaları için araçlar sunar ve kullanıcıların istedikleri cihaza bu uygulamayı yüklemesine olanak tanır. Yüklenebilir bir web uygulaması oluşturmak, yerel bir Android uygulamasına sahip olamayacağınız veya olmamanız gerektiği anlamına gelmez. Ancak, web'i Android'e taşımanın başka bir yoludur.

Yüklenebilir web uygulamanızın Android'de kendini rahat hissetmesini sağlayan birkaç özelliğe göz atalım.

Kullanıcıları en çok önem verdikleri web sitelerini yüklemeleri konusunda teşvik etmek istedik. İlk adım, Android ve Chrome'da yükleme için zorunluluk olarak sunulan Service Worker getirme işleyicisini kaldırmaktı. Ayrıca, getirme işleyicisi boşsa Chrome, hizmet çalışanını başlatmayı atlar. Chrome, kullanıcılar için yükleme erişimini genişletmek üzere denemeler çalıştıracak. Bunlara dikkat edin ve geri bildirimlerinizi bizimle paylaşın.

Geliştiricilerin diğer Android uygulamalarıyla tutarlı bir kullanıcı deneyimi oluşturabilmesi için Service Worker zorunluluğu vardı. Bu bilgi, kullanıcıya uygulamayı internete bağlı değilken kullanamayacağını bildiren bir sayfa oluşturmak için kullanılabilir.

Geliştiricilerin iş yükünü kolaylaştırabileceğimizi ve bu uygulamaların başından itibaren iyi bir yükleme deneyimi sunmasını sağlayabileceğimizi fark ettik. Bu yüzden Chrome, geliştiricilerin ek bir işlem yapmasına gerek kalmadan kullanıcılara uygulamanın simgesiyle bir ekran gösteren ve çevrimdışı olduklarını bilmelerini sağlayan varsayılan çevrimdışı deneyimi ekledi.

Elbette, özel çevrimdışı deneyimler oluşturmak ve performansı iyileştirmek amacıyla önbelleğe alma gibi diğer özellikleri uygulamak için Service Worker API'yi kullanmaya devam edebilirsiniz.

Android'e şık bir web uygulaması deneyimi getirebilecek diğer özellikler arasında Zengin Yükleme Kullanıcı Arayüzü bulunur. Web manifest'inize description ve screenshots alanlarını eklediğinizde kullanıcılarınız, uygulamanızı açıklamak için uygulama mağazalarının gösterdiğine daha yakın bir yükleme deneyimi yaşarlar.

Ayrıca kısayollarımız da mevcuttur. Kullanıcılarınızın uygulamanızda sıklıkla yaptıkları bir dizi hızlı işlemi açıklayan shortcuts adlı bir dizi eklediğinizde, kullanıcılar uygulamanın simgesine uzun basarak bu işlemlere erişebilirler.

Web Paylaşımı ve Web Paylaşımı Hedefi API'lerini kullanarak uygulamanız, diğer platform uygulamaları gibi diğer uygulamalarla etkileşimde bulunabilir. Uygulamanız, paylaşım sayfalarında bir seçenek olarak yer alır ve fotoğraf, metin ve diğer dosyaları paylaşıp alabilir.

İşletmelerin bu teknolojilerden nasıl yararlandığı hakkında daha fazla bilgi edinmek için "Web: Büyüme platformunuz" adlı I/O konuşmasına göz atabilirsiniz.

Güvenilir Web Etkinliği

Web'i Android'e taşımanın bir başka yolu da Güvenilir Web Etkinliği (TWA) aracını kullanmaktır.

TWA, uygulamanızda tam ekran birinci taraf web içeriği görüntülemenin en iyi yoludur. Web uygulamalarını bir Android uygulaması olarak sarmalamak veya web sitelerini bir uygulamanın parçası olarak kullanmak isteyen geliştiriciler için ideal çözümdür.

TWA'nın PWA ile kesin bir şekilde ilişkili olduğunu ama aslında olmadığını unutmayın. Evet, TWA'yı kullanarak yüklenebilir web uygulamanızı Google Play'de yayınlayabilirsiniz, ancak web üzerinde tek bir etkinlik oluşturup bunu Android uygulamanıza da ekleyebilirsiniz.

Güvenilir Web Etkinliği, kullanıcının tarayıcısı tarafından, kullanıcının tarayıcısında gördüğü şekilde oluşturulur (tam ekran olarak çalıştırılır ve bir URL çubuğu görüntülenmez). Yani bu özellikler, kendisini destekleyen tarayıcının desteklediği tüm web platformu özelliklerini ve API'leri destekler.

Web uygulamanızı TWA kullanarak sarmalamanın avantajlarından bazıları şunlardır:

Google Play'de yayınlama, uygulamanızın Google Play'in görünürlüğüne ve dağıtımına erişmesini sağlar. Geliştiricilerin uygulamalarında dijital ürün satışlarını yönetmelerine olanak tanıyan Play Faturalandırma API'sine erişebilme Bildirimler ve coğrafi konum izinleri için web sitesi yerine Android uygulamasına yetki verme.

ContactsDirect'in kullanıcılarına fayda sağlamak ve dönüşüm oranlarını üç katına çıkarmak için TWA'yı nasıl kullandığı hakkında daha fazla bilgi edinmek için bu makaleye göz atın.

Sonuç

Gördüğünüz gibi, uygulamanıza web içeriği yerleştirmek için kullanabileceğiniz birçok farklı seçenek bulunuyor ve bu seçeneklerin hepsi sürekli olarak geliştiriliyor.