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.
Quick to get some sort of app up and runningCons:
Lots of vendor lock in (even after detaching/ejecting), doesn't teach you how to truly deploy a mobile app
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.Eli Perkins has used this product for one week.
Very useful for rapid development and distribution of new appsCons:
Have to "eject" to use native libraries (though they have good support for the most common native library use cases)