Eli Perkins
Eli Perkins reviewedExpo 2.0The fastest way to build an iOS and Android app 📱
 Not RecommendedPros: 

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

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.
Comments (2)
brent
brent@notbrent · expo.io
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...
Green
Green@greenpintab · I'm looking for TestFlight users
Cool