この連載の趣旨と目次のページへ

jig.jp
代表取締役社長,CEO兼CTO
福野泰介

 連載の第1回では,iアプリとして開発した携帯電話機向けフルブラウザ「jigブラウザ」の誕生の経緯を,第2回では,仮想マシンを内蔵した「jigブラウザ2」のコンセプトについて説明してきました。

 最終回となる今回は,「jigブラウザ2」で実現した小さなプログラムjigletを中心に,私たちがどのような世界を目指しているのかを説明します。

生活シーンに応じたアプリケーションを作りたい

 携帯電話機は「利用者が常に持ち歩く」という特徴を持つ情報機器です。私たちは,この携帯電話機の上で,利用者ごとに異なる様々な生活シーンにフィットするアプリケーションを提供したい,と考えています。

 例えば,友達と旅行に出かける場合を考えてみましょう。天気,行きたい場所への経路探索,観光ポイントを探す,といった一連の「やりたいこと」が出てきます。ストーリーに沿って次々と出てくる「やりたいこと」をいかにスムーズに実現できるか──利用者からのそうした要望を吸い上げる形で,jigブラウザの機能を拡張してきました。

 現行のjigブラウザは,こうした「やりたいこと」をサポートする数々の機能を搭載しています。jigブラウザのプルダウン・メニューの「ツール」には,「天気」「乗換案内」「地図」「Google検索」といった項目があります(図1)。メニューを操作して「天気」を確かめてから「乗換案内」で経路を調べ,「地図」で地図を表示させることができます。

図1 jigブラウザの「ツール」メニュー 書籍のバーコードからAmazonのページを検索する機能など,日常の様々な局面で使いたい機能を盛り込んだ。

 ほかにも,いろいろな機能を盛り込みました。「バーコード商品検索」では,携帯電話機のカメラ機能を使い書籍のバーコードを読み込み,そのISBN番号を元に,Amazonからその書籍のページを表示させることができます。例えば「カスタマーレビュー」などを読むこともできます。

 これらの機能を盛り込んでいった経緯は,シーズ指向だったりニーズ指向だったりします。バーコード商品検索の機能は「ケータイのバーコード・リーダー機能を使って何かできないか」と考えて作ったもので,いわばシーズ指向です。一方「知らない単語を辞書で引きたい」といった一般的な要求から作った機能もあります。

 今後の方向性としては,jigブラウザは共通の機能,つまりフルブラウザの基幹機能に集中し,こういったツールを作るための機能はユーザーに解放して,作りたい人に作ってもらいたいと考えています。

 いろいろなニーズに対応すると煩雑になりすぎます。通常の多機能化とは違う方向で考えたものが,前回に説明したjigブラウザ2とjigletの仕組みです。こうすることで,ユーザーの環境としては,自分の欲しいものだけがシンプルな形で整うのではないかと思います。例えばGoogleやAmazonがWebサービスAPIを公開して,利用者によるアプリケーションの開発を可能としていますが,それと同じことをケータイの上でやろう,というのが私たちの考え方です。

カスタマイズ版を提供

 ただ,プラグインによるカスタマイズが面倒だと感じる人もいるかもしれません。そこで,サービス事業者が,利用者のニーズに合わせたカスタマイズ版のjigブラウザを提供できるようにする事を考えています。音楽関係のコンテンツ提供者であれば,音楽に特化した機能強化を施したjigブラウザを作って提供できるようにします。例えば,Amazonバーコード検索の機能では,商品全体ではなくCDカテゴリに絞ることで精度を高めたり,また音楽関係のリンク集を追加することなどが考えられます。

 カスタマイズ版のjigブラウザの例として,Infoseek,BIGLOBE,Excite,@nifty向けの各バージョンを既に開発しています。起動時に表示されるトップページを,それぞれのサービス提供者のものに変更したバージョンです。

 このほか,提供中の「jigパートナー」というサービスでは,小規模なコンテンツ・プロバイダや一般のユーザーがjigブラウザのカスタマイズ版を紹介してアフェリエイト料を受け取れる仕組みです。このサービスではユーザーの手でjigブラウザのカスタマイズするようにしています。現時点では,カスタマイズの余地はトップページの変更だけですが,jigブラウザ2になると,カスタマイズの幅が広がります。ブラウザ本体と,ユーザーが選んだjigletをまとめたカスタマイズ版を提供できるようにする予定です。好みのjigletを搭載したjigブラウザを提供できるわけです。

jiglet──ケータイで動く小プログラム

 jigletは,jigブラウザ2の上で動くアプリケーション・プログラムです。「メモ帳」や「電卓」といったプログラムを作ることができます。現時点で公開しているjigeletとしては,メモ帳,簡易表計算,乗換案内,ツール管理,アドレス帳,簡単なゲームがあります。

 本連載の第2回で説明したように,jigletはJava言語のSDK(ソフトウエア開発キット)とjig.jpが提供するツールを使って開発します。なお,Java以外の言語でjigletを作ることも,原理的には可能です。例えば,Basic言語や,日本語プログラミング言語「ひまわり」でjigletを作るツールなども面白いかもしれません。プログラムの勉強をこれから始める人が,題材としてjigletを作るのも面白いのではないかと思います。またjigletのための実行環境として汎用的なプログラム実行環境である「jigletVM」を提供しています。

 jiletの例をいくつか紹介しましょう。「Google電卓jiglet」(図2)は,Googleが備えている電卓機能を,ケータイの画面に表示した「パレット」の操作により使えるようにするjigletです。Googleの電卓にはいろいろな機能がありますが,コマンドを覚えなければいけません。それをGUIで使えるようにしました。

図2 Google電卓jiglet Googleの電卓機能は多彩だが表記法を知らないと使えない。このjigletは電卓風の操作でGoogleの電卓機能を使えるようにする。

 このほかにも,燃費計算,メトロノーム,ライフゲーム(図3),麻雀点数計算(図4),サイコロ,ポケベル入力編集,16進数電卓や2進数電卓など,いろいろなアイデアが出ています。ここでサイコロjigletとは,サイコロを2個振ったときの合計値を表示します。振る回数を増やしていくと計算上の確率分布に近づいていく様子が分かるようになっています。

図3 ライフゲームのjiglet

図4 「麻雀点数計算」jiglet

ちょっとしたアプリ開発の利点

 こうした小さなプログラムは,それ単体だけ取り上げても「どうということはない」と思われるかもしれません。しかし,常に持ち歩く携帯電話機に入れてあれば,思いついたときに,すぐ使うことができます。小さな事でも,適切なタイミングで実行できれば,その価値は高くなります。ちょっとしたプログラムでも,パソコンではなく携帯電話機に載っていることで「使いで」がぐっと高まるのです。

 例えば,クルマの燃費計算をするためにいちいちパソコンを開くのは面倒です。しかし携帯電話機であれば,ちょっとした空き時間に使ってみることもできます。

自作プログラムを持ち運んで自慢したい

 開発者にとっては,自分の作ったプログラムは人に自慢したくなります。携帯電話機に載っていることで,自慢する場面が増えます。私は,「ライフゲーム」のjigletを人に見せたりしています。ただゲームをするだけでなく,Google検索で「ライフゲーム」の情報を調べる機能も,ゲームに含めています。閉じたプログラムではなく,ブラウザという窓を通して世界とつながるプログラムを作れることがjigブラウザ2とjigletの利点だと思っています。

jigletを作成の概要

 jigletを作るには,Java2 SDK1.5と,「jiglet開発キット」が必要です(図5)。いずれも,Webから無償でダウンロードできます。現状では,コマンド・プロンプトからコマンドを打ち込む形でjigletを作るようになっています。なお,Eclipseプラグインの開発を現在検討中です。

図5 jiglet作成用ツールの動作の流れ

 jiglet APIのクラスは3個だけで,jigletのプログラミングはそのメソッドを順番に呼び出していくシンプルな構成になります。jiglet APIは,Java言語のJava APIとは異なる独自仕様です。

jiglet開発は,プログラミングの練習になる

 jig.jpでは,福井工業専門高校(福井高専)からインターン生を受け入れています。高専の4年生が2週間会社にやってきて仕事をしてもらい,気に入ったらその後もアルバイトとして働いてもらっています。この人たちにも,jigletを作ってもらっています。

 インターン生には,実務ではなく,彼らがソフトウエア開発の楽しさに目覚めて,技術を向上してもらいたいということで働いてもらっています。自分自身,高専時代にプログラムを開発して人の役に立ったことがうれしかったし,その気持ちが会社を設立するきっかけになったという気持ちもあります。お互い納得のいくレベルになったら,入社してもらえればさらにいい,と思っています。人材への投資という側面もあります。

 18歳から19歳ぐらいの若い人たちの発想は面白いものです。先に紹介した「メトロノーム」や「燃費計算」はインターン生が作ったjigletです。「燃費計算」は,クルマが好きな学生が作ったソフトです。特に,燃費計算などを普段はしないような女性にも使ってもらいたい,という動機で作ったそうです。「麻雀点数計算」(前出の図4)は「ソフトを作ることで点数計算の方法を覚えたい」という動機で作られました。このjigletは当初は複数画面から成るユーザー・インタフェースでしたが「もっとシンプルにできるだろう」という問いを重ねていくことで,1画面のシンプルなアプリケーションにまとめることができました。

何度も作り直すうちにいろいろなものが見えてくる

 jigletは小さなプログラムなので,作り直すことも簡単です。何度も作り直すことが,技術者の基礎能力として重要だと思っているのですが,jigletの場合は短いサイクルで何度も作り直すことができます。

 通常のJavaプログラムでは,作り方の「お作法」が決まっています。大規模なプログラムを作る場合はいいのですが,ちょっとした小さなプログラムを作る場合はこれが面倒に感じられます。jigletのプログラミングでは,いきなり肝心のロジックを作り始めることができ,作り直しも簡単なのです。

より楽に開発できるよう環境を整える

 jig.jpでは「開発を楽にする」ことを念頭において開発を進めてきました。ライブラリの整備には力を入れてきました。パソコンの上でiアプリを開発するエミュレータも,自分たちで便利なように自作しています。エミュレータでは,例えばスタックトレースが取れるようにしています。これでデバッグの効率に違いが出ます。パソコンのキーボードから携帯電話機のキーに対応させるキー・バインディングも,自由に設定できるようにしています。

 開発者の仕事場の環境についても説明しておきましょう。開発センターは福井県に置いています。ここには開発メンバーだけが滞在し,固定電話は引いていません。電話が鳴らず,開発に関係がない来客もいない環境でソフトウエアを書いています。

 勤務体系も,ちょっと工夫しています。福井の開発センターでの勤務は午前9時に始まり,午後4時から5時にかけて一斉に休憩を入れるようにしています。休憩時間には卓球やバドミントンなどでリフレッシュしています。ちなみに,開発センターには卓球台を置いてあり(図6),また歩いて2分ほどの場所には体育館があってバドミントンができます。退社時間は7時としています。

図6 開発センターには卓球台がある 定時に休憩時間を取り,運動するようにしている。ソフトウエア開発会社としては珍しい。

 働く時間は固定制にして,一斉に働き,一斉に休むようにしています。ソフトウエアの開発作業は基本的には1人で集中的に行うのですが,何か困ったときなどに人に尋ねる場合,勤務時間がバラバラだとタイミングを逸してしまいます。それに電話で中断が入ることも能率を低下させます。一斉の休憩で一斉に運動することも,運動不足になりがちなプログラマの健康を考えてのことです。

アイデアを,もっと早く形にしたい

 私たちが考えていることは「使いたいものを作る」ということです。jigのユーザー個人のレベルで,使いたいもの(ライブラリやツール)をすぐ使えるようにしたい。jigletVMはその一つです。

 「こういったものが作りたい」と考えてから開発作業に入る訳ですが,そこではいろいろと必要なものが出てきます。例えば,一回開発したソフトウエア部品があるなら有効に使えるように整理しておきます。そうすることで,思いついたものが,すぐ作れるようになります。

 いつでも持ち歩ける携帯電話機で,すぐに取り出して使えるオリジナルのアプリケーションを作りたい。利用者が自分でプログラミングしたり,カスタマイズしたアプリケーションを使えるようにしたい。私たちは,こうした環境を作り上げたいと思って開発作業を進めています。