Dockerを使って簡便にSDL Coreを動かそう
まずは、SDL Coreを動かす方法のうちの簡便なほう、つまりDockerを使ってSDL Coreのバイナリをロードして動かす方法について見ていこう。
Dockerは、すでに述べたように、一種の仮想化ソフトウェアで、簡単に言えば、1つのアプリケーションを色々なプラットフォーム上で動作させることを目的とするもの。
今回Dockerを利用するメリットは、MacやWindows PC上で、元はLinux上で動作するように作られたSDL Coreを動かせるようになることだ。iOSやAndroidのアプリ開発には、macOSやWindowsが不可欠だから、それらの上でSDL Coreを動かすことができれば、SDLアプリの開発用のマシンとOSを、1種類で済ますことも可能となる。
1. Docker本体(アプリ)をダウンロードしてインストール
まずは、DockerをMacまたはWindows上にインストールするところから始めよう。Dockerには、いろいろなバージョンがあるが、今回の目的には無料で使えるDocker CE(Community Edition)で十分だ(図3)。
インストーラーをダウンロードするにはメールアドレスを登録する必要があるが、特になんの義務も生じないようなので、安心して利用できる。抵抗がある人は、後で述べるような、もう1つの正攻法を使えばいい。
Dockerを利用する場合には、メールアドレスを登録後に、Docker Storeにログインしてから、自分の使用するプラットフォーム用のものをダウンロードしてインストールしよう。今後の手順はmacOSの画面で説明するが、基本的にはWindowsでも同様だ。Windowsの場合は、Windows 10 Proが必要となる。
Dockerは一般のアプリと同様に起動するが、いわゆる常駐プログラムのように、macOSならメニューバー、Windowsならタスクトレイの中で動作する。デフォルトでは、OSの起動時に自動的に開始されるようになっているので、特に操作は不要だ(図4)。
2. dockerコマンドを使って、SDL Coreをダウンロードして起動
Dockerをインストールすると、macOSのターミナル、あるいはWindowsのコマンドプロンプトから起動できるコマンドも使えるようになる。今回は、このコマンドを使ってSDL Coreのバイナリをロードして、そのまま起動する。具体的には、以下のコマンドを入力すればいい。
このコマンドの前半で、-pオプションを使って指定しているのは、SDL Coreが外部とやりとするためのポート番号だ。見慣れない数字だが、すべてこの通りに入力しよう。
このコマンドにより、Docker内部のcoreという名前のプロセスとして、SDL Coreが起動する。うまく動いているか確認するには、次のようなコマンドをタイプしてみるといいだろう。
これで、「core」という名前のDockerプロセスが動いていることが確認できる(図5)。
なお、いったん開発用のマシンをシャットダウンした後などに、再びSDL Coreを起動する場合には、毎回上のコマンドをタイプするのではなく、すでにDockerに登録されたcoreという名前を指定して、以下のようにタイプすればいい。
これにより、非常に短時間でSDL Coreを起動できる。
Windows環境でDockerを利用して車載機エミュレーターを実現する場合には、Windows Defenderやサードパーティのファイアウォールを適宜無効にしておく必要がある。これは忘れずに対処しないと、IPアドレスやポート番号が合っていても、まったく通信できなくて悩むことになる。
この連載の記事
-
第10回
スマホ
未来の車とバイクを楽しく安全にするアイデアが集結 -
第9回
sponsored
車両情報+ニュース読み上げアプリを作ってみた! -
第8回
sponsored
SDL対応アプリ開発環境の構築その4~白紙のiOSプロジェクトから作るSDLアプリ -
第7回
sponsored
SDL対応アプリ開発環境の構築その3~Android版のSDLのAPIを使いこなす -
第6回
sponsored
SDL対応アプリ開発環境の構築その2~アプリ開発環境を整える -
第5回
sponsored
クルマがしゃべる未来って? ロボホンとクルマをつないでみた -
第3回
sponsored
トヨタ・スズキ・LINEのキーマンが語る、SDLとスマホが作る車・バイクの未来 -
第2回
sponsored
スマホアプリをカーナビで動かすと、こんな世界が待っている! -
第1回
sponsored
車・バイクとスマホを連携させるSDL規格の基礎知識 -
sponsored
車とスマホがつながるSDLの世界 - この連載の一覧へ