Nedir Bu React Native ? – 1

Mobil yazılım geliştirmeden giderek gelişen React Native nedir onu önce anlamamız gerekiyor.

Nasıl Bir Sistem ?

Kısaca şöyle özetleyelim . IOS ve android için gerçek zamanlı kodlarımızı yazar aynı anda render alabildiğimiz bir sistem . Yani örnek vermek gerekirse bir butonun rengini değiştirdiğimizde veya ona bir method atadığımız da canlı olarak sonucunu görebiliyoruz.Safkan projelerde olduğu için tekrar build etmeye gerek yok .Sistem zaten otomatik yapılan değişikliği algılıyor .

Peki Kod Yazma Kısmı Nasıl oluyor?

İşte react-native bu yüzden kullanıyoruz .Tek bir kod yazıyoruz bu yazdığımız kodlar otomatik olarak hem android hem iOS tarafında çalışıyor.Diyelim ki gelişmiş özellikleri olan bir proje geliştirdiğimiz de bunu react native kullanmadan yaptığımızda direk native olarak yaptığımız da hem platformların farklı olmasından dolayı tasarım çalışma methodları kullanılcak kütüphaneler vs bize işin sonunda bir zaman kaybı yaratıyor . React native bu işi kolaylaştırıyor.

Peki Hangi Programlama Dilini Kullanıyoruz ?

Bu konuda şunu söylebiliriz react native de dil diye bir kavram yok .Var diyenler ile tektar tartışabiliriz 🙂 Standart bildiğiniz swift ve java mantığını unutun. Kullanılan dil türü javascript bazlı ama safkan javascript değil.React native uygulamalarında JSX olarak bilinen javascript ve XML benzeri.Ortaya karışık bir syntax yapsına sahip kırma bir dil (tabi buna bir dil diyemiyorum yinede ) kullanılıyor. Bunun en büyük nedeni react native web geliştiricilerde kolay bir şekilde mobil uygulama geliştirebilirsin diye tasarlanması . Çünkü eğer bir web geliştiricisi iseniz react native yapısına çok kolay bir şekilde adapte olabiliyorsunuz syntax benziyor . Ama siz de benim gibi salt dillerde zaman geçirdiyseniz mantığı ilk başta kavramak biraz zor çünkü alışkanlıları değiştiren ve kendi kuralları olan bir yer react native dünyası .

Yazdığımız Kodlar Nasıl İşleniyor ? Kaputun altında Ne Var?

Şimdi bizim yazdığımız bu kodlar react native tarafında bir dönüşüme uğruyor. Bu dönüşüm ile birlikte aslında adından anlaşılacağı üzere bize native bir sonuç veriyor . Yani bizim yazdığımız kodlar aslında iOS tarafında Objective-c koduna , android tarafında da ise java diline dönüşüyor.Şimdilik bu şekilde özetleyebiliriz.

Kütüphane İşleri Nasıl Oluyor ?

Öncelikle safkan bir iOS veya android projelerinde herkesin kütüphanesi farklıdır . 3. parti bir kütüphane kullanmak istediğimiz yapacağımız işlemler farklıdır .Örnek vermek gerekirse json üzerinde bir veri çekmek istiyorsak veya ek özellikleri olan kamera uygulaması yapmak istiyorsak 3. parti kütüphane için ayrı ayrı araştırmalar ve işlemler yapmaktayız.React native de ise kullancağımız kütüphaneler de platform bazlı olarak değil react native bazlı bulmamız gerekiyor .Örneğin 3. parti kamera kütüphanesi bulduk bunu kullanmak istiyoruz .Bunu react-native projemize import edip gerekli ayarları yaptığımızda otomatik olarak native tarafında bu ayarlar yapılmış olur ve biz sadece react native tarafında kodlarımızı yazarız ve sonuca ulaşırız . Tabi bazen %10 oranında native proje dosyasında bazı ayarlar yapmak gerekiyor bunlar kullanılan kütüphaneye göre değişkenlik gösterir. Verilmesi gereken özel izinler vs.

Performans

Öncelikle şunu söyleyebilirim performans konusu doğru . Evet her ne kadar react-native bize adı üstünde sonuç olarak native bir çıktı verse de sonuçta arada çalışan bir katman var. Bu elbette biz performans kaybına yol açıyor .Fakat bunu çok çok gelişmiş projelerde gözle görmeniz mümkün. Yani bunu göz ardı ediyoruz pratikte bize bir problem çok yaratmıyor .

Dezavantajlar

Avantajları biliyoruz işimizi kolaylaştıran bir çok yapısı var .Peki ne olabilir dezavantajlar . Öncelikle react native ne yazık ki yıllardır hala gelişmekte olan bir sistem .Yani evet şimdi oturdu diyemiyoruz. React native bunu kabul ediyor ve açıkça belirtiyor.Versiyon numarası bile hala 0.6x şeklinde henüz v1 bile olamadı 🙂 Bü yüzden geliştmekte olan bir yapı . Gelişmekte olan yapılarda ise her versiyon güncellemesinde bir çok şey değişebilir.Syntax olarak olarak değişmesede kullanılan yapılar özellikler vs .Bugün çalışan bir kod blogunuz oluşturduğunuz yeni projede kod aynı olmasına rağmen hatalar verebilir. React native de herseyini başı sabırdır .Çok hata çıkabiliyor ve internet ortamında bu hataların çözümünü bulduğunuzda sizde çalışmayabiliyor . Bu konuda sabırlı ve araştırmacı olmanız gerekmektedir.

Sonuç Olarak

Şimdi sonuç olarak gelicek olursak .Bütün hatalara rağmen react-native ile yapılan projelerde yaptığınız bir tasarımı hem android hem iOS tarafında sorunsuz bir şekilde görmek tekrar tekrar ayrı aryı uğramamak bu sizi motive ediyor . Sizlere tavsiyem react-native öncesinde mutlaka ham mobil uygulama geliştirmeniz . Bir kaç tane mobil uygulama geliştirin ki arasında ki farkı ve konsepti daha iyi kavrayın . iyi kodlamalar.

Leave a Reply

*