MilkcocoaでBaaSを体験!~バックエンドの仕組みと使い方~

第6回 iOS(Swift)でも簡単リアルタイム通信! Milkcocoa iOS SDKを使ってみよう!

この記事を読むのに必要な時間:およそ 5.5 分

ViewController.swiftへの記述

次はViewController.swifに実際のSwiftコードを記述していきます。

図15 実際のSwiftコードを記述する

図15 実際のSwiftコードを記述する

以下のように書き換えてください。io-xxxxxxは先ほどのWeb側と同様のアプリIDにしましょう。

ViewController.swift

01:import UIKit
02:import Milkcocoa
03:
04:class ViewController: UIViewController {
05:    let milkcocoa = Milkcocoa(url:"https://io-xxxxxx.mlkcca.com")
06:
07:    override func viewDidLoad() {
08:        super.viewDidLoad()
09:        let dataStore = milkcocoa.dataStore("ios")
10:
11:        dataStore.on("send", { data in
12:            println(data.value["msg"].asString!)
13:        })
14:
15:        dataStore.send(["msg":"hello! JS! I am iOS"])
16:    }
17:
18:    override func didReceiveMemoryWarning() {
19:        super.didReceiveMemoryWarning()
20:    }
21:
22:}

基本的に先ほどのapp.htmlでのJavascriptコードとほぼ同様の解説になります。

  • 2行目:Milkcocoa ios SDKを読み込みます。
  • 5行目:Milkcocoaアプリケーションに接続します。
  • 9行目:iosというデータストアにアクセスします。
  • 11~13行目:iosデータストアに対するsendイベントonメソッドで監視します。データストアに対してsendメソッドが実行されたタイミングで12行目が実行されます。
  • 15行目:iosデータストアに対してsendメソッドを実行します(アプリケーションが起動したタイミングで実行となります⁠⁠。

実行して確認

この状態で左上の三角形のBuildボタンを押すと,ビルドが実行されてビルドターゲットに指定してあるデバイス(今回の画面だとiPhone 6)のエミュレータが起動します。

図16 iPhone 6のエミュレータが起動(サムネイルでは表示が崩れます。ご了承ください。)

図16 iPhone 6のエミュレータが起動

コンソールにwebsocket is connectedと表示されたら,Milkcocoaとの接続に成功です。

Web側とiOS側の連携を確認

それでは先ほど作ったWebページとiOSアプリケーションの両方のコンソールを観られる状態にして,iOSアプリケーションを起動してみます。

お互いのコンソールにメッセージの送受信がリアルタイムに行われているのが分かると思います。

図17 お互いのコンソールにメッセージの送受信がリアルタイムに行われている(サムネイルでは表示が崩れます。ご了承ください。)

図17 お互いのコンソールにメッセージの送受信がリアルタイムに行われている

さらに,Web側で実装したsend!ボタンを押すことでメッセージが送れている様子が分かると思います。

図18 Web側で実装した「send!」ボタンを押すことでメッセージが送れている(サムネイルでは表示が崩れます。ご了承ください。)

図18 Web側で実装した「send!」ボタンを押すことでメッセージが送れている

著者プロフィール

菅原のびすけ(すがわらのびすけ)

株式会社LIG エンジニア。1989年生まれ。岩手県立大学在籍時にITベンチャー企業の役員を務める。

同大学院を卒業後,株式会社LIGにWebエンジニアとして入社し,Web制作に携わる。

最近は特にIoT領域,インタラクティブな企画実装などに従事している。

マッシュアップアワードを始めとしたハッカソン等で入賞歴あり。

家賃0円クリエイターズシェアハウス第1期生。ジーズアカデミー第1期メンター。

LIGinc,HTML5Experts.jp,さくらのナレッジ,gihyo.jpなどでも執筆・寄稿をしている。

Milkcocoaエバンジェリスト,特技はわんこそば,趣味は雪合戦。

Twitter:@n0bisuke

LIGincプロフィール:http://liginc.co.jp/member/member_detail?user=nobisuke