React Native Nedir, Ne İşe Yarar? Avantajları Nelerdir?

25 Ekim 2024

9 dk Okuma

React Native nedir? React Native Facebook tarafından geliştirilen bir Framework’tür. 2015 yılında piyasaya sürülmesine rağmen temelleri 2013 yılında atılmıştır. Başlangıçta Facebook çalışanları daha verimli ve optimize mobil uygulamalar için bir arayışa girdi. Sonrasında Facebook bünyesinde çalışan Jordan Walke tek kod tabanıyla çoklu platformlara uyumlu, Native performans gösteren ve geliştirme sürecinde yapılan değişiklikleri hemen yansıtabilen bir teknoloji geliştirmek istedi. Sonrasında bir prototip üretti. Bu prototip ile Native uygulamalar üretebilmek ve ürüne ulaşabilmek amacıyla bir Hackathon düzenlenme kararı alındı. Uzun geliştirme sürecinin ardından 2015 yılında ReactJs konferansı düzenlendi. React Native tanıtıldıktan sonra hem Android hem de İOS uygulamaları geliştirmeyi mümkün kılması yazılımcılar arasında ilgi görmesine neden oldu. Mart ayında ise Facebook React Native’i kullanıma açtı. Başlangıç aşamasında sadece İOS’u destekliyordu. Sonra kısa bir süre içinde Android desteği de geldi ve React Native uygulama geliştiricilerinin ihtiyaç duyduğu her iki teknolojiye uyumlu olan bir platforma dönüştü. 2016 yılında React Native büyük firmalar tarafından kullanılır hale geldi. 2018 yılına gelindiğinde ise Framework’ün daha iyi çalışmasını sağlamak için bir takım optimizasyon işlemleri gerçekleştirildi ve yeni özellikler eklendi. Android tarafında yer alan JSC yani JavaScriptCore motoru güncellendi. Native kodlar arasındaki işlemlerin hızını arttıran Bridge mimarisi daha iyi bir versiyona evrildi. Turbo modules ile uygulama boyutu optimize edildi. Topluluğun taleplerini merkeze alan bir geliştirme yapıldı. Günümüzde React Native ile yapılmış uygulamalar arasında Facebook, Amazon, Shopify, Wix, Discord, Tesla ve Pinterest gibi bilinen platformlar yer alıyor.

React Native Nedir?

React Native Facebook tarafından geliştirilen bir Framework’tür. Hem Android hem de İOS için geliştirmeler yapmamıza olanak tanır. 2015 de yayınlanmasından sonra kısa bir zamanda sektörde çok kullanılan teknolojiler arasında yerini aldı. Bugün adını duyurmuş birçok uygulama React Native teknolojisinden yararlanıyor. React Native’in bu denli başarılı olmasının birçok sebebi var. Şimdi bu sebeplere yani React Native’in bileşenlerine daha yakından bakalım. React Native en popüler yazılım dilleri arasında yer alan JavaScript’i kullanır. Bu sayede halihazırda Js bilen birçok yazılımcı hızlı bir şekilde bu teknolojiye adapte olabilir. Buna ek olarak React Native platformlar arası geliştirme özelliği ile uygulama maliyetleri de düşer. Farklı platformlarda çalışan bir uygulama istendiğinde React Native developer açısından oldukça avantajlı olur. React.js’e dayalı olması sayesinde React Native’in de modülerlik kazanır. Modülerlik özelliği, geliştirilen uygulamaları küçük bileşenlere ayırarak yönetebilmeyi destekler. Oluşturulan bileşenler sadece oluşturuldukları yerde değil farklı uygulamalarda ya da sayfanın başka öğelerinde de kullanılabilir. Bileşenler birbirlerinden bağımsız oldukları için üzerlerinde yapılan değişiklikler başka öğeleri etkilemez. Bunlara ek olarak React Native geniş bir geliştirici topluluğuna sahiptir. Açık kaynaklı olması bu Framework’ü sürekli bir gelişim evresi içinde tutar. Topluluk sayesinde üçüncü parti teknolojilerle React Native’in uyumu artar.

React Native Ne İşe Yarar?

React Native tek kod tabanıyla geliştirmeler yapmamıza olanak sağlayan bir JavaScript çerçevesidir. React Native kullanarak İOS ve Android platformlarda çalışan uygulamalar geliştirebilirsiniz. Geliştirilme aşamasında özellikle büyük uygulamalar için iki kod tabanı oluşturma sorununa çözüm bulması istenmiştir. Bu sorunu ortadan kaldıran React Native özelliğine Cross Platform geliştirme denir. Çapraz platform geliştirme olarak türkçeye çevrilebilecek bu özellik geliştirme süresini kısaltırken maliyetleri de düşürür. Verimlilik bu sayede artmış olur. React Native’in en önemli özelliklerinden biri olan Cross Platform geliştirmeye daha yakından bakalım. Kısıtlı bir zamanda her iki işletim sisteminde de verimli bir şekilde çalışacak bir uygulama üretmek isterseniz doğrudan Cross Platform ile üretmelisiniz. Cross Platform uyumlu geliştirme yapılabilecek birçok teknoloji bulunuyor. Bu teknolojilerin başında React Native yer alıyor. React Native uygulama geliştirirken Js dilinden yararlanıyor. React Native ile geliştirme yaparken kodların tekrar kullanılabilirliği artarken geliştirme süresi de kısalır. Peki React Native dışında hangi teknolojilerle Cross Platform uygulama geliştirme yapılabilir derseniz Xamarin, Unity3D ve Flutter örnek gösterilebilir.

React Native Özellikleri Nelerdir?

Yazının bu bölümünde de React Native’in özelliklerini daha detaylı inceleyeceğiz. İlk özelliğimiz platformlar arası uyumluluk yani Cross Platform geliştirme yapabilme özelliği. Bu özellik sayesinde React Native tek bir kod tabanıyla hem İOS hem de Android tarafında çalışan uygulamalar oluşturmayı mümkün kılar. Geliştirilmeye ayrılan süre Cross Platform sayesinde büyük ölçüde düşürülür. React Native’in kullandığı bir diğer özellik ise HOT Reloading’dir. Hot Reloading özelliği kodda yapılan değişikliklerin anında uygulamada görüntülenebilir olmasını sağlar. Kodda yapılan değişiklikler ilk olarak React Native tarafından tespit edilir. Sonrasında değişen kod parçası uygulamaya eklenir. Bu işlem gerçekleşirken uygulama yeniden başlatmaya gerek kalmadan çalışmaya devam eder. Uygulamanın durumu değişmeden kod parçası değişmiş olur ve halihazırda yapılan işlem kesintiye uğramamış olur. Bu özellik yeniden başlatma gerektirmediği için geliştiricilere zaman tasarrufu sağlar. Hızlı tepkiler sayesinde kodda olan problemler anında tespit edilir. Hot Reloading UI değişikliği, bileşen oluşturma ve mantıksal değişiklikler yaparken kullanılabilir. React Native kurulumu içinde Hot Reloading özelliği varsayılan olarak etkindir fakat manuel değişiklikler de yapılabilir. Öne çıkan bir diğer özellik ise React Native Bridge özelliğidir. Bu özellik sayesinde React Native Js kodundaki Native bileşenlerle iletişim kurar. Şimdi React Native Bridge özelliğinin nasıl işlediğini de inceleyelim. Başlangıçta Js kodu çalışır ve bu kod React bileşenlerini oluştur. Bileşenler Bridge’e bildirim gönderir. Bridge gelen bildirimleri yerel bileşenlere gönderir. Sonrasında yerel bileşenler bildirimler doğrultusunda istenen işlemleri gerçekleştirir. İşlem sonuçları tekrar Bridge’e iletilir. Döngü tersine döner. Bridge iletileri Js’e gönderir. Bileşenler iletilen bildirimlere göre güncellenir ve döngü tamamlanmış olur.

React Native Nerelerde Kullanılır?

React Native mobil uygulama geliştirmede kullanılır. İOS ve Android de çalışan tek kod tabanlı bir uygulama yapmak istiyorsanız React Native aradığınız Framework olabilir. React Native ile E-ticaret, sosyal medya, finans, bankacılık, eğitim, sağlık, üretkenlik, seyahat, haber ve Blockchain uygulamaları geliştirilebilir. Şimdi bu uygulamalardan bazılarında React Native’in neden kullanıldığını ve hangi önemli özellikleri geliştirmeye imkan sağladığını daha yakından inceleyelim. E-ticaret uygulamalarında React Native hızlı ve performanslıdır. Filtreleme işlemeleri bu sayede beklemeye gerek kalmadan gerçekleşir ve bu kullanıcı deneyiminde bir artıdır. Buna ek olarak E-ticaret uygulamalarındaki sepet işlemlerine ödeme sistemlerini zahmetsiz bir şekilde entegre edebilir. Sosyal medya uygulamalarında ise anlık mesajlaşma, fotoğraf ve video gibi veri paylaşımı ve kişisel kullanıcı bildirimleri gibi özellikleri React Native ile hızlıca oluşturulabilir. Bankacılık uygulamalarına girdiğimizde karşımıza önem arz eden üç özellik çıkar. Bu özellikler güvenlik, gerçek zamanlı veri akışı ve ödeme işlemleridir. Güvenlik kısmında kullanıcılara çeşitli işlemler gerçekleştirmek için yetki vermeden önce bir takım doğrulamalar yapılması gerekir. Bu doğrulamalar parmak izi, yüz tanıma ya da iki faktörlü kimlik doğrulaması olabilir. React Native ile bu doğrulamaları gerçekleştirirken React-native-biometrics gibi çeşitli kütüphanelerden yararlanılabilir. Eğitim uygulamalarına gelindiğinde ise öne çıkan özellikler arasında video yayını, sınav modülleri ve kişi bazlı ilerleme takibi vardır. Quiz ve sınav modülleri React Native Elements ve React Native Paper gibi kütüphaneler kullanılarak oluşturulabilir. Sağlık uygulamalarında ise egzersiz takip sistemleri, bildirim ve hatırlatmalar öne çıkan nitelikler arasındadırlar. Egzersiz takip sistemlerinde sağlık verileri entegrasyonunu sağlamak için kullanılabilecek kütüphaneler arasında İOS için react-native-healthkit ve Android için de react-native-google-fit kütüphanelerinden yararlanılabilir. İş uygulamalarında öne çıkan özellikler arasında proje yönetimi, ekip içi iletişim ve zaman takip sistemleri yer alır. Ekip arasındaki iletişimi sağlarken mesajlaşma için react-native-gifted-chat, dosya paylaşımı için react-native-fs ve bildirimler için de react-native-push-notification gibi kütüphanelerden yararlanılabilir. Siz de bu tür uygulamalar yapmakla ilgileniyorsanız yazılım eğitimleri aracılığı ile gereken yetkinliğe sahip olabilirsiniz.

React Native Kullanmanın Avantajları Nelerdir?

Şimdide React Native developer nedir React Native’i kullanırken hangi avantajlardan yararlanır onu inceleyelim. React Native developer React Native Framework’ünü kullanarak iOS ve Android platformlarda çalışabilir uygulamaları geliştiren kişiye verilen addır. İşini yaparken React Native’in sağladığı avantajlardan yararlanır. React Native’in sağladığı avantajlar arasında Cross Platform geliştirme, yüksek performans, iyi kullanıcı deneyimi, geniş kullanıcı topluluğu, kütüphane desteği, düşük maliyet, kullanımda kolaylık ve geniş kullanım alanı vardır. Şimdi bu avantajların nasıl sağlandığına daha detaylı bakalım. Cross Platform geliştirme özelliği sayesinde tek kod tabanıyla iki farklı işletim sisteminde çalışan uygulamalar oluşturulabilir. Bu durum kaynak tasarrufu sağlar. Hot Reloading özelliği sayesinde geliştirici yaptığı değişiklikleri anında uygulamada görür. Geliştirme süreci bu sayede hızlanır. Hızlı olduğu bir diğer konu performanstır. React Native, Native bileşenler kullanarak performansını optimize eder ve kendini kullanıcı deneyimi açısından geliştirir. React Native’e adım atmak istiyorsanız fakat tam anlamıyla emin olamıyorsanız da Frontend developer eğitimi aracılığıyla React Native’e geçmeden önce React konseptinde uzman olabilirsiniz.

React Native Kullanmanın Dezavantajları Nelerdir?

React Native’in birtakım dezavantajları vardır. Bu dezavantajlarından ilki performans sorunudur. Büyük veri işlemi gerçekleştiren uygulamalarda Native uygulamalara göre performansı bir derece daha kötü olabilir. Bir başka dezavantaj geniş topluluğuna rağmen belirli işlemleri gerçekleştirmek için kullanılan üçüncü parti kütüphanelerin yeterince optimize edilmemiş olmasıdır. Bu durum geliştirme süreçlerinde negatif etkiler yaratır.

Kaynakça Wikipedia. (n.d.). React Native. Wikipedia. https://en.wikipedia.org/wiki/React_Native Bilginç IT Academy. (n.d.). React Native nedir? Kullanmaya değer mi? Bilginç IT Academy. https://bilginc.com/tr/blog/react-native-nedir-kullanmaya-deger-mi-297/#:~:text=%C4%B0lk%20tan%C4%B1t%C4%B1m%C4%B1%20Ocak%202015'te,geli%C5%9Ftirici%20ve%20kurum%20taraf%C4%B1ndan%20benimsenmi%C5%9Ftir. Kıymacı, K. (2021, Temmuz 28). React ve React Native’e giriş. Medium. https://medium.com/akbank-teknoloji/react-ve-react-nativee-giri%C5%9F-4dafde027eb Sciandra, L. (2019, Ocak 7). State of React Native community. React Native Blog. https://reactnative.dev/blog/2019/01/07/state-of-react-native-community React Native. (n.d.). Fabric renderer. React Native Documentation. https://reactnative.dev/architecture/fabric-renderer React Native. (n.d.). Showcase. React Native Documentation. https://reactnative.dev/showcase Netguru. (n.d.). React Native. Netguru Glossary. https://www.netguru.com/glossary/react-native Kumsal Ajans. (n.d.). Cross-platform mobil uygulama avantajları nelerdir? Kumsal Ajans. https://www.kumsalajans.com/blog/web-ve-mobil-yazilim/cross-platform-mobil-uygulama-avantajlar-nelerdir Tomar, A. (2024, Ocak 11). Top features of React Native app development. Medium. https://medium.com/@anuj.tomar11/top-features-of-react-native-app-development-355eff652c00