Search code examples
react-nativecreate-react-app

React Native vs CRNA


I want to start with React Native app development and need help to decide on which path I should go.

The main question is: should I go with React Native or create react native app?

From what I understand, CRNA really is react native using the expo client and tools, with a more comfortable use (no dev account required, etc)

I can see the advantages with using CRNA over react native (no being no need to set up dependencies, faster time to start with developing, no need for iPhone dev account or xcode+android combi, etc.)

However, as not all native libraries are included, I see myself in the need to export my app at a later point anyway and continue to work with xcode and Android Studio just like before.

So, if CRNA is just a nice way to get started with everything, then I would go for vanilla react native right away as I see no point in a temporary solution at all.

Also, and maybe you can correct me on this, I do not like the idea to have just another wrapper on top of my app, unless there are some more crucial advantages which I missed out.

So could you please share your experience on this? If you have developed apps with react native in the past, which path did you go and which path will you go in the future? React Native, CRNA or React Native and expo environment?


Solution

  • Hi I will also share some of my experience on the topic.

    Since I have a front end background and was not familiar with XCode or Android Studio I've decided to start my native app developement from CRNA.

    Indeed with just a text editor, purely with javascript and utilizing built-in expo SDK components I was quickly able to implement and publish to Play Store a fairly simple app. That I find truly amazing :)

    However after publishing the app I realized there are some pitfalls that unable it to compete with similar rival Java apps:

    The biggest IMO is the size of the apk generated with exp service. For the app with just 3 screens and not a lot business logic, 25 mb and about 60mb after install is really a lot. According to expo devs more complex apps will be approximately the same size or only slighty larger due to the bulk of the size being the native dependencies, and not actual javascript side. But this still is a big problem and I will probably have to anyway eject the app to optimze the build size

    So in general CRNA is a great and fast way to start and have something working but still before publishing the app to the users you'll not avoid seting up your custom build and all the dependencies like Android Studio