...

ジェスチャ操作で入力する絵文字ソースの携帯

by user

on
Category: Documents
5

views

Report

Comments

Transcript

ジェスチャ操作で入力する絵文字ソースの携帯
ジェスチャ操作で入力する絵文字ソースの携帯プログラミング
瀬 戸
優
之†
宮
下
芳
明†
本稿では携帯端末上でプログラムを編集・実行するシステムを提案する.Android アプリケーショ
ンとして実装した提案システムでは,絵文字によるソースコード記述が行われ,一画面あたりの情報
量を増やしている.また,プログラム入力インタフェースでは,ジェスチャ認識による関数入力が行
える.プログラムをメールとして送信するとインタラクティブなデコレーションメールとなる.
Programming on Mobile Devices
with Pictogram Source Code and Gesture Operation
Hiroyuki Seto† and Homei Miyashita†
In this paper, we proposed a system to edit and execute programs on mobile devices. We
developed a prototype system as an Android application. It shows the source code using
pictograms to increase the amount of information on screen. Moreover, the user can input
functions and parameters with gesture operation on touch screen. By sending the program
to other mobile devices via e-mail, it becomes an interactive decorated mail.
している.これは,アニメーションに対応したメール
1. は じ め に
の送受信を可能としたものであり,アニメーション絵
情報技術の発展に伴い,携帯電話の普及と機能の進
文字をメール文章中に挿入することやメールの文字色
化が著しい.スマートフォンにおいては,OS ごとにア
の変更を行うことができる.しかしながら,デコメは
プリケーションをダウンロードできるシステムを備え,
基本的にテンプレートを用いることが前提とされてお
数百∼数十万というアプリケーションが登録されてい
り,ユーザ自身が一から作り上げるものはほとんど存
る.登録されている数こそ多いものの,広い分野に質
在しない.それどころか,ボタン操作に反応するイン
の高いアプリケーションが十分に揃っているとは言い
タラクティブな機能の実装もされていない.そこで筆
がたく,まだまだ拡大の可能性があると考えられる.
者らは,インタラクティブなプログラムを簡単に作成
スマートフォンユーザの多くは,スマートフォンの
することができ,かつそのプログラムをメールによっ
ことを携帯電話としてではなく,携帯するコンピュー
1)
て送受信することができるシステムを提案する.
タとして認識しているという .当初スマートフォン
プログラム入力インタフェースでは,絵文字による
はビジネス向けに販売されてきたが,高機能やカスタ
ソース表示やジェスチャ認識による関数入力といった
マイズ性から現在は一般の利用者向けに売られてい
機能を備え,メールによって受信したプログラムの編
2)
る .外出先でも高速回線に常時接続しているという
集も可能である.またコンパイラによって,ユーザが
メリットが大きく,電源を入れなければネットワーク
作成したプログラムはもちろん,メールによって受信
に接続できない PC より有利である.しかし,ユーザ
したプログラムを実行することが可能である.
がコンピュータと感じるほどに高度な環境が整ってい
るにも関わらず,スマートフォンをプログラマが開発
環境として利用することは少ない.
2. 言 語 仕 様
提案するシステムでは,絵文字によるソースコード
近年では,携帯キャリアの各社がデコメと省略され
記述が行われ,すべての関数が絵文字と数字で表示さ
る cHTML を用いた装飾可能なメールサービスを提供
れるようになっている.そのため表示されるプログラ
ムの文字数が減り,一画面あたりの情報量を増やすこ
† 明治大学 理工学部 情報科学科
Department of Computer Science, Meiji University.
とが可能となっている.
現在は if 文,for 文,直線を描く,円を描く,四角
情報処理学会 インタラクション 2011
字が 10 回繰り返すことを示している. 2 行目の最初
の絵文字では画像ファイルの利用をすることもでき,
その場合は直後に画像のサムネイルが表示されるよう
になっている.この関数の引数は 2 つあり,画像を描
画する x 座標と y 座標になっている.2 つの数字間に
「∼」を入れるとその間のランダムな数字を生成する
ようになっている.よってこの画像は x 座標が 0 から
480 の間,y 座標が 0 から 640 の間に表示される.最
後の上向きの矢印は for 文の終了を表している.図 2
下部はプログラムの実行結果画面であり,星の画像が
図 1 Hello World のソースと実行結果
ランダムな位置に 10 個表示されている.
を描く,文字を書く,画像を表示するといった関数を
実装している.図 1 の上部は「Hello World」という
文字列を出力するプログラムのソースコードである.
最初の [パレットの絵文字] は文字を書くことを示し,
次の [青い四角] が文字色の設定を行う関数となってい
る.つまりこの場合,文字色が青であることを示して
いる.このように,提案システムではキャンバスや文
字の色を設定する際,プログラム内で書かれた色が四
角形で出力されるようになっている.これにより,直
感的に色を判断することが可能になる.続いての [鉛
筆の絵文字] は,先ほどと同様文字を書く関数である
ため,その後にくる文字列は引数となる.図 1 の場合
は「Hello World」が引数である.また,図 1 の下部は
プログラムの実行結果であり,青色で “Hello World”
という文字列が出力される.
図3
タッチイベント用いたプログラムのソースと実行結果
図 3 のソースコードでは,最初の行でキャンバスの
色を黒に設定している.2 行目の人が丸印を作ってい
る絵文字が if 文となっており,その次の手の絵文字は
タッチ操作が行われているかを調べる関数である.ま
ずキャンバスを白に設定している.次に4行目で描画
色を赤に設定し,5行目は円を描く関数を示している.
引数は中心の x 座標,y 座標と半径になっており,こ
の場合 100,100 の座標に半径 40 の円を描くことを示
している.実行すると,最初は図 3 の(左)の画像の
ように黒い画面となるが,画面に指を触れると図 3 の
(右)のような日の丸が表示される.
3. シ ス テ ム
図 2 画像と for 文を用いたプログラムのソースコードと実行結果
本稿では,プログラムを入力するインタフェースと
コンパイラを Android アプリケーションとして構築し
図 2 は for 文によって画像を表示する例である.下
た.また,Android のインスタンス機能によってメー
向きの矢印は for 文の開始を表しており,10 という数
ルアプリケーションと連携しているため,PC で作成
ジェスチャ操作で入力する絵文字ソースの携帯プログラミング
したプログラムを受信して編集することや,作成した
ログラムを実行することができる.プログラムのコン
プログラムを添付ファイルとして送信することができ
パイルを開始すると,ソースコードを解析し,プログ
る.これにより,いつでもどこでもプログラムを作成・
ラム入力画面とは別のアクティビティによりプログラ
実行することができる.
ムが実行される.
3.1 プログラム入力インタフェース
3.3 メールとの連携
さらに提案システムはメールアプリケーションと連
携しており,システムによって作成したプログラムを
他の携帯端末に添付ファイルとして送信,または受信
することができる.そのため,PC で作成したプログ
ラムを受信して編集,実行することも可能である.
3.4 実
装
絵文字プログラム言語の実装は Java で行い,文字
が入力されるとバックグラウンドでソースコードファ
イルに関数名と引数が書き込まれる.この関数名は
Java に準じたものとなる.これを適宜読み出し,前
もって設定した関数と絵文字の関連付けによって変換
することで画面上にプログラムのソースコードが出力
される.
また,入力インタフェース,コンパイラはともに
Java で実装し,Android OS 上で動作する.プログ
ラム入力インタフェースでのジェスチャ入力機能では,
図 4 プログラム入力インタフェース
Android Gesture API を利用している.あらかじめ
登録されたジェスチャに対して入力されたジェスチャ
プログラム入力インタフェースは,関数を絵文字と
の得点付けを行い,設定した値以上であれば同じジェ
数字によって表現するだけでなく,ジェスチャによっ
スチャが入力されたとみなしているため,特定のジェ
て入力する機能を備えている.図 4 では for 文を記
スチャからは特定の関数を入力することが可能となっ
述した様子である.画面は上部分のソースコード表示
ている.関連付けの方法として,現在はプログラムの
部と下部分のジェスチャ入力部に分かれている.ジェ
絵文字を簡略化した図をジェスチャとして採用してお
スチャ入力機能は,画面のタッチ操作の軌道によって
り,覚えやすさを優先している.このジェスチャ認識を
文字列が入力されるというものである.ジェスチャ入
利用することで,ユーザは関数の入力をスムーズに行
力部分でタッチ操作を行うとプログラム入力部に入力
うことができる.プログラムコンパイルインタフェー
内容が反映される.これにより筆者らは,ユーザがエ
スでは,ワンパスでソースコードの解析を行う.ソー
ラーやタイプミスなどの些細な問題に躓いてしまうこ
スコードファイルを1行ずつ読み込んでいき,if 文に
とを減少させ,より円滑にプログラムを作成すること
よって文字列毎の処理を分けてゆく.
が可能となると考えており,短時間でより効率的にプ
ログラムを作成できるようになることを期待している.
4. 関 連 研 究
なお,ユーザが入力したい文字列に対応しているジェ
プログラミングに関する研究はこれまでにも多く
スチャを忘れてしまった場合は,メニュー駆動型で文
行われている.安村の Programming2.03) では使いや
字列を呼び出すことができる.またユーザが初期設定
すいプログラミングについて言及しており,ヒューマ
のジェスチャが使いにくいと感じた場合は,自分の使
ンインタフェースの観点から考えるとユーザの記憶に
いやすいようにカスタマイズ可能である.
頼るよりもメニュー駆動型の方がユーザ思考であると
3.2 コンパイラ
述べている.本稿第二著者らの HMMMML4) および
コンパイラは,携帯端末上でプログラムを実行する
HMMMML25) では多少の入力ミスがあってもコンパ
ことができる.プログラム入力インタフェースによっ
イラが好意的に解釈することによって実行が可能に
て作成されたプログラムをメールで受信した場合も,
なっている.また,命令自体も短くなっているので入
PC で作成したプログラムを受信した場合も,そのプ
力時間の短縮が見込める.原田の Viscuit6) はビジュ
情報処理学会 インタラクション 2011
アルプログラムとなっており,ユーザの曖昧な記述を
ログラム作成時のタイプミスの軽減,作業速度の向上
コンパイラが許容してくれるものとなっている.コン
といった作業効率の改善や,環境にとらわれない作業
パイラが独自に判断するので予想外の動きも楽しむこ
の実現が行えたかということについて実験を行いたい.
とができる.Google 社の App Inventor7) では,ブ
この結果を踏まえて,ユーザにとってより使いたくな
ロックを組み合わせることだけで Android OS 向けの
るインタフェースへの改良を目指す.
アプリケーションを作成できる.これによりプログラ
ムの知識が一切ないユーザでもアプリケーション開発
が可能となっている.
携帯電話を対象としたユーザ支援についての研究と
して,西本らの MoCoPro8) がある.これは,タッチ
パネルを搭載した端末上でのエンドユーザプログラミ
ングを支援するシステムであり,ECA ルールに基づ
くビジュアルプログラミングとなっている.これによ
り,エンドユーザへの理解とプログラミングのしやす
さを補助している.小牧らのタッチパネル搭載型携帯
端末のための Web 検索クエリ入力支援インタフェー
ス9) では,web 上で見つけた単語をドラッグし,その
後ジェスチャ操作を行うことで単語の検索の際の下位
語を予想して提案してくれる.
また,日常生活にプログラミング技術を導入する
試みとして,福地らの Push-pin10) がある.これは,
ホームオートメーションの設定を住人自身が物理ピン
の差し替えによって変更することができ,手軽な操作
でプログラミングを行うことができるようになってい
る.Greg らのエンドユーザによる椅子デザインシス
テム11) ではエンドユーザが椅子の簡単なスケッチ操
作を行うだけで,物理シミュレーションや座り心地の
確認などができる.ユーザが難しい設定をすることな
く結果を即時知ることができる点については本研究と
類似している.
このように現代社会において,情報技術の発展と共
にプログラミングに対する研究も行われてきている.
5. まとめと今後の展望
本稿では,新しい言語として絵文字ソースのプログ
ラムを開発した.また専用のプログラム入力インタ
フェースとコンパイラを Android アプリケーション
として実装することにより,携帯端末上でプログラム
を作成・実行の可能な環境を提案した.これにより,
作業効率の向上やスマートフォンの可能性の拡大を目
指した.
本稿で提案したプログラム入力インタフェースでは,
使用可能な関数に制限があったため,作成可能なプロ
グラムが限定されてしまっている.今後はこの点を改
善し,作成可能なプログラムの拡大を行っていきたい.
また実際に提案システムを利用してもらうことで,プ
参 考
文
献
1) 株式会社アスキー・メディアワークス:iPhone 利
用実態,
http://asciimw.jp/info/release/pdf/20090626.p
df
2) 根岸正光: モバイル情報アクセス今昔:情報の
消費者主権のゆくえ,情報知識学会誌,Vol. 18,
No. 5,pp.512-515(2008) .
3) 安村通晃:Programming2.0:ユーザ指向のプロ
グラミング,情報処理学会夏のシンポジウム 2006
(2006).
4) 宮下芳明.プログラミングに対するモチベーショ
ンを向上させる新言語 HMMMML の開発,第 51
回プログラミング・シンポジウム予稿集,pp.57-64
(2010).
5) 中橋雅弘,宮下芳明.HMMMML2:超好意的に
解釈するコンパイラ.夏のプログラミングシンポ
ジウム 2010(2010).
6) 原田康徳:Viscuit:柔らかい書き換えによるア
ニメーション記述言語,情報処理学会インタラク
ション 予稿集,pp.183-184(2004).
7) Google Inc.: App Inventor for Android,
http://appinventor.googlelabs.com/about/
8) 西本裕貴,志築文太郎,田中二郎:携帯端末上
でコンテキスト依存プログラムを記述するための
ビジュアルプログラミング環境,WISS 第 16 回
インタラクティブシステムとソフトウェアに関す
るワークショップ論文集,pp.145-146(2008).
9) 小牧大治郎,荒瀬由紀,原隆浩,服部元,滝嶋
康弘,西尾章治郎:タッチパネル搭載型携帯端末
のための Web 検索クエリ入力支援インタフェー
ス,DEIM 2010 第 2 回データ工学と情報マネジ
メントに関するフォーラム(2010).
10) 福地健太郎,杉本麻樹,Charith Fernandoy,Shen
gdong Zhaoy,稲見昌彦,五十嵐健夫:Push-pin:
ピン型タグを用いたホームオートメーションのた
めのプログラミングシステム,情報処理学会イン
タラクション 予稿集,pp.1-8(2010).
11) Greg Saul,Manfred Lau,三谷純,五十嵐健
夫:エンドユーザによる椅子デザインシステム,
WISS 第 18 回インタラクティブシステムとソフ
トウェアに関するワークショップ論文集,pp.17-22
(2010).
Fly UP