博客 / 詳情

返回

PHP 現在可以零成本構建原生 iOS 和 Android 應用 NativePHP for Mobile v3 發佈

PHP 現在可以零成本構建原生 iOS 和 Android 應用 NativePHP for Mobile v3 發佈

NativePHP for Mobile 從 v3 版本開始,核心框架採用 MIT 協議免費開源。Laravel/PHP 開發者現在可以零成本構建原生 iOS 和 Android 應用。

如果使用 nativePHP 開發移動應用的話,可以看nativephp mobile v3 中文文檔

插件化架構

v3 版本最大的變化是引入了模塊化插件系統。此前版本中集成在核心包裏的原生功能,現在被拆分成獨立的插件。

每個插件都是一個獨立的 Composer 包,包含 Swift 和 Kotlin 代碼、權限清單以及原生依賴。開發者只需安裝實際用到的插件,這些插件會在構建過程中直接編譯進應用。

插件安裝非常簡單,通過 composer require 安裝包後,在 NativeServiceProvider 中註冊即可。只有註冊的插件才會被編譯進最終的二進制文件,這樣可以保持應用體積精簡,也有助於通過應用商店審核。

創建插件

插件本質上就是 Composer 包,只是多了一些額外配置。通過添加 nativephp.json 文件,開發者可以定義 PHP 類、視圖文件、橋接函數、原生依賴(CocoaPods、Swift Packages、Gradle)、權限聲明、JavaScript 文件等。

NativePHP 核心提供了構建鈎子、生命週期鈎子、服務提供者註冊等機制,讓插件開發體驗更加順暢。

插件可以發佈到 Packagist,也可以作為項目內部代碼使用,無需發佈到公共倉庫。這意味着應用的 Laravel 代碼庫可以包含構建原生應用所需的一切。

免費核心

新架構將核心包精簡到最小化,應用只需包含實際使用的功能。這讓應用默認就更小、更高效,也避免了應用商店審核時因包含未使用功能而被拒的問題。

NativePHP 團隊將 v3 版本命名為 NativePHP Air,並將其轉為 MIT 開源協議。v3 之前的版本仍然遵循原有的 Business Source License。

核心框架開源後,社區可以參與貢獻,團隊歡迎針對 iOS 和 Android 核心應用的 PR。

免費插件

以下插件完全免費開源(MIT 協議):

  • Browser - 瀏覽器功能
  • Camera - 相機調用
  • Device - 設備信息獲取
  • Dialog - 原生對話框
  • File - 文件操作
  • Microphone - 麥克風調用
  • Network - 網絡狀態檢測
  • Share - 系統分享功能
  • System - 系統信息

付費插件

以下功能需要單獨購買插件(一次性付費,可用於無限項目):

  • Biometrics - 生物識別(Face ID、指紋)
  • Geolocation - 地理位置
  • Push Notifications - 推送通知(基於 Firebase)
  • Scanner - 掃描器
  • Secure Storage - 安全存儲

插件市場

插件市場(Plugin Marketplace)將所有 NativePHP 插件集中展示,開發者可以發現免費和付費插件。

未來幾周,市場將向第三方開發者開放,屆時開發者可以在 nativephp.com 上架自己的插件,甚至可以銷售自己開發的插件。例如相機濾鏡插件、支付網關集成、社交登錄包等。

Jump:即時設備測試

在真機上測試應用通常是一個緩慢且繁瑣的過程,需要安裝數 GB 的軟件、模擬器和框架。而且,沒有 Mac 就無法為 iPhone 構建和測試應用。

Jump 改變了這一切。

Jump 是一個安裝在手機上的應用(支持 Android 和 iOS),可以在真機上測試 NativePHP 應用,無需編譯任何東西,也不需要開啓開發者模式。

只需運行 native:jump Artisan 命令,打開手機上的 Jump 應用掃描二維碼,Laravel 應用就會直接加載到設備上,連接到本地開發服務器。

php artisan native:jump

# 或者

./native jump

NativePHP 構建速度很快,本地開發環境的改動幾乎可以實時反映到設備上。未來還計劃支持完整的 HMR(熱模塊替換)。

Jump 應用完全免費,nativephp/mobile v3 已包含運行 Jump 所需的一切。

Jump 包含所有官方 NativePHP 插件(包括付費插件),開發者可以免費試用和學習所有功能。唯一的限制是 Jump 無法測試第三方插件。

Mimi:AI 輔助編碼

Mimi(取自北歐智慧之神 Mimir)是 NativePHP 提供的 AI 輔助編碼功能,可以讓 AI 模型幫助編寫 NativePHP 應用:

  • 直接在瀏覽器中創建新的 NativePHP 項目(移動端也可以)
  • 用自然語言描述想要構建的內容,支持語音輸入
  • 直接在 Jump 中測試應用
  • 連接 GitHub 倉庫,立即獲取所有應用代碼

這是從想法到可運行移動應用的最快路徑,完全基於 Laravel。

升級指南

如果已經安裝了 nativephp/mobile,升級到 v3 的步驟如下:

  1. composer.json 中移除 NativePHP 倉庫(https://nativephp.composer.sh
  2. 運行 composer remove nativephp/mobile 卸載舊版本
  3. 運行 composer require nativephp/mobile 從 Packagist 安裝 v3
  4. 安裝應用中使用的功能對應的插件

除了註冊新插件外,應用代碼基本不需要修改。安裝插件後可以使用以下命令註冊:

php artisan native:plugin:register vendor/plugin

# 或者

./native plugin:register vendor/plugin

快速開始

NativePHP for Mobile v3 現已發佈。在手機上安裝 Jump,然後在開發環境中運行以下命令:

laravel new my-mobile-app
cd my-mobile-app
composer require nativephp/mobile
php artisan native:jump

這裏面有幾個小坑

  • PHP 要求 >=8.3
  • 在 windows 上測試,需要先安裝 7-zip
  • 我在 IOS 手機測試得,使用 php artisan native:jump 之後會彈出一個二維碼,用手機上的 Jump 掃描即可。這個 Jump 目前只能在 TestFlight 上安裝,打開這個安裝鏈接即可。

很完美,至少從安裝上到測試效果都很快了。效果圖如下:

Laravel 現在可以零成本構建原生 iOS 和 Android 應用 NativePHP for Mobile v3 發佈

原文 PHP 現在可以零成本構建原生 iOS 和 Android 應用 NativePHP for Mobile v3 發佈

user avatar
0 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.