10月9日
GDG DevFest Japan 2017
に行ってきた!の続き(午後)
■FirebaseとReact Nativeでのモバイルアプリの作り方
・自己紹介
・Firebaseとは
モバイル向けmBaaS
認証、DB
Googleに買収されGCPに
ただのBaaSではない、Develop Grow EARN→Analytics
・なぜ
クライアントを作ることに集中したい
サーバーを管理する必要がない
料金が安い
・React Nativeとは?
Reactでモバイルアプリが作れるやつ
NativeのViewをJSXで書ける
WebViewではない JavascriptCore
ブラウザの機能もいくつかサポート:WebSocket
Javascriptな部分はいつでもアップデートできる
ホットリロードが可能
ネイティブモジュールでネイティブの機能にアクセスできる
クロスプラットフォームでロジックやデザインの共通化
ロジックをJSで書くことで、テストもエミュレーターを必要としない
すべてをReactNativeにしなくてもOK
NativeBase,react-navigation、MobX
React Native Firebase
Firebase Authentification
・Realtime Database
オンライン・オフラインで更新
リアルタイムに同期が可能なKVSのデータべ―ス
サブすくライブしたら、アンサブすくライブ市内とメモリーリーク
Google Analytics for firebase
・GoogleAnalyticsのモバイル版
・カスタムイベントもつくれる
ユーザープロパティ
Firebase クラウドメッセージ
push通知
トピックもできる
Notification
注意点
getInitialNotificationとonMessageで受け取れる結果違う
iosではpermission
・クラウドストレージ for Firebase
SDKでクライアントから
・リモートコンフィグ
analyticsをもとに何かしたいとき
・クラッシュレポーティング
・AdMob:アプリに広告を載せるためのサービス
バナー広告
・クラウドファンクション for firebase
イベント駆動でnode.jsを実行できるサービス
メッセージの削除など
REST APIの受け取りなど
・Cloud Firestore(beta)
リアルタイムデータベースの後継、ドキュメントベース
ドキュメント→コレクション
リアルタイムデータベースだとアプリ側でソートや降順
onSnapShot更新みる
特定のフィールド削除
・Firestore
ドキュメント思考
ふくごうIndex
アトミックなバッチ処理とトランザクション
自動スケール
リアルタイムデータベース
1つのJSONツリー
限定的な並べ替えとlimit
基本的なトランザクション
シャーディングによるスケール
・見ておくといい場所
gcpub.jp
・まとめ
Firebase
最小限で開発
ReactNative
JSかけてネイティブもわかる人
Expoつかうと片手間でも
■deeplearn.js入門 ~teachable machineを題材に~
・自己紹介
・NN論文を肴に酒を飲むかい
・teachable machine 1週間ぐらい前に公開されたもの
・アジェンダ
深層学習 in the Browser
deeplearn.jsの基礎
teachable Machne
学習
・深層学習 in the Browser
playground.tensorflow.org→Javascriptでやっている
MakeGirlsMoe
JSだけで動いている
PerformanceRNN
Project Magenta
深層学習をブラウザ上で行うメリット
計算能力の高いサーバーを用意する必要がない
クライアントサイドでの実行なので、ネットワークによる遅延がない
インストール不要
情報をサーバーサイドにあげないので、セキュリティ上の危険がすくない
ライブラリたち
ConvNetJS
先駆け的存在、数年は更新止まっている
synaptic.js
keras.js:推論のみ対応
WebDNN:WebGL,WebGPUでの処理、
deeplearn.js
推論だけでなく学習も
WebGLによる高速な演算
TensorFlowのチェックポイント読み込み
・deeplearn.jsの基礎
npm install deeplearn
deeplearn.jsでは、多次元配列用にNDArrayのクラス
配列同士の演算はNDArrayMathで提供(NDArrayMathGPU)
getValues 配列の値取得(GPUの値をCPUにもってくる)
mathによる演算はmath.scopeで囲う
→GCの対象にならないので、
trackで明示的に囲う;けしてくれる
keep;外で使えるdesposeで消す
・teachable machine
SqueezeNet画像分類モデルを使う
チェックポイントローダーでよみこめる
ビデオからキャプチャ
↓
特徴量抽出←学習済みモデル
↓
KNN
・deeplearn.jsの学習
深層学習:誤差逆伝搬法
Graph,Tensorという概念を使って、学習ネットワークを作る
学習・推論はSessionを通じて行う
■Google Dev Toolsの紹介
・Chrome Dev toolsの概要
Web開発のデバッガ―
HTMLとJavascriptで書かれている
多機能
・起動してみよう
メニューから起動:More Tools →Developer tools
右クリック:要素・検証
Windowsだと:コントロール+シフト+i
・UI:簡素
どろわー
・各パネルの説明
・エレメンツパネル:マークアップするなど
→DOM構造、CSSの確認
イベントリスナー
・ソースイズパネル
使っているファイルをドメインごとに
→JSのデバッグ
・ネットワークパネル
画像の表示速度影響
リソースの依存関係
・パフォーマンスパネル
サーバーのコネクション
ページ描画の診断
・メモリパネル
・サービスワーカーの確認
ストレージ関連
・おーでぃっとパネル
PWA関連
ライトハウス
・開発効率を上げるあれこれ
ワークスペース
デバイスモード:レスポンシブのとき
リモートデバッグ:
モバイル実機をPCで確認、
ポートフォワーディングでPCから実機へ
・パフォーマンス測定
パフォーマンスパネル
読み込んだ後のものも見れる
記録している
もんだいありそうなところがみれる
・そのほか
最新情報
こみっとろぐはだるい
どろわーのWhats Newタブ
Devサイト
YouTubeサイトある
■今更聞けないプログレッシブウェブアプリ講座
・自己紹介
・アプリで続きを読む
・スマートフォンの月間利用時間
13%(Web) VS 87%(Apps)
スマートフォンユーザーの時間の78%は、その人のトップ3アプリに費やされている
平均的なユーザーは一か月にインストールするアプリの数 0
→100個以上のサイトにアクセスしてもらえている
・Progressive Web Apps
デモ
twitter lite PWAになっている
PWA
URLがない
PUSH通知ができる
ほかのアプリにintentが飛ばせる
ストレージもアプリに対して
・PWAを構成する要素
Fast
Integrated
Reliable
Engaging
Fast
アプリを開いたらすぐに移動
Integrated
OSと深く
タブ:Webブラウザとわかってしまう
Reliable
信頼性
Engaging
ユーザーと深くかかわる
・アプリインストールバナー:
Manifestを定義
ServiceWorkerを使用
トップがオフラインでも200を返す
HTTPSで提供
5分以上の感覚で、複数回アクセス
・より深く連携
ほかのアプリとの連携
WebPayments
デバイスとの連携
MediaSessionAPI
・オフライン:
chrome://dino ゲームできる
サービスワーカーが働ききゃしゅで
・サービスワーカー
ページが開いていなくても
バックグラウンドで動作する
Javascriptで書かれたワーカープロセス
Workboxライブラリ
https://workboxjs.org
・プッシュ通知
Firebase Cloud Messaging
・まずはセキュリティから
Start security→https
パワフルAPIはhttps前提
・FAQ
何をしたらPWAになる?
Progressive Web App Checklist
lighthouse:Dev toolのauditタブでPWAを評価する
作るの大変そう!
マーケティング用語です。気にしないでください
PWA !== SPA
プログレッシブ==徐々に機能を足していくことができる
iOSで動かないんでしょう・・・
サービスワーカーが動かない
プログレッシブ・エンハンスメントとしてのPWA
→UIをかえることで、iOSでも成功する
WebKit→サービスワーカー開発開始
アプリを続ける?PWAにする?
ニュース、E-コマース
・まとめ
4つの要素
PWAとは未来のWebそのものである
GDG DevFest Japan 2017
に行ってきた!の続き(午後)
■FirebaseとReact Nativeでのモバイルアプリの作り方
・自己紹介
・Firebaseとは
モバイル向けmBaaS
認証、DB
Googleに買収されGCPに
ただのBaaSではない、Develop Grow EARN→Analytics
・なぜ
クライアントを作ることに集中したい
サーバーを管理する必要がない
料金が安い
・React Nativeとは?
Reactでモバイルアプリが作れるやつ
NativeのViewをJSXで書ける
WebViewではない JavascriptCore
ブラウザの機能もいくつかサポート:WebSocket
Javascriptな部分はいつでもアップデートできる
ホットリロードが可能
ネイティブモジュールでネイティブの機能にアクセスできる
クロスプラットフォームでロジックやデザインの共通化
ロジックをJSで書くことで、テストもエミュレーターを必要としない
すべてをReactNativeにしなくてもOK
NativeBase,react-navigation、MobX
React Native Firebase
Firebase Authentification
・Realtime Database
オンライン・オフラインで更新
リアルタイムに同期が可能なKVSのデータべ―ス
サブすくライブしたら、アンサブすくライブ市内とメモリーリーク
Google Analytics for firebase
・GoogleAnalyticsのモバイル版
・カスタムイベントもつくれる
ユーザープロパティ
Firebase クラウドメッセージ
push通知
トピックもできる
Notification
注意点
getInitialNotificationとonMessageで受け取れる結果違う
iosではpermission
・クラウドストレージ for Firebase
SDKでクライアントから
・リモートコンフィグ
analyticsをもとに何かしたいとき
・クラッシュレポーティング
・AdMob:アプリに広告を載せるためのサービス
バナー広告
・クラウドファンクション for firebase
イベント駆動でnode.jsを実行できるサービス
メッセージの削除など
REST APIの受け取りなど
・Cloud Firestore(beta)
リアルタイムデータベースの後継、ドキュメントベース
ドキュメント→コレクション
リアルタイムデータベースだとアプリ側でソートや降順
onSnapShot更新みる
特定のフィールド削除
・Firestore
ドキュメント思考
ふくごうIndex
アトミックなバッチ処理とトランザクション
自動スケール
リアルタイムデータベース
1つのJSONツリー
限定的な並べ替えとlimit
基本的なトランザクション
シャーディングによるスケール
・見ておくといい場所
gcpub.jp
・まとめ
Firebase
最小限で開発
ReactNative
JSかけてネイティブもわかる人
Expoつかうと片手間でも
■deeplearn.js入門 ~teachable machineを題材に~
・自己紹介
・NN論文を肴に酒を飲むかい
・teachable machine 1週間ぐらい前に公開されたもの
・アジェンダ
深層学習 in the Browser
deeplearn.jsの基礎
teachable Machne
学習
・深層学習 in the Browser
playground.tensorflow.org→Javascriptでやっている
MakeGirlsMoe
JSだけで動いている
PerformanceRNN
Project Magenta
深層学習をブラウザ上で行うメリット
計算能力の高いサーバーを用意する必要がない
クライアントサイドでの実行なので、ネットワークによる遅延がない
インストール不要
情報をサーバーサイドにあげないので、セキュリティ上の危険がすくない
ライブラリたち
ConvNetJS
先駆け的存在、数年は更新止まっている
synaptic.js
keras.js:推論のみ対応
WebDNN:WebGL,WebGPUでの処理、
deeplearn.js
推論だけでなく学習も
WebGLによる高速な演算
TensorFlowのチェックポイント読み込み
・deeplearn.jsの基礎
npm install deeplearn
deeplearn.jsでは、多次元配列用にNDArrayのクラス
配列同士の演算はNDArrayMathで提供(NDArrayMathGPU)
getValues 配列の値取得(GPUの値をCPUにもってくる)
mathによる演算はmath.scopeで囲う
→GCの対象にならないので、
trackで明示的に囲う;けしてくれる
keep;外で使えるdesposeで消す
・teachable machine
SqueezeNet画像分類モデルを使う
チェックポイントローダーでよみこめる
ビデオからキャプチャ
↓
特徴量抽出←学習済みモデル
↓
KNN
・deeplearn.jsの学習
深層学習:誤差逆伝搬法
Graph,Tensorという概念を使って、学習ネットワークを作る
学習・推論はSessionを通じて行う
■Google Dev Toolsの紹介
・Chrome Dev toolsの概要
Web開発のデバッガ―
HTMLとJavascriptで書かれている
多機能
・起動してみよう
メニューから起動:More Tools →Developer tools
右クリック:要素・検証
Windowsだと:コントロール+シフト+i
・UI:簡素
どろわー
・各パネルの説明
・エレメンツパネル:マークアップするなど
→DOM構造、CSSの確認
イベントリスナー
・ソースイズパネル
使っているファイルをドメインごとに
→JSのデバッグ
・ネットワークパネル
画像の表示速度影響
リソースの依存関係
・パフォーマンスパネル
サーバーのコネクション
ページ描画の診断
・メモリパネル
・サービスワーカーの確認
ストレージ関連
・おーでぃっとパネル
PWA関連
ライトハウス
・開発効率を上げるあれこれ
ワークスペース
デバイスモード:レスポンシブのとき
リモートデバッグ:
モバイル実機をPCで確認、
ポートフォワーディングでPCから実機へ
・パフォーマンス測定
パフォーマンスパネル
読み込んだ後のものも見れる
記録している
もんだいありそうなところがみれる
・そのほか
最新情報
こみっとろぐはだるい
どろわーのWhats Newタブ
Devサイト
YouTubeサイトある
■今更聞けないプログレッシブウェブアプリ講座
・自己紹介
・アプリで続きを読む
・スマートフォンの月間利用時間
13%(Web) VS 87%(Apps)
スマートフォンユーザーの時間の78%は、その人のトップ3アプリに費やされている
平均的なユーザーは一か月にインストールするアプリの数 0
→100個以上のサイトにアクセスしてもらえている
・Progressive Web Apps
デモ
twitter lite PWAになっている
PWA
URLがない
PUSH通知ができる
ほかのアプリにintentが飛ばせる
ストレージもアプリに対して
・PWAを構成する要素
Fast
Integrated
Reliable
Engaging
Fast
アプリを開いたらすぐに移動
Integrated
OSと深く
タブ:Webブラウザとわかってしまう
Reliable
信頼性
Engaging
ユーザーと深くかかわる
・アプリインストールバナー:
Manifestを定義
ServiceWorkerを使用
トップがオフラインでも200を返す
HTTPSで提供
5分以上の感覚で、複数回アクセス
・より深く連携
ほかのアプリとの連携
WebPayments
デバイスとの連携
MediaSessionAPI
・オフライン:
chrome://dino ゲームできる
サービスワーカーが働ききゃしゅで
・サービスワーカー
ページが開いていなくても
バックグラウンドで動作する
Javascriptで書かれたワーカープロセス
Workboxライブラリ
https://workboxjs.org
・プッシュ通知
Firebase Cloud Messaging
・まずはセキュリティから
Start security→https
パワフルAPIはhttps前提
・FAQ
何をしたらPWAになる?
Progressive Web App Checklist
lighthouse:Dev toolのauditタブでPWAを評価する
作るの大変そう!
マーケティング用語です。気にしないでください
PWA !== SPA
プログレッシブ==徐々に機能を足していくことができる
iOSで動かないんでしょう・・・
サービスワーカーが動かない
プログレッシブ・エンハンスメントとしてのPWA
→UIをかえることで、iOSでも成功する
WebKit→サービスワーカー開発開始
アプリを続ける?PWAにする?
ニュース、E-コマース
・まとめ
4つの要素
PWAとは未来のWebそのものである