SlideShare a Scribd company logo
1 of 29
React Nativeで
YouTubeを埋め込もうとしたら
Androidで一日潰した話
2017.4.21
Yugo Matsumoto / @ymmmo1
一日潰したやつについて
• Yugo Matsumoto / @ymmmo1
• NHN comicoでフロントエンドエンジニア
• 最近、monacaで友人が作っていたアプリを引き継いで、RNでリファク
タし始めました。
• 大体、このアイコンで活動します。→
いい感じにできたIOSの話
• まず、Google先生に相談
• 実例もなければ、記事もない。
• IOS自体はどうしているのか調べる。
• UIWebViewを使うと簡単に埋め込めるよって書いてあった!
• React Nativeでできんの?
React NativeのWebViewは
UIWebViewのようです!
https://github.com/facebook/react-
native/blob/da9a712a9e17942dcd05b8d955f0764c2026a4ad/React/Views
/RCTWebView.m
次、唐突にコードです。
デモりたいけど時間ないから
スクショ貼っときます
• もうこれでいい気がする。
• こんな簡単なんて、なんてReact Nativeは素晴らしいんだ!
• 高さを設定しないと潰れてしまうので、
Dimensionsを利用して、横幅を取得し、 ☓ 0.5625 する
• 0.5625はWEBでレスポンシブYouTube埋め込みをしようとしたときに
使う数値
マジ簡単だった
いい感じにできなかったAndroidの
話
• どんな感じなのか見せたいがもう環境がないため、見せられないで
す。すいやせん。
• ざっと説明すると、
再生ボタンをおしても、黒背景に読み込みのぐるぐるがずっと表示さ
れていて再生することができない。
とりあえず、Androidで見てみる。
おまえんとこのOSだろうが!
• 案の定、React Nativeはどこ探しても有力な手がかりはなかった。
• Androidはどうなのか調べる。
• AndroidのWebViewは微妙らしく、YouTubeの再生はブラウザのみで
はできないらしい。
• なにが必要なの?
気を取り直して調べる
Androidで
YouTubeを再生するには
YouTubeのアプリが必要
• たしかに、Androidの携帯は基本的に、Googleアプリ系はプリインス
トールされていた気がする。
• 僕は、Genymotionのシミュレーターを使っていたので、アプリ入って
いませんでした。
• 実機で確認している方は関係のない話かもしれない。
ほう…
Qiitaの記事を参考にして、
Play StoreをD&Dでインストール
http://qiita.com/sampo02/items/63b4ed1f19102a838932
• AndroidでWebViewを利用したYouTube再生ができた!
• これもまた、見せたいのですが環境がもうないので
見せられないです。
• なぜ再生できたのに環境がないのか、
そう、まだ問題があります…
お前んとこの(ry
再生できました。
全画面再生ができない!!
• 調べてみると、AndroidはWebViewでフルスクリーンはなにかしないと
見れないようでした。
• RNのIssueにも上がっていたが、解決せず、そもそもAndroidの問題
だからRN関係ない?
• じゃあどうするの??困ってるんですけど!!
全画面再生ができないのはきつい
YouTubeAPIを使えと
Googleが言っている気がした。
• API用意しているんだから、WebViewじゃなくてこっち使えってメッセー
ジと捉えれば、まぁ言っていることはわかる気がする。
• APIを利用するということは、Javaを書くということか…
• フロントからきた僕にとっては、YouTubeの埋め込みでこんな重たそ
うになるとは…
• 諦めるのはまだ早いので、何かないかと探してみました。
React Native YouTube
https://github.com/inProgress-team/react-native-youtube
• YouTubeAPIを利用して、YouTubeのComponentを返してくれるありが
たいやつ。
• 使い方が若干敷居高いような気がするけど、GitのREADMEは古い。
騙されちゃいけない。
• 下記のURLを参考にすると、react-native-linkだけで使えるようにな
る。簡単!
https://www.npmjs.com/package/react-native-youtube-fork
RN YouTubeとは…
ちなみに、YouTube APIは動画の上に何かを
載せると怒ります。
左の例だと「矯正」の部分で怒ります。
なので、対策取ります。
対策と言ってもサムネイル画像を取得して、そ
の上に再生アイコンを配置して、
クリックされたら動画のみを配置した
Componentに遷移させるだけです。
できた!!
• 使い方自体はすごく簡単だった。
• 使うときに調べればわかるけど、APIキーが必要なので、
ネットで調べて取得しよう!
• IOSにも対応している…
React Native YouTube
IOSにも対応しているはずなんですけど、
僕は画面真っ白で使うことができませんでした。
もしこの中で使えた人いたら教えてください…
ちょっと困ってます。
• 1日潰したのは技術ではなく、調べること自体が大変だったためだと
思う。
• 案外探してみると、優しいエンジニアはいる。
• シミュレーターを使うときはプリインストールアプリは入れておいたほ
うが困ることないかも。Google Play入ってるとなにかと便利。
• 環境ないとか言ってるけど、元に戻すのめんどうだっただけ。
まとめ
ご清聴ありがとうございました!!

More Related Content

What's hot

LIGにおけるフロントエンドチーム構築
LIGにおけるフロントエンドチーム構築LIGにおけるフロントエンドチーム構築
LIGにおけるフロントエンドチーム構築Hayashi Yuichi
 
Front-end package managers
Front-end package managersFront-end package managers
Front-end package managersHayashi Yuichi
 
One-time Binding & $digest
One-time Binding & $digestOne-time Binding & $digest
One-time Binding & $digestHayashi Yuichi
 
フロントエンドエンジニアからエンジニアになった話
フロントエンドエンジニアからエンジニアになった話フロントエンドエンジニアからエンジニアになった話
フロントエンドエンジニアからエンジニアになった話大和 火河
 
今後のWeb開発の未来を考えてangular jsにしました(拡大版)
今後のWeb開発の未来を考えてangular jsにしました(拡大版)今後のWeb開発の未来を考えてangular jsにしました(拡大版)
今後のWeb開発の未来を考えてangular jsにしました(拡大版)Mitsuru Ogawa
 
Angularモダンweb開発セミナー紹介 20170923
Angularモダンweb開発セミナー紹介 20170923Angularモダンweb開発セミナー紹介 20170923
Angularモダンweb開発セミナー紹介 20170923Staffnet_Inc
 
Web開発初心者がReactをチームに導入して半年経った
Web開発初心者がReactをチームに導入して半年経ったWeb開発初心者がReactをチームに導入して半年経った
Web開発初心者がReactをチームに導入して半年経ったkazuki matsumura
 
これからフロントエンジニアを目指すあなたへ
これからフロントエンジニアを目指すあなたへこれからフロントエンジニアを目指すあなたへ
これからフロントエンジニアを目指すあなたへMitsuru Ogawa
 
社内LTネタ ReactNative
社内LTネタ ReactNative社内LTネタ ReactNative
社内LTネタ ReactNativeOguri Toru
 
ReactNativeを語る勉強会
ReactNativeを語る勉強会ReactNativeを語る勉強会
ReactNativeを語る勉強会yohei sugigami
 
今後のWeb開発の未来を考えてangularJSにしました
今後のWeb開発の未来を考えてangularJSにしました今後のWeb開発の未来を考えてangularJSにしました
今後のWeb開発の未来を考えてangularJSにしましたMitsuru Ogawa
 
【2017早めの夏休み自由研究】SPAとサーバーレスについて
【2017早めの夏休み自由研究】SPAとサーバーレスについて【2017早めの夏休み自由研究】SPAとサーバーレスについて
【2017早めの夏休み自由研究】SPAとサーバーレスについてkazuki matsumura
 
アグリノートを支える技術
アグリノートを支える技術アグリノートを支える技術
アグリノートを支える技術Yukiya Nakagawa
 
noteをAngularJSで構築した話
noteをAngularJSで構築した話noteをAngularJSで構築した話
noteをAngularJSで構築した話Kon Yuichi
 
開発ライフサイクルから見たAngularJS
開発ライフサイクルから見たAngularJS開発ライフサイクルから見たAngularJS
開発ライフサイクルから見たAngularJSMizuho Sakamaki
 
ソースコードをAAに変換するやつやってみた
ソースコードをAAに変換するやつやってみたソースコードをAAに変換するやつやってみた
ソースコードをAAに変換するやつやってみたTakahashi Koki
 
Riot.jsと仲良くなるための僕的tips
Riot.jsと仲良くなるための僕的tipsRiot.jsと仲良くなるための僕的tips
Riot.jsと仲良くなるための僕的tipsKeisuke Imai
 

What's hot (20)

LIGにおけるフロントエンドチーム構築
LIGにおけるフロントエンドチーム構築LIGにおけるフロントエンドチーム構築
LIGにおけるフロントエンドチーム構築
 
CSS Living StyleGuide
CSS Living StyleGuideCSS Living StyleGuide
CSS Living StyleGuide
 
Front-end package managers
Front-end package managersFront-end package managers
Front-end package managers
 
One-time Binding & $digest
One-time Binding & $digestOne-time Binding & $digest
One-time Binding & $digest
 
フロントエンドエンジニアからエンジニアになった話
フロントエンドエンジニアからエンジニアになった話フロントエンドエンジニアからエンジニアになった話
フロントエンドエンジニアからエンジニアになった話
 
今後のWeb開発の未来を考えてangular jsにしました(拡大版)
今後のWeb開発の未来を考えてangular jsにしました(拡大版)今後のWeb開発の未来を考えてangular jsにしました(拡大版)
今後のWeb開発の未来を考えてangular jsにしました(拡大版)
 
Angularモダンweb開発セミナー紹介 20170923
Angularモダンweb開発セミナー紹介 20170923Angularモダンweb開発セミナー紹介 20170923
Angularモダンweb開発セミナー紹介 20170923
 
Web開発初心者がReactをチームに導入して半年経った
Web開発初心者がReactをチームに導入して半年経ったWeb開発初心者がReactをチームに導入して半年経った
Web開発初心者がReactをチームに導入して半年経った
 
俺とAngular JS 2
俺とAngular JS 2俺とAngular JS 2
俺とAngular JS 2
 
これからフロントエンジニアを目指すあなたへ
これからフロントエンジニアを目指すあなたへこれからフロントエンジニアを目指すあなたへ
これからフロントエンジニアを目指すあなたへ
 
社内LTネタ ReactNative
社内LTネタ ReactNative社内LTネタ ReactNative
社内LTネタ ReactNative
 
ReactNativeを語る勉強会
ReactNativeを語る勉強会ReactNativeを語る勉強会
ReactNativeを語る勉強会
 
Ng mtg#3
Ng mtg#3Ng mtg#3
Ng mtg#3
 
今後のWeb開発の未来を考えてangularJSにしました
今後のWeb開発の未来を考えてangularJSにしました今後のWeb開発の未来を考えてangularJSにしました
今後のWeb開発の未来を考えてangularJSにしました
 
【2017早めの夏休み自由研究】SPAとサーバーレスについて
【2017早めの夏休み自由研究】SPAとサーバーレスについて【2017早めの夏休み自由研究】SPAとサーバーレスについて
【2017早めの夏休み自由研究】SPAとサーバーレスについて
 
アグリノートを支える技術
アグリノートを支える技術アグリノートを支える技術
アグリノートを支える技術
 
noteをAngularJSで構築した話
noteをAngularJSで構築した話noteをAngularJSで構築した話
noteをAngularJSで構築した話
 
開発ライフサイクルから見たAngularJS
開発ライフサイクルから見たAngularJS開発ライフサイクルから見たAngularJS
開発ライフサイクルから見たAngularJS
 
ソースコードをAAに変換するやつやってみた
ソースコードをAAに変換するやつやってみたソースコードをAAに変換するやつやってみた
ソースコードをAAに変換するやつやってみた
 
Riot.jsと仲良くなるための僕的tips
Riot.jsと仲良くなるための僕的tipsRiot.jsと仲良くなるための僕的tips
Riot.jsと仲良くなるための僕的tips
 

Similar to Rnyoutube

うちではこうやっています UI構築のルールとPlaymakerを使った画面遷移
うちではこうやっています UI構築のルールとPlaymakerを使った画面遷移うちではこうやっています UI構築のルールとPlaymakerを使った画面遷移
うちではこうやっています UI構築のルールとPlaymakerを使った画面遷移まべ☆てっく運営
 
はじめてのReactiveCocoa
はじめてのReactiveCocoaはじめてのReactiveCocoa
はじめてのReactiveCocoa章平 福井
 
Androidの新ビルドシステム
Androidの新ビルドシステムAndroidの新ビルドシステム
Androidの新ビルドシステムl_b__
 
C#でiPhoneアプリ開発 with MonoTouch
C#でiPhoneアプリ開発 with MonoTouchC#でiPhoneアプリ開発 with MonoTouch
C#でiPhoneアプリ開発 with MonoTouchShin Ise
 
Creators'night#3今井
Creators'night#3今井 Creators'night#3今井
Creators'night#3今井 Daisuke Imai
 
テレニコツイ
テレニコツイテレニコツイ
テレニコツイjz5 MATSUE
 
ReactNative はじめの一歩
ReactNative はじめの一歩ReactNative はじめの一歩
ReactNative はじめの一歩Ikki Takahashi
 
プロ文.com 勉強会 Phase 1
プロ文.com 勉強会 Phase 1プロ文.com 勉強会 Phase 1
プロ文.com 勉強会 Phase 1Hiroki Toyokawa
 
ゆるロボ製作所開発事例 – ドローコール削減
ゆるロボ製作所開発事例 – ドローコール削減 ゆるロボ製作所開発事例 – ドローコール削減
ゆるロボ製作所開発事例 – ドローコール削減 Mikito Yoshiya
 
unity build on github actions
unity build on github actionsunity build on github actions
unity build on github actionsDaiki Mogmet Ito
 
XPagesDay 2014【B 1】最新のモバイル ui を瞬時に作成 〜x controlsのご紹介〜
XPagesDay 2014【B 1】最新のモバイル ui を瞬時に作成 〜x controlsのご紹介〜XPagesDay 2014【B 1】最新のモバイル ui を瞬時に作成 〜x controlsのご紹介〜
XPagesDay 2014【B 1】最新のモバイル ui を瞬時に作成 〜x controlsのご紹介〜Mitsuru Katoh
 
Yiiフレームワークを使ってみた
Yiiフレームワークを使ってみたYiiフレームワークを使ってみた
Yiiフレームワークを使ってみたHisateru Tanaka
 
プロトタイピングでしあわせになろうよ
プロトタイピングでしあわせになろうよプロトタイピングでしあわせになろうよ
プロトタイピングでしあわせになろうよYoshiki Kojima
 
Web開発者が始める .NET MAUI Blazor App
Web開発者が始める .NET MAUI Blazor AppWeb開発者が始める .NET MAUI Blazor App
Web開発者が始める .NET MAUI Blazor AppTomomitsuKusaba
 
「Camelog」Android開発秘話
「Camelog」Android開発秘話「Camelog」Android開発秘話
「Camelog」Android開発秘話Shoya Tsukada
 
ラジコンがネットと出会ったら
ラジコンがネットと出会ったらラジコンがネットと出会ったら
ラジコンがネットと出会ったらTakuya Andou
 
デザイナーさんでもできる Browsersync からはじめる作業効率化・春
デザイナーさんでもできる Browsersync からはじめる作業効率化・春デザイナーさんでもできる Browsersync からはじめる作業効率化・春
デザイナーさんでもできる Browsersync からはじめる作業効率化・春Kumiko SHIMIZU
 

Similar to Rnyoutube (20)

うちではこうやっています UI構築のルールとPlaymakerを使った画面遷移
うちではこうやっています UI構築のルールとPlaymakerを使った画面遷移うちではこうやっています UI構築のルールとPlaymakerを使った画面遷移
うちではこうやっています UI構築のルールとPlaymakerを使った画面遷移
 
Cmujp21_node-webkit
Cmujp21_node-webkitCmujp21_node-webkit
Cmujp21_node-webkit
 
はじめてのReactiveCocoa
はじめてのReactiveCocoaはじめてのReactiveCocoa
はじめてのReactiveCocoa
 
Androidの新ビルドシステム
Androidの新ビルドシステムAndroidの新ビルドシステム
Androidの新ビルドシステム
 
C#でiPhoneアプリ開発 with MonoTouch
C#でiPhoneアプリ開発 with MonoTouchC#でiPhoneアプリ開発 with MonoTouch
C#でiPhoneアプリ開発 with MonoTouch
 
Creators'night#3今井
Creators'night#3今井 Creators'night#3今井
Creators'night#3今井
 
SnapDishの事例
SnapDishの事例SnapDishの事例
SnapDishの事例
 
テレニコツイ
テレニコツイテレニコツイ
テレニコツイ
 
ReactNative はじめの一歩
ReactNative はじめの一歩ReactNative はじめの一歩
ReactNative はじめの一歩
 
プロ文.com 勉強会 Phase 1
プロ文.com 勉強会 Phase 1プロ文.com 勉強会 Phase 1
プロ文.com 勉強会 Phase 1
 
ゆるロボ製作所開発事例 – ドローコール削減
ゆるロボ製作所開発事例 – ドローコール削減 ゆるロボ製作所開発事例 – ドローコール削減
ゆるロボ製作所開発事例 – ドローコール削減
 
unity build on github actions
unity build on github actionsunity build on github actions
unity build on github actions
 
XPagesDay 2014【B 1】最新のモバイル ui を瞬時に作成 〜x controlsのご紹介〜
XPagesDay 2014【B 1】最新のモバイル ui を瞬時に作成 〜x controlsのご紹介〜XPagesDay 2014【B 1】最新のモバイル ui を瞬時に作成 〜x controlsのご紹介〜
XPagesDay 2014【B 1】最新のモバイル ui を瞬時に作成 〜x controlsのご紹介〜
 
Yiiフレームワークを使ってみた
Yiiフレームワークを使ってみたYiiフレームワークを使ってみた
Yiiフレームワークを使ってみた
 
Hachioji.pm 13
Hachioji.pm 13Hachioji.pm 13
Hachioji.pm 13
 
プロトタイピングでしあわせになろうよ
プロトタイピングでしあわせになろうよプロトタイピングでしあわせになろうよ
プロトタイピングでしあわせになろうよ
 
Web開発者が始める .NET MAUI Blazor App
Web開発者が始める .NET MAUI Blazor AppWeb開発者が始める .NET MAUI Blazor App
Web開発者が始める .NET MAUI Blazor App
 
「Camelog」Android開発秘話
「Camelog」Android開発秘話「Camelog」Android開発秘話
「Camelog」Android開発秘話
 
ラジコンがネットと出会ったら
ラジコンがネットと出会ったらラジコンがネットと出会ったら
ラジコンがネットと出会ったら
 
デザイナーさんでもできる Browsersync からはじめる作業効率化・春
デザイナーさんでもできる Browsersync からはじめる作業効率化・春デザイナーさんでもできる Browsersync からはじめる作業効率化・春
デザイナーさんでもできる Browsersync からはじめる作業効率化・春
 

Rnyoutube