golang.org/x/mobile/cmd/gomobile$GOPATH/bin以下にgomoibleコマンドががインストールされます。$PATHに$GOPATH/binが含まれていない場合は追加しておきましょう。これでgomobileコマンドが使えるようになったはずです。initを実行しましょう。Mobileを使うために必要なものをインストールしてくれます。NDK,OpenAL(libopenal)がインストールされるようです。執筆当時のバージョンではandroid-ndk-r10dが$GOPATH/pkg/gomobile/以下にインストールされるようでした。実行には結構時間がかかるので,-vをつけて進捗を確認するとよいでしょう。Mobileでは,以下の2種類の方法でGoを使ってモバイルアプリを開発することができます。Mobileは,AndroidやiOSが提供するAPIのラッパーをすべて用意することを目的としてはいません。GUIなどは通常のAndroidやiOSのアプリの開発と同じように,JavaやObjective-Cを使い,Goが得意なところはGoに任せるといった具合に使用することを想定しています。(Swiftから呼び出せるのかは調べてません。)一方で,OpenGLやOpenALの関数が呼び出せるようになっています。そのため,ゲームなどOS標準のUIを使わない場合は,これらを使用して開発できるようになっています。提供されている機能は低レベルな関数が多く,多くのパッケージがexp以下に配置されていることから分かるように,まだまだ実験的に実装されているだけのようです。この記事では,GoだけでAndroidアプリを作る方法について説明します。JavaからGoで書かれた処理を呼び出す方法については,いくつか日本語でも記事があるので探してみるとよいでしょう。Mobileのアプリからでも,ほとんどのGoの標準パッケージで提供される機能が使用できるようです。Mobileのリポジトリには,exampleというディレクトリがあります。Mobileを触れてみるのにちょうど良いサンプルがいくつか入っています。ここでは最もシンプルなサンプルのexample/basicを使って動かし方を説明していきます。Mac上で動かしてみましょう。runコマンドで実行します。main.goうまく実行できると下のような赤い背景に緑の三角形がでるはずです。緑の三角形はドラッグできるので,ぜひ動かしてみてください。Mac上で動かせることは確認できましたので,次にAndroid上で動かしてみましょう。buildコマンドを使うと,モバイルアプリ用にビルドができます。デフォルトではapkが生成されます。iosと指定すると,iOS向けのappファイルがビルドされます。appからipaを作ればiOSでも動かせるとは思いますが,私の環境では実行できるipaは生成できませんでした。golang.org/x/mobile/example/basic上記のコマンドを打つと,カレントディレクトリにbasic.apkが生成されているかと思います。installでAndoridにインストールして実行してみましょう。basic.apkうまくいくと以下のようにAndroid上でアプリが実行できます。installを使って自動でAndroidへのインストールするところまでやってくれます。installを使用するには,adbコマンドが必要となります。SDKの開発環境を用意して,adbコマンドにパスを通しておきましょう。installコマンドはビルドターゲットがandroidでないと動作しませんので,注意してください。golang.org/x/mobile/example/basicいかがだったでしょうか?Goだけで書かれたアプリがAndroid端末上で動くのは感動しますよね。Mobileで提供されているspriteパッケージについて説明する予定です。