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 应用就会直接加载到设备上,连接到本地开发服务器。

shell
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. 安装应用中使用的功能对应的插件

除了注册新插件外,应用代码基本不需要修改。安装插件后可以使用以下命令注册:

shell
php artisan native:plugin:register vendor/plugin

# 或者

./native plugin:register vendor/plugin

快速开始

NativePHP for Mobile v3 现已发布。在手机上安装 Jump,然后在开发环境中运行以下命令:

shell
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 发布

本作品采用《CC 协议》,转载必须注明作者和本文链接