Android'de web

Farklı bileşenlerin Android uygulamaları içinde web içeriği oluşturmak için nasıl kullanılabileceği.

Android platformu 10 yılı aşkın süredir kullanılıyor ve ilk günlerinden beri web için muazzam destek almışlar. Üründe, geliştiricilerin kendi Android Uygulamalarının içinde web'i kullanmalarına olanak tanıyan WebView bileşeni bulunuyor. Dahası, Android, geliştiricilerin kendi tarayıcı motorlarını platforma getirmelerine olanak tanıyarak rekabeti ve yeniliği teşvik eder.

Geliştiriciler, web'i Android uygulamalarına birçok şekilde dahil edebilir. Web Görünümü, Android kullanıcı arayüzü öğeleriyle birlikte kullanılan bir düzen bileşeni olarak veya HTML 5 oyunlarını paketlemek için sıklıkla reklam oluşturmak amacıyla kullanılır. Özel Sekmeler, geliştiricilerin uygulama içi tarayıcılar oluşturmasına ve üçüncü taraf web içeriği için sorunsuz bir gezinme deneyimi sunmasına olanak tanır. Güvenilir Web Etkinliği ise geliştiricilerin Play Store'dan indirilebilecek Android uygulamalarında Progresif Web Uygulamalarını (PWA) kullanmalarına olanak tanır.

Android Web Görünümü

Web Görünümü, geliştiricilerin Android uygulamaları içindeki modern HTML, CSS ve JavaScript'e erişmelerini sağlar ve içeriğin APK içinde gönderilmesine veya internette barındırılmasına olanak tanır. Bu, Android'in en esnek ve güçlü bileşenlerinden biridir ve web içeriğinin Android uygulamasına dahil edildiği durumların çoğunda kullanılabilir. AdMob gibi reklam hizmetlerini desteklemekten WebGL gibi modern API'leri kullanan HTML5 oyunları geliştirip göndermeye kadar her şey için geçerlidir.

Ancak uygulama içi tarayıcı oluşturmak veya Android uygulamasına PWA eklemek için kullanıldığında WebView, web platformunun güvenlik, özellik ve olanaklarından yoksun olur.

Uygulama içi tarayıcı görevi

Zaman içinde daha fazla geliştirici, üçüncü taraf web sitelerinde gezinen kullanıcıları için daha sorunsuz bir deneyim oluşturmak amacıyla üçüncü taraf içeriklerini Android uygulamalarına ekleyen tarayıcı deneyimleri oluşturmuştur. Bu deneyimler uygulama içi tarayıcılar olarak tanındı.

WebView, modern web teknolojisi yığını için kapsamlı desteğe sahiptir ve WebGL gibi birçok modern web API'sini destekler. Ancak WebView, temel olarak bir web kullanıcı arayüzü araç setidir. Web platformunun tüm özelliklerini desteklemeyecek ve desteklemeyecektir. Bir API'nin Web Bluetooth gibi işletim sistemi düzeyinde bir alternatifi varsa veya push bildirimleri gibi bir tarayıcı kullanıcı arayüzünün uygulanmasını gerektiriyorsa desteklenmeyebilir. Web platformu gelişip yalnızca Android uygulamalarında kullanılabilen yeni özellikler eklendikçe bu boşluk daha da büyüyecek. Uygulama geliştiriciler, üçüncü taraf içeriklerini açarken hangi özelliklerin kullanıldığını kontrol etmediğinden, WebView, uygulama içi tarayıcılar veya Progresif Web Uygulamalarını açmak için kötü bir seçim haline gelir. WebView tüm web platformu özellikleri için destek sunsa bile geliştiricilerin izinler veya push bildirimleri gibi işlevler için yine de kod yazmaları ve kendi kullanıcı arayüzlerini uygulamaları gerekir. Bu da kullanıcılar için tutarlılığın sağlanmasını zorlaştırır.

Uygulama içi tarayıcı olarak Web Görünümü'nü kullanırken güvenlikle ilgili dikkat edilmesi gereken noktalar

Web Görünümü, yerleştirilen uygulamaya çerezler ve DOM dahil olmak üzere oluşturulan içeriğe tam erişim izni verir. Bunlar, kullanıcıların üst düzey güven duymasını gerektiren güçlü özelliklerdir.

Web Görünümü, tarayıcı oluşturmak için bir çerçeve olarak tasarlanmadığından, modern tarayıcılarda bulunan güvenlik özellikleri yoktur.

Çok işlemli mimari ve site izolasyonu

Tarayıcılar, güvenilmeyen içerikleri oluşturur ve yürütürken güvenli olacak şekilde tasarlanmıştır. Modern tarayıcılar, güvenilmez, hatta kötü amaçlı olabilecek içeriklerde gezinirken güvende kaldığından emin olmak için çok işlemli mimari ve site izolasyonu gibi teknikler kullanır.

Çok işlemli mimari olmadan, web sayfasından kaynaklanan bir kilitlenme tarayıcı uygulamasının tamamını kilitleyebilir veya bir güvenlik açığı, tüm cihazın kontrolünü ele geçirmek için kullanılabilir. Site izolasyonu, güvenilmeyen sitelerin diğer sitelerden bilgilere erişmesini ve bu bilgileri çalmasını zorlaştıran başka bir güvenlik katmanı ekler.

Web Görünümü oluşturucu, Android 8.0 Oreo'ya kadar, gömme uygulamasıyla aynı işlemi kullanıyordu. İşletim sisteminin daha yeni sürümlerinde ve cihazlar yeteri kadar uygun olduğunda oluşturucu farklı bir işlemde çalışır. Ancak yine de tüm sayfalar ve bunları çalıştıran WebView örnekleri arasında tek bir işlem paylaşıldığı için site izolasyonunun tamamen uygulanması imkansızdır.

Çok işlemli bir mimarinin ve site izolasyonunun olmaması, sahip oldukları ve güvendikleri içeriği oluşturan uygulamalar için bir sorun değildir ancak uygulama içi tarayıcılar gibi güvenilir olmayan üçüncü taraf içerikler çalıştıran uygulamalar için sorun olabilir ve kullanıcıları çerezleri, bankacılık bilgilerini, kişisel bilgileri ve daha fazlasını çalmak için kullanılabilecek Meltdown ve Spectre gibi güvenlik açıklarına maruz bırakır.

Güvenli Kullanıcı Arayüzü Göstergeleri

Kullanıcılara iyi güvenlik göstergeleri sunmak da önemlidir. Tarayıcılar bu alanda çok çaba sarf eder ve sürekli gelişir. Ancak Web Görünümü'nde, site bağlantısının güvenli olup olmadığını kontrol eden API yoktur. Bu API, uygulama geliştiricilerin güvenilir güvenlik göstergeleri oluşturmasına olanak tanır. Böyle bir API'nin olmaması örneğin, adres çubuğunda gösterilen bir URL'nin, güvenli HTTPS bağlantılarında bile kullanıcıya gösterilen sayfayla eşleşmemesine neden olabilir.

Geliştiricilere sunulan başka bir seçenek de uygulamalarına bir tarayıcı motoru yerleştirmektir. Bu yaklaşım, uygulama boyutunun artmasının yanı sıra hem karmaşık hem de zaman alıcıdır.

Uygulama içi tarayıcılara yönelik bir çözüm olarak Özel Sekmeler

Özel Sekmeler Chrome 45'te kullanıma sunulmuştur ve geliştiricilerin, uygulamalarının bir parçası olarak kullanıcının varsayılan tarayıcısındaki bir sekmeyi kullanmalarına olanak tanır. Özel Sekmeler ilk olarak Chrome tarafından kullanıma sunulmuştur ve bu nedenle "Chrome Özel Sekmeleri" olarak anılmıştır. Bugün bu bir Android API'si ve Chrome, Firefox, Edge ve Samsung Internet gibi en popüler tarayıcılar Özel Sekmeleri desteklemektedir. Bu nedenle, buna sadece "Özel Sekmeler" adını vermek daha uygun olur.

Özel Sekmeler, geliştiricilerin web içeriğini uygulama deneyimlerine sorunsuz bir şekilde entegre etmelerine yardımcı olur. Ayrıca, geliştiricilerin araç çubuğu rengini, işlem düğmelerini, geçiş animasyonunu ve daha fazlasını özelleştirmelerine olanak tanıyarak web içeriğinin gösterildiği etkinliği özelleştirmelerine olanak tanır.

Ayrıca, daha önce Web Görünümü kullanılırken veya tarayıcı motoru yerleştirilirken kullanılamayan özellikler de sunmaktadır. Uygulama içi tarayıcı, kullanıcının tarayıcısı tarafından desteklendiğinden, Özel Sekmeler depolama alanını tarayıcıyla paylaşır. Böylece, kullanıcıların, yüklü uygulamalarından biri Uygulama İçi göz atma oturumu başlattığında favori web sitelerine yeniden giriş yapmak zorunda kalmazlar.

Web Görünümlerinden farklı olarak Özel Sekmeler, kendisini destekleyen tarayıcının desteklediği tüm web platformu özelliklerini ve API'leri destekler.

Güvenilir Web Etkinliği'ni kullanarak progresif web uygulamalarını açma

Progresif Web Uygulamaları, eskiden yalnızca platforma özgü uygulamalarda kullanılabilen birçok davranış ve özelliği web'e taşıyor. Uygulama benzeri davranışların kullanıma sunulmasıyla birlikte, geliştiricilerin bu deneyimleri Android'de tekrar kullanma isteği arttı ve geliştiriciler PWA'ları uygulamalarına entegre etmenin yollarını aramaya başladılar.

Özel Sekmeler tüm modern web özelliklerini ve API'leri destekler, ancak öncelikle üçüncü taraf içeriklerini açmak üzere tasarlandığından, üst kısımda kullanıcılara hangi URL'yi ziyaret ettiklerini bildiren bir araç çubuğu ve sitenin güvenli olup olmadığını belirten kilit simgesi bulunur. Araç çubuğu, bir uygulamanın kendi deneyimini açarken uygulamanın işletim sistemine entegre edilmiş gibi hissetmesini engeller.

Güvenilir Web Etkinlikleri, Chrome 72'de kullanıma sunulmuştur ve geliştiricilerin PWA'larını Android uygulaması içinde kullanmalarına olanak tanır. Protokolü, Özel Sekmeler protokolüne benzer ancak geliştiricilerin hem Android uygulamasını hem de açılan URL'yi kontrol ettiklerini doğrulamalarını ve her ikisi de doğru olduğunda URL çubuğunu kaldırmalarını sağlayan API'leri (Dijital Öğe Bağlantıları aracılığıyla) kullanıma sunar.

Ayrıca, PWA'yı açarken başlangıç ekranı oluşturmak veya Android kodu tarafından işlenmek üzere web bildirimleri yetkisi vermek için kullanılan API'leri de kullanıma sundular. Play Faturalandırma desteği gibi daha fazla özellik yakında kullanıma sunulacaktır.

Güvenilir Web Etkinlikleri'nde açılan URL'lerin PWA olması ve bir dizi davranış ile performans özelliğine sahip olması beklendiğinden, Güvenilir Web Etkinlikleri, bunların içinde açılacak PWA'lar için kalite ölçütleri sunar.

Mevcut çözümlerin sınırlamaları

Geliştiricilerden aldığımız geri bildirimler, Özel Sekmelerin platform uyumluluğu ile Web Görünümü'nün esnekliğinin bir arada sunulmasına, örneğin DOM'ye erişebilmeleri veya uygulama içi tarayıcılarına JavaScript ekleyebilmeleri gerektiğini gösterdi.

Özel Sekmeler, etkin bir şekilde kullanıcının tarayıcısı tarafından oluşturulan, özel bir kullanıcı arayüzüyle veya hiç kullanıcı arayüzü içermeyen bir sekmedir. Bu, tarayıcının kullanıcının gizlilik ve tarayıcı güvenliği konusundaki beklentilerini karşılaması gerektiği ve bu özelliklerden bazılarını imkansız hale getirmesi gerektiği anlamına gelir.

Google'ın Android'de Web ekibi, kullanım alanlarını çözmek için alternatifler arıyor ve çözümlerle denemeler yapıyor. Ayrıntılar için bizi takip etmeye devam edin!

Özet

Web Görünümü, bir uygulamanın Android uygulamasının içinde HTML, CSS ve JavaScript'e ihtiyaç duyduğunda ancak Push Bildirimleri, Web Bluetooth gibi modern web'deki diğer gelişmiş özellikleri ve yetenekleri kullanmıyorsa yararlı olur. Modern web platformu için tasarlanmış içeriğin açılması, geliştiricinin istediği şekilde görüntülenmeyebileceğinden önerilmez. Uygulama içi tarayıcı oluşturmak için WebView önerilmez. Diğer yandan, birinci taraf web içeriklerinin gösterilmesi Web Görünümleri'nin gerçekten başarılı olduğu bir alandır.

Geliştiriciler kendi Progresif Web Uygulamalarını Android uygulamalarının içinde tam ekran olarak oluşturmak istediklerinde Güvenilir Web Etkinliği kullanılmalıdır. Uygulamadaki tek etkinlik olarak veya diğer Android etkinlikleriyle birlikte kullanılabilir.

Uygulama içi tarayıcılar olarak da bilinen, web platformu için tasarlanmış üçüncü taraf içeriklerini açmak için Özel Sekmeler kullanmanız önerilir.