Expo SDK ve React Native

ile mobil uygulama geliştirme

Sezgi Şensöz

FTK - 30 Haziran 2018

Sezgi Şensöz

Lead Front-End Developer @Protel

mefallit

ssensoz

  • Formerly @Tuttur,  @TartNewMedia
  • JavaScript Lover, #React fan

React Native

  • Native Mobile Apps with JavaScript
  • One Framework, Multiple Platforms
  • Nearly identical performance to native
  • Fast development
  • Community
  • Hot Loading

Cons?

  • Still need to know Native Info
  • Google vs Apple design
  • Can not replace a native Look and Feel
  • Which third party component(s)?

CRNA

First announcement: March 13, 2017

Run in the Expo client

...access to most of the Expo APIs

$ npm i -g create-react-native-app
$ create-react-native-app my-project
$ cd my-project
$ npm start

Why Expo?

FREE

Open Source

Only JavaScript

https://expo.io/

Why Expo?

Run XDE on Mac, Windows, and Linux

Why Expo?

FingerPrint Camera BarCodeScanner Location
Notifications ImagePicker Social Logins Contacts
Calendar Audio Permissions Brightness
Admob FaceDetector MapView DeviceMotion
Localization Speech GestureHandler FileSystem

and others..

Lifecycle

Tools - Expo Client

Run your projects before you deploy. Open projects by scanning QR codes or SMS link

Easy Build

//app.json

{
   "expo": {
    "name": "Your App Name",
    "icon": "./path/to/your/app-icon.png",
    "version": "1.0.0",
    "slug": "your-app-slug",
    "sdkVersion": "XX.0.0",
    "scheme" : "deeplink"
    "ios": {
      "bundleIdentifier": "com.yourcompany.yourappname",
      "supportsTablet": true,
    },
    "android": {
      "package": "com.yourcompany.yourappname"
    }
   }
 }

exp build:ios 

exp build:android

Easy Build

> exp build:ios

[exp] Making sure project is set up correctly...
[exp] Your project looks good!
[exp] Checking if current build exists...

[exp] No currently active or previous builds for this project.
? How would you like to upload your credentials?
 (Use arrow keys)
❯ Expo handles all credentials, you can still provide overrides
  I will provide all the credentials and files needed, Expo does no validation

Over-the-air updates

Tools - Expo Snack

Detaching?

$ exp detach

If your Expo project needs a native module that Expo doesn't currently support:

Creates RN app with ExpoKit

Grows everyday

Why not Expo?

- Don't support background code execution (Ex: geolocation, play audio in the background)

But it's in WIP

- Not all iOS and Android APIs are available in Expo (like Bluetooth)

Some of them WIP and also you can detach your app

- need to keep your app size extremely lean, Expo may not be the best choice.

20mb in Android, 33mb in IOS   --> :((

But it is WIP :)

As a conclusion..

We love JavaScript :)

Mobile First & Over 70% usage of Mobile usage

Expo gives us easiest way of mobile development

Questions?

Looking for FE devs!

Contact: ssensoz@protel.com.tr

Thank you

mefallit

ssensoz

Feel free to contact:

React Native with Expo

By Sezgi Şensöz Tulum