Go言語ではAndroidやiOSのアプリの開発用でmobileパッケージが用意されている。

Mobile · golang/go Wiki · GitHub


Androidアプリの開発することになったので、

本家のJavaではなくGo言語で開発してみることにする。


今回はサンプルコードをAndroid端末で動かすところまで。

ということで早速開発環境を載せる。


開発機

Lenovo Ideapad 720S プラチナ

CPU : AMD Ryzen 5 2500U APU ( 2.00GHz 2MB )

OS : Ubuntu 18.04

メモリ : 8.0GB PC4-17000 DDR4 (オンボード) 2133MHz

グラフィック : APU内蔵グラフィックス

Go言語:1.10.3 linux/amd64

Java:10.0.1

Android NDK:r16b


Android端末

ZTE Blade V580

Android:5.1

カーネル:3.10.65


情報も出揃ったので、早速開発環境を設ける。

はじめに下記のコマンドを実行してJavaをインストールする。

sudo apt-get install software-properties-common
sudo apt-add-repository ppa:webupd8team/java
sudo apt-get update
sudo apt install oracle-java8-installer

続いて、Android NDKをインストールする。

下記のページから該当するOS向けのファイルをダウンロードする。

NDK のダウンロード  |  Android NDK  |  Android Developers


ダウンロードは800MB近くあるのでしばし待ち、

ダウンロード後に再び端末を開き、下記のコマンドでNDKを使用できるようにする。

sudo mv ~/Download/android-ndk-r16b-linux-x86_64.zip /usr/local
cd /usr/local
sudo unzip android-ndk-r16b-linux-x86_64.zip
sudo rm android-ndk-r16b-linux-x86_64.zip 
sudo chown -R $USER:$USER /usr/local/android-ndk-r16b

# パスを通す
cd
echo 'export PATH=$PATH:/usr/local/android-ndk-r16b' >> .zshrc
echo 'export NDKROOT=/usr/local/android-ndk-r16b' >> .zshrc

※注意:端末はZ Shell(zsh)を利用しています。

最高の開発環境を求めて


続いて、Go言語とGo Mobileを使用できるようにする。

sudo add-apt-repository ppa:jonathonf/golang-1.10
sudo apt-get install golang-1.10
# Go言語がインストールされたか確認
go version

#必要に応じてGo言語のパスの設定等があるがここでは省略

# Go Mobileを取得
go get golang.org/x/mobile/cmd/gomobile

# Go Mobileの初期化
gomobile init -ndk /usr/local/android-ndk-r16b

これでGo言語とGo Mobileの初期化は修了




サンプルコードを取得して、Ubuntu上で実行できるか?確認

# Go Mobileを動かすために必要なもの
sudo apt-get install libegl1-mesa-dev libgles2-mesa-dev libx11-dev

# GOROOTをホームディレクトリ以下にしている
go get -d golang.org/x/mobile/example/basic
go get golang.org/x/sys/windows
cd ~/go/src/golang.org/x/mobile/example/basic
go run main.go

go_mobile_basic


開発機でGo Mobileが実行出来たことが確認できた。


続いて、Android用にデプロイしてみる。

gomobile build golang.org/x/mobile/example/basic

上記コマンドを実行したディレクトリにbasic.apkが生成されるので、

このファイルを何らかの手段でAndroid端末に移し、

basic.apkをタップしたらアプリのインストールが開始され、

開発機と同様の画面が表示されるようになる。

※今回はDropboxを使ってAndroid端末にファイルを送ってみた


Android端末で実行を試す時、

設定 > セキュリティで提供元不明のアプリをONにしておく必要がある。