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
React Native with Expo
- 1,265