はじめに
この記事は Elixirアドベントカレンダーのシリーズ4の3日目の記事です
ElixirDekstopのAndroidアプリの開発環境の構築について解説し、
実際に以下のサンプルアプリをシミュレーターで動かします
検証環境
M1 Mac(Apple M1 Max)
Mac OS Sonoma(14.1.1)
Xcode 15.0.1
Android Studioのインストール
こちらのサイトからダウンロードを行います
https://developer.android.com/studio?hl=ja
ダウンロードが完了したら、こちらに沿ってインストールを行ってください
Android NDKのインストール
Android Studioを起動したら、右上の︙(縦3点リーダ)をクリックしてSDK Mnagerをクリックしてください
クリックすると以下のような画面がでるので、SDK toolsのタブをクリックし、NDKと CMakeをチェックしてOKをクリックしてください
これでAndroid周りのインストールは完了です
Elixirのインストール
AndroidStudioとNDKのインストールが完了したらにErlangとElixirのインストールを行います
2日目のiOSの開発環境の記事で行った方は動作確認まで飛ばしていただいて構いません
Elixirのバージョンは最新でも問題なく動きますが、ElixirDesktopで使用されるErlangバイナリのバージョンが25.0.4となっているため、このバージョンのElrangでアプリケーションのビルドをしないと動かないので注意が必要です
asdf のセットアップ
様々な言語、ライブラリの管理・切替できるasdfでErlang/Elixirをインストールしていきます
ソースからビルドでも構いませんが、brewにあるのでそちらからインストールを行います
brew install asdf
インストールが完了いたら、環境変数に実行パスを通します、
この例はbashですので、zshを使用している方は公式のドキュメントを参考にしてください
echo -e "\n. \"$(brew --prefix asdf)/libexec/asdf.sh\"" >> ~/.bash_profile
echo -e "\n. \"$(brew --prefix asdf)/etc/bash_completion.d/asdf.bash\"" >> ~/.bash_profile
source ~/.bash_profile
asdfのプラグイン追加
asdfに各言語のプラグインを追加していきます
Erlangのプラグインはこちら
https://github.com/asdf-vm/asdf-erlang
以下のコマンドでプラグインを追加します
asdf plugin add erlang https://github.com/asdf-vm/asdf-erlang.git
Elixirのプラグインはこちら
asdf plugin-add elixir https://github.com/asdf-vm/asdf-elixir.git
Erlangのインストールに必要なライブラリを追加
Erlangのインストールの前に必要なライブラリをインストールしていきます
brew install git openssl@1.1 npm wxwidgets openjdk autoconf libxslt fop
echo 'export PATH="/opt/homebrew/opt/openjdk/bin:$PATH"' >> ~/.bash_profile
source ~/.bash_profile
ErlangとElixirのインストール
Erlangのバージョンさえ気をつければいいので、 1.15.7-otp-25
や1.16.0-rc.0-otp25
でも問題なく動きます
※ Mac OS sonomaにerlangをインストールする場合は --disable-jitオプションをつけてください
export DED_LDFLAGS_CONFTEST="-bundle"
export KERL_CONFIGURE_OPTIONS="--without-javac --with-ssl=$(brew --prefix openssl@1.1) --disable-jit"
asdf install erlang 25.0.4
asdf install elixir 1.15.7-otp-25
※2023/11/27日現在 wxwidgetsを組み込んだErlangのインストールに失敗しますが、Androidのアプリケーションをビルド・実行する際には使用されないので問題なく動きます
動作確認
インストールが完了したらサンプルアプリを git cloneして動かしてみましょう
git clone https://github.com/elixir-desktop/android-example-app.git
ライブラリのインストールが完了したら、言語のバージョンを指定している .tool-versions
を先程インストールしたelixirに書き換えましょう
erlang 25.0.4
- elixir 1.13.4-otp-25
+ elixir 1.15.7-otp-25
Android Stduioのopenからgit cloneしたフォルダを選択しましょう
gradleの読み込みでしばらくかかりますが、完了したら実行ボタンを押すと以下のようにアプリが立ち上がります
ビルドが失敗する場合は
cd android-example-app/app
でappフォルダに移動後./run_mix
をコンソールから実行するとビルド時のエラーが出力されるので、そちらを確認しましょう
ビルドが成功して起動してからクラッシュした場合はXcodeの方にエラーメッセージがログに出力されているのでそちらを確認しましょう
最後に
Androidは本記事執筆時にMacでは問題なく動きましたが、動かない等ありましたら報告していただけたら対処法を追加させていただきます
Windowsで開発する場合は @Alicesky2127さんが Elixirシリーズ1の4日目に書くようなのでそちらを参考していただけたらと思います
自分も実際にやってみましたがMacに比べべて非常に環境構築の難易度が高いので Macで開発することをおすすめします
本記事は以上になりますありがとうございました
次は実際にElixirDesktopのプロジェクトを作成します