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 的步骤如下:
- 从
composer.json中移除 NativePHP 仓库(https://nativephp.composer.sh) - 运行
composer remove nativephp/mobile卸载旧版本 - 运行
composer require nativephp/mobile从 Packagist 安装 v3 - 安装应用中使用的功能对应的插件
除了注册新插件外,应用代码基本不需要修改。安装插件后可以使用以下命令注册:
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上安装,打开这个安装链接即可。
很完美,至少从安装上到测试效果都很快了。效果图如下:
原文 PHP 现在可以零成本构建原生 iOS 和 Android 应用 NativePHP for Mobile v3 发布