SlideShare a Scribd company logo
Submit Search
Upload
Firestoreを使ってメディアアプリを作ってみた
Report
Share
gree_tech
gree_tech
Follow
•
2 likes
•
1,600 views
1
of
15
Firestoreを使ってメディアアプリを作ってみた
•
2 likes
•
1,600 views
Report
Share
Download Now
Download to read offline
Engineering
「集まれKotlin好き!Kotlin愛好会 vol.11 」で発表された資料です。 https://love-kotlin.connpass.com/event/130013/
Read more
gree_tech
gree_tech
Follow
Recommended
RecommendWidgetを作った話 by
RecommendWidgetを作った話
gree_tech
983 views
•
14 slides
DCL15秒の見れないサイトを3秒まで改善した話。改善継続中 by
DCL15秒の見れないサイトを3秒まで改善した話。改善継続中
gree_tech
766 views
•
18 slides
LIMIAでのBigQuery活用事例 by
LIMIAでのBigQuery活用事例
gree_tech
4.2K views
•
18 slides
gRPCを使ったメディアサービス by
gRPCを使ったメディアサービス
gree_tech
2.1K views
•
17 slides
機械学習輪講会資料 by
機械学習輪講会資料
gree_tech
2.3K views
•
24 slides
Fuelphpのテストをdocker-composeとJenkinsで実行 by
Fuelphpのテストをdocker-composeとJenkinsで実行
gree_tech
1.3K views
•
14 slides
More Related Content
What's hot
公式部活動技術書典部の活動紹介 by
公式部活動技術書典部の活動紹介
gree_tech
1.9K views
•
22 slides
PHPからgoへの移行で分かったこと by
PHPからgoへの移行で分かったこと
gree_tech
6.4K views
•
39 slides
携帯電話時代から続くモバイルゲームとアプリの関係 by
携帯電話時代から続くモバイルゲームとアプリの関係
gree_tech
1.4K views
•
155 slides
#インスタサミット 「アカウント運用の基礎」アライドアーキテクツ株式会社 藤田さま by
#インスタサミット 「アカウント運用の基礎」アライドアーキテクツ株式会社 藤田さま
Daiki Hirozawa
2.6K views
•
25 slides
オウンドメディア × Instagram APIで出来ること ~写真共有サイト「Marunouchipix」からみるオウンドメディアでのInstagram... by
オウンドメディア × Instagram APIで出来ること ~写真共有サイト「Marunouchipix」からみるオウンドメディアでのInstagram...
Members_corp
5.6K views
•
37 slides
WordPressとS3で落ちないコーポレートサイトを立ち上げよう by
WordPressとS3で落ちないコーポレートサイトを立ち上げよう
Ichiro Tsuji
4.2K views
•
26 slides
What's hot
(20)
公式部活動技術書典部の活動紹介 by gree_tech
公式部活動技術書典部の活動紹介
gree_tech
•
1.9K views
PHPからgoへの移行で分かったこと by gree_tech
PHPからgoへの移行で分かったこと
gree_tech
•
6.4K views
携帯電話時代から続くモバイルゲームとアプリの関係 by gree_tech
携帯電話時代から続くモバイルゲームとアプリの関係
gree_tech
•
1.4K views
#インスタサミット 「アカウント運用の基礎」アライドアーキテクツ株式会社 藤田さま by Daiki Hirozawa
#インスタサミット 「アカウント運用の基礎」アライドアーキテクツ株式会社 藤田さま
Daiki Hirozawa
•
2.6K views
オウンドメディア × Instagram APIで出来ること ~写真共有サイト「Marunouchipix」からみるオウンドメディアでのInstagram... by Members_corp
オウンドメディア × Instagram APIで出来ること ~写真共有サイト「Marunouchipix」からみるオウンドメディアでのInstagram...
Members_corp
•
5.6K views
WordPressとS3で落ちないコーポレートサイトを立ち上げよう by Ichiro Tsuji
WordPressとS3で落ちないコーポレートサイトを立ち上げよう
Ichiro Tsuji
•
4.2K views
How are AsakusaSatellite growing with mzp by Ryo Suetsugu
How are AsakusaSatellite growing with mzp
Ryo Suetsugu
•
9.4K views
Realtime database、Clean Architectureを組み合わせた導入事例 by Tatsuya Kikuchi
Realtime database、Clean Architectureを組み合わせた導入事例
Tatsuya Kikuchi
•
603 views
【サンプル】 Instagram開設マニュアルサービス資料 by AAsolution
【サンプル】 Instagram開設マニュアルサービス資料
AAsolution
•
18.5K views
Matcherの紹介@ITリーダー育成キャンプ by noriyaz
Matcherの紹介@ITリーダー育成キャンプ
noriyaz
•
369 views
月間6アプリリリースの開発現場でのQiita:Team活用法 by Naoya Mouri
月間6アプリリリースの開発現場でのQiita:Team活用法
Naoya Mouri
•
9.1K views
ITニュース六時五分:Vine、日本ユーザ3か月で3倍に急増 by 明穂 足立
ITニュース六時五分:Vine、日本ユーザ3か月で3倍に急増
明穂 足立
•
227 views
Swiftビギナーズ倶楽部でのプレゼンver02 by Tomiji Suzuki
Swiftビギナーズ倶楽部でのプレゼンver02
Tomiji Suzuki
•
374 views
Ruby会議08 倉貫発表資料 by Yoshihito Kuranuki
Ruby会議08 倉貫発表資料
Yoshihito Kuranuki
•
2.6K views
エンジニア的pinterest考察 by 株式会社ランチェスター
エンジニア的pinterest考察
株式会社ランチェスター
•
645 views
Androidの会のご紹介 by 高見 知英
Androidの会のご紹介
高見 知英
•
632 views
Trend of Augmented Reality (for Event tool Japan) 2013 by Etsuji Kameyama
Trend of Augmented Reality (for Event tool Japan) 2013
Etsuji Kameyama
•
3.2K views
NIFTYCloud C4SA FacebookNight vol.11 by Yuichi Saotome
NIFTYCloud C4SA FacebookNight vol.11
Yuichi Saotome
•
838 views
IoT.kyoto事例紹介(2017年9月) by Ichiro Tsuji
IoT.kyoto事例紹介(2017年9月)
Ichiro Tsuji
•
439 views
Yumemi.swift #6 2020.5.15 presentation tomiji suzuki by Tomiji Suzuki
Yumemi.swift #6 2020.5.15 presentation tomiji suzuki
Tomiji Suzuki
•
219 views
More from gree_tech
アナザーエデンPC版リリースへの道のり 〜WFSにおけるマルチプラットフォーム対応の取り組み〜 by
アナザーエデンPC版リリースへの道のり 〜WFSにおけるマルチプラットフォーム対応の取り組み〜
gree_tech
729 views
•
36 slides
GREE VR Studio Laboratory「XR-UX Devプロジェクト」の成果紹介 by
GREE VR Studio Laboratory「XR-UX Devプロジェクト」の成果紹介
gree_tech
229 views
•
13 slides
REALITYアバターを様々なメタバースで活躍させてみた - GREE VR Studio Laboratory インターン研究成果発表 by
REALITYアバターを様々なメタバースで活躍させてみた - GREE VR Studio Laboratory インターン研究成果発表
gree_tech
1K views
•
18 slides
アプリ起動時間高速化 ~推測するな、計測せよ~ by
アプリ起動時間高速化 ~推測するな、計測せよ~
gree_tech
1.9K views
•
84 slides
長寿なゲーム事業におけるアプリビルドの効率化 by
長寿なゲーム事業におけるアプリビルドの効率化
gree_tech
347 views
•
116 slides
Cloud Spanner をより便利にする運用支援ツールの紹介 by
Cloud Spanner をより便利にする運用支援ツールの紹介
gree_tech
685 views
•
31 slides
More from gree_tech
(20)
アナザーエデンPC版リリースへの道のり 〜WFSにおけるマルチプラットフォーム対応の取り組み〜 by gree_tech
アナザーエデンPC版リリースへの道のり 〜WFSにおけるマルチプラットフォーム対応の取り組み〜
gree_tech
•
729 views
GREE VR Studio Laboratory「XR-UX Devプロジェクト」の成果紹介 by gree_tech
GREE VR Studio Laboratory「XR-UX Devプロジェクト」の成果紹介
gree_tech
•
229 views
REALITYアバターを様々なメタバースで活躍させてみた - GREE VR Studio Laboratory インターン研究成果発表 by gree_tech
REALITYアバターを様々なメタバースで活躍させてみた - GREE VR Studio Laboratory インターン研究成果発表
gree_tech
•
1K views
アプリ起動時間高速化 ~推測するな、計測せよ~ by gree_tech
アプリ起動時間高速化 ~推測するな、計測せよ~
gree_tech
•
1.9K views
長寿なゲーム事業におけるアプリビルドの効率化 by gree_tech
長寿なゲーム事業におけるアプリビルドの効率化
gree_tech
•
347 views
Cloud Spanner をより便利にする運用支援ツールの紹介 by gree_tech
Cloud Spanner をより便利にする運用支援ツールの紹介
gree_tech
•
685 views
WFSにおけるCloud SpannerとGKEを中心としたGCP導入事例の紹介 by gree_tech
WFSにおけるCloud SpannerとGKEを中心としたGCP導入事例の紹介
gree_tech
•
601 views
SINoALICE -シノアリス- Google Cloud Firestoreを用いた観戦機能の実現について by gree_tech
SINoALICE -シノアリス- Google Cloud Firestoreを用いた観戦機能の実現について
gree_tech
•
626 views
海外展開と負荷試験 by gree_tech
海外展開と負荷試験
gree_tech
•
593 views
翻訳QAでのテスト自動化の取り組み by gree_tech
翻訳QAでのテスト自動化の取り組み
gree_tech
•
305 views
組み込み開発のテストとゲーム開発のテストの違い by gree_tech
組み込み開発のテストとゲーム開発のテストの違い
gree_tech
•
576 views
サーバーフレームワークに潜んでる脆弱性検知ツール紹介 by gree_tech
サーバーフレームワークに潜んでる脆弱性検知ツール紹介
gree_tech
•
209 views
データエンジニアとアナリストチーム兼務になった件について by gree_tech
データエンジニアとアナリストチーム兼務になった件について
gree_tech
•
308 views
シェアドサービスとしてのデータテクノロジー by gree_tech
シェアドサービスとしてのデータテクノロジー
gree_tech
•
432 views
「ドキュメント見つからない問題」をなんとかしたい - 横断検索エンジン導入の取り組みについて- by gree_tech
「ドキュメント見つからない問題」をなんとかしたい - 横断検索エンジン導入の取り組みについて-
gree_tech
•
1K views
「Atomic Design × Nuxt.js」コンポーネント毎に責務の範囲を明確にしたら幸せになった話 by gree_tech
「Atomic Design × Nuxt.js」コンポーネント毎に責務の範囲を明確にしたら幸せになった話
gree_tech
•
1.1K views
比較サイトの検索改善(SPA から SSR に変換) by gree_tech
比較サイトの検索改善(SPA から SSR に変換)
gree_tech
•
694 views
コードの自動修正によって実現する、機能開発を止めないフレームワーク移行 by gree_tech
コードの自動修正によって実現する、機能開発を止めないフレームワーク移行
gree_tech
•
2.9K views
「やんちゃ、足りてる?」〜ヤンマガWebで挑戦を続ける新入りエンジニア〜 by gree_tech
「やんちゃ、足りてる?」〜ヤンマガWebで挑戦を続ける新入りエンジニア〜
gree_tech
•
397 views
法人向けメタバースプラットフォームの開発の裏側をのぞいてみた(仮) by gree_tech
法人向けメタバースプラットフォームの開発の裏側をのぞいてみた(仮)
gree_tech
•
752 views
Recently uploaded
ウォーターフォール開発で生 産性を測る指標 by
ウォーターフォール開発で生 産性を測る指標
Kouhei Aoyagi
55 views
•
13 slides
Najah Matsuo Self Introduction by
Najah Matsuo Self Introduction
NajahMatsuo
10 views
•
29 slides
システム概要.pdf by
システム概要.pdf
Taira Shimizu
44 views
•
1 slide
概要.pdf by
概要.pdf
Taira Shimizu
6 views
•
1 slide
JISTA月例会2023年12月 書籍『3カ月で改善!システム障害対応実践ガイド』ご紹介+失敗学と障害対応と私 by
JISTA月例会2023年12月 書籍『3カ月で改善!システム障害対応実践ガイド』ご紹介+失敗学と障害対応と私
修治 松浦
208 views
•
36 slides
onewedge_companyguide1 by
onewedge_companyguide1
ONEWEDGE1
66 views
•
22 slides
Recently uploaded
(6)
ウォーターフォール開発で生 産性を測る指標 by Kouhei Aoyagi
ウォーターフォール開発で生 産性を測る指標
Kouhei Aoyagi
•
55 views
Najah Matsuo Self Introduction by NajahMatsuo
Najah Matsuo Self Introduction
NajahMatsuo
•
10 views
システム概要.pdf by Taira Shimizu
システム概要.pdf
Taira Shimizu
•
44 views
概要.pdf by Taira Shimizu
概要.pdf
Taira Shimizu
•
6 views
JISTA月例会2023年12月 書籍『3カ月で改善!システム障害対応実践ガイド』ご紹介+失敗学と障害対応と私 by 修治 松浦
JISTA月例会2023年12月 書籍『3カ月で改善!システム障害対応実践ガイド』ご紹介+失敗学と障害対応と私
修治 松浦
•
208 views
onewedge_companyguide1 by ONEWEDGE1
onewedge_companyguide1
ONEWEDGE1
•
66 views
Firestoreを使ってメディアアプリを作ってみた
1.
Firestoreを使ってメディアアプリを 作ってみた
2.
Masahiro Higuchi /
樋口雅拓 ● グリーグループのリミア株式会社で、LIMIA という住まい領域のメディアを 作っています。ゲーム会社ですが、最近はメディアに力を入れています。 ● 機械学習のエンジニアですが、iOS, Android,JSなどもやっている何でも屋 です。4歳の娘のパパ。twitter: @mahiguch1 ● https://limia.jp/ ● https://arine.jp/ ● https://aumo.jp/ ● https://www.mine-3m.com/mine/
3.
LIMIAとは? ● メディアサービス ● 記事一覧を表示し、タップすると 記事詳細を閲覧できる。 ●
記事詳細の最下部に別の記事 への回遊導線が付いている
4.
興味があること LIMIAに最も適したシステムは、何だろう? ● インフラ: Kubernetes/ECS/Lambda/CF/Firebase ●
Backend FW: gin/Laravel/Django/Rails/protobuf/使わない ● アプリ: MVC/MVVM/VIPER/クリーンアーキテクチャ 選択肢が多すぎて、よくわからない! → とりあえず色々試してみよう。
5.
今回試したこと ● インフラ: Kubernetes/ECS/Lambda/CF/Firebase ●
Backend FW: gin/Laravel/Django/Rails/protobuf/使わない ● アプリ: MVC/MVVM/VIPER/クリーンアーキテクチャ Firebase/Firestoreを使って、メディアアプリを作ってみました。 インフラ構築面倒なので、まずはアプリだけでできるものを。w
6.
Firestoreの説明
7.
Firestoreとは? ● FirestoreはFirebaseの機能の一つ。Document Databaseと呼ばれるも の。2019年1月31日にGAになった。 ●
SDKがあり、iOS/Androidから直接アクセス可能。 ● データの入力はFirebase管理画面から可能。 —> つまり、アプリ実装のみで、ClientServer型のシステムを構築できる!
8.
Firestoreのモデル ● Document DatabaseとはNoSQLの一種。 ●
OracleやMySQLといったRDBでは事前にSchemaを定義しておくが、Document Databaseで は後から自由に変更できる。 jsonをそのまま格納できるイメージ。 ● データはDocumentという場所に格納され、それが Collectionでまとめられている。 ● 分かりやすくMySQLで例えると、Collectionがテーブル、Documentがレコード。 —> 正直分かりづらいと思うので、画面とコードを見ながら説明していきます!
9.
Firestoreへのデータ入力方法 ● 左: コレクション ●
中: ドキュメント ● 右: ドキュメントの中身 管理画面があるので、ここから 入力できる。
10.
Firestoreからのデータ取得方法 Collectionと Documentを指 定することで取得 可能。
11.
Firestoreから複数データ取得方法 SQLのように whereで絞り込み が可能
12.
では本題
13.
今回作った検証アプリについて 記事の一覧を表示したい。画面には、記事画像、記事タイトル、ユーザ名が表示され ている。Modelとしては、Firestoreで次のように持つ。 ● Article: id,
title, image_url, user_id ● User: id, name つまり、ArticleとUserの両方のデータを使って一覧表示を作る。 普通はRDBでjoinするかBFF APIを作るが、Firestoreで実装するとどうなるか試して みた。
15.
まとめ ● 体感速度は思ったより早い。 ● データ取得処理がかなり複雑になる。 ●
次は同じモデルをgolang+grpcのサーバと通信させて速度比較してみた い。 ご静聴、ありがとうございました!