0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Ubuntu22でGo Fyneを使ってAndroidアプリを作ってみた

Last updated at Posted at 2022-11-09

はじめに

Go言語でGUIを作ることができるfyneなのですが、モバイルアプリを作ることができるというので、実際にfyneでAndroidアプリが作ることができるか試してみました。

前提条件

OS Ubuntu22.04
Go go1.19 linux/amd64
Go言語とfyneのインストールはしてある前提で話を進めます。

Go言語のインストールとfyneのインストールは、Fyne Develop Getting Started、または、@hibikingさんのこちらの記事GO言語のGUIライブラリ「Fyne」のインストール方法を参考にしてください

参考にした記事(Youtubeの動画)

実際にAPKファイルを作る方法は、こちらGolang Fyne: How to compile *apk for Android | Golang Fyne tutorialで解説されていたので、これをもとに説明します。

準備

アンドロイド関連のインストール

1 アップデートする
  sudo apt update
2 openJDKのインストール
  sudo apt install openjdk-17-jdk
3 android-sdkのインストール
  sudo apt install android-sdk
4 android−NDKのダウンロード
  GitHubのAndroid/ndkのUnsupported Downloadsからzipファイルをダウンロードする。
5 ndkファイルの展開と環境変数の追加
  ダウンロードしたzipファイルをホームディレクトリに展開する。
  .bashrcに次の環境変数の追加
   export ANDROID_NDK_HOME=(展開したディレクトリ名)

fyneコマンドのインストール

1 fyneコマンドのインストール
  go install fyne.io/fyne/v2/cmd/fyne@latest
2 ~/go/binへパスを通す

コンパイル

1 作業するディレクトリを作る
2 ソースコードを準備する
  https://developer.fyne.io/started/hello からサンプルのコードをコピーして、先程作ったディレクトリ内にmain.go  の名前で保存する。
3 次のコマンドを実行
  ※作成されるapkファイルはinitで指定した名前(.は_に変換)になります。

    go mod init com.hoge.fuga
    go mod tidy

4 アイコンファイルを準備する。
  inkscapeなどで48px✕48pxのアイコンを作り「Icon.png」の名前で先程のディレクトリ内に保存する。
5 コンパイル
  次のコマンドを実行する。
  ※appIDは作成されるapkファイルの名前には影響しません。
  fyne package -os android -appID com.hoge.fuga

最後に

以上でfyneでandroidアプリを作ることができます。実際に動くか確認するためには、エミュレーターなどを利用して確認してみてください。
※ 私はANBOXを使って確認しました。

ここまで読んでいただいて誠に感謝しております。私も試行錯誤をして2〜3日かかって確認したので間違っていることがあるかもれませんが、実際にGo+Fyneでanndroidアプリを作ることができました。もしよかったら参考にしていただけると幸いです。

ではでは

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?