works until you need to use a native library that hasn't been ported for Expo, then you need to eject. I would only consider Expo for POC/MVP
This was my main criticism as well, but not anymore. With the "prebuild" workflow you can regenerate your iOS and Android projects anytime you need. And set up scripts for adding external libraries in the process. It is more work to set up over just altering the native projects, but the result is rather nice. I've never felt 100% confident that react native project folders wouldn't break for arbitrary reasons. Being…
Expo – Open-source platform for making universal apps for Android, iOS, and web
141–150 of 172 posts
Re: Expo – Open-source platform for making universal apps for Android, iOS, and web
#142https://expo.canny.io/feature-requests/p/expo-sqlite-ship-ne...
Re: Expo – Open-source platform for making universal apps for Android, iOS, and web
#143Expo has an impressive team and investor backing However, making your apps depend on a framework has the following dangers: - the framework might stop being maintained - the vc-backed framework might need to become monetized beyond your means At the end of the day, all these frameworks offer are convenience APIs to easily integrate with native things like push notifications or social sign-ins However, even when these…
Also from the beginning we believed the Expo framework needs to be free and open source. Introspecting as developers ourselves, we thought people would be a lot more likely to try out and recommend open source frameworks and incrementally build up an ecosystem of modules and StackOverflow answers. Expo gives developers much more agency because it is open source. And it is really hard in my opinion to make a business from licensing developer tools, libraries, and frameworks. There are so many free alternatives.
The goal of the Expo framework is to be the ultimate way to build universal, native application software. Universal apps have builds for Android, iOS, the web, and future platforms. And the user experience is truly native to each respective platform, often by using the native system UI components and not a replica. It does take significant effort to maintain the Expo SDK's set of convenient APIs. It's also just one part of Expo overall.
Separately, the way we are building a business is by offering hosted services for React Native apps, called Expo Application Services (EAS for short). These are optional services for building and updating your apps and using the Expo framework doesn't require EAS. We find developers often use a combination of EAS for some tasks and their own hardware for others.
We work to build developer trust. We are a small company but try to serve developers and our customers well, sometimes better than the companies that have endless trunks of money (we've all seen killedbygoogle.com). So, that's some of how we think about things at Expo.
Re: Expo – Open-source platform for making universal apps for Android, iOS, and web
#144Tbh, I liked expo, but since you cannot build locally nowdays (you can eject and build, but that won't work 99% of the time, literally didn't work for me on the hello world example), I kinda just threw it in the "cool, but won't use" bucket for time beeing :/, could change in the future, but I don't know how I feel about 3d party service (EAS) building my app and holding my signing certificates (yet)
I got a bit this feeling when I tried to run the app locally offline during a flight and couldn't, because the client could not call home. Turns out the client needs an --offline flag to so so, and I got a bit creeped out to have such a dependency.
Expo Go is entirely optional and it is recommended to graduate early on in your development cycle to using a development build of your own app instead. Development builds don't sign project manifests (unless you're intentionally using end-to-end signed updates, an advanced feature). They are like regular development builds of a traditional native app.
Also if you'd like to keep using Expo Go, the signing certificate mentioned earlier has an expiry of 30 days or so IIRC, during which time you don't need to connect to a server. You may still want to provide the "--offline" flag to turn off refreshing the certificate.
Re: Expo – Open-source platform for making universal apps for Android, iOS, and web
#145With expo on android you are forced to use a 3 years old version of SQLite which is just painful. They just refuse to update it. https://expo.canny.io/feature-requests/p/expo-sqlite-ship-ne...
Re: Expo – Open-source platform for making universal apps for Android, iOS, and web
#146Earlier quoted context omitted.
That decision completely depends on the context. For a small team, without too much native experience, I'd still 100% recommend using expo. It's just going to be easier for everyone with less bottlenecks and less code to maintain. If PWAs were actually used by the mass markets, I'd go with that option, but the fact is they're not, and you can't expect to force your users to learn a new behaviour like that.
> For a small team, without too much native experience, I'd still 100% recommend using expo. Maybe I'm too optimistic but as a web developer I loved being given the opportunity to learn some Swift and Kotlin. Compared to Objective C and Java they are really very approachable for JS devs and with not all that much work you'll end up with a deeper bench of developers more satisfied with their jobs.
Almost all of the best apps made with Expo also have a small amount of custom native code. And I find it's just generally good to understand the abstraction layer above and the abstraction layer below the one you're working at to bring the two together the best you can.
[development-builds]: https://docs.expo.dev/develop/development-builds/introductio... [expo-modules]: https://docs.expo.dev/modules/overview/
Re: Expo – Open-source platform for making universal apps for Android, iOS, and web
#147Tbh, I liked expo, but since you cannot build locally nowdays (you can eject and build, but that won't work 99% of the time, literally didn't work for me on the hello world example), I kinda just threw it in the "cool, but won't use" bucket for time beeing :/, could change in the future, but I don't know how I feel about 3d party service (EAS) building my app and holding my signing certificates (yet)
FYI I've made a patchset that pretty much allows me to actually use the EAS --local builds offline and without an EAS account, so it's in fact possible, even though they, for obvious reasons (e.g. https://github.com/expo/eas-cli/issues/1606 ), don't encourage it.
Expo CLI is for entirely local builds. Run "npx expo prebuild:{android,ios}" to generate your Android Studio and Xcode projects, and build them with the IDEs or their respective CLI tools directly.
Re: Expo – Open-source platform for making universal apps for Android, iOS, and web
#148Would it be fair to say that Expo is to RN what Next.js is to React?
Re: Expo – Open-source platform for making universal apps for Android, iOS, and web
#149I used to maintain Detox for iOS when I was at Wix, from 2017 to 2021. We ended up dropping support for Expo for plenty of reasons, some technical, some "political". The people reporting "issues" (more like asking questions) for their Expo apps, usually had very little technical understanding of any of the increasingly thick environment stack (the Expo layer, RN layer, UI framework layer, OS layer). They were basical…
Relatedly, the developer demographic has grown and a lot more developers are adding Kotlin and Swift to their skill sets. They write JS and React most of the time while also writing custom native code when they need to. Most of the best Expo apps include custom native code.
Test frameworks have also grown a lot. I suspect the issues with Detox were often from developers looking to use it with the Expo Go starter app that doesn't support custom native code. These days I hear a lot of positive things about Maestro as well and there was a nice talk on it at App.js Conf earlier this year: https://www.youtube.com/watch?v=uoCzBdFCoqc
Re: Expo – Open-source platform for making universal apps for Android, iOS, and web
#150I've been using Expo for past 2 years and I enjoyed the experience overall. But make no mistakes that Expo is a SaaS with the ability to inspect some part of the codebase. (I stand corrected here) ~Everything important for building and distribution process is moving to EAS, cloud-based service that is not open-source and cannot be self-hosted. So if want to build your app using your own VPS, you are out of luck (at l…
Expo is the free and open source framework and, separately, Expo Application Services (EAS) is the SaaS. Expo and EAS are designed to be decoupled while also working well together, optionally. The Expo framework gives you the module system, runtime environment, CLI tools, debugger, a suite of modules, navigation to build universal native apps. They're universal in that there is an Android build, an iOS build, and a w…
However, as a user reading the Expo docs, I'm not sure if I can separate them easily without deviating from official docs.
Look at the Expo docs on building and deployment, which are essential steps to getting your app distributed. I don't see any mention of how to achieve it without EAS.
There used to be an expo build but it was deprecated a while ago.
https://docs.expo.dev/develop/development-builds/installatio...