Expo vs Flutter: What are the differences?
What is Flutter? Cross-platform mobile framework from Google. Flutter is a mobile app SDK to help developers and designers build modern mobile apps for iOS and Android.
Expo and Flutter can be primarily classified as "Cross-Platform Mobile Development" tools.
"Free" is the primary reason why developers consider Expo over the competitors, whereas "Hot Reload" was stated as the key factor in picking Flutter.
Expo and Flutter are both open source tools. Flutter with 69.4K GitHub stars and 8.09K forks on GitHub appears to be more popular than Expo with 6.78K GitHub stars and 791 GitHub forks.
Policygenius, pludoni GmbH, and Hybrid Heroes are some of the popular companies that use Flutter, whereas Expo is used by Discontinuity, PUBLY, and Mifos Initiative. Flutter has a broader approval, being mentioned in 41 company stacks & 146 developers stacks; compared to Expo, which is listed in 29 company stacks and 26 developer stacks.
What is Expo?
What is Flutter?
Need advice about which tool to choose?Ask the StackShare community!
Sign up to add, upvote and see more prosMake informed product decisions
What are the cons of using Expo?
Sign up to add, upvote and see more consMake informed product decisions
Sign up to get full access to all the companiesMake informed product decisions
Sign up to get full access to all the tool integrationsMake informed product decisions
For a front end dev like me, using a mobile framework for side projects makes more sense than writing a native app. I had used Apache Cordova (formerly PhoneGap) before (because React Native didn't exist yet), and was happy with it. But once React Native came out, it made more sense to go that way instead. It's more efficient and smooth, since it doesn't have the simulation overhead, and has more access to hardware features. It feels cleaner since you don't need to deal with #WebView, using native UI widgets directly. I also considered Flutter . It looks promising, but is relatively new to the game, and React Native seems more stable for now.
I've recently switched to using Expo for initializing and developing my React Native apps. Compared to React Native CLI, it's so much easier to get set up and going. Setting up and maintaining Android Studio, Android SDK, and virtual devices used to be such a headache. Thanks to Expo, I can now test my apps directly on my Android phone, just by installing the Expo app. I still use Xcode Simulator for iOS testing, since I don't have an iPhone, but that's easy anyway. The big win for me with Expo is ease of Android testing.
The Expo SDK also provides convenient features like Facebook login,
MapView, push notifications, and many others. https://docs.expo.io/versions/v31.0.0/sdk/
The capability of style customization is one a large deal breaker for frontend SDKs. To solve this, we decided to use styled-components in our SDK, which makes it easy to add support for themes on top of our existing components. This practice reduces the maintenance effort for stylings of custom components and keeps the overall codebase clean.
I am starting to become a full-stack developer, by choosing and learning .NET Core for API Development, Angular CLI / React for UI Development, MongoDB for database, as it a NoSQL DB and Flutter / React Native for Mobile App Development. Using Postman, Markdown and Visual Studio Code for development.