Karşılaştırma: React Native ve Native Uygulama Geliştirme
Yayınlanan: 2021-10-05React Native RoR çerçevesi, Native uygulama geliştirme ile rekabet edebilir mi?
Aslında bu günlerde çok fazla görüş duyduğumuz hibrit uygulamalardan biri. Birçok platformlar arası geliştirme aracı var, ancak bu metin parçasında dikkat ettiğimiz şey React Native RoR çerçevesi. React Native yerli mi? O zaman konuyu araştıralım.
Artık dünyamız çok isteğe bağlı hale geldiğinden, her gün yaklaşık 3500 karar alıyoruz ve bu işin zirvesi bile değil. Bu çoklu isteğe bağlı faktör, yerel iOS (ve Android) geliştirme dünyasını da etkilemiştir - bir uygulama oluşturmanın sayısız yolu vardır. Uygulamanız farklı platformlarda olabilir, web veya mobil, yerel veya çapraz platform olabilir, hepsi ihtiyaçlarınıza ve değerlerinize göre belirlenebilir. Her vakanın artılarını ve eksilerini vurgulamaya çalışacağız.
İyi bilinen ve üzerinde yürünen uygulama geliştirme yolları, yerel ve platformlar arası olanlardır. Yerel uygulama geliştirme, mobil için büyük ölçüde çalışır ve belirli bir IDE ( XCode veya Android Studio ) içinde ve belirli bir dilde ( Android için Kotlin/Java, Swift/ ) belirli bir amaç (iOS veya Android) için resmi bir geliştirme türüdür. iOS için Objective-C ).
Geliştirilen ikinci tür uygulamalara hibrit denir. Platformlar arası (ig React Native) ve yerel uygulama geliştirme arasındaki fark nedir? Platformlar arası uygulama geliştirme, yerelden biraz farklıdır, çünkü çoğu durumda mobil ve web geliştirme kavramlarını karıştıran açık kaynaklı bir çerçeve içerir ve çoğu zaman Java Komut Dosyası üzerine yazılır, ancak nihai bir sonuç eninde sonunda olur. "yerel gibi" bir uygulama dosyası olun. “Yerel uygulamalar ve hibrit uygulamalar” rekabeti bugünlerde meridyenine ulaşıyor.
"Yerel" platformlar ve dillerde her şey açıkken, hibrit uygulamalar daha geniş bir sınıflandırmaya sahiptir. En yaygın kullanılan çapraz platform JS çerçeveleri şunlardır:
- İyonik 3 çerçeve
- Xamarin
- Cordova (eski PhoneGap)
- React Native RoR çerçevesi
Bugün, neden hibrit uygulamaları seçmelisiniz ve bunları hangi çerçevede oluşturmalısınız? Ne seçilir - React Native vs Ionic? Xamarin vs React Native? Platformlar arası uygulama geliştirme için en çok kullanılan çerçevelerden biri React Native'dir , ancak insanların onu kullanmasını sağlayan nedir? Konuyu araştırmaya çalıştım.
Daha Hızlı Tepki Verin.
[Resim kaynağı: Facebook React Native]
Bahse girerim bu simgelerin her birini tanımışsınızdır. Hepsi (geçmişte, hatta şu anda) React Native kullanılarak oluşturuldu veya oluşturuldu. Facebook şirketi temelde React Native uygulama geliştirmesinin sahibi ve aktif bir destekçisidir. Ancak şirketin kendisi “hibrit uygulamalar için bir araç” olduğunu reddediyor. Resmi inişlerinde belirttikleri gibi,
“React Native ile bir “mobil web uygulaması”, “HTML5 uygulaması” veya “karma uygulama” oluşturmazsınız. Objective-C veya Java kullanılarak oluşturulmuş bir uygulamadan ayırt edilemeyen gerçek bir mobil uygulama oluşturursunuz. React Native, normal iOS ve Android uygulamalarıyla aynı temel UI yapı taşlarını kullanır. JavaScript ve React kullanarak bu yapı taşlarını bir araya getirmeniz yeterli.”
[Kaynak: Facebook Github]
Ancak React Native, yerel uygulama geliştirmeye karşı gerçekten başarılı mı? Tamamen değil. Her şeyden önce, uygulama oluşturma süreci bile burada farklıdır.
Yerel bir tepki uygulaması nasıl oluşturulur? Kapatın.
Android (ve iOS) için React Native'in kendisi, JS aracının uygulamaları çok daha kolay oluşturmanıza izin verdiği yerel derleme üzerinde bir sarmalamadır. Hatta basitleştirilmiş bir yapıya sahiptir - bileşenler, temel HTML etiketlerinin yaptığı gibi görünür. React Native'de yazdığınız kod her mobil platform için benzersizdir, ancak iOS veya Android'de yeniden kullanılabilecek ve yeniden uygulanabilecek birçok evrensel araç vardır. Ayrıca, birkaç inşa hedefiniz olabilir, bu da bana React Native geliştirmeyi yalnızca platformlar arası bir çerçeve değil, aynı zamanda bir cihazlar arası dememi sağlıyor. Uygulamanızı AppleTV ve Mac OS gibi iOS için de benimseyebilirsiniz.
React Native'de geliştirilen uygulamalar yerel bir IDE (XCode veya Android Studio) gerektirmez, ancak bunları kullanarak geliştirebilirsiniz, çünkü Expo - React Native'in özel yapım IDE'sinin sunabileceği daha az hata ayıklama özelliği vardır. RN çerçevesi, bileşenlerin yapısını da karmaşıklaştırmaz - oldukça sadedir ve daha karmaşık bir tane arıyorsanız, üstte JS kapağına sarılmış yerel iOS veya Android parçaları kullanmanız gerekir (ki bu oldukça , oldukça dağınık) . Bazı bileşenler bir , bu da içine çeşitli aksesuarlar koymanıza yardımcı olur.
React Native'i dünyanın her yerindeki platformlar arası uygulama geliştiricileri için lezzetli bir fırsat haline getiren birkaç avantaj :
1. Sizden daha az kaynak gerektirir.
Her platformlar arası çözümde olduğu gibi, daha ucuz ve biraz daha bütçe dostu; iki ayrı uygulama geliştirme ekibi kiralamanız gerekmez - bir geliştirme ekibiniz olabilir, ancak isterseniz sonuç her iki platformu da kapsayacaktır. Bu uygulamaları oluşturmak için harcanan kaynak ve maliyet miktarı, elbette, yerel uygulama geliştirmenin alacağından çok daha düşük olacaktır.
2. React Native gücü bileşenlerindedir.
Daha önce de belirtildiği gibi, React Native için kabul edilebilir bileşenlerin listesi çok büyük. Sırasıyla, bu bileşenler birkaç ortak benzerlik gösterirlerse kesinlikle başka projelerde yeniden kullanılabilirler.
3. Büyük bir topluluğa sahiptir.
Facebook resmi React Native topluluğunun kaç kişi olduğunu tahmin ediyorsunuz? Bu makalenin yayınlandığı tarihte, sayı 23 000'i aştı. Büyük bir topluluğun parçası olmanın en büyük yanı, belirli bir dahil olma duygusu + ondan yeni bileşenler çıkarma yeteneğidir. Özel amaçlarınız için oluşturduğunuz bileşenler grup içinde kolayca dağıtılabilir - böylece ihtiyacınız olduğunda, sıfırdan yeniden yazmak zorunda kalmadan hazır bir çözüm bulabilirsiniz.
4. tarafından terfi ettirilir...
Bir bütün olarak Facebook şirketi zaten "Markalı Marka" olarak adlandırılabilir, bu nedenle Facebook'un arkasındaki tüm bu, React Native çerçevesine büyük bir avantaj sağlar (Ionic ve React Native karşılaştırmasını bile alırsak). Kullanıcılar, bu sosyal ağın, reklamını yaptığı ve güvendiğini iddia ettiği ürünleri destekleyecek kadar dayanıklı olduğuna güveniyor.
Tek Boyut Her Şeye Uymaz.
Halkanın diğer köşesinde, yerel uygulama geliştiricilerin olduğu yerde, "yerli hale gelmek" için ödeme yaptığınızda satın aldığınız değerler ve avantajlar da vardır.
1. Yerli = daha duyarlı.
Bir arayüzün yanıt verebilirliği, UX tasarımcılarının çok istediği ve düzinelerce çaba sarf ettiği bir şeydir. Yerel bir uygulama olduğunda, her bir tasarım ekranı ayrı ayrı tasarlanır ve mağazaların yönergelerine göre ister düz ister malzeme olsun stile uyacak şekilde uyarlanır.
2. Ana diller = Apple ve Google mağazaları tarafından resmi olarak geliştirilmiştir.
Native App Store ve Google Play, platformlar tarafından geliştirilen ve desteklenen diller üzerine kurulu uygulamaları kabul eder. Yönergeleri takip ederseniz - mağazaya giden merdiveniniz hazır. Platformlar arası bir uygulama ile hala kabul etme şansınız var, ancak şansınız biraz "webbish" arayüzü veya gezinme için reddediliyorsunuz.
3. "Hız İhtiyacı".
Kullanılabilirlik Mühendisliğinin ana ilkelerinden biri hızlı etkileşimler anlamına gelir - "1,0 saniye, kullanıcının düşünce akışının kesintisiz kalması için sınırdır". Yerel uygulamalar kullanıcıları sistemin ritminde tutacak kadar hızlı tepki verir ve performans gösterirken, hibrit ürünler genellikle biraz daha yavaşlar.
4. Yerli = daha sofistike.
Platformlar arası çözümler, "ortalama" sınıfın dışındaki özelliklerle, zaten var olan bir şey yaratmak istediğinizde harikadır. Karmaşık şeyler söz konusu olduğunda (tüm bu popüler IoT, AR/VR, Büyük Veri Madenciliği algoritmaları bu listededir), hibrit uygulamalar, istediğinizi gerçekleştirmek için teknik yeteneklerden yoksundur. Öte yandan, yerel IDE'ler ve diller sonsuz teknik bakış açısına sahiptir - üzerlerine bir sürü şey yazılabilir.
Özenle seçin.
Oluşturulacak basit bir uygulama arıyorsanız (listeler ve bundan daha karmaşık bir şey yok), o zaman React Native bir patlamadır. Daha fazla uygulama performansı gerekiyorsa, daha karmaşık geliştirme prosedürleri ortaya çıkacaktır - zaten Swift'e veya Kotlin'e geçmeniz ve ardından hepsini ışıltılı Java Script kapağına sarmanız gerekir; ve bu kulağa kolay bir şey gibi gelmiyor. Bu nedenle, video veya ses akışı, yönlendirme, gerçek zamanlı sohbetler, fotoğraf düzenleme vb. şeyler için, bu dezavantajlardan kaçınarak en baştan yerel geliştirme ile başlamanız daha iyi olacaktır.
Ek olarak, React Native eksiksiz bir JavaScript çerçevesidir ve kodun tamamı TextMate veya Notepad++ gibi metin düzenleyicide bile yazılabilir. Bir proje oluşturmaya gelince, umutsuzca belirli bir IDE'ye veya en azından bir öykünücüye ihtiyacınız var.
İyi bir RN tabanlı uygulamalara birkaç örnek var:
- Facebook uygulamaları, tabii ki
- Airbnb mobil uygulamaları (karma iOS ve Android)
- Walmart mobil uygulaması (beklenenden daha düşük uygulama ile bir dizi gömülü web görünümüne sahip olduğu için)
RN tabanlı ürünlerin tam listesine resmi web sitelerinde bakabilirsiniz ve burada yine RN, React Native vs Xamarin çerçeve yarışmasını kazanır.
Perspektif uğruna.
Flurry istatistiklerine göre, "Bugün ABD'li tüketici akıllı telefonlar ve tabletlerde günde ortalama 2 saat 38 dakika harcıyor. Bu sürenin %80'i (2 saat 7 dakika) uygulamaların içinde geçiyor". Ürününüz bir şekilde her gün bu 2 saatlik süreye uymalıdır. Tüm noktalar göz önüne alındığında, React Native RoR çerçevesi küçük bir kısa vadeli proje için kullanışlı bir çözüm olacaktır; incelemeler, hızlı, öfkeli ve yeni olduğunu veya "konsepti test etmek" istediğinizde kanıtlıyor. Bununla birlikte, uzun vadede veya hızlı bir başlangıç için teknik bir yenilik planlarken, hazır bir seçeneğe güvenemezsiniz. Sıfırdan oluşturulmasına ihtiyacınız var, özelleştirilmesine ihtiyacınız var - yani o zaman yerel uygulama geliştirmesine ihtiyacınız var.
Artem Chervichnik ve Elina Bessarabova tarafından yazıldı .