インターネット上のサービス同士やスマートフォンの情報をつなげて様々な動作を自動化するというサービスはIFTTTやZapiperなどすでにいくつか存在します。
しかしそれらの既存サービスではグラフィカルで設定しやすい反面、決まった動作を組み合わせるだけで、細かな設定ができないものも多いです。
そんな中、非常に細かな部分までかなり自由に設定できる連携サービス「Codyl Connect(コーディルコネクト)」が登場しました。
「Code Your Life(生活をプログラムする)」を具現化するCodyl Connect
Codyl Connectは1月30日にベータサービスが始まったばかりですが、
インターネットからアクセスできるすべてのサービスやデバイスの、どれを、どのように使うかを私たちユーザー自身が決められるようにすること、これが「Codyl Connect」の目標です。
という言葉からもうかがえるように、非常に自由度が高く、複雑な連携が可能なサービスになっています。
そんなCodyl Connectで、「どんなことができるのか」「どんな風に使うのか」という点を手を中心にレビューしたいと思います。
基本はトリガーとアクション
「どんなことができるのか」については、基本の部分はIFTTTなどの先行サービスと変わりません。
きっかけとなるトリガーがあり、結果としてのアクションがある感じです。
例えば、「よく行くお店の近くに行ったら、買い物リストを見るようにスマートフォンに通知を出す」という場合、トリガーとアクションは下記のようになります。
- トリガー : スマートフォンの位置情報で設定した場所(よく行くお店)に来た
- アクション : スマートフォンに「買物リストを見てください」という通知を出す
シナリオとイベントウォークとコネクター
上に書いたお店の近くに行ったら通知を出すという設定、IFTTTではすぐに作れるという人は多いと思います。
トリガーにLocation、アクションにNotificationsを使えば簡単ですね。
IFTTTではこの一連の動作をアプレット(以前はレシピでした)と呼びますが、Codylではシナリオと呼びます。
そして上記のようなシナリオはCodylでも簡単に作れます。
で、作ってみたのが下記。
といってもなんのことだかさっぱりわからないと思うので、簡易的に図示してみました。
スケジュール設定やパラメーターを含んだ全体が「シナリオ」、mainから始まりmain_exitで終わるプログラム的なフロー部分が「イベントウォーク」です。
イベントウォークの中に青い囲みで「state」というのがありますが、これが処理の実行単位のようなもので、この中には1つ以上の「コネクター」が含まれます。
黄色の「位置情報」「プッシュ通知」がコネクターで、これはIFTTTでチャンネルと呼んでいたものに相当します。
まだ数は少ないのですが、位置情報やGmail、Googleドライブ、Twitter関係などが用意されています。
より柔軟に、より複雑にできるCodyl Connect
同じことをやるにしてもIFTTTよりはるかに難しそうに見えますが、難しそうに見えるだけで実際にやっていることはあまり変わりません。
その代わり、やろうと思えばもっと複雑な処理も実現できます。
例えば先ほどの通知の例ですが、「朝は買物する余裕がないから、夕方~夜の時間帯だけ通知してほしい」ぐらいはシナリオのスケジュールで簡単に設定できます。
また、「1日に何度もお店の前を通るのでその度に通知されるは邪魔。一回通知をしたらその後6時間は通知をしないでほしい」なんて設定もできます。
こんな感じに、Codylではアクションに当たる部分をいくつでも追加していくことが可能です。
参考になるテンプレート
いきなり0からシナリオを作るのは難しいかもしれませんが、公式サイトに「まずは簡単なシナリオを作ってみよう」というスタートアップガイドが用意されています。
また、あらかじめ動作が設定されたテンプレートも用意されており、自分でシナリオを作る際の参考にもなります。
例えば、先ほどから例に出している買物の通知に関しては、「位置情報にお店の名前を追加して、その名前を件名に付けて自分宛に買物リストをメールで送ると、お店の近くに来た時にその買物リストをプッシュ通知してくれる」なんていうテンプレートもあります。
どれだけ実行できるかはクォーターで管理
これだけ高度なことができると、「複雑な処理を大量に走らせるとサーバーが重くなるんじゃないか」という心配もありますが、そこはさすがに考えられており無制限には実行できないようになっています。
自分がどれだけ資源を利用できるかはクォーターというもので管理されています。
クォーターはwalksという単位で、上図の場合は1823walksです。
イベントウォークを1回走らせると1walks、各コネクターの実行に1~20walks消費されるので、複雑なシナリオほど消費するwalks量が増える仕組みです。
どのコネクターがどれくらい消費するかは、リファレンスで公開されています。
クォーターが足りなくなるとシナリオは実行できなくなりますが、15分に1walksの割合で回復します。
ただし設定された最大値を超えては回復しません。
Codyl Connectは将来的に有償サービスになるということなので、プランによってクォーターの最大値や回復量が増加したりするようになるのでしょう。
コネクターの充実次第では非常に面白くなりそう
現状、ベータテスト段階のため利用できるコネクターの種類も少ないのですが、近いうちにLINEやSNS関連のコネクターが追加予定とのこと。
また、現在はiOSにしか対応していませんが、Androidやその他スマートフォン以外のデバイスへの展開も検討しているそうです。
Codyl Connectでは1つのトリガーに対して複数のアクションを追加できたり、そのアクションをトリガにしてさらにアクションを追加したりと非常に高度な連携を行うことができます。
コネクターの充実次第ですが従来のIFTTTやZapiperで満足できなかった人やもっと複雑な連携をしたいと思ってる人たちを取り込める可能性は十分にありそうです。
コネクターにWEBサービスだけでなく、簡単な演算ができるようなものがあるともっと面白くなりそう。
これはメソッドバスケットあたりに追加されるかな?
反面、初心者というか、プログラム未経験者にはかなりとっつきにくいUIになっているので、その辺の改善も期待したいところです。