SlideShare a Scribd company logo
1 of 73
Download to read offline
Firebaseを使った
Androidアプリ開発
2015-10-10 @GDG Tokyo Meeting
自己紹介
• 白山 文彦
• 株式会社マナボ 技術者
• @fushiroyama
• http://blog.shiroyama.us/
• http://qiita.com/FumihikoSHIROYAMA
Firebaseとは
• リアルタイム同期型クラウドデータベース
• JSONストア型NoSQL
• データの柔軟なセキュリティアクセス制限
• オフラインサポート
• Twitter, Facebook, GitHub, Google などのアカウ
ント認証と容易な連携
中央サーバ
ローカルコピー ローカルコピー
• アプリはJSONをツリーとみなし任意の位置を参照
(reference)する
• 参照した位置から読みだしたり書き込んだりする
• データはすぐさま同期される(400ms前後)
• オフライン状態でも書き込み・読み出し可能(なよ
うに見える。後述)
何が出来るかデモ
• リアルタイムな同期!
• オフラインで書き込み、オンライン復帰時に同期
• オンライン復帰時にも書き込んだ時間順に並ぶ
Signup
https://www.firebase.com/signup/
Android Quickstart
build.gradle
dependencies {
compile 'com.firebase:firebase-client-android:2.4.0+'
}
build.gradle
android {
...
packagingOptions {
exclude 'META-INF/LICENSE'
exclude 'META-INF/LICENSE-FIREBASE.txt'
exclude 'META-INF/NOTICE'
}
}
AndroidManifest.xml
<uses-permission android:name="android.permission.INTERNET" />
CustomApplication
@Override
public void onCreate() {
super.onCreate();
Firebase.setAndroidContext(this);
// other setup code
}
Activity
Firebase myFirebaseRef = new Firebase("https://<YOUR-FIREBASE-
APP>.firebaseio.com/");
Create Reference
Writing Data
myFirebaseRef.child("message")
.setValue("Do you have data? You'll love Firebase.");
Child
Node
key
write!
Reading Data
myFirebaseRef.child("message").addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot snapshot) {
//prints "Do you have data? You'll love Firebase."
System.out.println(snapshot.getValue());
}
@Override public void onCancelled(FirebaseError error) { }
});
Child
Node
key
read!
• Firebaseアプリ開発はイベントドリブンモデル
• 任意のキーを参照し、受け取りたいイベントリスナを設定して
いく
• 保存は Firebase#setValue(Object)
• ObjectはいわゆるPOJO(フィールド名がキーに対応)
• とくにアノテーション不要
• データは DataSnapshot#getValue() で受け取る
• キャストして使うか getValue(Class<T>) で受け取る
有効なデータ型
• String
• Boolean
• Long
• Double
• Map<String, Object>
• List<Object>
• およびこれらの再帰的なデータ構造
つまりJSONで表現できる
任意のデータ型
全てはJSON。設計はプログラマに委ねられる
Arrayに注意
• 純粋なArrayは提供されない。
• ["hoge", "fuga"]は内部的に{0: "hoge", 1: "fuga"}
• 理由は並行操作を安全に行うため(添字は要素の削除で
振り直される)
• ただしArrayのように見えるものはArrayListに自動変換
• https://www.firebase.com/docs/android/guide/
understanding-data.html
条件あり!
以下リンク参照
色々な保存方法
• setValue()
• updateChildren()
• push()
• runTransaction()
setValue
• 一番基本的な保存方法
• キーに対応する値をそのまま子ノードも含めて上書
き保存/変更
• POJOはアノテーションとかなくてもちゃんとオブ
ジェクトとして保存できる。
エンティティを表現するPOJO
完了コールバック
updateChildren
• あるオブジェクト(ディクショナリー)一部の更新
に使う
• 例えばHashMapにたいしてsetValue()してしまう
と全てが書き換わるので、一部のkey/valueだけ更
新したいときとかに使う
ディクショナリーを取得
push
• 同じキーに同時に書き込みがあると新しい方で上書
きされる。同時に書き込みがあるチャットシステム
などではこれはマズイので、一意なキーを払い出す
仕組み。
• キーはタイムスタンプを元に作られているので時系
列でソートされる。
runTransaction
• いわゆるトランザクション
• 同時並行操作で不整合が起きるような処理をアトミッ
クに行うことが出来る
カウンタの更新のような
アトミックな操作
色々な読み出し方法
• addValueEventListener
• addChildEventListener
• onChildAdded
• onChildChanged
• onChildDeleted
• onChildMoved
addValueEventListener
• 一番シンプルな取得方法
• 指定したキー以下を全部取得
• 初回に全部取得、以後データに更新があるたびにま
た全部取得
Firebase ref = new Firebase("https://docs-examples.firebaseio.com/web/saving-data/fireblog/posts"); 

// Attach an listener to read the data at our posts reference 

ref.addValueEventListener(new ValueEventListener() { 

    @Override 

    public void onDataChange(DataSnapshot snapshot) { 

        System.out.println(snapshot.getValue()); 

    } 

    @Override 

    public void onCancelled(FirebaseError firebaseError) { 

        System.out.println("The read failed: " + firebaseError.getMessage()); 

    } 

}); 

getValue(Class<T> clazz)
だと型安全
addChildEventListener
onChildAdded
• リストを参照しているときに子ノードが追加されると呼ば
れる
• 初回は子ノードの数だけコールバックされる
• 以後は追加されるたび、そのノードがコールバックされる
• snapShot.getKey()でそのキーを取れるので、キーのイン
デックス、値のインデックスを保存しておいてListViewな
どのアダプタに持っておくのはよくある運用かも
Firebase ref = new Firebase("https://docs-examples.firebaseio.com/web/saving-data/fireblog/posts");

ref.addChildEventListener(new ChildEventListener() {

// Retrieve new posts as they are added to the database

@Override

public void onChildAdded(DataSnapshot snapshot, String previousChildKey) {

BlogPost newPost = snapshot.getValue(BlogPost.class);

System.out.println("Author: " + newPost.getAuthor());

System.out.println("Title: " + newPost.getTitle());

}

//... ChildEventListener also defines onChildChanged, onChildRemoved,

// onChildMoved and onCanceled, covered in later sections.

});
onChildChanged
• onChildChangedはデータパス以下のノードが変
更されたときにコールバックされる。子ノードのど
んな子孫に対するいかなる変更でも通知される。
• onChildAddedやonChildRemovedと組み合わせ
てよく使われる。
• コールバックには変更のあったノードの情報がスナッ
プショットとして渡される。
onChildDeleted
• 削除されたときにコールバックされてくる。あとは
さっきのと同じ。
• コールバックに渡されるスナップショットは削除さ
れたノード。
onChildMoved
• ノードの移動で発火される。あとはさっきのとry
イベントに関する保証
• ローカルの状態変更でもこれらのイベントはトリガされる
• イベントは最終的には常にデータの正しい状態を反映する。つ
まり、ネットワークの瞬断などでローカルの操作やタイミング
が一時的にローカルデータとの差異を生んだとしても。
• ある1人のユーザからの書き込みは常にサーバに書き込まれ、そ
の後他人にブロードキャストされるという順番が守られる。
• ValueEventは常に最後にトリガされ、それより前に起こったい
かなるイベントからの差分も含まれていることが保証されてい
る。
Security
• あるキー以下のアクセス制御
• 読み込み/書き込み
• 認証済みユーザのみ書き込みなど柔軟
auth変数
• auth 変数はアクセス制御の基本
• 認証プロバイダに依らず一意保証
• auth 変数は認証処理後に生成される
User Authentication
• Facebook, Twitter, Google, GitHubなどの認証機
構と連携 (3rd Party)
• Firebase独自の認証機構 (Email & Password)
• 匿名ログイン (Anonymous)
• 自前の認証機構と連携 (Custom)
認証の有効化
ログイン処理
今日は
Email & Password Authentication
ユーザ作成
作成だけで
ログインまではしない
よくある権限
書き込みは認証ユーザ
かつログイン済みだけ
読み込みは認証ユーザなら
だれでもOK
その他
• Twitterの例
• https://www.firebase.com/docs/android/
guide/login/twitter.html
その他TIPS
• リスナの解除には ref.removeEventListener(originalListener);
を呼ぶ。
• 複数のリスナを登録している場合にはその分だけ全部解除を呼ん
でやる必要がある(めんどくさい・・・)
• 親ノードへのリスナ登録、そしてそれを解除したからといって更
に下位のノードへのリスナが自動で解除されるわけではない。全
部登録した数だけ手動で解除する必要がある。
• 初回だけ実行されてあとは何もしないのが都合がいいリスナがあ
る場合は addListenerForSingleValueEvent を使うと便利だよ。
まとめ
• オフライン機能とリアルタイム同期があるので、今まで
困っていたSocket.IO(WebSocket)などのオフライン -
> オンライン復帰時の再送みたいな処理を、複雑なコー
ドを一切書かずに実現できるのが素晴らし過ぎる。
• 並行操作の制約上、純粋な配列がサポートされていな
いとか、NoSQLなのでJOINが使えないとか、性質を理
解して使わないといけない部分もある。
• ちゃんと使うなら意外に高額になる?
まとめ
• それでもなお余りある魅力!
• 是非一度評価してみてください!驚きます!
Pricing
https://www.firebase.com/pricing.html
素晴らしきサンプルたち
• https://www.firebase.com/docs/android/
examples.html
• https://github.com/firebase/AndroidChat
• https://github.com/firebase/AndroidDrawing
公式リファレンスショートカット
• Quickstart
• https://www.firebase.com/docs/android/quickstart.html
• データ構造の理解
• https://www.firebase.com/docs/android/guide/understanding-data.html
• データ保存
• https://www.firebase.com/docs/android/guide/saving-data.html
• データ取得
• https://www.firebase.com/docs/android/guide/retrieving-data.html
• 効率的なデータ構造設計への手引き
• https://www.firebase.com/docs/android/guide/structuring-data.html
• アクセス制限
• https://www.firebase.com/docs/android/
guide/understanding-security.html
• 認証
• https://www.firebase.com/docs/android/
guide/user-auth.html
時間が余ったら
チャットアプリの実践例を
コード見ながら解説!
ご清聴ありがとうございました。
• 本日の資料
マナボはCS担当者を募集しています!

More Related Content

What's hot

ログ管理のベストプラクティス
ログ管理のベストプラクティスログ管理のベストプラクティス
ログ管理のベストプラクティスAkihiro Kuwano
 
Elastic Stackの紹介とOpenStackでの活用事例(Searchlightなど) - OpenStack最新情報セミナー 2016年5月
Elastic Stackの紹介とOpenStackでの活用事例(Searchlightなど) - OpenStack最新情報セミナー 2016年5月Elastic Stackの紹介とOpenStackでの活用事例(Searchlightなど) - OpenStack最新情報セミナー 2016年5月
Elastic Stackの紹介とOpenStackでの活用事例(Searchlightなど) - OpenStack最新情報セミナー 2016年5月VirtualTech Japan Inc.
 
AWSにおけるバッチ処理の ベストプラクティス - Developers.IO Meetup 05
AWSにおけるバッチ処理の ベストプラクティス - Developers.IO Meetup 05AWSにおけるバッチ処理の ベストプラクティス - Developers.IO Meetup 05
AWSにおけるバッチ処理の ベストプラクティス - Developers.IO Meetup 05都元ダイスケ Miyamoto
 
Kinesis Analyticsの適用できない用途と、Kinesis Firehoseの苦労話
Kinesis Analyticsの適用できない用途と、Kinesis Firehoseの苦労話Kinesis Analyticsの適用できない用途と、Kinesis Firehoseの苦労話
Kinesis Analyticsの適用できない用途と、Kinesis Firehoseの苦労話Sotaro Kimura
 
AWS Black Belt Tech Webinar 2016 〜 Amazon CloudSearch & Amazon Elasticsearch ...
AWS Black Belt Tech Webinar 2016 〜 Amazon CloudSearch & Amazon Elasticsearch ...AWS Black Belt Tech Webinar 2016 〜 Amazon CloudSearch & Amazon Elasticsearch ...
AWS Black Belt Tech Webinar 2016 〜 Amazon CloudSearch & Amazon Elasticsearch ...Amazon Web Services Japan
 
Pydata Amazon Kinesisのご紹介
Pydata Amazon Kinesisのご紹介Pydata Amazon Kinesisのご紹介
Pydata Amazon Kinesisのご紹介Toshiaki Enami
 
EmbulkとDigdagとデータ分析基盤と
EmbulkとDigdagとデータ分析基盤とEmbulkとDigdagとデータ分析基盤と
EmbulkとDigdagとデータ分析基盤とToru Takahashi
 
ZabbixによるAWS監視のコツ
ZabbixによるAWS監視のコツZabbixによるAWS監視のコツ
ZabbixによるAWS監視のコツShinsukeYokota
 
Amazon ElastiCache - AWSマイスターシリーズ
Amazon ElastiCache - AWSマイスターシリーズAmazon ElastiCache - AWSマイスターシリーズ
Amazon ElastiCache - AWSマイスターシリーズSORACOM, INC
 
Amazon Kinesis Analytics によるストリーミングデータのリアルタイム分析
Amazon Kinesis Analytics によるストリーミングデータのリアルタイム分析Amazon Kinesis Analytics によるストリーミングデータのリアルタイム分析
Amazon Kinesis Analytics によるストリーミングデータのリアルタイム分析Amazon Web Services Japan
 
CloudWatch Logsについて
CloudWatch LogsについてCloudWatch Logsについて
CloudWatch LogsについてSugawara Genki
 
Fluentd+elasticsearch+kibana(fluentd編)
Fluentd+elasticsearch+kibana(fluentd編)Fluentd+elasticsearch+kibana(fluentd編)
Fluentd+elasticsearch+kibana(fluentd編)Daisuke Kikuchi
 
Amazon S3を中心とするデータ分析のベストプラクティス
Amazon S3を中心とするデータ分析のベストプラクティスAmazon S3を中心とするデータ分析のベストプラクティス
Amazon S3を中心とするデータ分析のベストプラクティスAmazon Web Services Japan
 
Embulkを活用したログ管理システム
Embulkを活用したログ管理システムEmbulkを活用したログ管理システム
Embulkを活用したログ管理システムAkihiro Ikezoe
 
AWS SDK for Haskell開発
AWS SDK for Haskell開発AWS SDK for Haskell開発
AWS SDK for Haskell開発Nomura Yusuke
 
Azure サービスを活用して作るフルマネージドな全文検索アプリケーション
Azure サービスを活用して作るフルマネージドな全文検索アプリケーションAzure サービスを活用して作るフルマネージドな全文検索アプリケーション
Azure サービスを活用して作るフルマネージドな全文検索アプリケーションYoichi Kawasaki
 
fluentd を利用した大規模ウェブサービスのロギング
fluentd を利用した大規模ウェブサービスのロギングfluentd を利用した大規模ウェブサービスのロギング
fluentd を利用した大規模ウェブサービスのロギングYuichi Tateno
 
Streaming API で実現する クラウド ⇔ イントラ連携
Streaming API で実現する クラウド ⇔ イントラ連携Streaming API で実現する クラウド ⇔ イントラ連携
Streaming API で実現する クラウド ⇔ イントラ連携Shinichi Tomita
 

What's hot (20)

ログ管理のベストプラクティス
ログ管理のベストプラクティスログ管理のベストプラクティス
ログ管理のベストプラクティス
 
Elastic Stackの紹介とOpenStackでの活用事例(Searchlightなど) - OpenStack最新情報セミナー 2016年5月
Elastic Stackの紹介とOpenStackでの活用事例(Searchlightなど) - OpenStack最新情報セミナー 2016年5月Elastic Stackの紹介とOpenStackでの活用事例(Searchlightなど) - OpenStack最新情報セミナー 2016年5月
Elastic Stackの紹介とOpenStackでの活用事例(Searchlightなど) - OpenStack最新情報セミナー 2016年5月
 
AWSにおけるバッチ処理の ベストプラクティス - Developers.IO Meetup 05
AWSにおけるバッチ処理の ベストプラクティス - Developers.IO Meetup 05AWSにおけるバッチ処理の ベストプラクティス - Developers.IO Meetup 05
AWSにおけるバッチ処理の ベストプラクティス - Developers.IO Meetup 05
 
Kinesis Analyticsの適用できない用途と、Kinesis Firehoseの苦労話
Kinesis Analyticsの適用できない用途と、Kinesis Firehoseの苦労話Kinesis Analyticsの適用できない用途と、Kinesis Firehoseの苦労話
Kinesis Analyticsの適用できない用途と、Kinesis Firehoseの苦労話
 
AWS Black Belt Tech Webinar 2016 〜 Amazon CloudSearch & Amazon Elasticsearch ...
AWS Black Belt Tech Webinar 2016 〜 Amazon CloudSearch & Amazon Elasticsearch ...AWS Black Belt Tech Webinar 2016 〜 Amazon CloudSearch & Amazon Elasticsearch ...
AWS Black Belt Tech Webinar 2016 〜 Amazon CloudSearch & Amazon Elasticsearch ...
 
Pydata Amazon Kinesisのご紹介
Pydata Amazon Kinesisのご紹介Pydata Amazon Kinesisのご紹介
Pydata Amazon Kinesisのご紹介
 
EmbulkとDigdagとデータ分析基盤と
EmbulkとDigdagとデータ分析基盤とEmbulkとDigdagとデータ分析基盤と
EmbulkとDigdagとデータ分析基盤と
 
ZabbixによるAWS監視のコツ
ZabbixによるAWS監視のコツZabbixによるAWS監視のコツ
ZabbixによるAWS監視のコツ
 
Amazon ElastiCache - AWSマイスターシリーズ
Amazon ElastiCache - AWSマイスターシリーズAmazon ElastiCache - AWSマイスターシリーズ
Amazon ElastiCache - AWSマイスターシリーズ
 
Amazon Kinesis Analytics によるストリーミングデータのリアルタイム分析
Amazon Kinesis Analytics によるストリーミングデータのリアルタイム分析Amazon Kinesis Analytics によるストリーミングデータのリアルタイム分析
Amazon Kinesis Analytics によるストリーミングデータのリアルタイム分析
 
CloudWatch Logsについて
CloudWatch LogsについてCloudWatch Logsについて
CloudWatch Logsについて
 
Fluentd+elasticsearch+kibana(fluentd編)
Fluentd+elasticsearch+kibana(fluentd編)Fluentd+elasticsearch+kibana(fluentd編)
Fluentd+elasticsearch+kibana(fluentd編)
 
Amazon S3を中心とするデータ分析のベストプラクティス
Amazon S3を中心とするデータ分析のベストプラクティスAmazon S3を中心とするデータ分析のベストプラクティス
Amazon S3を中心とするデータ分析のベストプラクティス
 
Embulkを活用したログ管理システム
Embulkを活用したログ管理システムEmbulkを活用したログ管理システム
Embulkを活用したログ管理システム
 
ActiveStorage::Analyzer
ActiveStorage::AnalyzerActiveStorage::Analyzer
ActiveStorage::Analyzer
 
AWS SDK for Haskell開発
AWS SDK for Haskell開発AWS SDK for Haskell開発
AWS SDK for Haskell開発
 
Azure サービスを活用して作るフルマネージドな全文検索アプリケーション
Azure サービスを活用して作るフルマネージドな全文検索アプリケーションAzure サービスを活用して作るフルマネージドな全文検索アプリケーション
Azure サービスを活用して作るフルマネージドな全文検索アプリケーション
 
fluentd を利用した大規模ウェブサービスのロギング
fluentd を利用した大規模ウェブサービスのロギングfluentd を利用した大規模ウェブサービスのロギング
fluentd を利用した大規模ウェブサービスのロギング
 
Streaming API で実現する クラウド ⇔ イントラ連携
Streaming API で実現する クラウド ⇔ イントラ連携Streaming API で実現する クラウド ⇔ イントラ連携
Streaming API で実現する クラウド ⇔ イントラ連携
 
AWSでのビッグデータ分析
AWSでのビッグデータ分析AWSでのビッグデータ分析
AWSでのビッグデータ分析
 

Similar to GDG Tokyo Firebaseを使った Androidアプリ開発

実践 Reactive Extensions
実践 Reactive Extensions実践 Reactive Extensions
実践 Reactive ExtensionsShin Ise
 
できる!サーバレスアーキテクチャ
できる!サーバレスアーキテクチャできる!サーバレスアーキテクチャ
できる!サーバレスアーキテクチャazuma satoshi
 
勉強会force#4 Chatter Integration
勉強会force#4 Chatter Integration勉強会force#4 Chatter Integration
勉強会force#4 Chatter IntegrationKazuki Nakajima
 
WEB開発を加速させる。アジャイル開発に最適なデータ構造とORマッパの形
WEB開発を加速させる。アジャイル開発に最適なデータ構造とORマッパの形WEB開発を加速させる。アジャイル開発に最適なデータ構造とORマッパの形
WEB開発を加速させる。アジャイル開発に最適なデータ構造とORマッパの形Yusaku Watanabe
 
Azure Cosmos DB を使った高速分散アプリケーションの設計パターン
Azure Cosmos DB を使った高速分散アプリケーションの設計パターンAzure Cosmos DB を使った高速分散アプリケーションの設計パターン
Azure Cosmos DB を使った高速分散アプリケーションの設計パターンKazuyuki Miyake
 
Inside mobage platform
Inside mobage platformInside mobage platform
Inside mobage platformToru Yamaguchi
 
ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく - YAPC Asia 2011
ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく - YAPC Asia 2011ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく - YAPC Asia 2011
ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく - YAPC Asia 2011Hiroh Satoh
 
クラウド時代における分散Webシステムの構成とスケーリング #seccamp
クラウド時代における分散Webシステムの構成とスケーリング #seccamp クラウド時代における分散Webシステムの構成とスケーリング #seccamp
クラウド時代における分散Webシステムの構成とスケーリング #seccamp Masahiro NAKAYAMA
 
Elixir入門「第1回:パターンマッチ&パイプでJSONパースアプリをサクっと書いてみる」
Elixir入門「第1回:パターンマッチ&パイプでJSONパースアプリをサクっと書いてみる」Elixir入門「第1回:パターンマッチ&パイプでJSONパースアプリをサクっと書いてみる」
Elixir入門「第1回:パターンマッチ&パイプでJSONパースアプリをサクっと書いてみる」fukuoka.ex
 
[東京] JapanSharePointGroup 勉強会 #2
[東京] JapanSharePointGroup 勉強会 #2[東京] JapanSharePointGroup 勉強会 #2
[東京] JapanSharePointGroup 勉強会 #2Atsuo Yamasaki
 
ふぉとぶらり+LODAC -iPhoneアプリでのSPARQLでの活用事例-
ふぉとぶらり+LODAC -iPhoneアプリでのSPARQLでの活用事例-ふぉとぶらり+LODAC -iPhoneアプリでのSPARQLでの活用事例-
ふぉとぶらり+LODAC -iPhoneアプリでのSPARQLでの活用事例-uedayou
 
Azure Cosmos DB を使った クラウドネイティブアプリケーションの 設計パターン
Azure Cosmos DB を使った クラウドネイティブアプリケーションの 設計パターンAzure Cosmos DB を使った クラウドネイティブアプリケーションの 設計パターン
Azure Cosmos DB を使った クラウドネイティブアプリケーションの 設計パターンKazuyuki Miyake
 
勉強会force#3 iOSアプリ開発
勉強会force#3 iOSアプリ開発勉強会force#3 iOSアプリ開発
勉強会force#3 iOSアプリ開発Kazuki Nakajima
 

Similar to GDG Tokyo Firebaseを使った Androidアプリ開発 (20)

Java EE8 Report
Java EE8 ReportJava EE8 Report
Java EE8 Report
 
実践 Reactive Extensions
実践 Reactive Extensions実践 Reactive Extensions
実践 Reactive Extensions
 
できる!サーバレスアーキテクチャ
できる!サーバレスアーキテクチャできる!サーバレスアーキテクチャ
できる!サーバレスアーキテクチャ
 
勉強会force#4 Chatter Integration
勉強会force#4 Chatter Integration勉強会force#4 Chatter Integration
勉強会force#4 Chatter Integration
 
WEB開発を加速させる。アジャイル開発に最適なデータ構造とORマッパの形
WEB開発を加速させる。アジャイル開発に最適なデータ構造とORマッパの形WEB開発を加速させる。アジャイル開発に最適なデータ構造とORマッパの形
WEB開発を加速させる。アジャイル開発に最適なデータ構造とORマッパの形
 
[Japan Tech summit 2017] DAL 005
[Japan Tech summit 2017] DAL 005[Japan Tech summit 2017] DAL 005
[Japan Tech summit 2017] DAL 005
 
PHP on Cloud
PHP on CloudPHP on Cloud
PHP on Cloud
 
Azure Cosmos DB を使った高速分散アプリケーションの設計パターン
Azure Cosmos DB を使った高速分散アプリケーションの設計パターンAzure Cosmos DB を使った高速分散アプリケーションの設計パターン
Azure Cosmos DB を使った高速分散アプリケーションの設計パターン
 
mysqlftppc 紹介
mysqlftppc 紹介mysqlftppc 紹介
mysqlftppc 紹介
 
Inside mobage platform
Inside mobage platformInside mobage platform
Inside mobage platform
 
ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく - YAPC Asia 2011
ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく - YAPC Asia 2011ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく - YAPC Asia 2011
ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく - YAPC Asia 2011
 
クラウド時代における分散Webシステムの構成とスケーリング #seccamp
クラウド時代における分散Webシステムの構成とスケーリング #seccamp クラウド時代における分散Webシステムの構成とスケーリング #seccamp
クラウド時代における分散Webシステムの構成とスケーリング #seccamp
 
Connect with Data API
Connect with Data APIConnect with Data API
Connect with Data API
 
Elixir入門「第1回:パターンマッチ&パイプでJSONパースアプリをサクっと書いてみる」
Elixir入門「第1回:パターンマッチ&パイプでJSONパースアプリをサクっと書いてみる」Elixir入門「第1回:パターンマッチ&パイプでJSONパースアプリをサクっと書いてみる」
Elixir入門「第1回:パターンマッチ&パイプでJSONパースアプリをサクっと書いてみる」
 
HTML5&API総まくり
HTML5&API総まくりHTML5&API総まくり
HTML5&API総まくり
 
[東京] JapanSharePointGroup 勉強会 #2
[東京] JapanSharePointGroup 勉強会 #2[東京] JapanSharePointGroup 勉強会 #2
[東京] JapanSharePointGroup 勉強会 #2
 
ふぉとぶらり+LODAC -iPhoneアプリでのSPARQLでの活用事例-
ふぉとぶらり+LODAC -iPhoneアプリでのSPARQLでの活用事例-ふぉとぶらり+LODAC -iPhoneアプリでのSPARQLでの活用事例-
ふぉとぶらり+LODAC -iPhoneアプリでのSPARQLでの活用事例-
 
Azure Cosmos DB を使った クラウドネイティブアプリケーションの 設計パターン
Azure Cosmos DB を使った クラウドネイティブアプリケーションの 設計パターンAzure Cosmos DB を使った クラウドネイティブアプリケーションの 設計パターン
Azure Cosmos DB を使った クラウドネイティブアプリケーションの 設計パターン
 
SwiftGarden.pdf
SwiftGarden.pdfSwiftGarden.pdf
SwiftGarden.pdf
 
勉強会force#3 iOSアプリ開発
勉強会force#3 iOSアプリ開発勉強会force#3 iOSアプリ開発
勉強会force#3 iOSアプリ開発
 

More from Fumihiko Shiroyama

More from Fumihiko Shiroyama (9)

Firebase with Android
Firebase with AndroidFirebase with Android
Firebase with Android
 
RxJava - Subject 入門
RxJava - Subject 入門RxJava - Subject 入門
RxJava - Subject 入門
 
GCP HTTPロードバランサ運用例
GCP HTTPロードバランサ運用例GCP HTTPロードバランサ運用例
GCP HTTPロードバランサ運用例
 
AndroidでEither
AndroidでEitherAndroidでEither
AndroidでEither
 
Rxjavaとoptionalで関数型androidしよう
Rxjavaとoptionalで関数型androidしようRxjavaとoptionalで関数型androidしよう
Rxjavaとoptionalで関数型androidしよう
 
絶対落ちないアプリの作り方
絶対落ちないアプリの作り方絶対落ちないアプリの作り方
絶対落ちないアプリの作り方
 
Ops worksに今後期待するところ
Ops worksに今後期待するところOps worksに今後期待するところ
Ops worksに今後期待するところ
 
Wallet api
Wallet apiWallet api
Wallet api
 
Google io 2013_keynote
Google io 2013_keynoteGoogle io 2013_keynote
Google io 2013_keynote
 

Recently uploaded

スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...Toru Tamaki
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Danieldanielhu54
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdftaisei2219
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNetToru Tamaki
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A surveyToru Tamaki
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)Hiroki Ichikura
 

Recently uploaded (10)

スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
 

GDG Tokyo Firebaseを使った Androidアプリ開発