milkcocoa のsdkを作る話

17
Milkcocoa ななななななな ななななな --Milkcocoa ななななななななな -- Milkcocoa meetup Vol.8 Milkcocoa オオオオ #1 2016/3/11

Upload: masaki-yamamoto

Post on 11-Apr-2017

2.868 views

Category:

Technology


1 download

TRANSCRIPT

Page 1: Milkcocoa のSDKを作る話

Milkcocoaなプラグインを開発する話

--Milkcocoa の現在とこれからと --

Milkcocoa meetup Vol.8 Milkcocoa オジサン #1 2016/3/11

Page 2: Milkcocoa のSDKを作る話

自己紹介• 山本 允葵

(Masaki Yamamoto)

えむにわ @m2wasabi

Milkcocoa オジサン (n-1) 号 ( つらい )クソザコハッカー

Page 3: Milkcocoa のSDKを作る話

本日の概要• 拙作ライブラリの紹介

Milkcocoa for RPG ツクール MV Milkcocoa for Unity

• Milkcocoa クライアントの中身と現状 Milkcocoa クライアントの実装状況 Milkcocoa クライアントの通信プロトコル

Page 4: Milkcocoa のSDKを作る話

拙作ライブラリの紹介 1RPG ツクール MV 用 Milkcocoa プラグイン

Page 5: Milkcocoa のSDKを作る話

RPGツクールでマルチプレイできます。http://qiita.com/m2wasabi/items/267b57d2b6c90ce93ad2

Page 6: Milkcocoa のSDKを作る話

拙作ライブラリの紹介 2Unity 用 Milkcocoa SDK

Page 7: Milkcocoa のSDKを作る話

Unityでチャットアプリ

https://github.com/m2wasabi/milkcocoa-client-unity

Page 8: Milkcocoa のSDKを作る話

使い方 (1/2)• Milkcocoa のプレハブを、 hierarchy に投げ込む

• App_ID と datapath を任意に変更する

• 任意の場所から呼び出す

Page 9: Milkcocoa のSDKを作る話

使い方 (2/2)

Milkcocoa.Milkcocoa.OnSend(Action<MilkcocoaEvent> callback);

Milkcocoa.Milkcocoa.Send(JSONObject data);

Milkcocoa.Milkcocoa.OnPush(Action<MilkcocoaEvent> callback);

Milkcocoa.Milkcocoa.Push(JSONObject data);

Milkcocoa.Milkcocoa.Off(string event,Action<MilkcocoaEvent> callback);

実装されている関数

On ~関数にコールバックを宣言すればどこからでも呼び出せる

名前空間とクラス名で 2 回言うのがダサい ( 改善します )

Page 10: Milkcocoa のSDKを作る話

Milkcocoaクライアントの中身と現状

Page 11: Milkcocoa のSDKを作る話

Milkcocoaの機能

リアルタイム通信

データストア

ユーザー認証

send() on()

push() set() get() stream() history()

user() authWithToken() logout()

API 認証 connectWithApiKey()

Page 12: Milkcocoa のSDKを作る話

Milkcocoaクライアントの実装状況platform メンテ

ナリアルタイム通信

データストア

ユーザー認証

API 認証

JavaScript TR ○ ◎ ◎ ○Node.js TR ○ ◎ ◎ ○Android TR ○ ◎ ◎Swift(β 版 ) TR ○ ○※ ○python TR ○ ○※Arduino TR ○ ○※ ○ESP8266 TR ○ ○※ ○mbed JKsoft ○ ○※ ○Unity(C#) m2w ○ ○※RPGMV m2w ○

※ push API のみの実装言語 モバイル IoT その他

Page 13: Milkcocoa のSDKを作る話

Milkcocoaクライアントのリンクまとめplatform URL

JavaScript https://mlkcca.com/document/api-js.html

Node.js https://www.npmjs.com/package/milkcocoa

Android https://github.com/milk-cocoa/milkcocoa_for_android

Swift(β 版 ) https://github.com/milk-cocoa/milkcocoa-swift-sdk

python https://github.com/milk-cocoa/python_sdk

Arduino https://github.com/milk-cocoa/Milkcocoa_Arduino_SDK

ESP8266 https://github.com/milk-cocoa/Milkcocoa_ESP8266_SDK

mbed https://developer.mbed.org/users/jksoft/code/Milkcocoa/

Unity(C#) https://github.com/m2wasabi/milkcocoa-client-unity

RPGMV https://github.com/m2wasabi/milkcocoa-rpgmv-plugin

Page 14: Milkcocoa のSDKを作る話

Milkcocoaの通信プロトコル

• リアルタイム通信部分はMQTT を使って行っている

MQTT 接続のコード ( 一例 )

mqttClient = new MqttClient(appId + ".mlkcca.com");mqttClient.Connect(clientId, "sdammy", appId);

MQTT の topic

/app_id/DataStorePath/send/app_id/DataStorePath/push

Page 15: Milkcocoa のSDKを作る話

Milkcocoaの通信プロトコル

• リアルタイム通信部分はMQTT を使って行っている

MQTT の data

{“path”:”DataStorePath”,“params”:{JSONData},“r”:seq}

1,2,3,…..

これだけ分かれば、 send と push と on は実装できる!

Page 16: Milkcocoa のSDKを作る話

Milkcocoaの通信プロトコル

• それ以外の部分は調べ切れていない  = 公開された良いソースが存在しない。

• 考えられる方法 JavaScript の難読化を紐解く Android の jar をバラす

時間の無駄しそうなのでやらない。 |仕様公開できそうなんでしょうか? |д ゚ )

Page 17: Milkcocoa のSDKを作る話

結び

なんか色々作ってるけど、ライブラリなんかより

面白いもの作った人が勝ちだよね。

Just create something!