React-Native nedir? Tercih etmeli miyim?
Merhaba arkadaşlar. Sizlere bu yazımda aktif olarak kullandığım react-native den bahsetmek isterim.
Facebook tarafından çıkartılmış ve geliştirmesi devam eden react-native javascript kodlarıyla mobil uygulama geliştirilmesini sağlar. Geliştirilen uygulama IOS&Android için destek vermektedir. Windows phone desteği yoktur ve üzerinde çalışıldığını düşünmüyorum.
Diğer cross platform dillerinden farklı olarak react-native’in en ilgi çekici yanı, javascript ile yazılmış olmasına rağmen, bunların native objelere çevirilerek diğer platformların sunduğu mobilde html&css deki o çirkin kullanımın yerini native uygulama güzelliğine bırakıyor olmasıdır.
Bu platform için karmaşık yada görselliği ön planda yada oyun gibi daha kompleks uygulamalar pek önerilmemektedir. Daha basit ve yalın uygulamalar için çok rahat geliştirilebilir. Özellikle listeleme ve kaydetme gibi ana etkenlerden oluşan uygulamalar için oldukça faydalı olacaktır.
Basitten bir sıralama yapacak olursak;
Avantajları
- Android ve IOS için native dilleri bilmeden (android, kotlin, objective-c, swift) sadece javascript kodlayarak uygulama ortaya koyulabilir,
- 2 ayrı proje yerine tek bir projeden android ve ios için uygulama çıkarılabilir böylece hız açısından zaman kazandırır
- Native dil bilmeden, native ürün ortaya çıkartılır (siz gene de native dili de bilmeye çalışın.)
- Arkasında Facebook gibi bir oluşumun olması
- Oldukça iyi bir dökümana sahip. Örnek kod ve uygulamaları çoğaltmaları faydalı olacaktır.
Dezavantajları
- Kompleks uygulamalar için yeterli seviyede olmaması
- Yeterince geliştirilmemiş component’ler de istediğin şeyleri yapamama durumu.
- Sürekli geliştirildiği için sürekli güncel kalınması gerekir. Bir yerden sonra ipin ucu kaçarsa, yakalaması zor olacaktır.
- Faccebook’un ne zaman kadar desteği devam eder? bunun soru işareti olarak hep kalacak olması.
- 3.parti uygulamalara çok ihtiyaç duyulması
Karar sizin, kısa vade de iş görmek için bence çok mantıklı bir çözüm. Ancak daha kalıcı büyük hedefler için native uygulama yazılması gerektiğini düşünüyorum. Fakat bunun kişiye yada kuruma maaliyeti (zaman&finansal) açıdan da değerlendirilmesi gerekecektir.