Expo
p/expo
An open-source platform for building native apps
Nick Abouzeid
Expo 2.0 β€” The fastest way to build an iOS and Android app πŸ“±
Featured
35
β€’

Expo enables you to build cross-platform native apps using only JavaScript.

In addition to React Native components, you'll have access to the Expo SDK, a library that provides a wide range of native APIs on iOS and Android. Expo can also manage assets for you, handle push notifications, and build your native binary for submission to the app store.

Replies
Jim
Hi I'm Jim, I work on Expo's website πŸ‘‹ We recently updated our site in collaboration with our partners at Bakken & BΓ¦ck. We're really excited for people to check out Expo and discover how easy it is to get up and running. Expo provides a native runtime with a wide range of native APIs and components exposed to you right out of the box. We combine that with APIs already included with React Native, so most people only have to write JavaScript to build their native apps. Hit up https://expo.io/learn for a quick start guide. Happy Building!
Johannes Schickling
@meanjim great job on the new design and product! πŸ‘Œ
Jim
@_schickling thank you for those kind words!
Eli Perkins

There's lots of cool things that Expo is doing, but I'm not sure this should be presented as a full-scale mobile development platform. Even with the eject scripts, there's still a fair amount of vendor tie-in that you get from leaning heavily on a kitchen sink of an native app that bundles every framework and has it's own set of abstractions. If Apple/Google releases a new iOS/Android API that you want to use, you have to wait for Expo to implement it first.

There's also something to be said for the large amount of abstraction of platform-specific standards. I don't think Expo does a great job of building components that feel at home on each platform, starting with their recommendation of using a non-native replication of UINavigationController in `react-navigation`, to loading bundled fonts asynchronously, to using FontAwesome icons over the iOS-provided UIBarButtonSystemItem icons.

If you're building a one-off mobile app that has no plan on being maintained, Expo might be the right fit for you. Looking to build a mobile app that will be maintained for some time to come? Stick to a vanilla React Native or native Swift/Kotlin app and learn the platform first.

Pros:

Quick to get some sort of app up and running

Cons:

Lots of vendor lock in (even after detaching/ejecting), doesn't teach you how to truly deploy a mobile app

brent
Hi Eli! Thanks for the feedback! I just wanted to clarify a few of the points that you made for fellow hunters. > If Apple/Google releases a new iOS/Android API that you want to use, you have to wait for Expo to implement it first. This is somewhat true -- however, Expo is open source, so if you have the knowledge then you are welcome to implement an API and submit a pull request, or you can eject your project and add it right away. Additionally, supporting new platform APIs quickly is primarily constrained by resources -- as the Expo team and community grow, we expect that new features will be added increasingly promptly. > I don't think Expo does a great job of building components that feel at home on each platform We actually don't build UI components at all (save for a couple of exceptions) -- we leave that up to the React Native ecosystem :) The Expo SDK provides access to platform APIs, such as camera, push notifications, permissions, touch id, etc. See our docs for a full list: http://docs.expo.io/ We try to help with discovery of UI components through https://native.directory/ > starting with their recommendation of using a non-native replication of UINavigationController in `react-navigation`, to loading bundled fonts asynchronously, to using FontAwesome icons over the iOS-provided UIBarButtonSystemItem icons. Navigation still isn't a well handled problem in the React Native ecosystem, unfortunately, but the solutions are definitely workable if you learn the quirks. The react-navigation project needs a lot of work, we're trying to help out as much as we can -- I've arranged to fund some developer time for this project in the new year and we have some nice improvements planned :) I'm not sure what you referring to with respect to FontAwesome icons, you are free to use whichever icons you like :) Perhaps we are not communicating this well enough -- I will do a pass over our documentation! As for bundling assets in a release build, our latest SDK adds support for bundling images, and the next release will support every type of asset. This was definitely a dealbreaker for many potential users so we're really excited to have it ready! You can read more about it here: https://docs.expo.io/versions/la... For context, the reason we started with asynchronously loading assets is that it is necessary to enable the workflow that we really love from the web, where you just point the client app at a URL and it loads quickly on your device. Additionally, you can take advantage of this mechanism to provide over-the-air updates for assets! > If you're building a one-off mobile app that has no plan on being maintained, Expo might be the right fit for you. Looking to build a mobile app that will be maintained for some time to come? Stick to a vanilla React Native or native Swift/Kotlin app and learn the platform first. While I don't entirely agree with this assessment, I strongly believe that when approaching any significant technology decision you should be aware of what the limitations and tradeoffs are. We have tried to summarize these as best we can in our documentation under the "Why not Expo?" section: https://docs.expo.io/versions/la...
Rodney Folz
We use Expo at Thistle for our app. It's fantastic. We're primarily backend engineers with some React experience, and we went from prototype to production in just a few months. Expo's tooling around builds/codepush is especially nice and feels closer to updating a website than releasing a new app version. You should definitely check it out.
Jim
@folz thanks for using us!! πŸ™Œ πŸ™Œ
Javid Jamae

We've been using Expo for the last year to develop a mobile app and the experience has been great. We've been forced to use some less than desirable pure Javascript libraries (like React Navigation for navigation) instead of alternative native libraries, but overall the Expo experience has been great, the team has been supportive, and the product has gotten significantly better with each release. Much kudos to the Expo team for all their hard work!

Pros:

Very useful for rapid development and distribution of new apps

Cons:

Have to "eject" to use native libraries (though they have good support for the most common native library use cases)

Drilon Jaha
Expo is the fantastic solution for what it servers. 10/10, hands down. We are using it for all of our React Native apps and it has made our lives way easier. Nothing but awesomeness.
Jim
@drilonjaha thank you for using us!
Chris Villa
Expo is the bee's knees.
Jim
@chrisvxd 🐝
Ciocanel Razvan
Excelent. We support expo too. We launched a react native theme yesterday on producthunt and we used expo. :)
Jim
@chocksy thats amazing! congrats <3
Dmitriy Loktev
I highly recommend it. As an engineer, I love Expo, because Expo team is doing very important work for the whole React Native community, they are top contributors in every possible aspect. Just look at Expo Snack β€” it's now standard de-facto for sharing almost any type of gist related to React Native. Somebody asks you about some Flexbox specifics or how to layout something properly with it? Share a Snack! As an indie app developer, I love Expo, because if you lucky and Expo SDK fits your requirement it reduces the costs of app development dramatically, and even after the launch, the large amount of hard work of maintaining becomes Expo's problem, not yours :) And when you get back to your app after a year to make a new feature, it's much easier to do it with Expo. I'm grateful for that.
Jim
@potomushto thank you for using Expo!
Max Stoiber
Expo is a godsend for anybody wanting to build a mobile app with React Native. That beautiful new website is just the icing on the cake: Their entire set of tools is immensely helpful all the way from kicking off your first app to collaborating with a team around the world on large-scale projects. On top of that, the folks over there are engaged with the community and always willing to answer questions about whatever problem you might be stumped by. Highly highly recommended! πŸ’―
Jim
@mxstbr πŸ™Œ πŸ™Œ πŸ™Œ
Đỗ TiαΊΏn
Great idea and application. Helped me to build a reac-native Iphone app quickly on my ubuntu laptop. Thanks a lot for the great and hard work. Keep going guys.
Jim
@nevergiveup1989 thank you!!
Vitor Amaral

Using for all my projects, build 3 apps using Expo, following since the beginning when it was Exposition! All the love!

Pros:

The best way to develop React Native apps!

Cons:

Nothing to tell!

Boris Tchangang

Expo changes the way we build app. In 15 minutes you can build something and see your work on your device.

The team is reactive, replies fast. Best js framework for building mobile app <3

Pros:

Really fast to test a new app. Better than testflight !

Cons:

Sometimes it's difficult to use custom native librairies

Pav Sidhu

While React Native's intention was to simplify the app development process, Expo takes it one step further, providing everything you need to get an app up and running, with their updated website, app development is more approachable then ever

Pros:

The most approachable way to build an app, hands down

Cons:

Some limitations with using native libraries but due to the large Javascript community, there's almost always a workaround

Ish Baid

I can't praise expo enough. I've never had an easier time writing code in my entire life. I don't have to worry if settings are correctly configured. I don't have to worry whether a library was correctly installed or not.

It just works. I spend my time writing code instead of fighting with an IDE. Major props to the Expo team. Keep up the great work!

Pros:

-No fighting Android Studios/Xcode

-No linking errors

-No setup required

-OTA updates

-Great documentation

-Easy to share app prototypes

Cons:

-Requires ejection for a good amount of libraries

Dan Zhao
We've been using Expo to build our Superpod app. It's a great experience so far. Congrats on this 2.0 launch!
Jim
@dzhao let us know if we can help with anything!
Akshay Kadam(A2K)
These guys release new SDK before I finish my app every time. I guess they don't sleep 😴 Great website. Thank you ❀️
Jim
@deadcoder0904 thank you!
Scott Bowler
@amos_gyamfi raised an excellent question in Dropsources' launch yesterday: "According to this article, https://techcrunch.com/2017/12/0... Apple is trying to ban App generation services. How will [Expo] tackle this problem?"
Jim
@amos_gyamfi @scotty_bowler interesting question! We're not an commercialized template or app generation service. We simply offer a means for developers to write cross-platform mobile applications using JavaScript.
Tune Support
Great and excellent product, rightly made for the market
Prashoon Bhattacharjee
Expo is really an amazing tool! I have created lots of applications using Expo. I was also lucky enough to interview @ccheever on Clubhouse.
Patrick Howard
Incredible tool for new (& experienced) React Native developers.