StackShareStackShare
Follow on
StackShare

Discover and share technology stacks from companies around the world.

Follow on

© 2025 StackShare. All rights reserved.

Product

  • Stacks
  • Tools
  • Feed

Company

  • About
  • Contact

Legal

  • Privacy Policy
  • Terms of Service
  1. Stackups
  2. Application & Data
  3. Frameworks
  4. Cross Platform Mobile Development
  5. Expo vs NativeScript

Expo vs NativeScript

OverviewDecisionsComparisonAlternatives

Overview

NativeScript
NativeScript
Stacks533
Followers1.1K
Votes516
GitHub Stars25.3K
Forks1.7K
Expo
Expo
Stacks811
Followers693
Votes66

Expo vs NativeScript: What are the differences?

Introduction

Expo and NativeScript are two popular frameworks for building mobile applications. While both frameworks are used to develop cross-platform apps, there are key differences that set them apart in terms of development workflow, performance, and capabilities.

  1. Code Execution: Expo allows developers to build mobile applications using JavaScript and CSS, with a focus on simplicity and ease of use. On the other hand, NativeScript enables developers to write native code using JavaScript, TypeScript, or Angular, providing more control and flexibility over the application's behavior and performance.

  2. Platform Support: Expo is primarily designed for building mobile apps that target iOS and Android platforms, with limited support for web applications. In contrast, NativeScript supports not only iOS and Android but also additional platforms like Windows, macOS, and Linux, providing a wider range of deployment options.

  3. UI Components: Expo offers a set of pre-built UI components that are easy to use and customize, allowing developers to quickly create user interfaces. NativeScript, on the other hand, provides access to the native UI components of each platform, resulting in more visually consistent and integrated app experiences.

  4. Third-party Libraries: Expo offers a curated selection of pre-built JavaScript libraries and integrations, making it easy to include popular functionalities such as maps, push notifications, and authentication. NativeScript, on the other hand, allows developers to directly access and utilize the vast ecosystem of npm packages, enabling more flexibility and customization options.

  5. Development Workflow: Expo provides a seamless development workflow where applications can be easily tested and previewed using the Expo Client app on a physical device or a simulator. In contrast, NativeScript requires a build step to compile the code and deploy the app for testing and previewing, which may introduce additional complexity and time.

  6. Access to Native APIs: Expo abstracts the access to native APIs, providing a set of unified APIs that work across platforms. This approach simplifies the development process but may limit access to certain device-specific features and functionalities. NativeScript, on the other hand, allows direct access to the native APIs of each platform, offering more fine-grained control and the ability to leverage advanced capabilities.

In summary, Expo and NativeScript differ in terms of code execution, platform support, UI components, third-party libraries, development workflow, and access to native APIs, providing developers with various options to choose from based on their specific project requirements.

Share your Stack

Help developers discover the tools you use. Get visibility for your team's tech choices and contribute to the community's knowledge.

View Docs
CLI (Node.js)
or
Manual

Advice on NativeScript, Expo

John
John

Feb 11, 2021

Decided

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.

109k views109k
Comments
Furqan
Furqan

Jul 16, 2020

Needs adviceonReact NativeReact Native

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}|topic:null|

325k views325k
Comments

Detailed Comparison

NativeScript
NativeScript
Expo
Expo

NativeScript enables developers to build native apps for iOS, Android and Windows Universal while sharing the application code across the platforms. When building the application UI, developers use our libraries, which abstract the differences between the native platforms.

It is a framework and a platform for universal React applications. It is a set of tools and services built around React Native and native platforms that help you develop, build, deploy, and quickly iterate on iOS, Android, and web apps.

100% Access to Native Platform API;NativeScript is free of charge as an open source project;Code with JavaScript. Style with CSS;Cross-platform UI abstractions;Shared business logic and data models
-
Statistics
GitHub Stars
25.3K
GitHub Stars
-
GitHub Forks
1.7K
GitHub Forks
-
Stacks
533
Stacks
811
Followers
1.1K
Followers
693
Votes
516
Votes
66
Pros & Cons
Pros
  • 75
    Access to the entire native api
  • 47
    Support for native ios and android libraries
  • 46
    Support for javascript libraries
  • 46
    Angular 2.0 support
  • 44
    Native ux and performance
Cons
  • 5
    Lack of promotion
  • 1
    Slower Performance compared to competitors
Pros
  • 15
    Free
  • 13
    Hot Reload
  • 9
    Common ios and android app setup
  • 9
    Easy to learn
  • 6
    Open Source
Integrations
No integrations available
React Native
React Native

What are some alternatives to NativeScript, Expo?

Ionic

Ionic

Free and open source, Ionic offers a library of mobile and desktop-optimized HTML, CSS and JS components for building highly interactive apps. Use with Angular, React, Vue, or plain JavaScript.

Flutter

Flutter

Flutter is a mobile app SDK to help developers and designers build modern mobile apps for iOS and Android.

React Native

React Native

React Native enables you to build world-class application experiences on native platforms using a consistent developer experience based on JavaScript and React. The focus of React Native is on developer efficiency across all the platforms you care about - learn once, write anywhere. Facebook uses React Native in multiple production apps and will continue investing in React Native.

Xamarin

Xamarin

Xamarin’s Mono-based products enable .NET developers to use their existing code, libraries and tools (including Visual Studio*), as well as skills in .NET and the C# programming language, to create mobile applications for the industry’s most widely-used mobile devices, including Android-based smartphones and tablets, iPhone, iPad and iPod Touch.

Apache Cordova

Apache Cordova

Apache Cordova is a set of device APIs that allow a mobile app developer to access native device function such as the camera or accelerometer from JavaScript. Combined with a UI framework such as jQuery Mobile or Dojo Mobile or Sencha Touch, this allows a smartphone app to be developed with just HTML, CSS, and JavaScript.

Framework7

Framework7

It is a free and open source mobile HTML framework to develop hybrid mobile apps or web apps with iOS native look and feel. All you need to make it work is a simple HTML layout and attached framework's CSS and JS files.

Qt

Qt

Qt, a leading cross-platform application and UI framework. With Qt, you can develop applications once and deploy to leading desktop, embedded & mobile targets.

PhoneGap

PhoneGap

PhoneGap is a web platform that exposes native mobile device apis and data to JavaScript. PhoneGap is a distribution of Apache Cordova. PhoneGap allows you to use standard web technologies such as HTML5, CSS3, and JavaScript for cross-platform development, avoiding each mobile platforms' native development language. Applications execute within wrappers targeted to each platform, and rely on standards-compliant API bindings to access each device's sensors, data, and network status.

Vue Native

Vue Native

Vue Native is a mobile framework to build truly native mobile app using Vue.js. Its is designed to connect React Native and Vue.js. Vue Native is a wrapper around React Native APIs, which allows you to use Vue.js and compose rich mobile User Interface.

Shoutem UI

Shoutem UI

Shoutem UI is a set of styleable components that enables you to build beautiful React Native applications for iOS and Android. All of our components are built to be both composable and customizable.

Related Comparisons

Bootstrap
Materialize

Bootstrap vs Materialize

Laravel
Django

Django vs Laravel vs Node.js

Bootstrap
Foundation

Bootstrap vs Foundation vs Material UI

Node.js
Spring Boot

Node.js vs Spring-Boot

Liquibase
Flyway

Flyway vs Liquibase