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. Web Görünümü'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 uygulaması deneyimlerine sorunsuz bir şekilde entegre etmenin harika 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. WebView ekibi, kullanıcı gizliliğini korumak için bu üstbilgiyi tüm WebView isteklerinden kaldıran 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ştiricisiyseniz ve web siteleriniz WebView'lardan bol miktarda trafik alıyorsa, sizin için iki güncelleme mevcuttur:
WebView artık Chrome kaynak denemelerini destekliyor. Kaynak denemeleri, Chrome'daki yeni veya deneysel özelliklere erişmenizi sağlar. Bu davetleri, yeni bir özelliği herkese 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 WebView'de de kullanılabilir.
WebView Beta'yı yüklemek artık çok daha kolay. Web sitenizin gelecek WebView sürümlerinde düzgün ç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.
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ü modundayken Web Görünümü'ndeki bir görseli 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ündeki HTML girişlerinde el yazısını etkinleştirebilirsiniz.
Jetpack JavaScript Motoru
Bazen (örneğin, web ve mobil uygulamalarda iş mantığını paylaşırken) herhangi bir web içeriğini görüntülemek zorunda kalmadan uygulamanızda JavaScript'i çalıştırmanız gerekebilir. 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
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 ister misiniz?
Bu, özel sekmeler için mükemmel bir kullanım alanıdır. Bunlar, kullanıcıların uygulamanızdaki web içeriğini görüntülemesine olanak veren güvenli ve kullanıcı dostu bir yöntemdir. En büyük avantajı ise kullanıcıların en sevdikleri web sitelerine yeniden giriş yapmak zorunda kalmamalarıdır. Bunun nedeni, bunların kullanıcının varsayılan tarayıcısının ve paylaşılan çerezlerin bir örneği olmaları ve tarayıcıyı destekleyen tarayıcı tarafından desteklenen tüm web platformu özelliklerini ve API'leri sunmalarıdır.
Bu aynı zamanda, varsayılan tarayıcınız Chrome ise Chrome'da özel bir sekme açılır; varsayılan tarayıcınız Firefox ise Firefox'ta bir Özel Sekme açılır. Android'deki başlıca tarayıcıların çoğu Özel Sekmeleri destekler. Varsayılan tarayıcı Özel Sekmeleri desteklemiyorsa tarayıcı uygulaması açılır.
Özel sekmelerin en iyi özelliklerinden biri, uygulamanızın görünümüne ve tarzına uyacak şekilde stil verebilmeniz, işlemler ve kendi araç çubuklarınız aracılığıyla özel etkileşimler ekleyebilmenizdir.
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 işlem 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şimde bulunabilir. 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.
Tek yapmanız gereken, Custom Tabs Service'e bağlanmak, oturumu CustomTabsBuilder'a iletmek ve setActivityHeight'ı ç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 yanıt reklamlarında yeniden boyutlandırılabilen 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.
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 yan yana Özel Sekmeler deneyimi üzerinde çalışıyor. Ayrılma noktasıyla birlikte maksimum sekme genişliği tanımlandığında Özel Sekme deneyimi, alt sayfa yerleşimi ile yan yana deneyim arasında otomatik olarak geçiş yapar. Bu özellik Canary'da zaten mevcuttur ve Temmuz 2023'te kullanıma sunulacaktır. Denemek isterseniz Chromium Özel Sekmeler örnek uygulamasının kaynak koduna göz atın.
Etkileşim sinyallerini ölçme
Özel Sekmelerdeki ikinci büyük güncelleme ise oturuma özgü kullanıcı etkileşimini ölçmek. 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 sinyalleriyle ilgili 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'yı kullanarak web uygulamanız yüklenebilir: Diğer platform uygulamalarıyla birlikte ana ekranda, başlatıcıda, ayarlarda ve diğer yüzeylerde yayınlanı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 önem verdikleri web sitelerini yüklemelerine yardımcı olmak 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, getirme işleyici boşsa Chrome, hizmet çalışanını başlatma adımını atlar. Chrome, kullanıcıların yükleme erişimini genişletmek için denemeler çalıştıracak. Bu tür içeriklere dikkat edin ve lütfen geri bildirimde bulunun.
Geliştiricilerin diğer Android uygulamalarıyla tutarlı bir kullanıcı deneyimi oluşturması için Service Worker gerekliliği vardı. 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 işlem yapmasına gerek kalmadan, kullanıcılara çevrimdışı olduklarını bildiren bir uygulama simgesi gösteren varsayılan çevrimdışı deneyim özelliğini 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 açıklayan shortcuts
adlı bir dizi eklediğinizde, kullanıcılar uygulamanın simgesine uzun basarak bu işlemlere erişebilir.
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 kesinlikle ilgili olduğu gibi göründüğünü ancak öyle olmadığını unutmayın. 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ıldığı ve URL çubuğu göstermediği 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ı üzerinden dijital ürün satışlarını yönetmesine olanak tanıyan Play Faturalandırma API'sine erişim sahibi olmak; ürün, satış, abonelik ve daha pek çok konuyla ilgili ayarları 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.