Need advice about which tool to choose?Ask the StackShare community!
Expo vs Visual Studio App Center: What are the differences?
Introduction: Expo and Visual Studio App Center are both popular tools used by developers for building and deploying mobile applications. While they have some similarities, there are key differences between the two that make them unique in their own ways.
Development Approach: Expo is a comprehensive development tool and platform that allows developers to quickly build and test React Native applications without the need for configuring complex native build tools. It provides a streamlined development experience with features like live reloading, instant previews, and easy device testing. On the other hand, Visual Studio App Center is a mobile app lifecycle solution that offers a wide range of services such as build, test, distribute, monitor, and engage. It supports multiple platforms and frameworks, including React Native, and provides extensive CI/CD capabilities.
Built-in Features: Expo comes with a rich set of pre-built features and components that are readily available for developers, including APIs for camera access, push notifications, location services, and more. These built-in features help speed up the development process and simplify the integration of common functionalities in React Native apps. In contrast, Visual Studio App Center does not provide pre-built features like Expo. Instead, it focuses more on the continuous integration and deployment aspects of the app lifecycle.
Native Code Support: Expo primarily focuses on web-based and pure JavaScript development for React Native apps, aiming to provide a smooth cross-platform experience. It restricts direct access to native code and libraries, which can be a limitation for certain projects that require native code integration. On the other hand, Visual Studio App Center supports both JavaScript and native code development, allowing developers to easily incorporate platform-specific features and libraries as needed.
Data Storage and Backend Services: Expo provides a set of cloud-based services, such as Expo Push Notifications, Expo Payments, and Expo Auth, which simplify the integration of common backend functionalities in applications. It also offers built-in data storage options like AsyncStorage for persisting data locally. In contrast, Visual Studio App Center does not provide specific cloud-based services or data storage options. It focuses more on the build, test, and deployment aspects, while leaving backend integrations to be implemented using other tools or services.
Deployment and Distribution: Expo offers a simplified deployment process with its over-the-air (OTA) updates feature. Developers can publish updates to their apps without requiring users to download a new version from the app store. On the other hand, Visual Studio App Center supports various distribution channels, including app stores, private distribution groups, and direct installation via email or QR code. It provides more flexibility in terms of distributing the app to different target audiences.
Analytics and Monitoring: Expo provides basic analytics and monitoring capabilities, allowing developers to track user sessions, crashes, and performance metrics through its own dashboard. However, it lacks advanced custom tracking options and fine-grained monitoring features. In contrast, Visual Studio App Center offers more comprehensive analytics and monitoring capabilities, allowing developers to track custom events, set up funnels, perform A/B testing, and gain deeper insights into app usage and performance.
In summary, Expo offers a streamlined development experience with ready-to-use features and simplified deployment, while Visual Studio App Center provides a comprehensive mobile app lifecycle solution with extensive CI/CD capabilities and advanced analytics and monitoring features. Choosing between the two depends on the specific requirements and priorities of the development project.
Hello guys, I am new here. So, if I posted without specific guidelines, please ignore.
Basically, I am an iOS developer and developing native apps for the last three years. Recently, I started learning React Native to develop apps for both platforms. If anyone out there knows any useful resources that will become a better react native developer.
#newbie
Well, the first resource I would recommend you is my upcoming book by Packt Publishing, "Professional React Native", but it's due late January next year :) . Now jokes aside (the book's real by the way :) ), the easiest way to build a iOS/Android/Web app with React Native is to do: npm install -g expo-cli expo init some-project cd some-project expo eject
You might have heard of Expo, but trust me, stay away from it. Expo highest value is that it's an already pre-configured 3 platforms environment, but if you don't eject then you're vendor-locked to what Expo has to offer in iOS and Android, which is very poor compared to going full React Native on these platforms, they can't even handle Google Sign In properly and by the way, even if your app is 10 lines of code your app size will be over 40 MB if you don't eject, yep it's that bad, plus the performance is regular and the loading times slow, not to mention that you're stuck with their build service which the free tier makes you wait for hours for a free build slot. It's important to note that when ejecting you don't lose the Web, you simply do expo start --web to start your dev environment and expo build:web to build a static website that you can serve with any web server. Regarding state management, don't bother with "lifting state up" philosophies mixed with Context API to manage your state, lifting state is a great pattern and helps your codebase, Context is great to avoid prop-drilling, but NEVER mix them to achieve app-wide state management, for that, simply go for Redux or MobX, the hype is all about Redux, but I consider MobX far better in many aspects. However, as you're getting new into this I would recommend you start with Redux AND PLEASE grab yourself npm install @manaflair/redux-batch so that you can batch updates and don't bring your app to a crawl. Forget that "connect HOC" thing with React-Redux, don't bother for a second with it, go with Hooks and useSelector and useDispatch and the likes, it will make your code SO much cleaner and smaller. Adopt clean and new Hooks philosophy, avoid writing class components as much as possible and write function components augmented with Hooks.
Pros of Expo
- Free15
- Hot Reload13
- Easy to learn9
- Common ios and android app setup9
- Open Source6
- Streamlined6
- Builds into a React Native app5
- PWA supported2
- Plugins for web use with Next.js1
Pros of Visual Studio App Center
- Show error issues for mobile devices1
- Slack integration1
- Bug tracking integration1
- For Mobile apps diagnostics and tracking1