Submit Search
Upload
gRPCを使ったメディアサービス
•
Download as PPTX, PDF
•
0 likes
•
2,120 views
gree_tech
Follow
「potatotips #62 (iOS/Android開発Tips共有会)」で発表された資料です。
Read less
Read more
Engineering
Report
Share
Report
Share
1 of 17
Download now
Recommended
RecommendWidgetを作った話
RecommendWidgetを作った話
gree_tech
Fuelphpのテストをdocker-composeとJenkinsで実行
Fuelphpのテストをdocker-composeとJenkinsで実行
gree_tech
Firestoreを使ってメディアアプリを作ってみた
Firestoreを使ってメディアアプリを作ってみた
gree_tech
機械学習輪講会資料
機械学習輪講会資料
gree_tech
LIMIAでのBigQuery活用事例
LIMIAでのBigQuery活用事例
gree_tech
DCL15秒の見れないサイトを3秒まで改善した話。改善継続中
DCL15秒の見れないサイトを3秒まで改善した話。改善継続中
gree_tech
メディアアプリLIMIAにおけるプッシュ通知配信システム
メディアアプリLIMIAにおけるプッシュ通知配信システム
gree_tech
PHPからgoへの移行で分かったこと
PHPからgoへの移行で分かったこと
gree_tech
Recommended
RecommendWidgetを作った話
RecommendWidgetを作った話
gree_tech
Fuelphpのテストをdocker-composeとJenkinsで実行
Fuelphpのテストをdocker-composeとJenkinsで実行
gree_tech
Firestoreを使ってメディアアプリを作ってみた
Firestoreを使ってメディアアプリを作ってみた
gree_tech
機械学習輪講会資料
機械学習輪講会資料
gree_tech
LIMIAでのBigQuery活用事例
LIMIAでのBigQuery活用事例
gree_tech
DCL15秒の見れないサイトを3秒まで改善した話。改善継続中
DCL15秒の見れないサイトを3秒まで改善した話。改善継続中
gree_tech
メディアアプリLIMIAにおけるプッシュ通知配信システム
メディアアプリLIMIAにおけるプッシュ通知配信システム
gree_tech
PHPからgoへの移行で分かったこと
PHPからgoへの移行で分かったこと
gree_tech
LIMIAアプリにおける行動履歴を用いたコンテンツ配信の最適化
LIMIAアプリにおける行動履歴を用いたコンテンツ配信の最適化
gree_tech
公式部活動技術書典部の活動紹介
公式部活動技術書典部の活動紹介
gree_tech
携帯電話時代から続くモバイルゲームとアプリの関係
携帯電話時代から続くモバイルゲームとアプリの関係
gree_tech
#インスタサミット 「アカウント運用の基礎」アライドアーキテクツ株式会社 藤田さま
#インスタサミット 「アカウント運用の基礎」アライドアーキテクツ株式会社 藤田さま
Daiki Hirozawa
SoftLayerで始めるデジタルマーケティング
SoftLayerで始めるデジタルマーケティング
Kohei Nishikawa
【サンプル】 Instagram開設マニュアルサービス資料
【サンプル】 Instagram開設マニュアルサービス資料
AAsolution
Realtime database、Clean Architectureを組み合わせた導入事例
Realtime database、Clean Architectureを組み合わせた導入事例
Tatsuya Kikuchi
Webエンジニアに贈る、正しい番犬の飼い方
Webエンジニアに贈る、正しい番犬の飼い方
Innova Inc.
How are AsakusaSatellite growing with mzp
How are AsakusaSatellite growing with mzp
Ryo Suetsugu
ノンコーディングでやってみよう!音声テキスト変換 - LINE × Logic Apps × Speech to text -
ノンコーディングでやってみよう!音声テキスト変換 - LINE × Logic Apps × Speech to text -
典子 松本
マルチテナントに対応したシラサギグループウェアのご紹介
マルチテナントに対応したシラサギグループウェアのご紹介
Shinji Tanimoto
20160820 iOSDC Lunch Session「東急ハンズのPOSから学んだ、業務iOSアプリの向き合い方」
20160820 iOSDC Lunch Session「東急ハンズのPOSから学んだ、業務iOSアプリの向き合い方」
Yusuke KUROIWA
ビッグデータを活用したSEO対策:検索エンジン最適化とは
ビッグデータを活用したSEO対策:検索エンジン最適化とは
新潟コンサルタント横田秀珠
ノンコーディングでここまでできる!LINE BOT を作ってみよう!
ノンコーディングでここまでできる!LINE BOT を作ってみよう!
典子 松本
Ruby会議08 倉貫発表資料
Ruby会議08 倉貫発表資料
Yoshihito Kuranuki
Matcherの紹介@ITリーダー育成キャンプ
Matcherの紹介@ITリーダー育成キャンプ
noriyaz
Microsoft Flow 改め、Power Automateはじめました。
Microsoft Flow 改め、Power Automateはじめました。
典子 松本
アナザーエデンPC版リリースへの道のり 〜WFSにおけるマルチプラットフォーム対応の取り組み〜
アナザーエデンPC版リリースへの道のり 〜WFSにおけるマルチプラットフォーム対応の取り組み〜
gree_tech
GREE VR Studio Laboratory「XR-UX Devプロジェクト」の成果紹介
GREE VR Studio Laboratory「XR-UX Devプロジェクト」の成果紹介
gree_tech
REALITYアバターを様々なメタバースで活躍させてみた - GREE VR Studio Laboratory インターン研究成果発表
REALITYアバターを様々なメタバースで活躍させてみた - GREE VR Studio Laboratory インターン研究成果発表
gree_tech
アプリ起動時間高速化 ~推測するな、計測せよ~
アプリ起動時間高速化 ~推測するな、計測せよ~
gree_tech
長寿なゲーム事業におけるアプリビルドの効率化
長寿なゲーム事業におけるアプリビルドの効率化
gree_tech
More Related Content
What's hot
LIMIAアプリにおける行動履歴を用いたコンテンツ配信の最適化
LIMIAアプリにおける行動履歴を用いたコンテンツ配信の最適化
gree_tech
公式部活動技術書典部の活動紹介
公式部活動技術書典部の活動紹介
gree_tech
携帯電話時代から続くモバイルゲームとアプリの関係
携帯電話時代から続くモバイルゲームとアプリの関係
gree_tech
#インスタサミット 「アカウント運用の基礎」アライドアーキテクツ株式会社 藤田さま
#インスタサミット 「アカウント運用の基礎」アライドアーキテクツ株式会社 藤田さま
Daiki Hirozawa
SoftLayerで始めるデジタルマーケティング
SoftLayerで始めるデジタルマーケティング
Kohei Nishikawa
【サンプル】 Instagram開設マニュアルサービス資料
【サンプル】 Instagram開設マニュアルサービス資料
AAsolution
Realtime database、Clean Architectureを組み合わせた導入事例
Realtime database、Clean Architectureを組み合わせた導入事例
Tatsuya Kikuchi
Webエンジニアに贈る、正しい番犬の飼い方
Webエンジニアに贈る、正しい番犬の飼い方
Innova Inc.
How are AsakusaSatellite growing with mzp
How are AsakusaSatellite growing with mzp
Ryo Suetsugu
ノンコーディングでやってみよう!音声テキスト変換 - LINE × Logic Apps × Speech to text -
ノンコーディングでやってみよう!音声テキスト変換 - LINE × Logic Apps × Speech to text -
典子 松本
マルチテナントに対応したシラサギグループウェアのご紹介
マルチテナントに対応したシラサギグループウェアのご紹介
Shinji Tanimoto
20160820 iOSDC Lunch Session「東急ハンズのPOSから学んだ、業務iOSアプリの向き合い方」
20160820 iOSDC Lunch Session「東急ハンズのPOSから学んだ、業務iOSアプリの向き合い方」
Yusuke KUROIWA
ビッグデータを活用したSEO対策:検索エンジン最適化とは
ビッグデータを活用したSEO対策:検索エンジン最適化とは
新潟コンサルタント横田秀珠
ノンコーディングでここまでできる!LINE BOT を作ってみよう!
ノンコーディングでここまでできる!LINE BOT を作ってみよう!
典子 松本
Ruby会議08 倉貫発表資料
Ruby会議08 倉貫発表資料
Yoshihito Kuranuki
Matcherの紹介@ITリーダー育成キャンプ
Matcherの紹介@ITリーダー育成キャンプ
noriyaz
Microsoft Flow 改め、Power Automateはじめました。
Microsoft Flow 改め、Power Automateはじめました。
典子 松本
What's hot
(17)
LIMIAアプリにおける行動履歴を用いたコンテンツ配信の最適化
LIMIAアプリにおける行動履歴を用いたコンテンツ配信の最適化
公式部活動技術書典部の活動紹介
公式部活動技術書典部の活動紹介
携帯電話時代から続くモバイルゲームとアプリの関係
携帯電話時代から続くモバイルゲームとアプリの関係
#インスタサミット 「アカウント運用の基礎」アライドアーキテクツ株式会社 藤田さま
#インスタサミット 「アカウント運用の基礎」アライドアーキテクツ株式会社 藤田さま
SoftLayerで始めるデジタルマーケティング
SoftLayerで始めるデジタルマーケティング
【サンプル】 Instagram開設マニュアルサービス資料
【サンプル】 Instagram開設マニュアルサービス資料
Realtime database、Clean Architectureを組み合わせた導入事例
Realtime database、Clean Architectureを組み合わせた導入事例
Webエンジニアに贈る、正しい番犬の飼い方
Webエンジニアに贈る、正しい番犬の飼い方
How are AsakusaSatellite growing with mzp
How are AsakusaSatellite growing with mzp
ノンコーディングでやってみよう!音声テキスト変換 - LINE × Logic Apps × Speech to text -
ノンコーディングでやってみよう!音声テキスト変換 - LINE × Logic Apps × Speech to text -
マルチテナントに対応したシラサギグループウェアのご紹介
マルチテナントに対応したシラサギグループウェアのご紹介
20160820 iOSDC Lunch Session「東急ハンズのPOSから学んだ、業務iOSアプリの向き合い方」
20160820 iOSDC Lunch Session「東急ハンズのPOSから学んだ、業務iOSアプリの向き合い方」
ビッグデータを活用したSEO対策:検索エンジン最適化とは
ビッグデータを活用したSEO対策:検索エンジン最適化とは
ノンコーディングでここまでできる!LINE BOT を作ってみよう!
ノンコーディングでここまでできる!LINE BOT を作ってみよう!
Ruby会議08 倉貫発表資料
Ruby会議08 倉貫発表資料
Matcherの紹介@ITリーダー育成キャンプ
Matcherの紹介@ITリーダー育成キャンプ
Microsoft Flow 改め、Power Automateはじめました。
Microsoft Flow 改め、Power Automateはじめました。
More from gree_tech
アナザーエデンPC版リリースへの道のり 〜WFSにおけるマルチプラットフォーム対応の取り組み〜
アナザーエデンPC版リリースへの道のり 〜WFSにおけるマルチプラットフォーム対応の取り組み〜
gree_tech
GREE VR Studio Laboratory「XR-UX Devプロジェクト」の成果紹介
GREE VR Studio Laboratory「XR-UX Devプロジェクト」の成果紹介
gree_tech
REALITYアバターを様々なメタバースで活躍させてみた - GREE VR Studio Laboratory インターン研究成果発表
REALITYアバターを様々なメタバースで活躍させてみた - GREE VR Studio Laboratory インターン研究成果発表
gree_tech
アプリ起動時間高速化 ~推測するな、計測せよ~
アプリ起動時間高速化 ~推測するな、計測せよ~
gree_tech
長寿なゲーム事業におけるアプリビルドの効率化
長寿なゲーム事業におけるアプリビルドの効率化
gree_tech
Cloud Spanner をより便利にする運用支援ツールの紹介
Cloud Spanner をより便利にする運用支援ツールの紹介
gree_tech
WFSにおけるCloud SpannerとGKEを中心としたGCP導入事例の紹介
WFSにおけるCloud SpannerとGKEを中心としたGCP導入事例の紹介
gree_tech
SINoALICE -シノアリス- Google Cloud Firestoreを用いた観戦機能の実現について
SINoALICE -シノアリス- Google Cloud Firestoreを用いた観戦機能の実現について
gree_tech
海外展開と負荷試験
海外展開と負荷試験
gree_tech
翻訳QAでのテスト自動化の取り組み
翻訳QAでのテスト自動化の取り組み
gree_tech
組み込み開発のテストとゲーム開発のテストの違い
組み込み開発のテストとゲーム開発のテストの違い
gree_tech
サーバーフレームワークに潜んでる脆弱性検知ツール紹介
サーバーフレームワークに潜んでる脆弱性検知ツール紹介
gree_tech
データエンジニアとアナリストチーム兼務になった件について
データエンジニアとアナリストチーム兼務になった件について
gree_tech
シェアドサービスとしてのデータテクノロジー
シェアドサービスとしてのデータテクノロジー
gree_tech
「ドキュメント見つからない問題」をなんとかしたい - 横断検索エンジン導入の取り組みについて-
「ドキュメント見つからない問題」をなんとかしたい - 横断検索エンジン導入の取り組みについて-
gree_tech
「Atomic Design × Nuxt.js」コンポーネント毎に責務の範囲を明確にしたら幸せになった話
「Atomic Design × Nuxt.js」コンポーネント毎に責務の範囲を明確にしたら幸せになった話
gree_tech
比較サイトの検索改善(SPA から SSR に変換)
比較サイトの検索改善(SPA から SSR に変換)
gree_tech
コードの自動修正によって実現する、機能開発を止めないフレームワーク移行
コードの自動修正によって実現する、機能開発を止めないフレームワーク移行
gree_tech
「やんちゃ、足りてる?」〜ヤンマガWebで挑戦を続ける新入りエンジニア〜
「やんちゃ、足りてる?」〜ヤンマガWebで挑戦を続ける新入りエンジニア〜
gree_tech
法人向けメタバースプラットフォームの開発の裏側をのぞいてみた(仮)
法人向けメタバースプラットフォームの開発の裏側をのぞいてみた(仮)
gree_tech
More from gree_tech
(20)
アナザーエデンPC版リリースへの道のり 〜WFSにおけるマルチプラットフォーム対応の取り組み〜
アナザーエデンPC版リリースへの道のり 〜WFSにおけるマルチプラットフォーム対応の取り組み〜
GREE VR Studio Laboratory「XR-UX Devプロジェクト」の成果紹介
GREE VR Studio Laboratory「XR-UX Devプロジェクト」の成果紹介
REALITYアバターを様々なメタバースで活躍させてみた - GREE VR Studio Laboratory インターン研究成果発表
REALITYアバターを様々なメタバースで活躍させてみた - GREE VR Studio Laboratory インターン研究成果発表
アプリ起動時間高速化 ~推測するな、計測せよ~
アプリ起動時間高速化 ~推測するな、計測せよ~
長寿なゲーム事業におけるアプリビルドの効率化
長寿なゲーム事業におけるアプリビルドの効率化
Cloud Spanner をより便利にする運用支援ツールの紹介
Cloud Spanner をより便利にする運用支援ツールの紹介
WFSにおけるCloud SpannerとGKEを中心としたGCP導入事例の紹介
WFSにおけるCloud SpannerとGKEを中心としたGCP導入事例の紹介
SINoALICE -シノアリス- Google Cloud Firestoreを用いた観戦機能の実現について
SINoALICE -シノアリス- Google Cloud Firestoreを用いた観戦機能の実現について
海外展開と負荷試験
海外展開と負荷試験
翻訳QAでのテスト自動化の取り組み
翻訳QAでのテスト自動化の取り組み
組み込み開発のテストとゲーム開発のテストの違い
組み込み開発のテストとゲーム開発のテストの違い
サーバーフレームワークに潜んでる脆弱性検知ツール紹介
サーバーフレームワークに潜んでる脆弱性検知ツール紹介
データエンジニアとアナリストチーム兼務になった件について
データエンジニアとアナリストチーム兼務になった件について
シェアドサービスとしてのデータテクノロジー
シェアドサービスとしてのデータテクノロジー
「ドキュメント見つからない問題」をなんとかしたい - 横断検索エンジン導入の取り組みについて-
「ドキュメント見つからない問題」をなんとかしたい - 横断検索エンジン導入の取り組みについて-
「Atomic Design × Nuxt.js」コンポーネント毎に責務の範囲を明確にしたら幸せになった話
「Atomic Design × Nuxt.js」コンポーネント毎に責務の範囲を明確にしたら幸せになった話
比較サイトの検索改善(SPA から SSR に変換)
比較サイトの検索改善(SPA から SSR に変換)
コードの自動修正によって実現する、機能開発を止めないフレームワーク移行
コードの自動修正によって実現する、機能開発を止めないフレームワーク移行
「やんちゃ、足りてる?」〜ヤンマガWebで挑戦を続ける新入りエンジニア〜
「やんちゃ、足りてる?」〜ヤンマガWebで挑戦を続ける新入りエンジニア〜
法人向けメタバースプラットフォームの開発の裏側をのぞいてみた(仮)
法人向けメタバースプラットフォームの開発の裏側をのぞいてみた(仮)
gRPCを使ったメディアサービス
1.
gRPCを使ったメディアサービス
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.
背景と目的
4.
LIMIAとは? ● メディアサービス ● 記事一覧を表示し、タップす ると記事詳細を閲覧できる。 ●
記事詳細の最下部に別の記事 への回遊導線が付いている
5.
興味があること LIMIAに最も適したシステムは、何だろう? ● インフラ: Kubernetes/ECS/Lambda/EC2/CF/Firebase ●
Backend FW: gin/Laravel/Django/Rails/gRPC/使わない ● アプリ: MVC/MVVM/VIPER/クリーンアーキテクチャ 選択肢が多すぎて、よくわからない! → とりあえず色々試してみよう。
6.
今回試したこと ● インフラ: Kubernetes/ECS/Lambda/EC2/CF/Firebase ●
Backend FW: gin/Laravel/Django/Rails/gRPC/使わない ● アプリ: MVC/MVVM/VIPER/クリーンアーキテクチャ gRPCを使って、KotlinでgRPC Serverとメディアアプリを作ってみました 。
7.
gRPCの説明
8.
gRPCとは? ● RPCを実現する通信方式の一つ ● Googleが作っている ●
Protocol buffersという形式で データをシリアライズして送受 信している。
9.
Protocol bufferとは? ● Request/Responseのフォーマットを 指定すると、それでシリアライズして くれる。 ●
通信部分のコードを自動生成してくれ るので、そこに時間を割かれるのを防 げる。 ● ただし、エラー定義は書けないので、 そこはコメントで書いておくなど、チ ーム内でルールを決めておく必要があ る。
10.
では本題
11.
今回作った検証アプリについて 記事の一覧を表示したい。画面には、記事画像、記事 タイトル、ユーザ名が表示されている。Modelとしては 、次のように持つ。 ● Article: Id,
Title, ImageUrl, User ● User: Id, Name これをprotobufに定義し、gRPCで通信するとどうなる か試してみた。
12.
User.proto / Article.proto
13.
ArticleList.proto build.gradleに以下のような 記述をしておくと、コード の自動生成とそれを含めた buildを自動でやってくれる 。便利!
14.
Android Client
15.
Kotlin Server Server側は、Clientから呼び出したmethodをoverrideする形で実装する。 Client/Server共にかなりシンプルに実装できる。
16.
Tips 予想外にサクッと書けてしまったので、Tipsが無かった。 強いて挙げれば、gRPCが自動生成したコードは、javax.annotation-apiを 使っている。これをgradleに書いて置かないとbuildが通らないので注意 。
17.
まとめ ● 他のパターンを試した時より実装工数が少なかった。 ● 動作速度は体感で明らかに早い。 ●
動作速度を計測して、複数パターンの比較を行いたい。 ご静聴、ありがとうございました!
Download now