移动应用
移动端工具箱:跨端、打包与真机调试
先决定「一套代码还是两套」,再决定打包与发布流程。跨端省的是人力,不是所有成本。
移动端选型的核心取舍是「共享代码比例」与「原生能力需求」。这份清单从跨端框架、构建发布、真机联调到文件互传,按项目推进顺序排列。
本期入选(6)
- flutter · 深度导读卡 ¥3.9BSD-3-Clause · Dart · ★181.0k
自绘 UI 的跨端方案,适合界面一致性要求高的产品。
- react-native · 深度导读卡 ¥3.9MIT · C++ · ★126.9k
贴近原生组件的跨端方案,适合已有 React 团队的迁移。
- expo · 深度导读卡 ¥2.9MIT · TypeScript · ★53.3k
把构建与预览流程标准化,先解决「装不起来」再谈优化。
- fastlane · 深度导读卡 ¥2.9MIT · Ruby · ★42.4k
发布流程自动化,适合把签名、截图、上架这类重复动作固定下来。
- rustdesk · 深度导读卡 ¥3.9AGPL-3.0 · Rust · ★128.1k
远程协助用于真机问题复现,比截图描述高效得多。
- localsend · 深度导读卡 ¥2.9Apache-2.0 · Dart · ★97.2k
局域网文件互传,适合在测试机之间快速分发安装包。
先列原生能力清单
把必须调用原生能力的功能列出来(推送、后台定位、蓝牙、支付),再判断跨端方案是否覆盖。覆盖不了的部分会成为长期维护债。
构建可重复
同一份代码要在任何人的机器上产出同样的包。签名文件、环境变量与版本号都应纳入受控流程。
真机覆盖低端设备
模拟器表现好不代表真机好。至少覆盖一档低端 Android 与一档旧款 iPhone,观察内存与启动时间。
常见坑
常见坑:只在模拟器验收、签名证书丢失、商店截图与实际界面不一致、把热更新当正式发布渠道。
替代方案
如果产品只在移动浏览器中使用,PWA 可能比原生包更省事;需要后台能力与系统集成时再考虑原生。