Çağan Bahri

Yazılım Geliştirici

React Native Nedir ? Avantajları-Dezavantajları

Merhabalar arkadaşlar React native ile kodlama yapan birisi olarak size bu Framework 'den  bahsetmek istiyorum.Yaklaşık olarak 3 yıldan bu yana react native ile kodlama yapıyorum.Tabi öncesinde 9 yıl boyunca Backend-Frondend yapmış birisi olarak size mobil  uygulama geçiş sürecim de kullandığım React Native anlatmak istiyorum


Nedir bu React Native ?

 

 

 

 

 

 

 

 

 

Öncesinde biraz React'dan bahsedeyim; React facebook'un geliştiriciliğini üstlendi ve bağımsız geliştiricilerin de modüller yayınladığı bir Cross-Platform javascript framework'u Tamam peki react bu react native nedir

React native ise adı üstüne React'ın native uygulama geliştirmeye yarayan bir başka Javascript framework'ü tabi react native ile kodlama yapabilmek için ilk başta temel düzeyde React'a ihtiyacınız olması gerekir ki React için de javascript bilginiz olması gerekir.

Öncelikle react native ile android kodluyorsunuz sonrasında 10-20-30% belki de 0% (Uygulamanıza bağlı) değişiklik ile  İos uygulamanızın da çıktısını alabiliyorsunuz.Müthiş değil mi.Peki nasıl oluyor bu öncelikle sizin kodlarınızı alıp Android tarafında Java'ya çeviriyor İos tarafında ise Objective C'ye çeviriyor sonrasında ise native uygulamanız oluyor.

Eğer uygulama Cross-Platform da geliştirilecek ise bu öncelikle WebView uygulama kodlanıyordu maliyet ve zamandan tasaruf için tabi bu belirli kriterlerdeki uygulamalar için  bu sayede hızlı bir şekilde Android-İos uygulama yazılabiliyordu.
Webview uygulamanın en büyük sıkıntısı şu Yavaşlılık,Yerel Depo bulunmuyor,Servislerin çoğunu desteklemiyor,Trafik artıkça sunucu maliyetlerini artması  Peki native uygulama yazmak için ne gerekli Android tarafında Java yada Kotlin, İos tarafında ise Objective C yada Swift İşte burada React native imdadımıza yetişiyor.


Kendine ait bir uygulama uzantısı bulunmuyor Android tarafında uygulamanızın çıktısını .APK olarak alıyorsunuz ve bunu mağazalara sürebiliyorsunuz tabi öncesinde imzalamak gerekiyor.
İos tarafında ise .İPA olarak alıyorsunuz.

 

React Native arkasında çok büyük bir topluluk var.Realm,Firebase,SQLite,PouchDB vs bir çok servisi destekliyor.Üstelik Offline de çalıştırabiliyorsunuz.İşte en önemli nokta burada başlıyor Native bir uygulama da en büyük avantaj Offline çalışabilmesi.

 

Hangi Firmalar Kullanmakta ? 

Kendi çatısında geliştirdiği Facebook'un uygulamasını belirli bir kısmının, sahibi olduğu Instagram’ın ise tamamını React Native ile geliştirdiğini paylaşmıştı. Bunların dışında gözüme çarpan Tesla, Skype, Pinterest, Bloomberg, Wallmart, UberEATS, Discord.
Burada şu soruyu sormuş olabilirsiniz tamam fakat neden 100% React native ile kodlanmamış.
Öncelikle Firmalar-Yazılımcılar için en önemli nokta şudur baştan sona tek bir dil-scripting dili ile yazma mecburiyetinde değillerdir.Siz java ile yapacağınız bir iş için 10 birim iş harcarken c++ da bu 1 birim işe düşebilir dolasıyla maliyetler 10 kat azalır(Örnekleme).
İşte bu gibi durumlarda React native yetersiz kalabiliyor fakat amacınız yukarıdaki gibi herhangi bir şekilde Görüntü işleme'ye varmıyor ise işte o  zaman React native yazılımcılar ve Firmalar için en iyi Native framework oluyor.
Facebook' gibi milyarlarca insanın kullandığı bir uygulamanın çatısı react native altında yazılabilmiş fakat yetersiz kaldığı noktalar olacaktır.

Einstein söyledi "Ama siz kalkıp bir balığı, ağaca tırmanma yeteneğine göre yargılarsanız, tüm hayatını aptal olduğuna inanarak geçirir.". Bunu insanlara söylese de React native için de bunu söyleyebiliriz amacınız yukarıdaki gibi uygulamalar kodlamak ise bunları React native ile yapabilirsiniz.
Fakat 3d Görüntü var ise örneği oyun yazmak gibi işte bunu react native ile yapamazsınız.Yapacağınız uygulama sos,dama yada bulmaca gibi uygulamalar olur.
Tabi 3d Grafik motoru yazılırsa react native ile bu alanda da birşeyler yapmak mümkün hale gelir.

 

Hadi React Native Avatantajlarını Listeleyelim
 

  • React native adı üstünde gerçekten bir native uygulamadır Android tarafında java ile ne kodladıysanız react native de o dur yada İos tarafında objective C ile ne kodladıysanız React native de o olabiliyor.
  • Kodladığınız uygulamaları uzaktan güncelleme imkanı sunabiliyor instagram'da bunu bir çok defa yapıyor.
  • Facebook gibi global pazarda olan büyük bir destekçisi var.Bağımsız Geliştiricler de mevcut hatta kendi modüllerinizi de yazabilirsiniz.
  • Web tabanlı kodlama yapan kişiler için çok ideal html,css,js var ise FrondEnd bilen birisi react native ile çok rahat öğrenebilir.
  • Uygulamayı yazma süresi daha kısadır bu sayede büyük bir avantaj sağlamakta.
  • Hızlı test imkanı(Hot reloading) yazıdığınız kodları anında görüntüleyebiliyorsunuz

 

Bir de React Native Dezavatanrajlarını listeyelim

  • Hala geliştirilmekte tabi modüller ile aradaki farkları kendiniz kapatabilirsiniz.
     
  • Paket uyumsuzlukluları(En çok müzdarip olduğum konulardan bir tanesi öncelikle herhangi bir şekilde paket yüklediğinizde istediği versiyonlar bir başka paket ile çakışması söz konusu bu durum biraz can sıkıcı olabiliyor fakat aşılabiliyor ve genelde çözümleri de oluyor)
  • Geliştirme ortamı sorunu  React native ile Android uygulamayı Windows pc de yazabiliyorsunuz sorun yok fakat İos uygulamayı yazamıyorsunuz bunun için Mac bir bilgisayara ihtiyacınız var yada Virtual Machine kurmanız gerekiyor.
    Mac tarafında ise bu türde bir sorun bulunmuyor Android&İos kodlayabiliyorsunuz. 
  • Uygulama yazma sürecine alışması biraz zor olabiliyor çünkü bu alanda bir çok modül kurmanız gerekiyor ve bunları NPM ile kuruyorsunuz tabi şuan da Expo.io ile biraz aşılabildi.


 

Sonuca bağlamak gerekirse.

 

React native yazılımcılar için müşterilere maliyet açısından daha ucuz  ve daha hızlı sürede Cross-Platformda uygulama geliştirmeye yaran çok iyi bir framework

Öncelikli olarak Web tarafında kodlama yapan kişiler React native daha kolay öğrenebilir ben daha öncesinde Web tarafında bir çok site kodladığm için React native seçmiştim.Tabi Webview uygulamalar da kodladım fakat bu uygulamaların hiç birisi React native kadar iyi değildi.

Gidip android tarafında Java'yı öğrenip İos tarafında ise Objective C'yi öğrenmek yerine React native öğrenip her iki platform'da kodlama yapabilirsiniz ve kurumsal uygulamalardan,eticaret uygulamalarına kadar bir çok uygulamayı react native yapabilirsiniz.İnstagram gibi milyarlarca kişinin kullandığını uygulama bile React native ile kodlanmış ve bu çok büyük bir referans.


Şimdilik yazacaklarım bunlar ileride daha da güncellemek istiyorum bu yazıyı React native ile basit bir uygulama yazımını gösterebilirim aynı zaman da Android Studio kurulumunu da göstermek gerekir.
Sağlıcakla kalınız bol bol kodlama yapmanızı diliyorum

 

Bir Yorum Bırakabilirsiniz :)