Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

Milkcocoa SDK for UWP and .NET Framework

More than 3 years have passed since last update.

UWPアプリから利用できる、Milkcocoa SDKの使い方を解説します。

経緯

名古屋版IoT縛りの勉強会! IoTLT vol1でMilkcocoaを知りました。
上記で知り合った、ウフル川野氏に聞いたところ、Win10 IoT Core向けのSDKは無いということだったので、作ることに。
20160724A.png

動作確認

  • UWP / Windows 10 Professional / Surface Pro 2
  • UWP / Windows 10 Mobile / MADOSMA
  • UWP / Windows 10 IoT Core / Raspberry Pi 2/3
  • WPF / Windows 10 Professional / Surface Pro 2
  • Console / Windows 10 Professional / Surface Pro 2

まだIoTCoreで動作確認していなかった、、、。
動きました。(^O^)/

ニーズがあれば、、、WPFやWinFormといった.NET Frameworkにも対応したいと思っています。
.NET Frameworkに対応しました。

SDKのインストール方法

(nugetにアップロードしてありますので)Visual Studioのnugetパッケージマネージャーコンソールで、
Install-Package Milkcocoa
を実行してください。

本SDKのパッケージページはこちらです。

プログラミング(送信編)

Milkcocoaサイトのdashboardで”アプリ”を作ってください。
UWPアプリからは、app_id(赤枠部分)を使って”アプリ”に接続しますので、メモしておきましょう。

20160724B.PNG

UWPアプリでは、Milkcocoaクラスをインスタンス化するときに、app_idを指定します。".mlkcca.com"を忘れないように。

private Milkcocoa.Milkcocoa Milkcocoa;
Milkcocoa = new Milkcocoa.Milkcocoa("iceinixlzq3.mlkcca.com");

dataStoreメソッドにデータストアのパスを指定してDataStoreインスタンスを取得し、pushメソッドで送信します。
パスは"/"区切りで階層指定できます。
pushメソッドの引数はdynamic型で、自動的にJSON形式に変換してデータストアに送ります。

Milkcocoa.dataStore("message").push(new { content = "My first data!" });

dashboardで確認すると、データストアにJSON形式で格納されたことがわかります。

20160724C.PNG

プログラミング(受信編)

書いている途中。

void MilkcocoaCallback(Milkcocoa.MilkcocoaDataStoreEventArgs e)
{
    System.Diagnostics.Debug.WriteLine(string.Format("{0:HH:mm:ss.fff} Sub  {1}", DateTime.Now, e.path));
}
Milkcocoa.dataStore("message").on("push", MilkcocoaCallback);

サンプルプログラム

githubにサンプルプログラムを公開しています。

20160724D.PNG

対応しているMilkcocoa API

2016/8/27時点のMilkcocoa APIリファレンスに対する対応一覧です。

クラス メソッド 対応 補足
Milkcocoa new Milkcocoa() secureで暗号化を指定。
connectWithApiKey() ×
dataStore()
authWithToken() ×
logout() ×
user() ×
MakeHostString() v1.0追加機能。(@Fumiya_Kumeさんthx)
DataStore push()
set() ×
remove() ×
send()
on()
off()
get() ×
stream() ×
history()
child() ×
Stream 対応していません。m(__)m
History sort()
size() ×
limit()
span() ×
on() ×
run()

改定履歴

v1.3

  • Milkcocoaサーバーとの接続を暗号化通信に変更しました。コンストラクタのsecureで暗号化無しも可能。

v1.2

  • .NET Frameworkに対応しました。v4.5以降で使用できます。

v1.1

  • Releaseビルドのとき、イベントを受信するとMissingMetadataExceptionに対処しました。#1
matsujirushi
SeeedKKの中の人。Microsoft MVP for Windows Development & Azure。
http://matsujirushi.hatenablog.jp/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away