PWA ve React Native: Ayrıntılı Bir Bakış

Yayınlanan: 2021-05-21

İçindekiler

PWA ve Flutter'a benzer şekilde, PWA ve React Native, şu anda platformlar arası uygulamalar geliştirmek için en popüler yaklaşımlar arasındadır. Ve bu konuda araştırma yaparken, işletmeniz için doğru gelişim yoluna karar vermeye çalışırken kafanızın karışması anlaşılabilir bir durumdur. Bu makalede, ne olduklarından, kullanım örneklerinden ve her bir geliştirme yaklaşımının işinize nasıl faydalı olabileceğine ilişkin ayrıntılardan her bir geliştirme yaklaşımının ayrıntılarına gireceğiz.

Kısa ayrıntılar

Burada, her bir geliştirme yaklaşımının hızlı özetleri ve kullanım durumları yer almaktadır.

Aşamalı Web Uygulaması (PWA)

Tanımlar

Progressive Web App (PWA), web tabanlı uygulamalar geliştirmek için gelecek vadeden bir çözümdür. Özünde, PWA'lar, anında iletme bildirimleri, çevrimdışı kullanılabilirlik, yüklenebilirlik vb. gibi önceden uygulamalara özel olan özellikleri içeren uygulama benzeri deneyimler sağlamak için hizmet çalışanlarına ve web uygulaması bildirimlerine güvenir.

Durumları ve örnekleri kullanın

Web tabanlı doğası nedeniyle, PWA'lar, asıl amacı daha ilgi çekici, bağlantıdan bağımsız deneyimler sağlamak olan web siteleri için veya yalnızca daha geniş bir kitleye ulaşmak isteyen web siteleri için en uygun olanıdır.

Şu andan itibaren, PWA'lar, satın alma dönüşüm oranlarını iyileştirmek ve daha sadık bir müşteri tabanı oluşturmak için anında iletme bildirimleri ve çevrimdışı kullanılabilirlik gibi özelliklerin gerekli olduğu E-Ticaret endüstrisinde geniş bir kabul görüyor.

benecos pwa
Benecos bir e-Ticaret PWA'sıdır
 Önerilen okuma: 2021'de En İyi 12 Aşamalı Web Uygulaması (PWA) Örneği

Yerel Tepki Ver

Tanımlar

React Native, platformlar arası, JavaScript tabanlı gerçek yerel uygulamalar geliştirmeye yönelik bir çerçevedir. React Native ile oluşturulan uygulamalar, React'in bildirimsel UI paradigması ve JavaScript aracılığıyla yerel API'lerle etkileşime girebilir ve bu, kullanıcıların deneyimlerinden ödün vermeden iki platformu (iOS ve Android) sürdürmek için tek bir React kod tabanının kullanılabileceği anlamına gelir.

Durumları ve örnekleri kullanın

Popüler sosyal medya uygulamaları (örn. Facebook, Instagram, Pinterest, vb.) veya dijital iletişim uygulamaları (örn. Skype, Discord) gibi çeşitli uygulama türlerini oluşturmak için kullanıldığından React Native için belirli bir kullanım durumu tanımlamak zordur. , Tencent QQ, vb.) React Native ile oluşturulmuş uygulamaların bir listesi için React Native uygulamaları vitrinine göz atın.

Instagram Tepki Yerli
Instagram, React Native ile geliştirildi

Ayrıntılara girmek

Sonraki bölümde, her bir geliştirme yaklaşımının özelliklerine ve her bir geliştirme yaklaşımının işletmenizin planına nasıl uyabileceğine ilişkin görüşlere gireceğiz.

Dil

PWA'lar, uygulama benzeri deneyimler sunmak için web teknolojilerine güvenir. Dolayısıyla HTML, CSS ve JavaScript gibi web dilleri hala bir PWA'yı oluşturan temel dillerdir, oysa React Native uygulamaları ana dilleri olarak React.js'yi (bir JavaScript kitaplığı) kullanır.

Bu nedenle, bir React Native uygulamasının kodunu incelerken, web dilleriyle bazı benzerlikler paylaştığını görmelisiniz, tek büyük fark, React Native uygulamalarının kullanıcı arayüzünü oluşturmak için web bileşenleri yerine yerel bileşenleri kullanmasıdır .

Yerel koda tepki ver
React Native'deki geliştirme dili, web dilleriyle bazı benzerlikler paylaşır

Kullanıcı arayüzü

PWA'lar web teknolojilerine dayandığından ve tarayıcının motorunda çalıştığından, tipik bir PWA'nın kullanıcı arayüzü, eğitimli gözlere o kadar doğal görünmeyebilir. Ancak, tipik kullanıcılar için, PWA'nın uygulama benzeri kullanıcı arabirimi ile gerçek yerel uygulama kullanıcı arabirimi arasındaki farklar en fazla çok küçüktür.

Kniveksperten
İyi yapılmış bir PWA, yerel bir uygulamadan farklı görünmemelidir

Bunun yerine bir React Native uygulaması, yerel bileşenlerin kullanımı sayesinde gerçek yerel deneyimler sunabilir ve bunlar arasında iOS için <DatePickerIOS> ve <ProgressViewIOS> veya <ViewPagerAndroid> ve <ToastAndroid> gibi platforma özgü bileşenler bulunur. Android için.

Yerel Görünümlere Tepki Ver
React Native'de, platforma özel UI bileşenleriyle gerçek bir yerel deneyim oluşturabilirsiniz.

Verim

Performans hassas bir konudur, çünkü bunun gerçeğine ulaşmak zordur. Ancak, o zamandan beri Her iki geliştirme yaklaşımı da JavaScript'i yoğun bir şekilde kullanır, performansın tüm uçlarda oldukça benzer olmasını bekleyebilirsiniz - kullanımdaki sistemle daha sıkı entegre olduğundan ve bir tarayıcı aracılığıyla iletişim kurmak zorunda olmadığından React Native'e ait küçük bir avantajla.

Ancak, PWA'ların tarayıcı ortamında yaşıyor olması, gerçekten ortalama web siteniz gibi performans gösterdiği anlamına gelmez. PWA'larda kullanılan gelişmiş önbelleğe alma yöntemi sayesinde, ortalama web sitelerinde/web uygulamalarında olduğu gibi sayfalar arasında yükleme yaparken ara sıra yaşanan hıçkırıklar artık yok; ve PWA'ların esasen geliştirilmiş tek sayfalık uygulamalar olduğu gerçeğiyle birleştiğinde, PWA'ların algılanan performansı, alabileceğiniz gerçek bir yerel uygulama deneyimine yakındır.

Bunun bir örneği, tek kullanımlık ürünler endüstrisindeki Kuveyt merkezli marka Temoorst'tur. Çözüm sağlayıcısı olarak SimiCart'ı tercih eden marka, mümkün olan en iyi yatırım getirisi için hem yerel uygulamayı hem de PWA'yı seçti ve PWA'nın performans yönü hala markanın beklemediği bir şey. Kör bir testte, PWA'ları ile React Native uygulaması arasındaki performans ve görsel farklılıkları bulmakta zorlanacaksınız.

Temoorst React Native uygulaması ve Temoorst PWA
Temoorst React Native uygulaması (solda) ve Temoorst PWA (sağda) benzer şekilde görünür ve çalışır

React Native uygulaması ile PWA arasındaki performans farkını test etmek için Temoorst uygulamalarını denemenizi öneririz. Uygulamaların kendileri, iyi optimize edilmiş bir React Native uygulamasının veya bir PWA'nın maksimuma itildiğinde nasıl görünebileceğinin referanslarıdır.

  • React Native uygulaması : Google Play Store | Apple Uygulama Mağazası
  • PWA : https://temoorst.com/

Güvenlik

Kullanılan cihazla daha yüksek düzeyde entegrasyon nedeniyle, bir React Native uygulaması doğal olarak daha güvenlidir ve güvenlik açıklarına daha az eğilimlidir. Bir React Native uygulamasına daha fazla güvenlik katmanı eklemek için geliştirme sürecinde kullanılacak çeşitli yaklaşımlar vardır, örneğin:

  • SSL Sabitleme: uygulamadan sunucuya bağlantıların güvenliğini sağlamak için
  • Anahtar zinciri/hassas bilgi: biyometrik/yüz kimlik doğrulaması ile birlikte güvenli yerel depolama sağlar
  • Jscrambler: kendini savunan bir katman ekleyerek kodun kurcalanmasını önleyin

PWA'lar tarayıcı ortamında yaşadığından ve yeteneklerinin çoğu için tarayıcıdan yararlandığından, güvenlik çalışmalarının çoğu tarayıcının kendisi tarafından yapılır. Normal bir web sitesiyle karşılaştırıldığında, bir PWA, PWA'nın temel bileşeni olan hizmet çalışanı olarak daha güvenlidir, yalnızca HTTPS üzerinden çalışır, bu da istemci tarafı ile sunucu tarafı arasındaki iletişimin her zaman şifreli olduğu anlamına gelir.

Hizmet çalışanları yalnızca HTTPS üzerinden çalışır. Hizmet çalışanları ağ isteklerini engelleyebildiği ve yanıtları değiştirebildiği için "ortadaki adam" saldırıları çok kötü olabilir.

Servis Çalışanına Giriş

Keşfedilebilirlik

PWA'ların parladığı yer burasıdır. PWA'lar yalnızca Web'de bulunup arama motorlarına açık olmakla kalmaz, aynı zamanda uygulama mağazalarında da yayınlanabilir. Google, Microsoft ve hatta Samsung, yeniden paketlenmiş PWA'ları uygulama mağazalarında benimseyerek PWA'ların daha fazla benimsenmesini sağlamak için çoğunluğa katıldı. Örneğin Microsoft Store, bir adım daha ileri giderek uygulama mağazalarını kendi Bing tarayıcıları tarafından dizine eklenen kaliteli PWA'larla otomatik olarak yeniden doldurmayı planlıyor:

Bing tarayıcısı tarafından desteklenen Microsoft Mağazası, seçilen kaliteli Aşamalı Web Uygulamasını otomatik olarak dizine ekler

Microsoft Edge ve Windows 10'a Karşılama Aşamalı Web Uygulamaları

Şu an itibariyle, Apple App Store, PWA'nın ulaşamadığı tek popüler uygulama marketi. Bunun nedeni, Apple'ın gözden geçirme yönergelerinde, onaylanması için uygulamanın "yeniden paketlenmiş bir web sitesinin ötesinde" olması gerektiğini açıkça belirtmesidir - ve bu, Apple'ın gelişimini nasıl aktif olarak caydırdığı hakkında tamamen başka bir tartışmadır. Web, kârlarını zedeleme korkusuyla.
PWA'larla karşılaştırıldığında, React Native ile oluşturulan uygulamaların keşfedilebilirliği o kadar etkileyici değildir, ancak çerçevenin platformlar arası doğası, tek bir kod tabanıyla uygulamanızı hem Google Play Store'da hem de Apple App Store'da keşfedilebilir hale getirebileceğiniz anlamına gelir. Ve bazı ülkelerde (ABD dahil) iOS kullanıcılarının çoğunlukta olduğu ve PWA'ların Apple App Store'da yayınlanamayacağı düşünüldüğünde, bu, nerede hizmet verebilmek için React Native uygulama geliştirmeyi tercih etmek için yeterli bir neden olmalıdır. kullanıcılarınızın çoğu..

Google Oyun mağazası Apple Uygulama Mağazası Microsoft Mağazası
Yerel Tepki Ver Evet Evet Evet (genişletme paketi ile) Numara
PWA Evet Numara Evet Evet

Donanım erişilebilirliği

React Native uygulamaları gerçek yerel uygulamalar olduğundan, yerel API'lere çok daha geniş bir erişimin keyfini çıkarırlar. Bu, cihazın donanımına (örneğin NFC (Yakın Alan İletişimi), kişi listesine vb. erişim) ve sistemsel erişime (örneğin sistem ayarlarına, günlüklere vb. erişim) düşük seviyeli erişimin bile mümkün olduğu ve bunlardan yararlanılabileceği anlamına gelir. kullanıcı deneyimini geliştirmek için.
Ve PWA, donanım erişilebilirliği için Web API'lerine dayandığından, bir PWA, sistem kaynaklarını nasıl kullanabileceği konusunda doğal olarak daha kısıtlıdır . En iyi senaryoda, yani kullanılan tarayıcı en son donanım erişim API'lerinin tümünü destekliyorsa, bir PWA coğrafi konum, kamera ve mikrofona erişim, artırılmış gerçeklik (WebXR ile) gibi yerel uygulamalara özel çeşitli donanım özelliklerine erişebilir. Cihaz API'sı).

 Önerilen okuma: Aşamalı Web Uygulaması (PWA) ve Donanım Erişimi

Geliştirme maliyetleri

Geliştirme maliyetleri açısından, React Native projeleri, içerdiği yüksek düzeyde karmaşıklık nedeniyle pahalı tarafta olma eğilimindedir. Örneğin, temel bir React Native projesinin 15.000$' ın üzerinde, oysa temel bir PWA projesinin maliyeti sadece 1000 – 10.000$ civarında olmalıdır. Ancak, diğer yerel uygulama çerçeveleriyle karşılaştırıldığında, React Native, platformdan bağımsız mimarisi sayesinde uygun maliyetli bir çözüm olmaya devam ediyor. Tek bir React Native kod tabanı ile uygulamanızın hem Google Play Store'da hem de Apple App Store'da yayınlanmasını sağlayarak, kullanıcı deneyimlerine zarar vermeden toplam geliştirme maliyetlerini önemli ölçüde azaltabilirsiniz.

Ve tipik olarak React Native projelerinden daha ucuz olsa da, bir PWA projesinin geliştirme maliyeti, gitmeyi seçtiğiniz geliştirme yoluna bağlı olarak önemli ölçüde değişebilir. Örneğin, (geleneksel mimariye kıyasla daha esnek, ölçeklenebilir bir çözüm olan) başsız mimariyi kullanmaya karar verirseniz, süreçte gereken daha yüksek düzeyde teknik uzmanlık nedeniyle PWA'nızın geliştirme maliyetlerinin önemli ölçüde artmasını bekleyebilirsiniz. .

Çözüm

Bunlar çok özel ihtiyaçlar için iki geliştirme yolu olduğundan, React Native ve PWA arasında seçim yapmak zor bir karar olabilir. Bir PWA, zahmetsiz güncelleme ve yükleme süreçleriyle hafiftir ve PWA'nın sağladığı özellikler ve işlevler, ortalama uygulama kullanıcısı için fazlasıyla yeterli olmalıdır. Ancak, Apple'ın App Store'larına uyguladığı mevcut kısıtlamalar nedeniyle, mobil kullanıcılarınızın çoğunluğu iPhone'daysa iyi bir React Native uygulamasına yatırım yapmak iyi bir fikir olabilir.

Platformlar arası React Native uygulamaları veya başsız PWA'lar oluşturmak isteyen Magento tüccarları için, burada SimiCart'ta rakiplerinize karşı rekabet avantajı elde etmenize yardımcı olacak uygun maliyetli çözümler sunuyoruz.

simicart çözümlerini keşfedin