はじめに
第1回目の本稿は「Tizenの説明」と、開発するための準備として「開発環境のインストール」および「アプリ実行」について解説します。
対象読者
jQueryやjQuery Mobileなどを利用したスマホサイトの開発経験があり、スマホアプリの開発にも興味がある方を主な対象としています。また、AndroidやiOS向けのアプリ開発経験者の方にも興味を持っていただければと思っています。
「WebベースOS」Tizen
まず、Tizenの特徴である「WebベースOS」とは、一体どういうことなのでしょうか。携帯電話が通話やメール以外にさまざまなコンテンツを提供するようになって以来、その提供形態はWebブラウザを通じたものとアプリケーションを通じたものの大きく2つに分かれています。提供できる情報の鮮度や表現手法、動作パフォーマンスや特別な機能へのアクセスなど、それぞれの特性を生かしてさまざまなコンテンツがその2つを使い分けて提供されてきました。
HTML5の登場によってその垣根は崩れ、あらゆるコンテンツとアプリケーションがHTML5という1つのフォーマットで提供できる可能性が示唆されました。しかし、現段階ではネイティブアプリケーションのパフォーマンスに、HTML5がまだ追いついていないというのが昨今の評価です。また、FacebookのスマートフォンアプリがHTML5ベースからネイティブアプリに開発手法を転換したことも象徴的な出来事でした。
TizenをはじめとするWebベースOSは、その段階を一つ進め、HTML5でのアプリケーションがブラウザとアプリケーションの垣根を実際的に越えていくことを理念に設計されたOSです。そのために必要なことは、HTML5でのパフォーマンス改善とHTML5からアクセスできる機能の充実という大きく2点です。Tizenは今までで類を見ないほどのHTML5との親和性を、「DeviceAPI」の充実によって発揮しています。
TizenのHTML5との親和性
まず、数字としてお見せしたいのが、TizenブラウザのHTML5 testスコアです。
新しいOSやブラウザが登場するたび、よく引用されるHTML5 testスコアですが、Tizen 2.0のブラウザのスコアは492と、Android 4.0の297、先日発表されたばかりのiOS 7.0の404と比べ大きく差をつけています。
W3Cが中心となって標準化を進めているHTML5の仕様には、HTMLがアプリケーションとして振る舞うために有用な仕様が多く含まれています。各種のマルチメディアフォーマットのサポートやWeb GLによる3D表現、非同期処理をするためのWeb WorkerやHTTPで双方向のリアルタイム通信を行うWeb Socketなど、Tizenは多様な機能をサポートしています。さらにCSS3仕様のカバー率も高く、表現手段の幅も広くなっています。HTML5の最先端仕様を体験できるという意味でも、Tizenアプリ開発は魅力的なものとなるのではないでしょうか。
また、TizenはHTMLレンダリングエンジンとして、スマートフォンでは初めてWebKit2を採用しました。そのため、マルチプロセスモデルによってUI処理や描画処理などが互いにブロックされることなく動作するので、ユーザが体感するパフォーマンスの向上にも、大きく貢献しています。
TizenはWebブラウザとWebアプリケーションを共通で動かすWebランタイムをデバイスの中心のエンジンとして据えているので、その基盤部分に対して惜しみない注力をしているのがお分かりいただけるかと思います。
「DeviceAPI」の充実
HTML5の仕様だけではフォローしきれない、ハードウェアに対するアクセス機能も独自のAPIによって実現しています。それがDeviceAPIです。
各種の端末情報やセンサー情報はもちろん、NFC、Bluetooth、Wi-Fiなどのネットワーク機能や電話着信、SMS、Eメールの受信といったハンドリングを、JavaScriptから行うことができます。次回以降、このDeviceAPIについても細かく紹介していきたいと思います。
Tizen OSの特徴
HTML5関連の特徴を主にお伝えしていますが、TizenのOSのとしての特徴は他の観点からもたくさんあります。
まず第一に、Linuxベースのオープンソースであることです。これによってLinuxなどで長く利用されているマルチメディア関連のさまざまな技術を、豊富にOSに取り入れることが可能になっています。
第二に、マルチデバイスでの展開を視野にいれていることです。現在はスマートフォン向けのTizen Mobileと車載端末向けのTizen IVIがそれぞれ開発を進めていますが、これ以外にもさまざまな電子機器や家電などに組み込み可能で、かつアプリケーションの開発もワンソースで済むような展望がTizenのロードマップには組み入れられています。
第三に、IntelとSamsungという強力なハードウェアベンダーがその開発を率先して推し進めていることです。TizenはそもそもARMだけではなくx86プロセッサーでの動作も見据えた設計がなされています。つまり近い将来、Intelの最新のスマートフォン向けプロセッサーがSamsungという端末メーカーの最新モデルの上に載って随時発売されることが想定されます。OSのパフォーマンスと相まって、常に最高パフォーマンスの端末が、Tizen端末として提供されるようになるのかもしれません。
最後に、Tizenはとても一言では表せない複雑な歴史を持っています。IntelとNokiaが中心に開発を進めていた、それ自身もいくつもの祖先を持つモバイルOS「MeeGo」。Samsungが独自に開発し一定の普及を見せている「Bada」。そのようなモバイルOS開発のノウハウとオープンソースコミュニティがTizenを支えています。さまざまな挑戦をしてきたOSたちの遺伝子を受け継いでいるので、幅を持った展開が今後期待されます。
SDKインストール
それでは実際にSDKを触りながら、開発手法の紹介に入っていきたいと思います。Tizen SDKは現在2.1が最新バージョンとなっており、オフィシャルサイトからダウンロードすることができます。
SDKは現在、Ubuntu、Windows、Mac OS Xなど各種OSに対応していますが、Windows 8の64bitではインストーラがうまく動かず、今はインストールができない状態です。サポートが待たれるところですが、Windows 8の64bitをお使いの方は、32bitの方をインストールしてみてください。通信環境に特に問題がなければ、Install Manager単体でのインストールが可能です。
SDKに同梱されているIDEは、Androidなどと同じくEclipseベースとなっており、多くの開発者にとってなじみのあるUIとなっています。
TizenのIDEでは「Tizen Webアプリケーション」と「Tizen Nativeアプリケーション」の2種類のアプリケーションを開発できます。前者がHTML5関連技術を使って開発するのに対し、後者はC/C++を使って開発をします。TizenのアプリケーションとしてはWebアプリケーションが主流ではありますが、Bada時代の財産としてネイティブでの開発環境も搭載されているのです。
ネイティブ開発には、Webアプリケーション開発では利用できないような画像解析やマルチメディアのエンコードなど、多くのAPIが用意されています。Webアプリケーション開発とはまた違った開発支援機能が用意されているので、興味を持った方はぜひ触ってみてください。
ここで大事なポイントは、Webアプリケーションがネイティブアプリケーションと比べてパフォーマンスや描画性能が劣ることはない、というのがTizenの目標であり理念だということです。それを一人でも多くの開発者の方に、開発を通じて実感いただければと思います。