Need advice about which tool to choose?Ask the StackShare community!
Expo vs Vue Native: What are the differences?
Introduction:
In this article, we will compare the key differences between Expo and Vue Native. Expo and Vue Native are both popular frameworks for developing mobile applications, but they have some distinct differences. Below are the key differences between the two:
Development Approach: Expo is a comprehensive framework that allows developers to build mobile apps using JavaScript and provides a set of pre-built components and APIs. On the other hand, Vue Native is a wrapper around the Vue.js framework, allowing developers to build mobile apps using Vue.js syntax. While Expo offers a more all-in-one solution, Vue Native gives developers the flexibility to use the familiar Vue.js framework for mobile app development.
Language Support: Expo primarily uses JavaScript for development. It offers support for React Native, which means developers can leverage their existing React Native knowledge and components. Vue Native, on the other hand, uses Vue.js for development. This means developers need to be familiar with Vue.js in order to build mobile apps using Vue Native.
User Interface Components: Expo provides a wide range of pre-built UI components, making it easier for developers to create complex user interfaces without having to build them from scratch. Vue Native, on the other hand, relies on the existing Vue.js ecosystem of UI components. While Vue.js offers a rich ecosystem of UI components, it may require additional effort to integrate them into a Vue Native application.
Community and Ecosystem: Expo has a large and active community of developers, which means there are plenty of resources, tutorials, and libraries available to help developers throughout the development process. Vue Native, being relatively newer, has a smaller community compared to Expo. This means developers may find fewer resources and libraries specifically built for Vue Native.
Tooling and Development Workflow: Expo provides a development environment that makes it easy to develop and test mobile apps. It offers features like automatic app reloading, debugging tools, and over-the-air updates. Vue Native, being built on top of the Vue.js framework, inherits the tooling and development workflow provided by Vue.js. This includes features like hot module replacement, time-travel debugging, and Vue Devtools integration.
Platform Support: Expo supports developing applications for both iOS and Android platforms. It provides a uniform development experience across both platforms. Vue Native also supports developing applications for both platforms, leveraging the React Native platform support. However, the level of platform-specific functionality and customization may vary between the two frameworks.
In summary, Expo and Vue Native differ in terms of their development approach, language support, UI components, community and ecosystem, tooling and development workflow, and platform support. Each framework has its own strengths and considerations, so it's important to choose the one that aligns with your development preferences and project requirements.
Heya, I'm very new on here! And I hope I can get advice on this matter :
We are working on a new app. The web version is on Sails.js (V1)/node.js/vue.js. Started with the Web App default settings (including login and payments, which we are using use). We started with a web version to give access to the customer to start creating the data while building the mobile version. (iOS and Android)
I heard of Apache Cordova, that using the same JavaScript/css could be used to not re-code the front-end of the app for iPhones and Androids. I've been told that it is end-of-life now (? - I couldn't find this info myself).
I saw that Vue Native might be an alternative and would only need a few adjustments from our web version as we are using Vue.js for the frontend.
I know next to nothing on this, so I would really appreciate it if you guys could point me to possible solutions you've used and why instead of searching through all the existing solutions. (I'm very open to know if there are alternatives to those two too !!)
We will need to be using the GPS functions of the mobiles, which is a big part of the app.
Thank you!
i don't have any experience with the vue native what so ever but i think Quasar and Ionic are the best options for an HTML/CSS/JS based mobile app ionic has full support of vue and quasar is built on vue you may have to change some configurations in your project files
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.
I'm a huge fan of Vue.js and I'm pretty comfortable with it. I need to build a mobile app for my company and I was now wondering whether I could make use of VueJS with Vue Native instead of switching to React. I know Vue Native builds on top of RN. My question is whether I'd have as much freedom with Vue Native over RN and whether you feel like Vue Native is "production ready" or not. Not sure of which shortcomings I may find using Vue Native... Thanks a lot!!!
Vue Native is definitely production-ready in my experience. I've used both, have apps built with both in production right now, and both are fine technologies. As far as I can recall, there's nothing in RN that you can't do in VN. Given that, I would say go with "the devil you know".
That said, the one downside of VN over RN is that there are a lot more people using RN last I checked, so there are likely more resources readily available.
Our stack roughly divides into three major components, the front-end, back-end and the data storage.
For the front-end, we have decided to go with React Native via Expo. This allows us to target both Android and iOS with a single codebase. Expo provides "managed workflows" and an SDK that will simplify development and deployment.
For the back-end, we have decided to use Python. Python is the language of choice for machine learning (ML). It has extensive support for traditional ML algorithms (e.g. random forests) via Scikit-Learn and the SciPy ecosystem. On top of this, our industry partner has provided us their current solution written in Python. We decided to expose the back-end as a REST API using FastAPI. This allows us to nicely separate concerns from the rest of the codebase. FastAPIs use of static type hints, validation with Pydantic, and automated documentation allows us to build better APIs faster.
For data storage we decided to use a MongoDB Atlas, a NoSQL database. We decided to use a NoSQL database because we need to store large amounts of data (e.g data from the wearable IMUs). Moreover, due to the ever changing nature of a startup we require flexibility. NoSQL databases are schema-free which enables us to modify our schema as we see fit.
We plan on using GitHub Actions (GA) to orchestrate our CI/CD. Given GAs broad support of languages and workflows, it's hard to go wrong with this decision. We will also be using GitHub for version control and project management, so having everything in one place is convenient.
The major components of our CI/CD for the backend will consist of black for autoformatting, flake8 for linting, pytest for unit-testing, and mypy for static type checking and codecov for coverage reporting. We plan to use separate Docker containers to package the back-end and front-end components and use Docker Compose to launch the app. This allows us to better separate concerns, manage dependencies, and ensure our app is deployable anywhere.
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 Vue Native
- Can use v-if, v-model and so on13
- Can be use with vuex and vue-router11
- Use .vue file instead of .js8
- Syntactic sugar6
- Single File Components5
- Easier to learn5
- Reactive programming3
- Great CLI3
- IOS + Android3
Sign up to add or upvote prosMake informed product decisions
Cons of Expo
Cons of Vue Native
- Read more docs6
- Transpiles to React Native2