SlideShare a Scribd company logo
React Native(Expo)で始める
ゆとりネイティブアプリ開発
自己紹介
シュトウヒロアキ
ココナラ入社後、ココナラハンドメイド・ココナラ法律相談
等の新規サービスの開発のリーダーとして従事。
ワタシ
アベマサト
ココナラ入社後、ココナラの開発に従事。特にマイクロサービ
ス化を提言し、サービス側のみならずAPI開発等マルチに担当
。
弊社
阿部
Expoとは?
エキスポ(expo)とは、英語で博覧会を意味する「exposition
」の略。特に日本では、国際博覧会を意味する「Universal
Exposition」の略としても用いられる。
博
覧
会
の
予
感
!!!
前身はExponentというプロジェクト
※どちらにしろググラビリティは最悪である
今北産業
• ReactNative上で完全に「JavaScriptのみ」でiOS/Androidアプリ
作れるようになる開発/ビルド環境
• ネイティブプラグインは一切使えない世界
(JavaScript天国/地獄)
• QRコード(URL)経由で簡単に共有、実機等で動かしたりでき
る
三
行
で
は
語
れ
な
い
!!!
ということで今日はExpoのお話
と、その前に
なぜReact Nativeを選んだのか?
時は2017年初夏
ココナラの新規事業開発チームの体制
…
ココナラチーム 新規事業開発チーム
⇐ ワタシ
⇐ 助っ人さんたち
(当時)
CMやるよ!
マジか!
Web作ってる場合じゃねぇ!!
なぜなら…
ココナラハンドメイドをローンチして3ヶ月、
なかなか伸びない利用者数を何とかしたいと思ったワタシは…
※ イメージです
ワタシ
やっぱ、いまどき
アプリっしょ!
ワタシ
CMでブーストしてやんよ!
!
と、安易に考えていた…
ココナラの新規事業開発チームの体制
…
ココナラチーム 新規事業開発チーム
⇐ ワタシ
⇐ 助っ人さんたち
(2017年夏)
そう言えば、我がチームにはモバイルアプリを作れる人が
居なかったんだった…
ワタシ
• Webエンジニア
• モバイルアプリ開発経験ナシ
• (iOSだけ習作レベルならアリ)
• Webエンジニア
• 翌月で契約終了…
助っ人さんたち
ということで…
ReactならWebの技術だし
何とかなんじゃね?
ワタシ
React未経験
弊社
阿部
React未経験
ワタシ
本体Web担当エンジニアをそそのかし…
ReactNativeで
ハンドメイドのアプリ作ろ
ーぜ
イイネ!ヤローゼ!タノシ
ソー!
以下の布陣で、開発スタート!
ワ
タ
シ
iOSアプリ
API開発(サーバー側)
弊
社
阿
部
React Nativeとは?
ReactはFacebookが開発したJavaScriptのviewライブラリであ
り、React Nativeは同じ世界観でiOS/Androidのネイティブアプ
リを開発できるようにしたものである
概要
他の多くのクロスプラットフォームを謳う開発方法(Cordova
やIonic)と違い、WebViewではなくネイティブで描画される
のが大きな利点となる。
パフォーマンス
開発体験
• Chromeのディベロッパーツールでデバッグを行える
• 画面上でCommand + Rを行うだけで即変更を反映
• Hot Code Pushができるのでレビューを通さなくておk
(AppleはJavaScriptベースの変更を認めている)
https://github.com/Microsoft/react-native-code-push
• Reactが使える人なら難なく開発に着手できる
(learn once, write anywhere)
信頼性
FB製であり、名だたるサービスがプロダクションで使っている
with
Expoのすごいところ
Native層を一切意識させないディレクトリ構成
$ create-react-native-app MyApp
$ cd MyApp
$ ls -l
create-react-native-app
ヤバくね?
Xcode、Android Studioなどの
複雑怪奇なGUIを覚えなくてOK
設定はapp.jsonに集約
https://docs.expo.io/versions/latest/guides/configuration.html
{
"expo": {
"name": "My app",
"slug": "my-app",
"sdkVersion": "25.0.0",
"privacy": “public"
…
}
}
コマンド一発で本番用ビルド
$ exp build:android
or
$ exp build:ios
※Expoの世界では「Standalone Apps」と呼んでいる
Expoクライアントで実機確認・共有
QRコードをExpoクライアントアプリで読み込めば実行可能
■iOS
https://itunes.apple.com/us/app/expo-client/id982107779?mt=8
■Android
https://play.google.com/store/apps/details?id=host.exp.exponen
t&hl=ja
ね、簡単でしょ?
ディレクトリ構造比較
Xcodeのみ vs React Nativeのみ vs Expo
$ tree
Xcode
素のReact Native
素のReact Native(2階層限定)
Expo
実演コーナー
(できる方はやってみてください)
$ create-react-native-app HogeApp
$ cd HogeApp
$ npm start
or
$ yarn start
$ npm install -g create-react-native-app
or
$ yarn global add create-react-native-app
少しだけ応用編
Expo Push Notification
ExpoでPush通知を実現するためには
難しいことは必要ありません
基本的に…
自分たちのサーバにExpoトークン(iOS,Android共通)を
送信して、ExpoAPIにぶん投げるだけ
ここ重要
実例紹介
import { } from 'expo';
gem 'exponent-server-sdk'
Expoトークンの流れ
感想
そうは言っても、当時は本格的にアプリ作るには
かなりの苦労がありました…
• 公式推薦のナビゲーション用ライブラリである「React
Navigation」がβ版で恐ろしいほどバグだらけ
• デバッグツールのバグ
• その他パッケージのバグ
• Expoビルドサーバの不具合
• WebViewとのつなぎ込み
etc…
ということで、再度、
今北産業
• 銀の
• 弾丸は
• ない
ココナラでは気軽に人柱になれる
フットワークの軽いエンジニアを
募集しております
(/ω・\)チラッ
いこうよ!おいでよ!Expo!

More Related Content

Similar to React Native(Expo)ではじめる"ゆとり"モバイルアプリ開発

印刷APIのサポート事情 - DevRel Meetup in Tokyo #17
印刷APIのサポート事情 - DevRel Meetup in Tokyo #17印刷APIのサポート事情 - DevRel Meetup in Tokyo #17
印刷APIのサポート事情 - DevRel Meetup in Tokyo #17
Yasunori Kihara
 
スポットライトとフリークアウトの創業時事業計画をレビューしながら学ぶ、事業計画の作り方と効用
スポットライトとフリークアウトの創業時事業計画をレビューしながら学ぶ、事業計画の作り方と効用スポットライトとフリークアウトの創業時事業計画をレビューしながら学ぶ、事業計画の作り方と効用
スポットライトとフリークアウトの創業時事業計画をレビューしながら学ぶ、事業計画の作り方と効用
schoowebcampus
 
Swiftで説明する「モナド」:Swiftにおける関数型プログラミングの使い方
Swiftで説明する「モナド」:Swiftにおける関数型プログラミングの使い方Swiftで説明する「モナド」:Swiftにおける関数型プログラミングの使い方
Swiftで説明する「モナド」:Swiftにおける関数型プログラミングの使い方
Roy Kim
 
APIStudy#1-経験から学ぶkintone.api
APIStudy#1-経験から学ぶkintone.apiAPIStudy#1-経験から学ぶkintone.api
APIStudy#1-経験から学ぶkintone.api
Takashi Ushirosako
 
App inventorで想いを形に
App inventorで想いを形にApp inventorで想いを形に
App inventorで想いを形に
Takeaki Tada
 
Onlab [growth] hackers conference 2013 Ryosuke Matsumoto
Onlab [growth] hackers conference 2013 Ryosuke MatsumotoOnlab [growth] hackers conference 2013 Ryosuke Matsumoto
Onlab [growth] hackers conference 2013 Ryosuke MatsumotoRyosuke Matsumoto
 
Meteor勉強会発表資料「MeteorでiOSアプリを作ろう!」
Meteor勉強会発表資料「MeteorでiOSアプリを作ろう!」Meteor勉強会発表資料「MeteorでiOSアプリを作ろう!」
Meteor勉強会発表資料「MeteorでiOSアプリを作ろう!」
Nobutaka OSHIRO
 
Vagrant + VirtualBox + Chef を使った環境構築方法について
Vagrant + VirtualBox + Chef を使った環境構築方法についてVagrant + VirtualBox + Chef を使った環境構築方法について
Vagrant + VirtualBox + Chef を使った環境構築方法について
Shinya Kinoshita
 
EventHubサービス概要資料
EventHubサービス概要資料EventHubサービス概要資料
EventHubサービス概要資料
mktg17
 
バリューハッカソン@八王子
バリューハッカソン@八王子バリューハッカソン@八王子
バリューハッカソン@八王子
Yuichi Terada
 
DevLOVE関西(No.62) 知っておいて損はないエンタープライズiOS導入のいろは
DevLOVE関西(No.62) 知っておいて損はないエンタープライズiOS導入のいろはDevLOVE関西(No.62) 知っておいて損はないエンタープライズiOS導入のいろは
DevLOVE関西(No.62) 知っておいて損はないエンタープライズiOS導入のいろは
feedtailor
 
kintone 連携スマホアプリの開発・配布体験
kintone 連携スマホアプリの開発・配布体験kintone 連携スマホアプリの開発・配布体験
kintone 連携スマホアプリの開発・配布体験
アシアル株式会社
 
Canonical vtj seminar 20131120
Canonical   vtj seminar 20131120Canonical   vtj seminar 20131120
Canonical vtj seminar 20131120Takenori Matsumoto
 
Canonical様講演 OpenStack最新情報セミナー 2013年11月
Canonical様講演 OpenStack最新情報セミナー 2013年11月Canonical様講演 OpenStack最新情報セミナー 2013年11月
Canonical様講演 OpenStack最新情報セミナー 2013年11月
VirtualTech Japan Inc.
 
kintone連携スマホアプリの開発・配布体験_生形 可奈子氏
kintone連携スマホアプリの開発・配布体験_生形 可奈子氏kintone連携スマホアプリの開発・配布体験_生形 可奈子氏
kintone連携スマホアプリの開発・配布体験_生形 可奈子氏
kintone papers
 
CES 2016 report ~スマートホーム系ベンチャー動向~
CES 2016 report  ~スマートホーム系ベンチャー動向~CES 2016 report  ~スマートホーム系ベンチャー動向~
CES 2016 report ~スマートホーム系ベンチャー動向~
Hiroaki Watanabe
 
柏市におけるIoT柏市ビジネスの創出について
柏市におけるIoT柏市ビジネスの創出について柏市におけるIoT柏市ビジネスの創出について
柏市におけるIoT柏市ビジネスの創出について
kashiwanoha-iot
 
OpenStack最新技術情報セミナー − Canonical
OpenStack最新技術情報セミナー − CanonicalOpenStack最新技術情報セミナー − Canonical
OpenStack最新技術情報セミナー − Canonical
Takeshi Nakajima
 
Flex入門
Flex入門Flex入門
Flex入門
Shinjiro Watanabe
 
はじめてのReactiveCocoa
はじめてのReactiveCocoaはじめてのReactiveCocoa
はじめてのReactiveCocoa
章平 福井
 

Similar to React Native(Expo)ではじめる"ゆとり"モバイルアプリ開発 (20)

印刷APIのサポート事情 - DevRel Meetup in Tokyo #17
印刷APIのサポート事情 - DevRel Meetup in Tokyo #17印刷APIのサポート事情 - DevRel Meetup in Tokyo #17
印刷APIのサポート事情 - DevRel Meetup in Tokyo #17
 
スポットライトとフリークアウトの創業時事業計画をレビューしながら学ぶ、事業計画の作り方と効用
スポットライトとフリークアウトの創業時事業計画をレビューしながら学ぶ、事業計画の作り方と効用スポットライトとフリークアウトの創業時事業計画をレビューしながら学ぶ、事業計画の作り方と効用
スポットライトとフリークアウトの創業時事業計画をレビューしながら学ぶ、事業計画の作り方と効用
 
Swiftで説明する「モナド」:Swiftにおける関数型プログラミングの使い方
Swiftで説明する「モナド」:Swiftにおける関数型プログラミングの使い方Swiftで説明する「モナド」:Swiftにおける関数型プログラミングの使い方
Swiftで説明する「モナド」:Swiftにおける関数型プログラミングの使い方
 
APIStudy#1-経験から学ぶkintone.api
APIStudy#1-経験から学ぶkintone.apiAPIStudy#1-経験から学ぶkintone.api
APIStudy#1-経験から学ぶkintone.api
 
App inventorで想いを形に
App inventorで想いを形にApp inventorで想いを形に
App inventorで想いを形に
 
Onlab [growth] hackers conference 2013 Ryosuke Matsumoto
Onlab [growth] hackers conference 2013 Ryosuke MatsumotoOnlab [growth] hackers conference 2013 Ryosuke Matsumoto
Onlab [growth] hackers conference 2013 Ryosuke Matsumoto
 
Meteor勉強会発表資料「MeteorでiOSアプリを作ろう!」
Meteor勉強会発表資料「MeteorでiOSアプリを作ろう!」Meteor勉強会発表資料「MeteorでiOSアプリを作ろう!」
Meteor勉強会発表資料「MeteorでiOSアプリを作ろう!」
 
Vagrant + VirtualBox + Chef を使った環境構築方法について
Vagrant + VirtualBox + Chef を使った環境構築方法についてVagrant + VirtualBox + Chef を使った環境構築方法について
Vagrant + VirtualBox + Chef を使った環境構築方法について
 
EventHubサービス概要資料
EventHubサービス概要資料EventHubサービス概要資料
EventHubサービス概要資料
 
バリューハッカソン@八王子
バリューハッカソン@八王子バリューハッカソン@八王子
バリューハッカソン@八王子
 
DevLOVE関西(No.62) 知っておいて損はないエンタープライズiOS導入のいろは
DevLOVE関西(No.62) 知っておいて損はないエンタープライズiOS導入のいろはDevLOVE関西(No.62) 知っておいて損はないエンタープライズiOS導入のいろは
DevLOVE関西(No.62) 知っておいて損はないエンタープライズiOS導入のいろは
 
kintone 連携スマホアプリの開発・配布体験
kintone 連携スマホアプリの開発・配布体験kintone 連携スマホアプリの開発・配布体験
kintone 連携スマホアプリの開発・配布体験
 
Canonical vtj seminar 20131120
Canonical   vtj seminar 20131120Canonical   vtj seminar 20131120
Canonical vtj seminar 20131120
 
Canonical様講演 OpenStack最新情報セミナー 2013年11月
Canonical様講演 OpenStack最新情報セミナー 2013年11月Canonical様講演 OpenStack最新情報セミナー 2013年11月
Canonical様講演 OpenStack最新情報セミナー 2013年11月
 
kintone連携スマホアプリの開発・配布体験_生形 可奈子氏
kintone連携スマホアプリの開発・配布体験_生形 可奈子氏kintone連携スマホアプリの開発・配布体験_生形 可奈子氏
kintone連携スマホアプリの開発・配布体験_生形 可奈子氏
 
CES 2016 report ~スマートホーム系ベンチャー動向~
CES 2016 report  ~スマートホーム系ベンチャー動向~CES 2016 report  ~スマートホーム系ベンチャー動向~
CES 2016 report ~スマートホーム系ベンチャー動向~
 
柏市におけるIoT柏市ビジネスの創出について
柏市におけるIoT柏市ビジネスの創出について柏市におけるIoT柏市ビジネスの創出について
柏市におけるIoT柏市ビジネスの創出について
 
OpenStack最新技術情報セミナー − Canonical
OpenStack最新技術情報セミナー − CanonicalOpenStack最新技術情報セミナー − Canonical
OpenStack最新技術情報セミナー − Canonical
 
Flex入門
Flex入門Flex入門
Flex入門
 
はじめてのReactiveCocoa
はじめてのReactiveCocoaはじめてのReactiveCocoa
はじめてのReactiveCocoa
 

React Native(Expo)ではじめる"ゆとり"モバイルアプリ開発