昨日開催されたmilkcocoa Meetupで登壇させて頂いたので、登壇内容を少し整理して書いておきます。
資料はこちらです。 (milkcocoaのiOSとNode.js SDKを実案件で使ってみた話 http://slides.com/sugawararyousuke/milkcocoa-ios-node-js-sdk )
概要
milkcocoaのiOSとNode.js SDKを使った話をしました。milkcocoa自体は 現時点ではフロントエンドエンジニアがバックエンドの知識が無くてもデータベースやWebSocketが使えるよ!という位置づけだと思っています。
その認識は間違ってないと思うのですが、milkcocoaはそれだけでは無く、iOSやNode.jsといったその他のプラットフォームにも対応(or 今後対応)しています。
今まではmilkcocoaといったら爆速でチャットが作れるアレというイメージだったかもしれないですが、 違う側面での使い方の紹介をしました。
milkcocoa iOS SDK
一言で言うと、ROMOを使ってIoTなプロダクトを作った話をしました。
ROMOはiPhoneがラジコンになるおもちゃみたいなものです。(http://liginc.co.jp/web/programming/other-programming/130665)
@nobkzさんにiOS SDKを先行して使わせて頂き、Swift/ROMOとWebを連携させることに成功。
Web屋がIoTやる時のジレンマとmilkcocoa
IoTなことをやろうとすると、センサーデバイス側やAndrod,iOSなどの幅広い知識が必要になることが多いと思います。ただ、私(達)はWeb屋なので Webを超えた広い知識はなかなか覚えられていません。カンタンなフラグ切り替えだったり、パラメーターを各デバイスに渡してあげるだけの実装だとしても、初歩的な部分でつまづいて、プロダクト全体や細部を作る時間が圧迫されがちになると思います。
milkcocoaを使うことで デバイスの連携がカンタンにでき、プロダクトの設計などメタレイヤーに集中出来ました。
milkcocoa Node.js SDK
一言で言うと、サーバーの負荷分散にmilkcocoaを使ってみたという話です。
自前でサーバーのオートスケールを考える時間、余裕、スキルが無い場合でもmilkcocoaを中間に挟むことで、同時アクセスをさばける構成を作れます。
その分、milkcocoa側の負荷がかかるんじゃないのかとという疑問はあると思いますが、そこは料金との兼ね合いになると思うので、直接TechnicalRockstarsさんに聞いてみましょう。
今回はとある処理をNode.js側で行い、処理が終わったタイミングでmilkcocoa経由で見れているユーザーにお知らせするといった構成でした。
Node.js -> milkcocoa
の一方通行な通信の場合はこの構成で十分な気がしています。
milkcocoa側でユーザーイベントを取得してNode.js側に伝えるという
Node.js <- milkcocoa
の方向をやる場合はまた別の方法を考えたいですね。
インタラクティブ時のジレンマとmilkcocoa
インタラクティブな案件の場合は、インフラ側は同時アクセス数をいかにさばけるかが大事になります。しかし、アクセス時のオートスケールだったりに掛かる作業コストを含めた金額面は安く無いです。ここをmilkcocoaにすることで、 アプリ開発者はユーザーからの同時接続数を考える手間が無くなり、プロダクトの設計などメタレイヤーに集中出来るというメリットを感じられました。
iOSとNode.jsの事例で両方で感じたことですが、milkcocoaを使うことで ユーザーが作りたいものを作りやすくなるっていう面が一貫していると感じました。milkcocoaの思想はそういった部分にあると思います。(このあとの@nobkzさんの話にもありましたね)
milkcocoaのサポートが強い / サポートエピソード
CTOの@nobkzさんに SDKの実装をObjective-Cで欲しいかSwiftで欲しいかを聞かれました笑
そこでSwiftが良い!といったら 4日後にホントにSwift用でSDKを作っていただきました。
Objective-CでもSwiftでも作っていただいたものを使おうとしていたので、これはかなり面食らいましたね笑
最後に
以上がスライドに載せた内容で伝えたかった部分の要約です。 もっと細かく書くと色々あるんですけど、開催報告レポートとかでまとめたいと思います。
@nobkzさんがエモい話をして ブログ書いて下さい とおっしゃっていましたね。みんな記事を書きましょう笑
##リンクなど
- イベントページ http://mlkcca.connpass.com/event/9891/
- ROMO http://www.romotive.jp/
- Tweetまとめ http://togetter.com/li/758049
- milkcocoaのiOSとNode.js SDKを実案件で使ってみた話 http://slides.com/sugawararyousuke/milkcocoa-ios-node-js-sdk