React Native kesinlikle çok başarılı bir hibrittir. Adında native geçtiğine bakmayın.
Yüksek performans gerektiren veya yüksek hacimli kullanım göreceği tahmin edilen uygulamalarınız için ios ve android native uygulamalar geliştirin.
Genellikle gözlemlediğim akış şu şekilde oluyor. Hybrit olarak hızlıca geliştiriliyor uygulamalar, istenilen seviyeye ulaştığında yatırım yapılarak native hale getiriliyor. İstenilen seviyeye ulaşmazsa öyle kalıyor. Burda bahsettiğim istenilen seviye tamamen ticari konudur.
React kesinlikle Hybrid tir.
Arkadaşlar react native kesinlikle hybrid değildir örnek olarak örnek bir apk çıkarıp apktool ile decompile edip class ve layoutlarına bakabilirsiniz react native adından anlaşılacağı gibi xamarin, flutter gibi nativedir.
Zaten sitesine girerseniz "Build native mobile apps using JavaScript and React" ibaresi en üstte yazmaktadır. Halen inanmayan arkadaşlar varsa google'ın aracı olan UI Automator viewer ile mevcut çıkardığınız appe bakarsanız rootta Webview görmeyip native componentlerigöreceksinizdir.
https://facebook.github.io/react-native/
edit.
Performans olarak bazı durumlarda daha iyi olduğu yazılmış fakat böyle olmadığını düşünüyorum Skype Android uygulaması vasat durumda. RxJava ile nativede de reacting programming yapabilirsiniz androidde. Performanstan ziyade benim burada değinmek istediğim önemli birkaç nokta var.
React native app'i neden yazdırmamalısınız ?
Çok profesyonel uygulamalarda kullanmamanız.
Projelerinizin startupları için kullanabilirsiniz. Yükselişe geçince native olarak baştan yazdırabilirsiniz.
Logic için yazılmış kodda hata olursa olur olmazsa olmaz. Androidde doğru yazılmış iosta yanlış yazılmış bir algoritma oranı düşecektir.
React native app'i neden yazdırmamalısınız ?
React native app yazdıracağınız kişi veya kişiler android / ios native doğal yapısına hakim değilse react native + native kod şeklinde ilerlemeniz zor olacaktır. Örnek olarak arkaplanda belirli aralıklarla konum alan bir uygulama yazdırmak istediğinizde react native e native modül ekleyecek arkadaşın bunu githubdan direk alıp modül olarak eklemesi sakıncalı olacaktır. Çünkü githubda bulunan kodu kendisi yazmadığı ve native lifecycle ve apilara hakim olmadığı için zorlanacağını ve hata yapacağını düşünüyorum.
Örneğin sadece react native bilen arkadaş aşağıdaki lifecycle ve önemini gerçekten biliyor mu ? Yada reactte mevcutta bulunmayan fragment yapısını neden modül olarak eklemesi gerektiğini yeri gelince düşünmesi için bilmesi gerekecektir.