このページの本文へ

前へ 1 2 3 4 5 6 次へ

車とスマホがつながるSDLの世界第4回

Ubuntu 14.04.5を用意すべし!

SDL対応アプリ開発環境の構築その1~車載機エミュレーターを作成する

2018年12月13日 11時00分更新

文● 柴田文彦 編集●村山剛史/アスキー編集部

  • この記事をはてなブックマークに追加
  • 本文印刷
今回は、SDL対応アプリを開発するにあたっての環境作りをやさしく解説

SDLアプリ開発環境の全体像

 今回から全3回で、SDL対応アプリの開発環境の構築と、実際の開発手順を解説する。各回は、大きく分けて次のような内容を予定している。

各回のテーマ
第1回:SDL車載機エミュレーター環境
第2回:iOSおよびAndroidアプリの開発環境
第3回:SDLアプリの開発手順

 SDLの概要を紹介する記事で説明したように、SDL対応アプリは、スマホ単体で動作するものではない。実際の使用状態では、なんらかの車載機とリンクして動作する。そのようなアプリを開発し、デバッグするためには、車載機の実機が使える環境を用意することが望まれる。しかし、一般的なアプリ開発者にとっては、それはかなりハードルが高い。そのため、一般のPC上で動作する車載機エミュレーターが用意されている(図1)。

このような環境を用意できる開発者は限られると思われる。写真ではLINEとNAVITIMEが車載機とリンクして動作中
図1 実際の車載機がなくても、ソフトウェアのみで構成された車載機エミュレーターを使えば、気軽にSDL対応アプリが開発できる

 この車載機エミュレーターには、大別して2種類がある。1つは、クラウド上にあってどこからでも使えるもの、もう1つはユーザーの手元にあるマシンにインストールしてローカルで使うものだ。

 前者は、SDLの開発者向けサイトが提供する一種のウェブサービスとして利用できる。これが、今のところ車載機エミュレーターを最も手軽に利用できる方法だ。

 ただし、クラウド上の仮想マシンのようなものなので、SDLアプリの開発が世界中で盛んになると、利用できるようになるまでの待ち時間が長くなったり、応答が鈍くなったりする可能性はある。それでも、手元で動かせる車載機エミュレーターにはない機能を持っているため、実機に接続する直前の段階での動作確認には有効な場合もあるだろう。

 これについては、今回の最後に利用方法を示す。もし自前で手元の車載機エミュレーターを準備するのが面倒だという場合、あるいは環境の制約などによって難しい場合には、最初からこのクラウド上の車載機エミュレーターを利用していただきたい。

 後者は、開発者の手元のマシンで動作するとは言っても、残念ながらアプリを1つインストールするだけで使えるようなものにはなっていない。動作させる環境を用意するまでには、やや面倒な作業も必要となる。とはいえ、すべて自分の管理下で動作する環境が得られるので、特にアプリ開発初期段階での頻繁なデバッグサイクルの際には頼もしい存在と言える。

 今回の主な目的は、この手元の車載機エミュレーターを用意するまでの、やや面倒な部分を丁寧に解説することにある。

 いずれにせよ車載機エミュレーターが準備できても、それだけでは真っ暗な画面が表示されるだけで、意味のある動作は期待できない。そこで、2回めには車載機エミュレーターと通信しながら動作するSDL対応アプリの開発環境を、iOSとAndroidの両OS用に準備するための手順を示す。

 2回めは、両OSのIDEの準備と、SDL用のSDKのインストール方法が主になるため、サンプルとして制作するアプリは、車載機エミュレーターとアプリの通信が確認できる程度の単純なもの、いわばSDL版のHellow, Worldのようなものになる予定だ。そこで3回めには、スマホアプリから車載機のディスプレイにSDL対応のUIを表示したり、車載機側のユーザー操作に応じて、アプリを動作させる方法など、SDL対応アプリの基本的な動きを実装する方法を取り上げる予定となっている。

ローカルな車載機エミュレーターの構成要素

 前述の概要紹介記事で簡単に触れたとおり、車載機エミュレーターはウェブアプリとして動作する。しかし、それは表面上だけのこと。UI部分は確かにウェブブラウザー上で動作するものの、エミュレーターのコア部分は別のプログラムとして独立していて、Linux上で動くバイナリをあらかじめ起動しておく必要がある。

 と聞くと、一般のスマホアプリ開発に比べて、かなり敷居が高いように感じられ、尻込みする人も出てくるかもしれない。しかし、実際には、それほど難しくない。1つには、エミュレーターのコアを動かす方法が2通り用意されていて、そのうち簡便な方法を使えば、Linux環境を用意することなく、CoreのバイナリをmacOSやWindows 10でも起動できるからだ(図2)。

図2 車載機エミュレーターを動かすためには2通りの方法がある。1つはDockerを利用する簡便なもの、もう1つはUbuntu上でソースコードをビルドして動かすものだ

 1つめの簡便な方法とは、macOSやWindows上に、Linuxのアプリケーションレベルの仮想環境を実現するアプリ「Docker」を使うものだ。後で述べるように、この方法だと、現状では機能が制限されてしまう部分があるものの、とりあえずの動作確認は可能となる。

 もう1つは「正攻法」と呼ぶべきもので、Linux環境でコアを各自ビルドして動かす方法だ。慣れないと難しそうに感じられるかもしれないが、必要なUbuntu環境さえ用意できれば、比較的簡単にビルドできるソースコードが公開されているため、思ったほど困難ではない。

 なお、ウェブブラウザー上で動作するUI部分は「Generic HMI」、コア部分は「SDL Core」と呼ばれている。いずれもGitHub上で公開されているので、クローンするか、ZIPファイルとしてダウンロードすれば、最新のソースコードが簡単に手に入る。

 順番としては、まずSDL Coreを上記いずれかの方法で動かしてから、Generic HMIを起動する。そのためには、ウェブアプリの起点となるindex.htmlファイルをブラウザーで開くだけでいい。次ページからは、ここまでざっと説明した手順を詳しく解説しよう。

前へ 1 2 3 4 5 6 次へ

この特集の記事

注目ニュース

ASCII倶楽部

最新記事

QDレーザー販促企画バナー

プレミアムPC試用レポート

ピックアップ

ASCII.jp RSS2.0 配信中

ASCII.jpメール デジタルMac/iPodマガジン