14
2

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.

はじめに

この記事は Elixirアドベントカレンダーのシリーズ4の3日目の記事です

ElixirDekstopのAndroidアプリの開発環境の構築について解説し、
実際に以下のサンプルアプリをシミュレーターで動かします

スクリーンショット 2023-11-28 13.39.24.png

検証環境

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をクリックしてください
スクリーンショット 2023-11-28 13.58.18.png

クリックすると以下のような画面がでるので、SDK toolsのタブをクリックし、NDKと CMakeをチェックしてOKをクリックしてください

スクリーンショット 2023-11-28 13.58.46.png

これで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-251.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に書き換えましょう

.tool-versions
erlang 25.0.4
- elixir 1.13.4-otp-25
+ elixir 1.15.7-otp-25

Android Stduioのopenからgit cloneしたフォルダを選択しましょう
gradleの読み込みでしばらくかかりますが、完了したら実行ボタンを押すと以下のようにアプリが立ち上がります

スクリーンショット 2023-11-28 19.40.37.png

ビルドが失敗する場合は

cd android-example-app/app

でappフォルダに移動後./run_mixをコンソールから実行するとビルド時のエラーが出力されるので、そちらを確認しましょう

ビルドが成功して起動してからクラッシュした場合はXcodeの方にエラーメッセージがログに出力されているのでそちらを確認しましょう

最後に

Androidは本記事執筆時にMacでは問題なく動きましたが、動かない等ありましたら報告していただけたら対処法を追加させていただきます

Windowsで開発する場合は @Alicesky2127さんが Elixirシリーズ1の4日目に書くようなのでそちらを参考していただけたらと思います

自分も実際にやってみましたがMacに比べべて非常に環境構築の難易度が高いので Macで開発することをおすすめします

本記事は以上になりますありがとうございました

次は実際にElixirDesktopのプロジェクトを作成します

14
2
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
14
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?