Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
gRPCを使ったメディアサービス
Search
gree_tech
PRO
June 20, 2019
Technology
0
440
gRPCを使ったメディアサービス
「potatotips #62 (iOS/Android開発Tips共有会)」で発表された資料です。
gree_tech
PRO
June 20, 2019
Tweet
Share
More Decks by gree_tech
See All by gree_tech
変わるもの、変わらないもの :OSSアーキテクチャで実現する持続可能なシステム
gree_tech
PRO
0
2.7k
マネジメントに役立つ Google Cloud
gree_tech
PRO
0
28
今この時代に技術とどう向き合うべきか
gree_tech
PRO
3
2.4k
生成AIを開発組織にインストールするために: REALITYにおけるガバナンス・技術・文化へのアプローチ
gree_tech
PRO
0
180
安く・手軽に・現場発 既存資産を生かすSlack×AI検索Botの作り方
gree_tech
PRO
0
170
生成AIを安心して活用するために──「情報セキュリティガイドライン」策定とポイント
gree_tech
PRO
1
1.5k
あうもんと学ぶGenAIOps
gree_tech
PRO
0
290
MVP開発における生成AIの活用と導入事例
gree_tech
PRO
0
310
機械学習・生成AIが拓く事業価値創出の最前線
gree_tech
PRO
0
230
Other Decks in Technology
See All in Technology
Introduction to Sansan Meishi Maker Development Engineer
sansan33
PRO
0
330
Oracle Database@Google Cloud:サービス概要のご紹介
oracle4engineer
PRO
1
840
AWS re:Invent 2025 を振り返る
kazzpapa3
2
110
小さく、早く、可能性を多産する。生成AIプロジェクト / prAIrie-dog
visional_engineering_and_design
0
350
AWS re:Invent2025最新動向まとめ(NRIグループre:Cap 2025)
gamogamo
0
150
名刺メーカーDevグループ 紹介資料
sansan33
PRO
0
1k
自己管理型チームと個人のセルフマネジメント 〜モチベーション編〜
kakehashi
PRO
5
2.2k
コールドスタンバイ構成でCDは可能か
hiramax
0
130
Sansan Engineering Unit 紹介資料
sansan33
PRO
1
3.6k
モノタロウ x クリエーションラインで実現する チームトポロジーにおける プラットフォームチーム・ ストリームアラインドチームの 効果的なコラボレーション
creationline
0
510
Bill One 開発エンジニア 紹介資料
sansan33
PRO
4
17k
旬のブリと旬の技術で楽しむ AI エージェント設計開発レシピ
chack411
1
120
Featured
See All Featured
The Limits of Empathy - UXLibs8
cassininazir
1
200
Utilizing Notion as your number one productivity tool
mfonobong
2
190
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
Bootstrapping a Software Product
garrettdimon
PRO
307
120k
Bash Introduction
62gerente
615
210k
Design in an AI World
tapps
0
110
Code Review Best Practice
trishagee
74
19k
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
72
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.6k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
9
1k
[SF Ruby Conf 2025] Rails X
palkan
0
680
Stop Working from a Prison Cell
hatefulcrawdad
273
21k
Transcript
gRPCを使ったメディアサービス
Masahiro Higuchi / 樋口雅拓 • グリーグループのリミア株式会社で、LIMIA という住まい領域のメ ディアを作っています。ゲーム会社ですが、最近はメディアに力を 入れています。 •
機械学習のエンジニアですが、iOS, Android,JSなどもやっている何で も屋です。4歳の娘のパパ。twitter: @mahiguch1 • https://limia.jp/ • https://arine.jp/ • https://aumo.jp/ • https://www.mine-3m.com/mine/
背景と目的
LIMIAとは? • メディアサービス • 記事一覧を表示し、タップす ると記事詳細を閲覧できる。 • 記事詳細の最下部に別の記事 への回遊導線が付いている
興味があること LIMIAに最も適したシステムは、何だろう? • インフラ: Kubernetes/ECS/Lambda/EC2/CF/Firebase • Backend FW: gin/Laravel/Django/Rails/gRPC/使わない •
アプリ: MVC/MVVM/VIPER/クリーンアーキテクチャ 選択肢が多すぎて、よくわからない! → とりあえず色々試してみよう。
今回試したこと • インフラ: Kubernetes/ECS/Lambda/EC2/CF/Firebase • Backend FW: gin/Laravel/Django/Rails/gRPC/使わない • アプリ:
MVC/MVVM/VIPER/クリーンアーキテクチャ gRPCを使って、KotlinでgRPC Serverとメディアアプリを作ってみました 。
gRPCの説明
gRPCとは? • RPCを実現する通信方式の一つ • Googleが作っている • Protocol buffersという形式で データをシリアライズして送受 信している。
Protocol bufferとは? • Request/Responseのフォーマットを 指定すると、それでシリアライズして くれる。 • 通信部分のコードを自動生成してくれ るので、そこに時間を割かれるのを防 げる。
• ただし、エラー定義は書けないので、 そこはコメントで書いておくなど、チ ーム内でルールを決めておく必要があ る。
では本題
今回作った検証アプリについて 記事の一覧を表示したい。画面には、記事画像、記事 タイトル、ユーザ名が表示されている。Modelとしては 、次のように持つ。 • Article: Id, Title, ImageUrl, User
• User: Id, Name これをprotobufに定義し、gRPCで通信するとどうなる か試してみた。
User.proto / Article.proto
ArticleList.proto build.gradleに以下のような 記述をしておくと、コード の自動生成とそれを含めた buildを自動でやってくれる 。便利!
Android Client
Kotlin Server Server側は、Clientから呼び出したmethodをoverrideする形で実装する。 Client/Server共にかなりシンプルに実装できる。
Tips 予想外にサクッと書けてしまったので、Tipsが無かった。 強いて挙げれば、gRPCが自動生成したコードは、javax.annotation-apiを 使っている。これをgradleに書いて置かないとbuildが通らないので注意 。
まとめ • 他のパターンを試した時より実装工数が少なかった。 • 動作速度は体感で明らかに早い。 • 動作速度を計測して、複数パターンの比較を行いたい。 ご静聴、ありがとうございました!