Android 2023'te web'deki yenilikler

Geliştiricilerin web'i Android'e getirmesinin birçok nedeni vardır: Örneğin, bir web widget'ını Android uygulamasında yeniden kullanmak, birinci taraf veya üçüncü taraf içerikleri dahil etmek, hatta web uygulamasının tamamını platforma getirmek. Kullanım alanı ne olursa olsun Android'de bunu mümkün kılacak birçok araç vardır.

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

  • Gizlilik iyileştirmeleri ve büyük ekranlar için daha iyi destek (ör. WebView'nde resim sürükle ve bırak desteği).
  • Özel Sekmeler artık kısmi özel sekmeleri destekliyor.
  • Güvenilir Web Etkinlikleri'ndeki daha zengin yükleme kullanıcı arayüzü ve Play Faturalandırma API gibi PWA için entegre özellikler.

Daha fazla bilgi edinmek için başlayalım.

Web Görünümü

Android uygulamalarının büyük çoğunluğu WebView kullandığından, web içeriğini Android uygulamalarına yerleştirmenin en yaygın yolu WebView'dir. Web kullanıcı arayüzünü yerel Android uygulama deneyimlerine sorunsuz bir şekilde entegre etmenin mükemmel bir yoludur. Örneğin, uygulamanıza reklamlar, widget'lar ve hatta uygulama içi tarayıcılar gibi farklı web kullanıcı arayüzleri yerleştirebilirsiniz. WebView'in en güçlü yönlerinden biri, yüklenen web içeriğini kontrol etmek ve değiştirmek için kullanılan güçlü API'sidir. Peki WebView'de neler değişti?

X-Requested-With başlığı

Gizlilik ve X-Requested-With başlığının desteğinin sonlandırılması ile başlayalım. 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 başlığını ekler. Bu üstbilginin değeri, uygulamanın APK adıdır. Bu, her isteğin kullanıcının web içeriğini tükettiği bağlamla ilgili belirli bilgiler içerdiği ve uygulamanın kimliğini online hizmete sızdırdığı anlamına gelir. Kullanıcı gizliliğini korumak amacıyla WebView ekibi, bu başlığın tüm WebView isteklerinden kaldırıldığı bir desteği sonlandırma denemesi başlattı.

Peki uygulamanız X-Requested-With üst bilgisini kullanıyorsa ne olur? Önerdiğimiz yöntem, istek başlığını belirli kaynaklara seçerek göndermenizi sağlayan yeni etkinleştirme API'sini kullanmaktır. Bu sayede iki dünyanın da en iyisini elde edersiniz: Bu başlığın üzerine inşa edilmiş mevcut özellikleri desteklemeye devam ederken diğer tüm durumlarda kullanıcı gizliliğinin korunmasını sağlayabilirsiniz. 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

Bir sonraki konu testtir. Web geliştiriciyseniz ve web siteleriniz WebView'lerden çok fazla trafik alıyorsa sizin için iki güncelleme var:

  1. WebView artık Chrome kaynak denemelerini destekliyor. Kaynak denemeleri, Chrome'daki yeni veya deneysel özelliklere erişmenizi sağlar. Yeni bir özelliği herkese sunulmadan önce denemek için bu davetleri kullanabilirsiniz. Kaynak denemeleri şimdiye kadar yalnızca masaüstü ve mobil Chrome'da kullanılabiliyordu ancak Chrome M110'dan itibaren kaynak denemeleri WebView'de de kullanılabilir.

  2. WebView Beta'yı yüklemek artık çok daha kolay. Web sitenizin gelecekteki WebView sürümlerinde sorunsuz çalıştığından emin olmak için web sitenizi WebView Beta kanalını kullanarak test etmenizi önemle tavsiye ederiz. Bunu yapmak için Google Play Store'daki WebView Beta test programına katılın. Cihazınız otomatik olarak kaydedilir.

WebView beta programına katılmak için ziyaret edilen web sitesinin ekran görüntüsü.

Büyük ekranlı cihaz desteği

Hedefimiz, WebView'in büyük ekranlı cihazlarda iyi çalışmasını sağlamaktır. Bu yönde atılmış bir adım olarak WebView artık resim sürükle ve bırak özelliğini destekliyor. Örneğin, bölünmüş ekran görünümü modunda bir resmi WebView'den farklı bir uygulamaya sürükleyebilirsiniz.

WebView'lerinize sürükle ve bırak özelliğini eklemek çok kolaydır: AndroidManifest dosyanızda bir DropDataProvider tanımlamanız yeterlidir.

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

Büyük ekranlı cihazlardan bahsetmişken, Android U'daki Chrome ve WebView, HTML metin giriş alanlarında el yazısı desteğinin yanı sıra metin silme veya boşluk ekleme için giriş hareketleri sunacak. El yazısı desteği, S23 Ultra gibi One UI 5.1 yüklü tüm Samsung cihazlarda zaten mevcuttur. Android T kullanan diğer cihazlarda, Geliştirici seçenekleri bölümünden HTML girişlerinde el yazısını etkinleştirebilirsiniz.

Jetpack JavaScript Motoru

Bazen, web içeriği göstermek zorunda kalmadan uygulamanızda JavaScript çalıştırmanız gerekebilir. Örneğin, iş mantığını web ve mobil uygulamalar arasında paylaşırken. Bu süreci kolaylaştırmak için geçtiğimiz 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 WebView örneği oluşturmadan JavaScript veya WebAssembly kodunu değerlendirmesine olanak tanır. Yeni JavaScript motorunun en önemli özelliği, JavaScript'inizi farklı bir işlemde yürütmesidir. Bu sayede, uygulamanızda JavaScript'i güvenli ve kararlı bir şekilde çalıştırabilirsiniz. Ayrıca, WebView örneğinden daha az kaynak kullanır.

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 stili olan Android özel sekmesi.

WebView, web kullanıcı arayüzünü uygulamanıza entegre etmek için mükemmel bir seçenektir. Peki kullanıcıların uygulamanızda web içeriğine göz atmasına izin vermek ne olacak?

Bu, özel sekmeler için mükemmel bir kullanım alanıdır. Uygulama içi tarayıcılar, kullanıcıların uygulamanızda web içeriği görüntülemesine olanak tanıyan güvenli ve kullanıcı dostu bir yöntemdir. En büyük avantajları, kullanıcıların favori web sitelerine tekrar giriş yapması gerekmemesidir. Bunun nedeni, kullanıcının varsayılan tarayıcısının ve çerezlerinin paylaşıldığı bir örnek olmaları ve bunları destekleyen tarayıcı tarafından desteklenen tüm web platformu özelliklerini ve API'lerini sunmalarıdır.

Bu, varsayılan tarayıcınız Chrome ise Chrome'da, varsayılan tarayıcınız Firefox ise Firefox'ta özel sekme açılacağı anlamına gelir. Android'deki büyük tarayıcıların çoğu Özel Sekmeler'i destekler. Varsayılan tarayıcı Özel Sekmeler'i desteklemiyorsa bunun yerine tarayıcı uygulaması açılır.

Özel sekmelerin en iyi özelliklerinden biri, bunları uygulamanızın görünümüne ve tarzına uyacak şekilde biçimlendirebilmeniz, işlemler ve kendi araç çubuklarınız aracılığıyla özel etkileşimler ekleyebilmenizdir.

Özel renk teması ve araç çubuğu bulunan Android özel sekmesi.

Kısmi Özel Sekmeler

Özel Sekme özelleştirmeleri, Kısmi Özel Sekmeler desteğiyle önemli bir yükseltme aldı. Kullanıcıların uygulamalar ve web arasında çoklu görev yapmasına olanak tanır. Özel Sekmeler kullanılırken tarayıcı sekmesi yer paylaşımı şimdiye kadar ekranın tamamını kaplıyordu. Artık özel sekme yer paylaşımının yüksekliğini kontrol edebilirsiniz. Böylece kullanıcılar uygulamanızla ve web içeriğinizle aynı anda etkileşim kurabilir. Kullanıcınızın tarayıcısı Kısmi Özel Sekmeler'i desteklemiyorsa kullanıcı, desteklenen tam ekran Özel Sekme'yi görür.

Bunun için Özel Sekmeler Hizmeti'ne bağlanmanız, oturumu CustomTabsBuilder'a iletmeniz ve setActivityHeight'ı çağırmanız yeterlidir.

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 yanıt 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 reklamlar ve web içerikleriyle etkileşim kurmanın yeni bir yolunu uygulayabildiler.

Kısmi özel sekmeler kullanılan YouTube DirectResponse reklam deneyimi.

Peki tabletler ve diğer büyük ekranlı cihazlar ne olacak? Chrome ekibi şu anda yatay mod ve büyük ekranlı cihazlar için yeni bir yan yana Özel Sekmeler deneyimi üzerinde çalışıyor. Bir kesme noktasıyla birlikte maksimum sekme genişliği tanımladığınızda Özel Sekme deneyimi, alt sayfa yer paylaşımı ile yan yana deneyim arasında otomatik olarak geçiş yapar. Bu özellik Canary'da kullanıma sunulmuştur ve Temmuz 2023'te kullanıma sunulacaktır. Bu özelliği denemek istiyorsanız 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'de yapılan ikinci büyük güncelleme, oturuma özel kullanıcı etkileşimini ölçmektir. Uygulamanız, kullanıcılarınıza düzenli olarak bağlantı içeren içerikler (ör. bir haber feed'inde) gösteriyorsa kullanıcıların hangi bağlantıları değerli bulduğunu ve hangilerini bulmadığını anlayabilmeniz çok faydalı olmaz mı? Bu bilgiler, kullanıcılarınıza hangi bağlantıların gösterileceğine öncelik verme konusunda gerçekten yararlı olabilir.

Chrome ekibi, Chrome özel sekmelerine oturuma özgü metrik görünürlüğü ekledi. Artık kullanıcıların bir sayfada ne kadar süre kaldığını öğrenmenin yanı sıra kaydırma mesafesi, kaydırma yönü ve web içeriğiyle genel etkileşim hakkında da bilgi edinebilirsiniz.

Etkileşim sinyalleri Chrome 114'ten itibaren kullanılabilir ve androidx.browser:browser:1.6.0-alpha01 destek kitaplığının veya daha yeni bir sürümün yüklü olması gerekir. Daha fazla bilgi edinmek için etkileşim sinyalleri başlangıç kılavuzuna göz atın.

PWA

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

Android'de PWA kullanarak web uygulamanız yüklenebilir hale gelebilir: Ana ekranda, başlatıcıda, ayarlarda ve diğer platform uygulamalarında diğer uygulamalarla birlikte yer alır.

PWA özellikleri web standartlarına göre geliştirilir. Platformlar arası uyumluluğu ön planda tutan bu özellikler, geliştiricilere bir kez web uygulaması oluşturma araçları sunar ve kullanıcıların bu uygulamayı istedikleri cihaza yüklemelerine olanak tanır. Yüklenebilir bir web uygulaması oluşturmak, yerel bir Android uygulamanız olamayacağı veya olmaması gerektiği anlamına gelmez. Ancak web'i Android'e getirmek için kullanabileceğiniz başka bir seçenektir.

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

Kullanıcıların en çok önem verdikleri web sitelerini yüklemelerini sağlamak istedik. İlk adım, Android ve Chrome'a yükleme koşulu olarak hizmet işleyici getirme işleyicisinin kaldırılmasıydı. Ayrıca, get istem işleyicisi boşsa Chrome, servis çalışanını başlatmayı atlar. Chrome, kullanıcıların yükleme erişimini genişletmek için denemeler yapacaktır. Bu tür içeriklere dikkat edin ve lütfen geri bildirimde bulunun.

Hizmet çalışanı şartı, geliştiricilerin diğer Android uygulamalarıyla tutarlı bir kullanıcı deneyimi oluşturması için gerekliydi. Kullanıcıyı çevrimdışıyken uygulamayı kullanamayacağını bildiren bir sayfa oluşturmak için kullanılabilir.

Geliştiricilerin iş yükünü hafifletebileceğimizi ve bu uygulamaların en başından itibaren iyi bir yükleme deneyimi sunmasını sağlayabileceğimizi fark ettik. Bu nedenle Chrome, geliştiricilerin ek çalışma yapmasına gerek kalmadan kullanıcılara uygulamanın simgesini içeren bir ekran göstererek çevrimdışı olduklarını bildiren varsayılan bir çevrimdışı deneyim ekledi.

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

Android'de mükemmel bir web uygulaması deneyimi sunabilecek diğer özellikler arasında Daha Zengin Yükleme Kullanıcı Arayüzü de yer alır. Web manifestinize description ve screenshots alanlarını ekleyerek kullanıcılarınıza, uygulamanızı tanımlamak için uygulama mağazalarının gösterdiğine daha yakın bir yükleme deneyimi sunabilirsiniz.

Ayrıca kısayollar da mevcuttur. Kullanıcılarınızın uygulamanızda sıklıkla yaptığı bir dizi hızlı işlemi tanımlayan shortcuts adlı bir dizi ekleyerek uygulama simgesine uzun basarak bu işlemlere erişebilirler.

Web Paylaş ve Web Paylaş Hedefi API'lerini kullanarak uygulamanız, diğer platform uygulamaları gibi diğer uygulamalarla etkileşim kurabilir. Uygulamanız, paylaşım sayfalarında bir seçenek olarak gösterilir 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" başlıklı I/O konuşmasına göz atabilirsiniz.

Güvenilir Web Etkinliği

Web'i Android'e getirmenin bir diğer yolu da Güvenilen Web Etkinliği (TWA)'ni kullanmaktır.

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

TWA'nın PWA ile ilgili olduğu düşünülse de bu doğru değildir. Evet, TWA'yı kullanarak yüklenilebilir web uygulamanızı Google Play'de yayınlayabilirsiniz. Ancak web'de 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 tam ekran çalıştırılmaları ve URL çubuğu göstermemeleri dışında kullanıcının tarayıcısında göreceği şekilde oluşturulur. Bu, bunları destekleyen tarayıcı tarafından desteklenen tüm web platformu özelliklerini ve API'lerini destekledikleri anlamına gelir.

TWA'yı kullanarak web uygulamanızı sarmamanın bazı avantajları şunlardır:

Google Play'de yayınlama: Uygulamanızın Google Play'in görünürlük ve dağıtımına erişmesine olanak tanır. Geliştiricilerin uygulamalarında dijital ürün satışlarını yönetmelerine olanak tanıyan Play Faturalandırma API'ye erişme, ürün, satış, abonelik ve daha fazlasını oluşturmayı kolaylaştırır. Bildirimleri ve coğrafi konum izinlerini web sitesi yerine Android uygulamasına delege etme.

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 makaleyi inceleyin.

Sonuç

Gördüğünüz gibi, web içeriğini uygulamanıza yerleştirmek için birçok farklı seçenek vardır ve bu seçeneklerin tümü sürekli olarak iyileştirilmektedir.