Need advice about which tool to choose?Ask the StackShare community!

CodePush

65
206
+ 1
1
Expo

713
676
+ 1
66
Add tool

CodePush vs Expo: What are the differences?

CodePush vs Expo

CodePush and Expo are both tools used for mobile app development, but they have key differences that set them apart from each other.

  1. Deployment process: CodePush allows for faster app updates by pushing code updates directly to the user's device, avoiding the need for App Store or Google Play updates. Expo, on the other hand, requires a build and submission process to the app stores for updates to be available to users.

  2. Native access: CodePush allows developers to access native APIs directly in their JS code, providing more flexibility and control over the app's functionality. Expo, on the other hand, provides a set of pre-built APIs that abstract away the native code, limiting the access to certain native functionalities.

  3. Size and performance: CodePush only pushes updates to the relevant parts of the app, resulting in smaller update sizes and faster download times. Expo, however, requires users to download the entire app with each update, resulting in larger update sizes and potentially slower performance.

  4. Developing environment: CodePush integrates with popular development tools like Visual Studio Code, allowing developers to use their preferred tools for app development. Expo has its own development environment, which includes features like live-reloading and device simulators, providing a more streamlined development experience.

  5. Offline support: CodePush supports offline functionality, allowing users to use the app even without an internet connection. Expo, on the other hand, does not have built-in offline support and requires an internet connection for the app to function properly.

  6. Supported platforms: CodePush supports both iOS and Android platforms, offering a cross-platform solution. Expo also supports both platforms, but it has limitations when it comes to certain native functionalities, making it more suitable for simpler applications.

In summary, CodePush is a powerful tool for code updates, providing flexibility, smaller updates, and native access. Expo, on the other hand, offers a streamlined development experience with its own environment and pre-built APIs but lacks some native functionalities and offline support.

Advice on CodePush and Expo
Needs advice
on
ExpoExpoReact NativeReact Native
and
ReduxRedux
in

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

See more
Replies (1)
Javier Silva Ortíz
Senior Full Stack Developer at Aleph Engineering · | 6 upvotes · 305.1K views
Recommends
on
ReduxRedux

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.

See more
Manage your open source components, licenses, and vulnerabilities
Learn More
Pros of CodePush
Pros of Expo
  • 1
    Only JS changes will be reflected
  • 15
    Free
  • 13
    Hot Reload
  • 9
    Easy to learn
  • 9
    Common ios and android app setup
  • 6
    Open Source
  • 6
    Streamlined
  • 5
    Builds into a React Native app
  • 2
    PWA supported
  • 1
    Plugins for web use with Next.js

Sign up to add or upvote prosMake informed product decisions

- No public GitHub repository available -

What is CodePush?

CodePush is a cloud service that enables Cordova and React Native developers to deploy mobile app updates directly to their users’ devices. It works by acting as a central repository that developers can publish certain updates to (e.g. JS, HTML, CSS and image changes), and that apps can query for updates from (using our provided client SDKs).

What is Expo?

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.

Need advice about which tool to choose?Ask the StackShare community!

What companies use CodePush?
What companies use Expo?
Manage your open source components, licenses, and vulnerabilities
Learn More

Sign up to get full access to all the companiesMake informed product decisions

What tools integrate with CodePush?
What tools integrate with Expo?

Sign up to get full access to all the tool integrationsMake informed product decisions

What are some alternatives to CodePush and Expo?
Bitbucket
Bitbucket gives teams one place to plan projects, collaborate on code, test and deploy, all with free private Git repositories. Teams choose Bitbucket because it has a superior Jira integration, built-in CI/CD, & is free for up to 5 users.
fastlane
fastlane lets you define and run your deployment pipelines for different environments. It helps you unify your app’s release process and automate the whole process. fastlane connects all fastlane tools and third party tools, like CocoaPods.
AppHub
Designed to give app developers a new way of deploying and updating apps, AppHub allows users to change their app on the fly. Deploys across iOS, Android, desktop and web.
Firebase
Firebase is a cloud service designed to power real-time, collaborative applications. Simply add the Firebase library to your application to gain access to a shared data structure; any changes you make to that data are automatically synchronized with the Firebase cloud and with other clients within milliseconds.
JavaScript
JavaScript is most known as the scripting language for Web pages, but used in many non-browser environments as well such as node.js or Apache CouchDB. It is a prototype-based, multi-paradigm scripting language that is dynamic,and supports object-oriented, imperative, and functional programming styles.
See all alternatives