New to react native, and was curious. Is everyone just using Expo to use react native?
One of my clients is looking for a cross platform app and I suggested react native but later on I got to know that he expected web platform as well in the same codebase.
I researched a bit on expo and it seems it has an option to build app on web as well. Just curious how mature it is and should I move forward with it given major component I’m going to use is google maps.
Videos
Curious about Expo and how it can level up your React Native development? A colleague of mine recently wrote an article about what it is, its benefits, and how to get started. He compares Expo CLI with React Native CLI, and describes how to build a React Native Expo app. If you're interested to read it, here's the link :)
I am using React Native. What is the purpose of the Expo? What does Expo do that we can't do at RN?
So we’re building an expo app (compatible with IOS/Android). It has chat and a media player with complex features. Some of the libraries used doesn’t work on web, as well as the library used for the cache. We want to have a working web version obviously. It has a different design in few pages, also we need to replace some libraries. So we’re debating whether to do the web in a different codebase using react, or continue using expo web. A different codebase will be cleaner and more optimised but means double the effort for maintaining.
Long story short, my client and I used both used the word "app" very differently. He thought I was building a web app, I thought he wanted me to make a mobile app. Now I have a fully built React Native Expo app and he wants a website. Around how much time will it take to convert this to a fully-functional website? From what I could find on the Internet, most of the logic can remain the same and only my visual designs (which are fairly simplistic) have to change. If that's true, how do I go about it? Any help is extremely appreciated as I'm 16 and potentially in some deep shit.
Hi guys,
I am creating a fairly complex application that will have majority of its functionality on web and a separate set of functionality for mobile (bar a few features). For example most of the web features will not be available on mobile, except for the likes of in-app messaging which should be available on both. Mobile app will have a smaller subset of features that are not available (but may be in the future) on web.
I have been thinking of using react native for the mobile side and rn-web for the web app. But I am new to react native and still learning. I have just come across Expo and am thinking of using that instead but have seen some gripes about how the user experience of an Expo built app vs a RN app is worse.
What do you guys think? What are the pros and cons? I see the developer experience is easier with Expo but is the tradeoff of a worse user experience worth it? The app is complex but not extremely complex. I essentially want a fairly easy development experience with a good user experience. Not sure if the tradeoff is worth it for my customers.
Starting work on a personal project where the mobile app and web need to have the same functionality. Instead of treating it like two separate projects (i.e., writing for ReactJS, then React Native, and sharing contexts/hooks where I can), it makes sense to treat it like one project.
In playing with expo-cli I noticed in the CLI it mentioed "web" so I started looking into it. That being said, it says in bold:
This is a preview and subject to breaking changes. Do not use this in production yet.
So pursuing using Expo for Web may not be the way to go at this point in time.
Despite that, there is this decent article about it:
https://medium.com/@toastui/from-zero-to-publish-expo-web-react-native-for-web-tutorial-e3e020d6d3ff
The other option I'm seeing is just React Native Web which Expo for Web is using anyway. The documentation on getting started on it is less than helpful. This article does help clearing some of it up:
https://scotch.io/tutorials/build-mobile-friendly-web-apps-with-react-native-web
For example, the Getting Started:
Install
yarn add react react-dom react-native-web
Starter kits
create-react-app includes built-in support for aliasing react-native-web to react-native.
create-react-app my-app
I guess the "Install" is if you plan on not using create-react-app?
Then it goes on talk about configuring alias despite saying "create-rect-app includes built-in support for aliasing react-native-web to react-native."
Again, I guess all of the bundle configs it goes on to discuss are for if you are not using create-react-app?
Then the article goes on to show:
npx create-react-app random-people yarn add --dev babel-plugin-module-resolver babel-plugin-transform-object-rest-spread babel-plugin-transform-react-jsx-source babel-preset-expo
Why all the resolvers if create-react-app already has this built in?
I can see point of babel-preset-expo since expo is being added.
At any rate, at least the article actually explains how to setup the development environment and get things to production... nothing I saw in the repos documentation.
I guess one last question: anyone using React Native Web and what are your thoughts on it?
I'm using RNW. It helped to get started. I'm working on removing it.
It is big, almost 300KB to the parsed JS size, ~69KB gzipped.
The # of useful in both RNW and React-Native are minimal. The strength of RN is 3rd party components, most of which aren't applicable for a website that has to work on both desktop and mobile.
Doing responsive design without CSS sucks. Media queries are far better than anything React Native offers. Yes you can setup listeners all over the place and modify styles, but that is far more work than using media queries in CSS.
The React Navigation team currently recommends against using React Navigation for RNW projects. (A member of the React Navigation team said as such when RNW was discussed a week or two ago on this subreddit.)
My app uses React Native Elements for its UI toolkit. RNE has a dependency on React Native Vector Icons. Put together they were adding around 250KB to my bundle size. On moderate powered smartphones they were adding over a second to my time to first render.
At some point you'll find yourself reaching for third party React-DOM packages. Then you'll have to use CSS anyway, except now some of your elements are styled with CSS and others are not (RNW has deprecated className).
That said, RNW did help me get my site up and running really quickly at first. (Just, you know, the site wasn't quick....)
Have you looked at Ionic React?
Last week I released my first app Waveous to the app store (working on finishing Android) for Spotify users to see their entire lifetime streaming stats, see what music your friends are liking and commenting on, and notifications to not miss new releases from your favourite artists.
I spent the last 6-7 months developing this part time and I cannot say enough good things about the developer experience React Native and Expo provided. Coming from using React for web development, I'm so glad I went with React Native over other alternatives. I don't have a Mac so Expo EAS was a saviour and the rest of the Expo suite is some of the most intuitive and well documented developer tools I've used in ages.
For those who have released apps and successfully got traction, any tips around getting users?
I'm working on startup where we are developing a video streaming app. I know react very well but I never worked on react-native. So I started learning few things about it. Expo came to my notice as it makes things lot of easier ( at least they say wherever they get chance ). I started working on our prototype. Initial development was really fast. But later, I came to know that - with Expo, I cannot use native modules from npm or external libraries which are very useful for our case. for example - the payment service which we are using and many other! With expo, you can use only those modules which are developed by Expo.
Finally I shifted from Expo to bare minimal react native project. Following are some benefits -
-
app size reduced from 20MB + to approx 5-6 MB.
-
full control over what I want in app and what I don't want.
-
running app isn't that hard - setting up emulator, installing android studio, installing few more things and that's it. run the app in emulator and you are good to go!
Let's see how it goes further :)
EDIT -
Expo vs react-native debate goes on. I will suggest, if you are beginner in react-native, just try to stick to Expo because learning process is lot easier in Expo. You don't need to touch android/ios folders and don't need to write minor native code in it. Ultimately that's the focus of Expo. Two main advantages of Expo are - over the air updates (OTA) and push notifications. Else there are lot of disadvantages. Expo team just trying to simplify the things and works on the top of react-native.
But if you are familiar with react/react-native ecosystem, you already know that - Expo does not suits to your use case, sometimes. So that's the thing.
I’ve been using React Native for a few years, and I noticed a shift — more official tooling, tutorials, and updates seem to center around Expo (especially with create-expo and EAS).
Is this a conscious direction from the React Native core team? Is the classic CLI approach going away in the future?
Just curious if long-term we’ll all be expected to use Expo for even "bare workflow" apps.
Would love to hear others’ thoughts — especially from devs working on large-scale projects.
I wrote a pretty comprehensive blog post on the topic not so long ago: https://scriptide.tech/blog/should-you-use-expo-for-react-native. I came to the unequivocal conclusion; yes.
Happy to receive any feedback you guys might have, curious about your experiences.
I'm about to start a new job and I'll be using React Native to develop mobile apps. Are companies actually using Expo for developing React Native apps? Like has it become a standard? Are there other ways like better alternatives to Expo? I've heard of React Native CLI, is it much better and standardized in the industry?
Long story short, my client and I used both used the word "app" very differently. He thought I was building a web app, I thought he wanted me to make a mobile app. Now I have a fully built React Native Expo app and he wants a website. Around how much time will it take to convert this to a fully-functional website? From what I could find on the Internet, most of the logic can remain the same and only my visual designs (which are fairly simplistic) have to change. If that's true, how do I go about it? Any help is extremely appreciated as I'm 16 and potentially in some deep shit.
Hey everyone,
I’m new to React Native development—so far, I’ve been working as a web developer. Now, I’ve joined a startup where we’re building a fintech product, and we’ve decided to use React Native for our frontend.
I’m trying to figure out whether Expo is the right choice or if we should go with bare React Native. I like the idea of Expo’s easy setup, OTA updates, and faster development, but I’ve heard it has limitations, especially when it comes to native modules, app size, and performance.
Since we’re building a fintech app (which might require native features like biometrics, encryption, or background services), would Expo be a good choice? Or would we hit roadblocks that force us to eject later?
Would love to hear your experiences—is Expo good for fintech apps, or should I avoid it?
I'm pretty new to this so bear with me. I made a MERN stack application, with a server folder for the backend and a client folder for the front end. The web app is fully functioning once I run both folders, but I wanted to know how I can turn this into a mobile app and use expo to view it on my phone?