2013年4月30日火曜日

【非公式翻訳】Google Drive Realtime APIを使って協同的なアプリを作ろう

この記事は、Google Apps Developer Blogに掲載された、"Build collaborative apps with Google Drive Realtime API"の日本語翻訳版です。
原文はこちらです。


ユーザーはGoogle Drive を使って Docs, Sheets, Slidesを作成できるほか、リアルタイムでコラボレーションし、変更を即時・自動で保存できます。新しい Google Drive Realtime APIを使えば、 Google Driveを動作させる同時・リアルタイムのコラボレーションを自身のアプリに簡単に追加することができます。この新しいAPIが取り扱えるのは、ネットワークコミュニケーション、ストレージ、プレゼンス、コンフリクト解決その他コラボレーションに関係する細かいことですので、あなたは優れた apps製作に集中することができます。

Drive Realtime API を開発するのはローカルオブジェクトで仕事をするのと同じくらい簡単な作業です。API が提供するのは、地図、リスト、ストリングスや JSON バリューといった馴染みのあるデータオブジェクトのコラボレーションバージョンのほか、自動同期、これらのオブジェクトへの修正保存です。他のローカルオブジェクトと同様に、アプリケーションはこれらのオブジェクトから読み込み、そして書き込みをします。コラボレーションオブジェクトにはイベント処理変更を追加できるので、アプリは他のコラボレーションからの変更に反応することができます。

Drive Realtime API はオペレーショナルトランスフォーメーション(OT)をベースとしているので、長い待ち時間がかかったとしてもローカルの変更は即座に反映されます。 Drive Realtime API は自動的に変更をデータモデルに変えるので、コラボレーションしている人は同期された状態を維持できます。

アプリケーションで基本的な収集が十分でなければ、Drive Realtime API はカスタムオブジェクトやレファレンスをサポートしますが、これにはツリーや任意のグラフ構造を含みます。他のコラボレーションオブジェクトと同様に、Drive Realtime API は自動的にこうしたオブジェクトを他のコラボレーションレーターたちと同期し、Driveに保存します。

コラボレーションアプリケーションではプレゼンスが重要なので、 Drive Realtime API では誰がアプリケーションに接続しているかを追跡し、誰がコラボレーションに参加し、コラボレーションから去り、変更を行ったかについてのイベント情報をアプリに提供します。

Drive Realtime API を使った装置とドキュメント上のコラボレーションレーターへの表示

Neutron Drive, Gantter と draw.io は、Google のDrive Realtime APIを使ったアプリでリアルタイムのコラボレーションを可能にします。作動中のDrive Realtime APIを見てこれらのアプリを確認してください。

Neutron Driveで編集するコラボレーションコード
Neutron Drive は Google Driveに保存されるテキストとソースコードファイル向けのオンラインエディターです。これを使えばDriveにあるテキストやソースコードファイルをコラボレーションで編集できるほか、Google Docsと類似したコラボレーションエクスペリエンスを体験することができます。これは、タイピングのシェア、アクティブなコラボレーションレーターの閲覧、カーソルポジショニング、選択されたテキストといったものです。これらは全て、Neutron Driveによって提供される構文強調表示やその他の進んだ機能に追加されるものです。さらに知りたい方は下の動画をご覧ください。

Gantterでスケジューリングするコラボレーションプロジェクト
Gantterは無料のオンラインプロジェクトスケジューリングツール、Gantt ダイアグラムエディターです。これを使えばコラボレーションしながら、そしてリアルタイムで、プロジェクトスケジュール管理ができます。その他の特徴はDrive Realtime APIで動作するエンベッディッドチャットです。作動中のGantter’s 新しいリアルタイムコラボレーションレーション機能については下の動画をご覧ください。
draw.ioを使ったコラボレーションダイアグラミング
draw.ioはダイアグラムアプリケーションで、これを使えばフローチャート、UMLダイアグラム、そして電子回路のような、様々な種類のダイアグラムを描くことができます。即時に他のコラボレーションレーターからのアップデート情報を見ることができます。その際、誰がダイアグラムを変更したのか、どこで変更がなされたのかを示す色付けされた印が付けられます。この新しい draw.io コラボレーションベータ版をrt.draw.ioで試してみてください、そして下にある動画もご覧ください。
Drive Realtime APIについてもっと知る
コラボレーション可能で、カラフルなキューブパズルも作りました。 Drive Realtime API や Drive Realtime API プレイグラウンド(Playground)であなたをAPIにステップバイステップで案内している間、楽しむことができます。アプリはともにオープンソースなので、私たちのGithubレポを確認してください。

Google のDrive Realtime APIテクニカルドキュメンテーションをご覧になり、アプリをリアルタイム対応にしよう!


Brian Cairnsプロフィール

BrianはGoogle Drive開発チームに2011年に参加し、現在コロラド州Boulderに住んでいます。彼は現在Drive Realtime APIのソフトウェアエンジニアチームを率いています。

2013年4月29日月曜日

街バル参加者がお店の混雑状況を共有

街バルイベントが全国的に盛り上がって来ているようです。
品川区の戸越銀座でも、4回目の開催となるヨクバル(酔ぅ喰ぅバル)が2013年5月17日(金)に開催されます。
主催は、戸越銀座商店街連合会さんです。

戸越銀座のヨクバルは、継続開催しているバルイベントとして有名になりつつあります。
また参加者もとても多く、賑わっている感じがとてもステキです。

一方、お店の混み具合が、そのお店に行ってみないとわからない、という不便もちょっと感じていました。

そこで今回のヨクバルでは、むさこ会むさこアプリプロジェクトを中心として、ヨクバル参加者がお店の混雑状況をリアルタイムに共有・更新できるシステムを使い、お店の混雑状況をリアルタイムに共有・更新して、満足度アップに貢献しよう、という企画をやってみます。

ヨクバルに参加する方で、スマホをお持ちの方は、どなたでもご協力いただけますので、ぜひよろしくお願いします。

簡単に手順を説明します。
ヨクバルの参加店舗と混雑状況マップはこちらです。
http://goo.gl/k4msQ



ピンの色で、そのお店の混雑状況を表現しています。

  • 緑:待ちません。
  • オレンジ :待ち時間があります。
  • 赤: 終了しています。

スマホの場合、左下の「現在地表示」をタッチすると、地図上にご自分の位置が現れます。

お店の混雑状況を更新する場合は、ピンをクリック(タッチ)すると現れる吹き出しの中の混雑状況を変更してください。
この際、Googleアカウント(Gmailアドレス)が必要になります。




注意
更新されている情報は、あくまで住民ボランティアによるものですので、正確ではない場合もありますので、ご了承ください。

2013年4月20日土曜日

Tokyo GAS 2013春 〜東京でのGoogle Apps Script勉強会〜 に参加してきました。

1月に引き続き2回目となる”Tokyo GAS 2013春 〜東京でのGoogle Apps Script勉強会〜”に参加してきました。
Google Apps Scriptは、Google Appsを劇的に拡張してくれるJavaScriptベースのスクリプティング環境です。

さて、今回のアジェンダはこんな感じでした。
19:10-19:30 「株式会社らしくではGoogle Apps Scriptを積極活用&提案中!」 (佐藤)
19:30-20:00 「non-IT女子流 Google Apps Script活用事例」(non-IT女子 松田さん)20:00-20:30 「GASのチーム開発 ここがつらひ」 (大橋さん)
※詳しくは次のページをご確認ください。
http://ptix.co/12RxgxB

まず、わたくし佐藤が発表させていただいた内容は、こちらになります。


つづいてnon-IT女子 松田さんのお話
ホームページからのお問い合わせや予約をGoogleフォームで受けて、リアルタイムに自動返信メールを送ったりGoogleカレンダーに登録するスクリプトのノウハウを共有しただきました。



「なるほどー!」と思ったのは、マイクロソフトのワードなどで実現できている差し込み印刷が、Google Appsでも実現する方法。JavaScriptのstring.replace()メソッドを使うのかな?
別途試してみよーと思います。

最後は大橋さんのお話
Google Apps Scriptの大先輩である大橋さん、いつもお世話になってます。
チーム開発するときのつらいとこやはまりどころを共有頂きました。



「おなじスクリプトを同時に編集して、上書きしちゃう」 ---> 開発者ごとfunctionごとに、スクリプトを分けましょう。
「プロジェクト内のスクリプトの行がざっくり1,000行を超えると、保存が30秒とかかかる。」 ---> 共通機能を洗い出して、あらかじめライブラリ化して使いましょう。


その後、懇親会に突入しました。
いろいろな方が参加していたのと、おもしろい情報、いろいろいただきました!
写真、撮り忘れた。。。

次回は、夏にやります。
ちょっと運営母体とか方法とか、いい意味で変えるかもしれません。