2013/03/17

Hello, Ubuntu Touch

前回のエントリー(リンク)でiOSとAndroidに次ぐ第3極を担うモバイルOSとして、個人的にはUbuntu Touchに期待している旨をお伝えしました。Ubuntu Touchはまだ採用を表明している端末メーカーやキャリアが無く、そういう点ではFirefox OSやTizenからは出遅れている感は否めないですが、逆に完成度の高さはMWCでも評価されてました。

実は友人がNexus7にインストールしたものを私も触らさせていただきましたが、非常にスムーズには動くもののアプリなどの中身はまだほとんどがモックで、商品レベルまでにはまだまだ時間がかかる印象を受けました。

ただ、実機にアプリをインストールすることは可能そうで、Ubuntuからpreview版のSDKもリリースされてますので、今回ちょっとHello worldまで試してみました。

■VirtualBoxにUbuntu12.10をインストール
Macの環境を壊したくなかったので、USBメモリーからUbuntuを起動できるようにいろいろ試してみたのですが、どうしてもできなくて仕方なくVirtualBoxにインストールして実行できるようにしました。インストール方法はここのサイト(リンク)を参考にやりました。

■Ubuntu SDK previewのセットアップ
SDKのセットアップに関しては、公式のサイト(リンク)にやり方が載ってますので、これをそのまま実行すれば良いかと思います。

■サンプルアプリの作成
さていよいよ本題のアプリの作成ですが、これにはQt Creatorという統合開発環境(下図)を使います。ちなみに、Ubuntu SDKがいまはUbuntu用にしか公開されていないので、このような手順を踏んでますが、Qt Creator自体はMac OS X版も存在しますので、Mac用のUbuntu SDKが公開されれば、今回やったようなUbuntu環境のセットアップは不要になるものと思われます。


アプリ作成の手順も公式にあるドキュメント(リンク)を参考にしましたが、基本的にはQtアプリを作るのと相違無いようです。違いはQt用にUbuntu Touchのコンポーネント(Ubuntu.Components)と実機転送のプラグインが用意されているところだけ?なのでしょうかね。

試しに作成したUbuntu Touchアプリのソースコードは以下です。
import QtQuick 2.0
import Ubuntu.Components 0.1
 
MainView {
    objectName: "mainView"
    applicationName: "Hello World"
    id: root
 
    width: units.gu(60)
    height: units.gu(80)
 
    property real margins: units.gu(2)
    property real buttonWidth: units.gu(9)
 
    Label {
       id: title
       ItemStyle.class: "title"
       text: i18n.tr("Hello Ubuntu Touch")
       height: contentHeight + root.margins
       anchors {
           left: parent.left
           right: parent.right
           top: parent.top
           leftMargin: root.margins
           topMargin: root.margins / 2
       }
    }

    MouseArea {
       anchors.fill: parent
       onClicked: {
          Qt.quit();
       }
    }
}
Ubuntu Touchアプリは通常は上記のようなQMLという言語を用いて開発するようなのですが、他のQtアプリと同様にC++を用いて開発することもできるみたいです。QMLは見た通り、ビューとロジックをJavaScriptに似た記法で記述しますが、まだ馴染めなくてもう少し腰を据えていろいろ試す必要がありそうです。

で、実行すると下図のようなウィンドウが表示されました。まぁ、単なるHello worldアプリなので、面白くも何ともないですね。


■所感
歴史と実績のあるQtアプリの開発環境をベースにしているだけあって、特に大きな不具合に遭遇することも無くHello worldまで進めることが出来ました。QMLという言語はちょっと独特で学習コストが気になりますが、Qt自体はMac、Windowsアプリはもちろんのこと、iOSやAndroidアプリも開発できるマルチプラットフォームな開発環境なので、マスターすればもしかしたらいろいろなところで使いでがあるかも知れません。

個人的には、Ubuntu Touchは良くも悪くもUbuntuであるところに魅力を感じております。PC用のOSをモバイルに使うので、確かに消費電力は気になりますがスマートフォンやタブレットのハードウェアスペックもどんどんあがってますので、そのうち問題にならなくなることを期待してます。

あと、昔から外出している時は携帯の形で使えて、家に戻ったらディスプレイにつなげてPC的に使える携帯があればいいなと思っていたのですが、Ubuntu Touchだとまさにそのように使えるんですよね(下図)。


Androidでも確かにテレビなどの大画面なモニターにつないで使うことは可能なのですが、基本Androidなんですよね。PCの形態で使う時は、やはりLinuxの膨大な開発ツールを使いたいじゃないですか?まぁ、Ubuntu for Androidを使えばいいのかも知れませんが、そこは携帯とPCでシームレスに使えるUbuntuにアドバンテージがあるかな?と。

そんなわけで個人的にはUbuntu Touchに期待してますけど、iOSやAndroidの存在を脅かすのはUbuntu Touchでも、ましてやFirefox OSやTizenでも無く、きっとKindle何だろうと自分は思いますけどねw

0 件のコメント:

コメントを投稿