Android採用機器が広がる中、Androidをうまく活用できる人、すなわちAndroidの波に乗れる人と、逆にのみ込まれてしまう人の2種類に分かれる動きが見えてきました。運悪くビジネスに失敗することはもちろんあります。しかし、Androidで失敗する人のほとんどは、のまれるべくしてのみ込まれてしまうと筆者は考えています。
→「Embedded Android for Beginners(Android基礎講座)」連載一覧
2012年にはスマートフォンの販売台数がPCの販売台数を追い越すとみられています。そのとき、スマートフォンの過半数は確実にAndroid OSを搭載しているでしょう。すでにAndroid携帯電話機のテレビコマーシャルがこれでもかと流れるようになり、ニュースなどでAndroidを目にする機会も一気に増えてきました。いよいよ、日本でもAndroidが普及期に入ったことを実感します。
今回はAndroidという大波にのみ込まれてしまう危険性を紹介しましょう。
Androidを使用した携帯電話機の出荷が始まったころ、次はどのメーカーがどのような機種を出すのかという話題をよく耳にしました。
これまでの本連載でも説明したように、Androidは単なる携帯電話機用のOSではありません。驚くほどの可能性を秘めたソフトウエア環境なのです。ところが、エンドユーザーと同じ目線で新機種の話題に夢中になっている同業者が多く、残念に思いました。
AppleがiPadで興したタブレット端末の急激な展開が進んだ現在では、Androidに対する見方がもう少し多様化したようです。
しかし、そのような中でも、Androidをうまく活用できる人、すなわちAndroidの波に乗れる人と、逆にのみ込まれてしまう人の2種類に分かれるようです。運悪くビジネスに失敗することはもちろんあります。しかし、Androidで失敗する人のほとんどは、のまれるべくしてのみ込まれてしまうと筆者は考えています。
Android 2.2そして2.2.1が正式に公開され、これらをいち早く搭載した携帯電話機やタブレット端末が注目を集めています。「Adobe Flash」やJITコンパイラへの対応など、魅力的な機能追加もあり、なにより、最新バージョンはエンドユーザーにとって常に一番の関心事でもあります。
そのため、Android搭載端末について開発発注元と打ち合わせた場合でも、Android 2.2を搭載するかどうかが話題の中心となり、対応時期をもとにAndroid搭載製品やAndroidを利用したサービスのマスタースケジュールが組まれることも珍しくありません。
しかし、ここが落とし穴なのです。Android 2.2では新機能のほかに新しいフレームワークなども盛り込まれており、ポーティング(移植)には時間も費用もかかります。
Android 2.2でなければ、と考える開発、企画担当者の多くは、新バージョンを搭載するとマスタースケジュールの延期やコスト上昇につながることをきちんと理解していません。筆者がスケジュールやコストを考えてAndroid 2.1を選ぼうとすると、そうした担当者はなぜ世の中がAndroid 2.2に向かっているのに古いものを選択しなければいけないのかと不平を口にします。
携帯電話機は開発規模がほかの組み込み機器と比べて桁違いに大きく、メーカーが移植も含めたすべての作業を担当できる部隊を持っていることも珍しくありません。最新バージョンを選ぶのは、携帯電話機という特定の組み込み機器におけるエンドユーザーの視点であることを理解しなくてはなりません。
製品にAndroid 2.2を搭載する理由、サービスにAndroid 2.2が必要な理由、新バージョンを搭載することでスケジュールが遅れ、価格が上昇することへの影響を見つめ直すべきです。客観的に整理できないと、Androidを巻き込んだプロジェクトはまず失敗すると考えて良いでしょう。
ここで、日本のソフトウエア開発史を手短に振り返ってみましょう。日本のソフトウエア開発が衰退したことは以前からよく言われています。このソフトウエア衰退がAndroidの失敗につながるのです。
Javaが登場する以前、ソフトウエアの開発現場ではC言語一辺倒の時代が長く続きました。欧米ではオブジェクト指向言語などのさまざまな言語の研究が進み、実用になったものも少なくありません。しかし、日本ではC言語でなければプログラミング言語にあらずといった風潮がはびこっていました。
モノづくりの国、組み込み大国と言われる日本では、C言語がほかの国よりも重要な位置にあったことは確かです。当時、アセンブリ言語と比較して、組み込み用途に耐える性能を保持しつつそれなりの生産性を実現でき、かつ導入が容易な唯一のプログラミング言語がC言語でした。
しかし、その後ソフトウエアが複雑、大規模になり、ソフトウエアの不具合に起因して走行中の車が勝手に停止するという問題が起こるに至っては、さすがにC言語一辺倒というわけにはいかなくなってきました。
方向転換が遅れたのは、ゼネコン的であると言われる日本のIT産業の考え方に由来するのでしょう。ビジネスの継続性に対する配慮が欠けていたため、将来必要な技術を探すという視点が欠けてしまったのです。
継続性を顧みない傾向はいたるところで見られます。多くのメーカーは、ソフトウエア技術者にプログラミングを長くは経験させません。2年もするとマネジャーとなり、派遣社員で組織されたソフトウエア部隊を率いる側に回ります。さらに、Javaが充分に普及してくると、C言語よりも教育期間が短くて果、コンピュータの基礎知識を学ぶ機会まで失っていきます。例えばサーバサイドの開発部門では、今や、誰もビット演算を処理できないという開発部隊すら珍しくないのです。
かつては国産メーカーのオリジナルPCが数多く販売されており、OSも自社製でしたが、MS-DOSやWindows搭載PCが市場を制するころには、ソフトウエアを買ってきて済ますという発想が定着してしまいました。これにより、日本中で基本ソフトの技術者が育たなくなってしまいました。
Linux技術者は増加傾向にありますが、LinuxとAndroidを技術的に区別できる技術者は、なかなかいないのが現実です。Androidを技術的観点から把握できないことが、拭いきれない不安となり、やみくもな最新バージョンへのこだわりにつながっているのです。
Androidはさまざまな技術要素を大胆に組み合せた複合ソフトウエアです。Linuxという実績のある基盤ソフトウエアを採用することで、当初から安定しており、拡張性が高く、移植が容易なソフトウエアを実現できました。Java言語を採用することで、最初から多数の技術者が開発に加わることができました。仮想マシン(VM)方式とJavaに基づく抽象APIを採用することで、セキュリティを制御しやすく、安定した大規模アプリケーションを短期間に開発できる環境が提供されたのです。
LinuxやJavaは重要な要素ですが、Androidを構成する1つの側面であり、組み合わせることで発揮する力がAndroidの真価なのです。
Androidは間違いなく素晴らしいソフトウエアであり、採用できるものならば積極的な検討をすべきでしょう。しかし、組み込み機器への適用を考えたとき、機器の制約条件と正面から向き合わざるを得ません。技術的に対応困難な部分がどうしても出てくるため、技術的見地からの考察が必要です。
幸い、Androidに触れることはごく簡単です。ソフトウエア技術者でなくとも、AndroidのWebページからSDKをダウンロードし、HelloWorldアプリケーションをビルドして、付属のエミュレータ上で実行できるのです。手順をたどってみることが、非常に大きな経験となります。ソフトウエアの知識がほとんどなくても、Androidのような大きなシステム上の開発が可能なことはもちろん、ごく少ないアプリケーションコードを記述するだけで大変な量のソフトウエアが動くことが理解できます。
エミュレータだということを考えても起動が遅いな、といった感触から、システムとしてのAndroidの大きさ、複雑さを実感することもできます。
大きく複雑であるとは言っても、Androidも小さなソフトウエア技術の積み重なりです。1つ1つを丁寧にひもといて見れば、大きな構造であっても理解できます。そうやって、Androidを振り回せるだけの技術力が備わったら、あとはこれを生かすようなビジネスや、相乗効果を生み出すさらなる技術を模索することです。Androidを用いて組み込み機器を開発するには、このような、ソフトウエア産業が本来とるべきアプローチが求められるのです。
2010年11月17日、NTT東日本がAndroidを使った新サービスとして「フレッツ・マーケット」と「光iフレーム」を発表しました(図A-1)。「フレッツ・マーケット」は情報配信を行うサービスであり、天気や株価、地域情報などをコンテンツとして扱います。「光iフレーム」はサービスのフロントエンドとなるデジタルフォトフレーム型の端末です。
このサービスには注目すべき点が幾つもあります。
自前の情報配信サービスを用意してAndroid搭載端末をフロントエンドに置くという構成は分かりやすく、日本ではBIGLOBEなども手掛けています。しかし、NTT東日本がこのような形態で大規模にサービスを始めたことに意義があります。Androidそしてクラウドコンピューティングの利用の1つの手本となるでしょう。
Android 2.1を採用したことも重要です。主婦層・シニア層というターゲットとコンテンツの提供を考えたとき、Flash技術は欠かせない要素のように思えますが、Android 2.2で導入されるFlash技術への対応を待たずにいち早くサービスを実現した決断に意味があります。
iPhoneにも言えることですが、タッチスクリーンのUIはまだまだ若者の文化であり、主婦層・シニア層には遠い存在です。しかし、Androidの場合は煮るなり焼くなりが機器やサービスの開発者側に委ねられています。UIを変えてこのようなユーザー層向けの製品に仕立てることは、技術的には十分に可能なことなのです。このような方向性を示したことは、今後のAndroidの展開に大きく影響するはずです。
金山二郎(かなやま じろう)氏
株式会社イーフロー統括部長。Java黎明(れいめい)期から組み込みJavaを専門に活動している。10年以上の経験に基づく技術とアイデアを、最近はAndroidプログラムの開発で活用している。
Copyright © ITmedia, Inc. All Rights Reserved.