ここ1,2年で目覚しく注目を浴びるようになったスマートフォン。数年前はBlackBerryや、Windows Mobileなどが有名であったが、iPhoneの登場によって多くの人にスマートフォンが認知されるようになった。そして現在、AndroidがiPhoneと並んで人気のスマートフォンである。
AndroidはもともとスマートフォンやタブレットPCなどの携帯情報端末向けのプラットフォームである。しかし最近は、ノートパソコンや携帯音楽プレイヤー、カーナビや、ゲーム機などにも搭載されるようになり、生活に密着しつつあるものになっている。
そこで、生活が便利になるようなAndroidアプリケーションを作成しようと考えた。私は、将来家電にAndroidのようなOSが搭載されてデータの管理や共有が簡単にできるようになる。そして普段持ち歩いている携帯端末でいつでもどこでも情報の共有ができるような、ユビキタス社会の未来が来ると考えている。そのため、家電に関係するアプリケーションを作成したいと考えた。その中で冷蔵庫の在庫を管理することが生活をより便利にし、アプリケーション作成もイメージが付きやすいと考えた。したがって冷蔵庫の在庫管理アプリケーションを作成することにした。そしてそのアプリケーションを利用した結果、生活がより便利になったかを検証した。以下がその結果と評価である。
2章に事前の基礎知識、3章に作成したアプリケーションの説明、4章にアプリケーションを実際に使用した実験、5章にまとめと今後の課題を示す。
Android(アンドロイド)とは、2007年11月米グーグル社が発表したプラットフォームであり、前述の通りスマートフォンやタブレットPCなどの携帯情報端末を主なターゲットとして開発されたプラットフォームである。無償で誰にでも提供するオープンソースであり、Linuxベースのモバイル用オープンソース・オペレーティングシステム、ミドルウェア、主要なアプリケーションからなるソフトウェアスタック(集合)パッケージを基にしており、スマートフォンに必要と考えられている携帯電話用ソフトウェアの多くはこの中に含まれている。
図1 Androidが搭載されたスマートフォン端末
ソフトウェアのカーネルとライブラリ、ランタイムはほとんどがC言語またはC++で記述されている。アプリケーションとアプリケーション・フレームワークは、グーグル独自に構築した仮想マシンであるDalvik仮想マシン上のJava SE(Java Platform, Standard Edition)のサブセット+Android拡張環境で記述することになる。
Android用のアプリケーションは、基本的にプレ・インストール・アプリと、後からインストールするアプリを、公平に扱うのが特徴である。Apache Harmony(オープンソースなフリーなJava実装)からSwingやAWT(Abstract Window Toolkit)などの一部のAPI(Application Programming Interface)を除去し、UIなどのAPIを追加したライブラリとなっている。 Java CDC(Connected Device Configuration)のAPIは、全てではないが概ね含まれている。Sun Javaの互換性テストを通過していない。Googleから提供されているSDK(Software Development Kit)では、Javaプラットフォームによるプログラム環境と、C/C++による開発がサポートされている。Java言語以外にも、Javaプラットフォーム向けの複数の言語で書かれたプログラムがDalvik上で動作する。
アプリケーション・ソフトウェア開発用にはAndroid SDKが、ランタイムとライブラリの開発用にはAndroid NDK(Native Development Kit)が無償提供されている。Android SDK によって、Android携帯電話機とホストPCとをUSBで接続して、アプリケーション・プログラムを携帯電話機上で実行しながらPC上でデバッグすることもできるが、グーグル社が有償で提供する開発専用携帯電話機や他社の専用の携帯電話機エミュレータでないと、低レベルのランタイムとライブラリを書き換えることは出来ない。対応しているオペレーティングシステムはLinux(Ubuntu Dapper Drakeで動作を確認済みである)、Mac OS X 10.4.8以降、Windows XP/Vista/7である。開発環境には、Eclipseが推奨されている。
Androidアプリケーションの利点としては、ほとんどがオープンソースなので開発費用が安価である。そのため手軽に開発環境を整え、開発することができる。そして作成したアプリケーションはGoogleのAndroid Marketを介さず、個人で配布することもできるので、個人のみでの利用や、身内のみでの利用も可能である。また、Androidを家電に搭載する流れがあるので、組み込まれた家電上で動かせる可能性がある。
このように、Androidは生活の中の身近なところまで使用されているのである。
図2 Android搭載のタブレットとフォトフレーム
本研究をするにあたり、類似した生活管理系のアプリケーションにどのような物があるのか調べてみた。
以下がGoogleのAndroid Marketで調べた結果である。
表1 生活アプリケーション
体重管理・ダイエット | 歩数計 | ベイビーダイアリー |
家計簿・お小遣い帳 | ランニング記録 | ゴルフスコア |
勤怠記録 | 就職活動記録 | ペットケア |
このようにして見ると、生活管理の中でも健康系のアプリケーションが多いことが分かった。そのため、今回作成するような物を管理するアプリケーションは珍しい部類であると分かった。
今回作成したのは、冷蔵庫の在庫を管理するアプリケーションである。これを用いれば店先など外出先でも在庫の確認できる、という想定で作成した。現在はスマートフォン端末でしか実機で実行していませんが、将来冷蔵庫本体にAndroidが搭載されたときに使用してみてもいいかもしれません。
図3 トップページ
図4 品物追加ページ
図5 カテゴリページ
図6 検索ページ
図7 登録・検索ログページ
図8 設定ページ
図9 ヘルプページ
図10 エミュレータで保存したSQLite内の保存状況例
表2 SQLiteのテーブル定義
カラム名 | 入力内容 | 入力型 | デフォルト |
id | ID | INTEGER PRIMARY KEY | |
goods | 品物名 | TEXT テキスト | null |
categorie | カテゴリ名 | TEXT テキスト | null |
number | 品物個数 | TEXT テキスト | null |
date | 期限日 | TEXT テキスト | null |
date2 | ログの日付 | TEXT テキスト | null |
showcout | 品物の表示品目数 | INTEGER 符号化整数 | null |
registercount | 品物の登録数 | INTEGER 符号化整数 | null |
品物追加ページで追加すると、品物名(goods)、カテゴリ名(categorie)、品物個数(number)、期限日(date)に登録される。この時、idは自動で整数値が登録される。 何も入力せずに保存を押すと、idは割り振られるが、他の項目はすべてnullである。また保存ボタンを押すと、ログの日付(date2)の値に当日の日付がなければ、ログの日付(date2)にその日の日付、品物の表示品目数(showcout)が0、品物の登録数(registercount)が1の行が新たに作られる。当日の日付があれば、品物の登録数(registercount)の値が1増える。
また、カテゴリごとのページに入ると、カテゴリ名(categorie)の列を検索して当てはまる物がそのページに表示される。そして、そのページに表示された品物数が品物の表示品目数(showcout)の値に追加される。このときログの日付(date2)の値に当日の日付がなければ、ログの日付(date2)にその日の日付、品物の表示品目数(showcout)がカテゴリページの表示品目数、品物の登録数(registercount)が0の行が新たに作られる。
検索ページでは、検索ボックスに入れた文字を品物名(goods)の列を検索して表示する。その時ログは更新されない。
作成した上記のアプリケーションを使用したことで、実際に生活が便利になるかどうかを調べた。実験した環境は以下の通りである。
表3 実験環境
調査期間 | 7日間 |
家庭状況 | 3人家族 |
使用人 | 母 |
冷蔵庫の数 | 1つ母 |
管理端末 | HTC Desire(X06HT) Android 2.2 |
本研究では、総登録品目数、1日の登録品目数、1日の確認品目数、1件あたりの登録にかかった時間の推移の調査と、インタビューによって便利具合を調べた。
以下に実験結果の表とグラフ化した図を示す。
表4 実験結果
実験日数 | 総登録品目数 | 1日の登録品目数 | 1日の確認品目数 | 1件あたりの登録にかかった時間 [秒] |
1日目 | 69 | 2 | 71 | 80.5 |
2日目 | 69 | 0 | 0 | 0 |
3日目 | 68 | 9 | 11 | 0 |
4日目 | 67 | 0 | 38 | 0 |
5日目 | 67 | 1 | 24 | 79 |
6日目 | 66 | 1 | 47 | 83 |
7日目 | 65 | 2 | 48 | 70.5 |
図11 総登録品目数と1日の確認品目数の変化
このグラフから確認品目数は3日目以降伸びていることが分かる。これより、アプリの利用度が増していることが分かる。そして総登録品目数が減っていることからアプリの使用により無駄な物が減っていると考えられる。
図12 1日の登録品目数と登録入力時間
図12から入力時間にほとんど変化がないことが分かり、7日間程度ではタッチパネルでの操作に慣れるのは難しいことが分かる。
[被験者から聞いたアプリケーションの感想]
本研究はAndroidのアプリケーションを作成し、そのアプリケーションで実験を行ったので、2.2章の後半で示した利点が発揮されたと思われる。開発環境を整えるに当たってJDKや、Android SDK、Eclipseなどは全て無料で手に入る。Androidの実機端末も研究用というよりは、私自身が個人用として欲しくて購入したので、研究費用に含めないとなると、ほぼ無料で開発環境を揃えることができた。またアプリの配布もGoogleのAndroid Marketを介す手間もなく直接端末にインストールすることができたので、実機でのデバッグ作業もしやすく、Androidアプリケーション作成の利点が発揮されたと言える。
実験結果から言えることとして、品物の登録作業が手打ち入力なので、タッチパネルの操作に慣れていない人にとっては大変な作業なためネックになってしまうことが分かった。図13で登録にかかった時間を見てもほとんど変化がない。日常でタッチパネルを扱っている人なら結果はことなるだろうが、誰でも使えることを目指すとなると、先は長いと感じた。登録作業の簡易化については、カテゴリや期限を決めるときにダイヤログで選択させるという方法で負担軽減に努めた。また、登録した品物の編集ができないのは、私の技術力不足なので、ここは反省すべき点である。
そして登録さえしてしまえば運用は難しくないので、自宅でスーパーのチラシを見ているときや、外出時など実際に中身が確認できない状況で確認するとこができるため、より便利になったと言えるであろう。アプリ使用前なら買っていたであろう商品を、確認したおかげで買わずに済んだこともあったようでした。そのため総品目数が減り、母も無駄が減ったと実感していた。そして確認品目数も後半にかけて右肩上がりなので、アプリを頼っていると考えると、使ったほうが便利であると言える。 以上より、品物の登録作業が大変、登録内容の編集不可などのデメリットがあるが、品物がどこでも確認できるという点で買いすぎ防止や、冷蔵庫内を探す手間の軽減など、便利になったと考えられる。そして問題の2点を解決出来れば現状短所がなくなるので、より便利になると考えられる。
本研究は生活の身の回りにAndroidが搭載された物が増えてきたことから、Androidで生活が便利にしたい、便利にすることができるか、という題材で進めてきた。自ら自作したアプリケーションで検証を行った結果、自作アプリの出来に不十分な点がありながらも、本質的には便利になったと言える結果が出たと思う。ただし今回は実験例が1件しかないので、他の家庭でも実験を行うなど検証数を増やしていくことが必要だと感じた。
評価の反省点より品物の登録の簡略化ができるとすれば、よく使いそうな品物をあらかじめ調べておきリストから選択できるような形式か、入力中の補完による入力補助ができるようになると便利になると思った。両方法とも購入頻度の高い物のリストアップが必要になるので、これはもう少し実験期間を長くしてデータを集めてからの実装になると思われる。また、例えば将来全ての商品に共通の形式でタグが付くようになり、そのタグデータを読み込んで一発登録できるような環境になれば嬉しいなと思う。 品物の編集機能については、技術不足もあるが、私がアプリケーション作成に時間がかかり過ぎてしまい、実装する時間がなかったことも原因である。これは、開発が遅れ納期に間に合わずお客様に迷惑をかけるのと同じような行為なので、もう二度とこのようなことがないようにしていかなければならないと思った。
また、今年1月に行われたCES2011(コンシューマー・エレクトロニクス・ショー)ではインターネット接続に対応した冷蔵庫なども出店された。レシピの検索や庫内の温度確認などが主な用途だが、これを用いれば、冷蔵庫の情報をサーバーにバックアップすることができるのではないか。例えば冷蔵庫にAndroidが搭載され、外部同期を実装した管理アプリを導入すれば、バックアップや、外部から管理データの確認ができるようになり、とても利便性が高くなると考えられる。