Ubuntu Japanese Team代表の小林です。みなさん、こんにちは。
2月22日と23日に、オープンソースカンファレンス 2013 Tokyo/Spring が開催されました。Ubuntu Japanese Teamも出展させていただき、ブースでのDVD配布やセミナーを行いました。ご来場いただいたみなさん、ありがとうございました。長南さんによるセミナーの資料は、Ubuntu Japanese Team Wiki で配布しております。後日、動画もアップロードする予定です。
この週末、主要執筆陣はオープンソースカンファレンスに参加しており忙しかったため、参加しなかった私が今回のレシピを担当することとなりました。ちょうど先週21日に「Ubuntu Touch Developer Preview(開発者向けプレビュー版) 」が公開されましたので、これを取り上げます。Galaxy Nexusにインストールし、Ubuntu PCで作成したアプリを動作させ、日本語フォントを導入するまでにやったことを紹介します。
Ubuntu Touchとは
Ubuntu Touchとは、Ubuntuのモバイル向けインタフェースの呼称です。今年1月2日に発表された「Ubuntu for phones 」 、2月19日に発表された「Ubuntu on tablets 」のユーザーインタフェースです。
Canonical社は、モバイル端末からPC、各種サーバーからスーパーコンピューターまで、あらゆるコンピューターにプラットフォームを提供することを目標としてUbuntuの開発を主導してきました。この取り組みの中で、Ubuntu Touchはタッチパネルを搭載したモバイル端末向けのインタフェースとなるものです。これにより、スマートフォンやタブレットに最適化されたUbuntuが提供されることとなります。次の動画で、どのようなものになるかが紹介されています。
Ubuntu Touchを搭載した端末のリリースについては今年中とも来年とも言われていますが、現時点では確定的な情報はありません。少なくともソフトウェアとしては、遅くとも2014年4月にリリース予定の14.04 LTS(長期サポート版)のリリース時に、一定の完成をみたものが提供されるでしょう。
前述のとおり、Ubuntu Touchの開発者向けプレビュー版が今月21日に公開されています。あくまでもプレビュー版ですので、使える機能は限定されています。しかしながら、上の動画にあるような四辺のスワイプによる操作を試したり、無線LANを設定してWebブラウザやFacebookアプリを使うことができます。
Galaxy NexusにUbuntu Touchをインストール
本記事執筆時点で、インストールして試した方が多くいるようで、Webを検索すればインストール方法を紹介したサイトもいくつか出てきます。インストール方法はいくつかありますが、私はUbuntu Wikiに記載されている導入手順 で行いました。
注意していただきたいのですが、Galaxy NexusやNexus 7および10にUbuntu Touchをインストールすると、デバイス上のデータはすべて消えてしまいます。また、手順を間違えるなどのトラブルにより、デバイスが使えなくなってしまう可能性もあります。さらに、メーカーやキャリアの保証を受けることもできなくなってしまいます。このように導入のためのリスクが高く、また実用に向かない開発者向けのプレビュー版ですので、よほど興味のある方にしか導入はおすすめできません。
もし作業される場合は、導入手順にしたがって注意深く作業してください。また、あわせてリリースノート にも目をとしておくと良いでしょう。
Ubuntu Touchを試してみた
Ubuntu Touchをインストールして起動すると、次のような画面が表示されました。「 ロックスクリーン」ではなく「ウェルカムスクリーン」と呼ぶようです。
図1 Ubuntu Touchの「ウェルカムスクリーン」
一見してどうしたら良いのか分からなかったのですが、スクリーン右端から左に向かって「スワイプ」すると、ホーム画面が現れました。
図2 Ubuntu Touchのホーム画面
この画面で、スクリーンの端に指がかからないよう左右にスワイプすると、「 Apps」や「People」といった画面に切り変わります。各画面にはデモ用らしきデータが入っており、タップしても反応しないものも多くありました。
アプリケーションランチャーは、画面の左端からスワイプして引き出します。
図3 Ubuntu Touchのランチャー
指を離してからアイコンをタップして起動する方法と、スワイプしたまま指を離さず上下に動かして選択する方法があります。
その他、画面右上には各種インジケーターアイコンと時計が表示されており、こちらも画面端からのスワイプでアクセスします。最初、インジケーターアイコンが小さくて選びにくいと思ったのですが、スワイプしたままアイコンのすぐ下で指を止め、左右にスライドすることで選択を切り替えることができました。
次にWebブラウザを試したかったので、ここで無線LANへの接続を設定しました。
ブラウザを開いてみると、www.ubuntu.com が開きました。ここで、他のページを開いてみようとして戸惑ったのですが、アドレスバーがありません。いろいろ試してみると、画面下端からのスワイプで表示されました。
どうも、アプリケーションに関するメニューは画面下からのスワイプで表示される仕組みのようです。ここで気づいたのですが、画面下からスワイプすると中央に虫眼鏡のようなアイコンが現れます。スワイプした指をそのままアイコンまで進めて離すと、個々のアプリを操作するためのものと思われるメニューが表示されます。まだタップしても何も反応しない部分が多いですが、アプリの終了は左下の×ボタンで行うことができました。
画面上端からスワイプしてメニューを閉じ、ブラウザのアドレスバーにwww.ubuntulinux.jp と入れてみたところ、サイトが開きはしたのですが日本語が表示されません。どうも、日本語のフォントが入っていないようです。これは、Ubuntu Touchでサンプルアプリを動かしてみようとUbuntu SDK Preview導入した後で解決しました(後述) 。
Ubuntu SDK Previewを試す
Ubuntu Touch Developer Previewと同時に、Ubuntu SDK Previewもリリースされています。これを使えば、開発環境からアプリをUbuntu Touchデバイスに転送して動かすことができるようです。こちらのページ に記載されている通り、次のコマンドを実行してインストールしました。
sudo add-apt-repository ppa:canonical-qt5-edgers/qt5-proper
sudo add-apt-repository ppa:ubuntu-sdk-team/ppa && sudo apt-get update
&& sudo apt-get install ubuntu-sdk notepad-qml
ただ、私の環境では統合開発環境であるQt Creatorを起動すると、ライブラリが足りないというエラーが表示されましたので、次のコマンドを実行してパッケージを追加しました。
sudo apt-get install libbotan-1.10-0
これで、こちらのチュートリアル の通りに作業すれば、Qt CreatorでサンプルアプリCurrency Converter(通貨変換器)を作ることができました。PC上で動作を確認することができます。
図4 Ubuntu Desktop上で動くCurrency Converter
このサンプルでは、QMLというJavascriptベースのスクリプト言語を用いてアプリを作成しています。将来的にはC++などによるアプリ作成のチュートリアルも公開されるようです。
作成したアプリをGalaxy Nexusで動かす
せっかくUbuntu Touchでも動くアプリを作った(と言ってもサンプルをコピーしただけですが)のですから、やはり実機でも動かしたいところです。リリースノート によると、どうも現時点では.desktopファイルを手動で作らないといけないようです。そこで、CurrencyConverter.qmlと同じディレクトリに次の内容でCurrencyConverter.desktopを作成しました。
[Desktop Entry]
Encoding=UTF-8
Type=Application
Terminal=false
Exec=/usr/bin/qmlscene
Name=CurrencyConverter
GenericName=CurrencyConverter
Comment=currency converterIcon=ubuntu-qmlrunner
Galaxy Nexusにアプリを転送するため、Qt Creatorのメニューから[Tools] →[ Ubuntu] →[ Device] →[ Enable] →[ Developer Connection]を選択しました。すると、Galaxy Nexus上のUbuntu Touchにopenssh-serverがインストールされました。どうやらSSH経由でプログラムを送り込み、実行するようです。
その後、左側のメニューにある「Devices」を選択し、画面右上の「Detect Devices」をクリックしてデバイスを認識させます。この画面にDeveloper Mode用のユーザー名やSSH Portなどが表示されていれば問題ないようです。
ここで、メニューの[Build] →[ Ubuntu] →[ Run in Ubuntu Device]を選択するか、Ctrl+F12を押すことで、開いているプロジェクトのプログラムがデバイス上で実行されます。ただし、私の環境では最小化された状態で実行されてしまいましたので、Ubuntu Touchのホーム画面からAppsへ行き、最小化されたCurrencyConverterをタップしてようやく表示することができました。
図5 Ubuntu Touch上で動くCurrency Converter
日本語フォントを追加する
次に、OpenSSHサーバーが動作するようになりましたので、日本語フォントをapt-get installしてみようと考えました。ちょうどDevices画面の中央に「Open ssh connection to device」というボタンがあったので押してみると、ターミナルが開きUbuntu Touch側のシェルが開きました。しかしながら、sudoを実行しようとすると「sudo: no tty present and no askpass program specified」と表示されてしまいます。そこで、ターミナルを別に立ち上げ、以下のように「-t」オプションを追加して接続してみました。
ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -p
2222 -t phablet@127.0.0.1 bash -i
すると、問題なくsudoできるようになりました。早速、次のコマンドでTakaoフォントをインストールします。なお、パスワードはユーザー名と同じ「phablet」に設定されています。
sudo apt-get update
sudo apt-get install 'fonts-takao*'
ここまでやって気づいたのですが、Qt Creatorのメニューに[Tools] →[ Ubuntu] →[ Device] →[ apt-get]という項目がありました。ここからパッケージをインストールすることも可能でした。
フォントをインストールしたので、念のために再起動し、ブラウザやFacebookアプリを開いてみたところ、問題なく日本語のページを表示することができました。
図6 Ubuntu Touch上のブラウザに表示された日本語のサイト
以上、先週リリースされたUbuntu Touch Developer PreviewおよびUbuntu SDK Previewを紹介しました。まだまだ発展途上ですが、画面端からのスワイプによる操作は、慣れればかなり使いやすそうです。
またアプリの開発や公開、販売のハードルも低くなりそうですので、搭載機が何種類も発売されれば、開発者を呼び込むこともできるのではないかと思います。