Yappli Tech Blog

株式会社ヤプリの開発メンバーによるブログです。最新の技術情報からチーム・働き方に関するテーマまで、日々の熱い想いを持って発信していきます。

Yappli Android Rejected Conf. MeetupでgRPC+ProtocolBuffersについて話ました!

f:id:dais-sasa:20190307105834p:plain
Yappli Android Rejected Conf. Meetup

こんにちは、株式会社ヤプリでAndroidエンジニアをしているdais-sasaです!

先日、弊社のMeetupでDroidKaigi2019でrejectされてしまったセッションを発表する機会があり、登壇してきました。

私以外にも外部から人を招いて登壇して頂き、惜しくもrejectされたセッションを聞く事ができました。
私は今回が人生初めての登壇で物凄い緊張しての発表だったのですが、面白かったと言ってくれる方がいたり、私の発表に興味を持って色々と質問をしてくれる方がいたりと楽しく、得難い経験ができました。

もっと登壇の経験を積み、ゆくゆくはDroidKaigiでも登壇したいと思いました。

今回のrejected confで、gRPC+ProtocolBuffersを開発で使ってみて感じた事や注意すべき事について発表しました。
その時に使用した資料を公開します。

gRPC+ProtocolBuffersとは?

f:id:dais-sasa:20190307112935p:plain
gRPC+ProtocolBuffersで出来ること

登壇資料で使ったページをそのまま表示したものですが、細かい概念を抜きにして出来る事を言うと以下のようになります。

一つのprotoファイルを元に、複数の言語のソースコードを自動生成し、その自動生成されたコードをそれぞれのシステムで使用する事で、メソッドを叩くだけでAPI通信を行えるようになる

これはあくまでgRPCで出来る事の一部だけなのですが、まずはこういう事が出来るものとしてgRPCを使えば、初めてでもある程度は上手く利用できるようになるかなと思います。

今回の発表では上記のような理解を元に開発を行なった経験を話しています。

発表資料

speakerdeck.com

発表内容をまとめると

アプリチームとサーバーチームが連携して一つのシステムを作り上げる際、お互いが持っている知識の性質が異なるので、認識の共有がし辛く、そう言った認識のズレがアプリの不具合に繋がる事がままあります。

gRPC+ProtocolBuffersでAPI通信を実現した場合、全てのシステムで共有されるprotoファイルが、異なるチームの認識の共有を容易にしてくれるので、このような問題が起き辛くなります。

今回の発表で、実例を用いてその利点についての説明をしているので、興味を持ったらgRPC+ProtocolBuffersを試しにでもいいので使ってみるといいと思います。

追記

素敵なフィードバックをいただけました!
自身の発表に対して、好意的な反応をいただけるとやっぱり嬉しいですね。