create-react-native-app vs react-native-init
React Native ile proje oluştururken iki seçeneğimiz bulunmaktadır. Bunlar create-react-native-app ve react-native init komutlaridir. Peki neden iki seçenek var ya da bunların birbirinden farkı nedir diye sorular soruluyor. Bunların cevabını vermeye çalışacağız.
Öncelikle create-react-native-app komutu ile oluşturulan projenin avantajlarını ve dezavantajlarını yazalım.
Avantajlar
Projenin oluşturulması daha hızlıdır ve daha az gereksinim mevcuttur.
Projeyi herhangi bir dosya(android icin apk, iOS icin ipa) göndermeden QR kod ya da link ile paylaşabilirsiniz.
Uygulamayı çalıştırmanız icin build etmenize gerek yoktur. Bu da zaman kazanmanızı sağlayacaktır.
Sizin yerinize Expo apk ya da ipa dosyalarinizi oluşturacaktır.
Dezavantajlar
Native modeller ekleyemezsiniz.
Native kodda kullanılacak kütüphane ekleyemezsiniz.
Default olarak birçok kütüphane entegre olarak proje olusturuldugu icin boyutu yüksek olmaktadır.
Odeme sistemleri, yüz tanıma kütüphaneleri gibi modeller kullanmak isterseniz ExpoKit kullanmanız gerekmektedir.Simdi de
react-native init komutu ile oluşturulan projenin avantajlarını ve dezavantajlarını yazalım.
Avantajlar
Java ya da Objective C ile yazilmis native modeller ekleyebilirsiniz.
Boyutu daha düşük olmaktadır. Bu da hıza yansımaktadır.
Özellikle android-ios ayrımını otomatik olarak klasörleştirdiği icin kolaylık sağlamaktadır.
Dezavantajlar
Android Studio ve Xcode ihtiyacınız mevcuttur. Bu da demek oluyor ki iOS geliştirmeniz icin Mac bilgisayarınız olmalıdır. (Sanallaştırma ortamlarını kullanmadığınızı farzediyorum.)
Yazi stillerini Xcode a manuel olarak eklemeniz gerekmektedir.
Bazi modullerin eklenmesinde özellikle link yaparken ciddi problemler ile karsilasildigindan oturu manuel kurulumlar sıklıkla olmaktadır. Yukarıdaki yazı stili meselesi de buna benzer sebepten oturudur.
Uygulamayı gercek cihazda test edebilmek icin link vs gibi bir paylaşım durumu yoktur. Cihazinizi bilgisayara bağlamanız gerekmektedir.
Bana bu iki komut arasından en kullanislisi react-native init geliyor. Dezavantajlari benim icin bir problem olusturmadigi icin ve özellikle native modellerin eklenmesi olanagini sagladigi icin bunu kullanıyorum. Son olarak artı bir geliştirme aracı (Expo) kullanmak bana her zaman fazlalık geliyor. Fakat yeni öğrenenler icin create-react-native-app komutu ile oluşturulan proje uzerinde calismak önerilmektedir.