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 startWhy 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 validationOver-the-air updates

Tools - Expo Snack
Detaching?
$ exp detachIf 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
React Native with Expo
- 1,403
