Tuesday, April 23, 2019

Understanding Expo for React Native

Expo is a great starting point. You can easily configure and launch a basic app and learn more about React Native. Building apps without Expo gives you more flexibility in development, reduces dependencies, and allows you to integrate with mobile devices in a better way. In terms of popularity, Expo is definitely a popular solution for beginners, However, if you want to become a serious RN developer, you should build RN apps without Expo (at least for now).

If you’re wondering if it’s still a good idea to start with React Native, in our opinion it is a big YES. React Native is more and more popular among many companies. Software houses are seeing a lot of demand for services which require knowledge of React Native. If you are not an iOS user or you don’t have MAC and you want to see that how your app looks and works in iOS device or even if you are both iOS and Android user and want to check that how your app looks and works in both devices then Expo is for you.

What is Expo?

Expo is a toolchain built around React Native to help you quickly start an app. It provides a set of tools that simplify the development and testing of React Native app and arms you with the components of users interface and services that are usually available in third-party native React Native components. With Expo you can find all of them in Expo SDK. Expo is an open source, freely available SDK, which is used to build your cross platform react native apps. Expo also provides online playground for react native apps, in which you can write code for your apps and check in both iOS and Android devices. Yes, if you don’t have a MAC or iOS system then don’t get disappointed, just try Expo.

Online Expo playground provides these awesome features:

  1. Freely write your code.
  2. Save your work.
  3. Provides output of your code in both iOS and Android devices.
  4. Allows you to Embed your code with output.
  5. Provides QR Code to run your app in real iOS and Android device.
  6. Provides all advanced native components, which are not yet developed by facebook. Such as: Audio, BarCodeScanner, BlurView, Facebook Banner Ad, Facebook Login and many more. If  your are using online playground  just drag and drop those components, which you want to use.
  7. Allows you to Export your code for XDE. XDE stands for Expo Development Environment.
  8. Shows errors and logs during development.
  9. Select Expo SDK version.
  10. Allows you to change theme of code editor. Only provides two themes light and dark.

Expo advantages :

  1. Fast and simple project installation (in just several minutes)
  2. A convenient utility Expo CLI that opens in a browser and helps to check the app status, devices it runs on, scan QR code or send the link via email to open the app in Expo client, switch the production / development mode and publish your app on Expo server.
  3. Expo client is an app that is installed from Google Play and Apple Store on your phone. It allows opening projects during development without build via XCode or Android Studio. With Expo client, you can send your app to others for review, which is very useful when testing as you can see all changes in code in Expo client without creating apk or ipa files.
  4. Expo SDK offers the collection of ready solutions, such as working with the device accelerometer, camera, notifications, geolocation, etc. You can see them in the section SDK API Reference. Expo team regularly updates SDK with new solutions.
  5. Over the Air - very handy Expo feature for updating your app over the air without repeated deployment on Google Play or Apple Store. When users open your app, it will automatically update new changes in JavaScript code. However, such things as app icon, its name and other settings are not updated via OTA. You can read about it in more detail in the Limitations section.
  6. You can develop apps for ios without macOS with ios device and test them with Expo client
  7. Automatic management of certificates and app signatures

Expo drawbacks :

  1. You can’t add native modules written in Objective-C, Swift, Java, Kotlin
  2. You can’t use packages with native languages that require linking
  3. The app has a big size as it is built with all Expo SDK solutions, even those you don’t use. An application with Hello World weighs 25 MB
  4. Often everything works well in Expo client during testing, but certain problems may occur in a standalone app.

You can follow this link to open Expo react native playground.

Expo - SDK and Popular React Native Playground

Note: If you want to run your app in real iOS and Android devices than Expo provides mobile apps for both iOS and Android. You can download Expo app for Android from Google App and for iOS from App Store.

Run your app in Real Devices:

  • Complete your code work in Expo playground, save your work and click on QR Code button.
  • Open Expo app in your device and choose Scan QR Code option

Understanding Expo for React Native

  • Scan QR Code from your device’s Expo app camera to run app in your real device and finally you will get running app in your real device.
Understanding Expo for React Native
This is all about Expo - SDK and Popular React Native Playground. Thank you for reading this article, and if you have any problem, have a another better useful solution about this article, please write message in the comment section.

1 comment: