NativePHPを使ってスマホアプリをLaravelで作成してみる

執筆日: 更新日:

NativePHPに課金する

https://nativephp.com/mobile
ここに課金してください!
課金すると、ライセンスキーが発行されメールで通知されます。

Laravelのプロジェクトを作成

$ composer create-project laravel/laravel --prefer-dist .

composer.jsonにNativePHP Mobileを追加

"repositories": [
    {
        "type": "composer",
        "url": "https://nativephp.composer.sh"
    }
],

これをcomposer.jsonの最下部にでも追加してください。

その後、

$ composer require nativephp/mobile

を実行します。

.envに必要環境変数を追加

NATIVEPHP_APP_ID

こちらは一意なIDを設定します。
持っているドメインを逆に並べるのが良いそうです。

nnahito.com なら com.nnahito みたいな感じです。
更に、com.nnahito.blogapp みたいな感じにすると良いっぽいです

NATIVEPHP_APP_VERSION

debugを指定するとコンパイル時にキャッシュを使わず常に最新のコードを使うらしいです。

NATIVEPHP_APP_VERSION_CODE

アプリのバージョン。
好きな数字を使っていいっぽい

NATIVEPHP_APP_ID=com.yourcompany.yourapp
NATIVEPHP_APP_VERSION="DEBUG"
NATIVEPHP_APP_VERSION_CODE="1"

NativePHPのMobileをインストール

$ php artisan native:install

MacでAndroidのアプリを作る

環境構築

Javaを入れます

$ brew update
$ brew install openjdk

$ echo 'export PATH="/opt/homebrew/opt/openjdk/bin:$PATH"' >> ~/.zshrc
$ source ~/.zshrc

Android用のライブラリをMacに入れます。

$ brew install --cask android-platform-tools
$ brew install --cask android-commandlinetools

Android用のエミュレータを作成します

$ sdkmanager "emulator"
$ sdkmanager "platform-tools"

# IntelCPUの場合
$ sdkmanager "system-images;android-34;google_apis;x86_64"

# Armの場合
$ sdkmanager "system-images;android-34;default;arm64-v8a"

PATHを通します

$ echo 'export ANDROID_HOME="/opt/homebrew/share/android-commandlinetools"' >> ~/.zshrc
$ echo 'export PATH="$ANDROID_HOME/emulator:$ANDROID_HOME/platform-tools:$PATH"' >> ~/.zshrc
$ echo 'export PATH="$ANDROID_HOME/cmdline-tools/latest/bin:$PATH"' >> ~/.zshrc

$ source ~/.zshrc

エミュレータのコンパイル

# Intelの場合
$ avdmanager create avd -n Pixel_6_Pro -k "system-images;android-34;google_apis;x86_64"

# Armの場合
$ avdmanager create avd -n Pixel_6_Pro_arm -k "system-images;android-34;default;arm64-v8a"

エミュレータの起動

$ php artisan native:run
    # 「Android」を選択
    # 「debug」を選択
[PR] おすすめの本
この記事を書いた人
Nな人(えぬなひと)。
Nは本名から取っています。
Laravelが大好きなPHPerで、WEBを作るときはLaravelを技術スタックに絶対推すマン。
PHP、Pythonと、昔はperlを書いていたP言語エンジニア。
最近はNimを書いたりしています。