Android'de web

Android uygulamalarında web içeriğini oluşturmak için farklı bileşenler nasıl kullanılabilir?

Android platformu on yıldan uzun bir süredir var ve ilk günlerinden beri web için mükemmel bir destek sunmaktadır. Geliştiricilerin kendi Android uygulamalarında web'i kullanmalarına olanak tanıyan bir bileşen olan WebView ile birlikte gönderildi. 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. WebView, reklamları oluşturmak için, 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 kullanılır. Özel Sekmeler, geliştiricilerin uygulama içi tarayıcılar oluşturmasına ve üçüncü taraf web içeriğine sorunsuz bir gezinme deneyimi sunmasına olanak tanır. Güvenilir Web Etkinliği ise geliştiricilerin Play Store'dan indirilebilen Android uygulamalarında Progressive Web Uygulamalarını (PWAs) kullanmasına olanak tanır.

Android Web Görünümü

WebView, geliştiricilere Android uygulamalarında modern HTML, CSS ve JavaScript'e erişim sağlar ve içeriğin APK içinde gönderilmesine veya internette barındırılmasına olanak tanır. Android'in en esnek ve güçlü bileşenlerinden biri olan bu API, web içeriğinin Android uygulamasına dahil edildiği çoğu kullanım alanında kullanılabilir. AdMob gibi reklam hizmetlerini desteklemekten WebGL gibi modern API'leri kullanan eksiksiz HTML5 oyunları oluşturmaya ve yayınlamaya kadar birçok alanda kullanılabilir.

Ancak uygulama içi tarayıcı oluşturmak veya Android uygulamasına PWA eklemek için kullanıldığında WebView, web platformunun güvenliğine, özelliklerine ve işlevlerine sahip değildir.

Uygulama içi tarayıcı sorunu

Zaman içinde, üçüncü taraf web sitelerine giderken kullanıcıları için daha sorunsuz bir deneyim oluşturmak amacıyla Android uygulamalarına üçüncü taraf içerikleri dahil eden geliştiricilerin sayısı artmıştır. Bu deneyimler, uygulama içi tarayıcılar olarak bilinir.

WebView, modern web teknolojisi yığını için kapsamlı destek sunar 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 desteklemek için tasarlanmamıştır ve desteklemez. Bir API'nin halihazırda işletim sistemi düzeyinde bir alternatifi varsa (ör. Web Bluetooth) veya push bildirimleri gibi tarayıcı kullanıcı arayüzünün uygulanmasını gerektiriyorsa desteklenmeyebilir. Web platformu geliştikçe ve yalnızca Android uygulamalarında kullanılabilen daha fazla özellik eklendikçe bu fark daha da büyüyecek. Uygulama geliştiriciler, üçüncü taraf içeriği açarken hangi özelliklerin kullanılacağını kontrol etmediğinden WebView, uygulama içi tarayıcılar veya progresif web uygulamalarını açmak için iyi bir seçim değildir. WebView tüm web platformu özellikleri için destek sunsa bile geliştiricilerin izinler veya push bildirimleri gibi işlevler için kod yazması ve kendi kullanıcı arayüzlerini uygulaması gerekir. Bu da kullanıcılar için tutarlılık elde etmeyi zorlaştırır.

WebView'i uygulama içi tarayıcı olarak kullanmayla ilgili güvenlik hususları

Web Görünümü, yerleştiren uygulamaya çerezler ve DOM dahil olmak üzere oluşturulan içeriğe tam erişim sağlar. Bunlar, kullanıcıların yüksek düzeyde güvenini gerektiren güçlü özelliklerdir.

WebView, tarayıcı oluşturmaya yönelik bir çerçeve olarak tasarlanmadığından modern tarayıcılarda bulunan güvenlik özelliklerine sahip değildir.

Çok işlemli mimari ve site izolasyonu

Tarayıcılar, güvenilmeyen içeriği oluşturup çalıştırırken güvenli olacak şekilde tasarlanmıştır. Modern tarayıcılar, güvenilirliği şüpheli veya hatta zararlı olabilecek içeriklerde gezinirken kullanıcının güvende kalmasını sağlamak için çok işlemli mimari ve site izolasyonu gibi tekniklerden yararlanır.

Çok işlemli mimari olmadan, web sayfasının neden olduğu bir kilitlenme tarayıcı uygulamasının tamamını kilitleyebilir veya bir güvenlik açığından yararlanılarak cihazın tamamının kontrolü ele geçirilebilir. Site izolasyonu, güvenilmeyen sitelerin diğer sitelere erişmesini ve bu sitelerden bilgi çalmasını zorlaştıran başka bir güvenlik katmanı ekler.

Android 8.0 Oreo'ya kadar WebView oluşturucu, yerleştiren uygulamayla aynı işlemi kullanıyordu. İşletim sisteminin daha yeni sürümlerinde ve cihazlar yeterince güçlü olduğunda oluşturma aracı farklı bir işlemde çalışır. Ancak tüm sayfalar ve bunları çalıştıran WebView örnekleri arasında tek bir işlem paylaşılmaya devam eder. Bu da site izolasyonunun tam olarak uygulanmasını imkansız kılar.

Çoklu işlem mimarisinin ve site izolasyonunun olmaması, sahibi olduğu ve güvendiği içeriği oluşturan uygulamalar için sorun teşkil etmez ancak uygulama içi tarayıcılar gibi güvenilmeyen üçüncü taraf içeriği çalıştıran uygulamalar için sorun olabilir. Bu durumda kullanıcılar, çerezleri, banka bilgilerini, kişisel bilgileri ve daha fazlasını çalmak için kullanılabilecek Meltdown ve Spectre gibi güvenlik açıklarına maruz kalı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 gösterir ve sürekli olarak gelişir. Ancak WebView'de, site bağlantısının güvenli olup olmadığını kontrol etmek için uygulama geliştiricilerin güvenilir güvenlik göstergeleri oluşturmasına olanak tanıyan bir API yoktur. Bu tür bir API'nin olmaması, örneğin, güvenli HTTPS bağlantılarında bile adres çubuğunda gösterilen URL'nin kullanıcıya gösterilen sayfayla eşleşmemesine neden olabilir.

Geliştiricilerin kullanabileceği bir diğer seçenek de uygulamalarına tarayıcı motoru yerleştirmektir. Bu yaklaşım, uygulama boyutunun artmasına yol açmanın yanı sıra hem karmaşık hem de zaman alıcıdır.

Uygulama içi tarayıcılar için çözüm olarak özel sekmeler

Özel Sekmeler, Chrome 45'te kullanıma sunuldu ve geliştiricilerin uygulamalarının bir parçası olarak kullanıcının varsayılan tarayıcısında bir sekme kullanmasına olanak tanır. Özel Sekmeler ilk olarak Chrome tarafından kullanıma sunulduğu için "Chrome Özel Sekmeleri" olarak biliniyordu. Şu anda bir Android API'sidir ve Chrome, Firefox, Edge ve Samsung Internet gibi en popüler tarayıcılar Özel Sekmeler'i desteklediğinden, "Özel Sekmeler" olarak adlandırılması daha uygundur.

Ö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, WebView kullanılırken veya tarayıcı motoru yerleştirilirken daha önce kullanılamayan özellikler de sunarlar. Uygulama içi tarayıcı, kullanıcının tarayıcısı tarafından desteklendiğinden Özel Sekmeler, tarayıcı ile depolama alanını paylaşır. Bu sayede kullanıcıların, yüklü uygulamalarından biri her uygulama içi tarama oturumu başlattığında favori web sitelerine yeniden giriş yapması gerekmez.

WebView'lerin aksine Özel Sekmeler, destekleyen tarayıcı tarafından desteklenen tüm web platformu özelliklerini ve API'lerini destekler.

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

Progresif Web Uygulamaları, daha önce yalnızca platforma özel uygulamalarda kullanılabilen birçok davranışı ve özelliği web'e getirir. Uygulama benzeri davranışın kullanıma sunulmasıyla birlikte geliştiricilerin bu deneyimleri Android'de yeniden kullanma isteği arttı ve geliştiriciler, PWA'ları uygulamalarına entegre etme yollarını sormaya başladı.

Özel Sekmeler, tüm modern web özelliklerini ve API'lerini destekler ancak öncelikle üçüncü taraf içeriğini açmak için tasarlandığından, üst kısmında kullanıcılara hangi URL'yi ziyaret ettiklerini gösteren bir araç çubuğu ve sitenin güvenli olup olmadığını belirten bir kilit simgesi bulunur. Bir uygulamanın kendi deneyimi açıldığında araç çubuğu, uygulamanın işletim sistemine entegre edilmiş gibi görünmesini engeller.

Chrome 72'de kullanıma sunulan Güvenilir Web Etkinlikleri, geliştiricilerin PWA'larını bir Android uygulamasında kullanması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ına (Dijital Öğe Bağlantıları aracılığıyla) ve her ikisi de doğru olduğunda URL çubuğunu kaldırmalarına olanak tanıyan API'ler sunar.

Ayrıca, PWA'yı açarken açılış ekranları oluşturmak veya web bildirimlerini Android kodu tarafından işlenmesi için devretmek için API'ler kullanıma sunuldu. 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 belirli davranış ve performans özelliklerine sahip olması beklendiğinden Güvenilir Web Etkinlikleri, içinde açılan PWA'lar için kalite ölçütleri sunar.

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

Geliştiricilerden gelen geri bildirimler, uygulama içi tarayıcılarına DOM'a erişmek veya JavaScript eklemek için Özel Sekmelerin platform uyumluluğu ile Web Görünümü'nün esnekliğinin birlikte kullanılması gerektiğini gösteriyordu.

Özel Sekmeler, kullanıcının tarayıcısı tarafından özel bir kullanıcı arayüzü veya hiç kullanıcı arayüzü olmadan oluşturulan bir sekmedir. Bu, tarayıcının kullanıcının tarayıcı ile ilgili gizlilik ve güvenlik beklentilerini karşılaması gerektiği anlamına gelir. Bu da söz konusu özelliklerin bazılarının kullanılamamasına neden olur.

Google'ın Android'de Web Ekibi, bu kullanım alanlarını çözmek için alternatifleri araştırıyor ve çözümlerle denemeler yapıyor. Ayrıntılar için bizi takip edin.

Özet

WebView, bir uygulamanın Android uygulamasında HTML, CSS ve JavaScript'e ihtiyacı olduğunda ancak modern web'de bulunan Push Bildirimleri, Web Bluetooth gibi daha gelişmiş özellikleri ve özellikleri kullanmadığında kullanışlıdır. Modern web platformu için tasarlanmış içerikler geliştiricinin amaçladığı şekilde görüntülenemeyebileceğinden bu içerikler açarken bu seçenek önerilmemektedir. Uygulama içi tarayıcılar oluşturmak için WebView önerilmemektedir. Diğer yandan, birinci taraf web içeriğini görüntüleme, WebView'lerin gerçekten öne çıktığı bir alandır.

Geliştiriciler kendi Progressive Web Uygulamalarını Android uygulamalarında 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.

Özel Sekmeler, uygulama içi tarayıcılar olarak da bilinen web platformu için tasarlanmış üçüncü taraf içerikleri açmak için önerilen yöntemdir.