当前位置: 首页 > news >正文

离谱!微软发布 React Native macOS,这是什么行为艺术?

今天看到一张非常有意思的开源项目React Native for macOS,还是微软发布的,直接把我看乐了:

微软(Microsoft),为了它的老对手苹果(Apple)的操作系统 macOS,基于Meta(Facebook)的开源技术 React Native,开发了一套兼容框架。

这关系乱得,堪比科技圈的"燃冬"。网友戏称这是"行为艺术",但如果我们仔细剥开这层瓜,会发现微软这波操作,其实还是有点东西的。

这是个啥?

简单来说,react-native-macos是微软在 GitHub 上维护的一个开源项目。

它的核心作用只有一个:让你用写 React(Web 前端技术)的方式,去开发 macOS 的原生桌面应用。

大家都知道,React Native(简称 RN)主要是用来写手机 App 的(iOS 和 Android)。但微软觉得,既然 RN 这么好用,为什么不能用来写电脑软件呢?

于是,微软先搞了个react-native-windows,让你能用 React 写 Windows 软件。紧接着,为了凑齐桌面端的拼图,他们又搞了这个 macOS 版本。

为什么要搞这个?

你可能会问:"微软这是图啥?帮苹果建设生态?"

其实这背后是微软的大一统野心

1. 真正的"一次学习,到处编写"

程序员最烦的事情就是:写一个功能,要给 iOS 写一遍,给 Android 写一遍,给 Windows 写一遍,还得给 macOS 再写一遍。

微软想做的是:你只要会写 React,你就通吃了。手机、电脑(Windows/Mac),全都能搞定。

2. 比 Electron 更"原生"

以前我们想用 Web 技术写桌面应用,通常会用Electron(比如大家熟悉的 VS Code、Slack 都是用的这个)。

Electron 很好,但它本质上是在你的电脑里塞了一个谷歌浏览器(Chrome)。这导致了两个问题:

  • 安装包大:一个简单的记事本可能都要 100MB。

  • 吃内存:多开几个窗口,内存条就开始报警。

React Native for macOS不一样。它不塞浏览器,它在底层直接调用 macOS 的原生组件(Cocoa)。

打个比方:

  • Electron像是你在 Mac 上开了一个网页版模拟器。

  • RN for macOS则是让你的代码学会了说 Mac 的"方言",指挥系统直接干活。

客观评价:能不能打?

既然是微软出品,又是给 macOS 用的,那它到底好不好用?我们站在客观角度来看一下。

优点(值得夸的地方)

  1. 性能确实更好:因为它不需要加载整个浏览器内核,启动速度和运行流畅度理论上比 Electron 要好。

  2. 微软官方背书:这不是一个个人练手项目,微软自己的一些应用(比如 Xbox App 等)也在尝试使用这种技术栈,维护力度相对有保障。

  3. 复用代码:如果你已经有了一个 React Native 的手机 App,想移植到 Mac 上,大部分逻辑代码是可以直接复制粘贴的。

挑战(需要冷静的地方)

  1. 它是一个"分叉"(Fork)这就是那个 GitHub 仓库里提到的技术细节。react-native-macos并不是完全独立的项目,它是基于 Meta 的 React Native 主仓库分叉出来的。 这意味着什么?意味着如果 Meta 更新了 RN 的核心功能,微软这边可能需要一点时间才能同步过来。这种"时差"有时候会导致版本兼容性问题。

  2. 桌面和手机的交互逻辑不同手机是触摸屏(Touch),电脑是鼠标键盘(Mouse & Keyboard)。 你不能简单地把手机 App 拉大就变成了电脑软件。你需要处理鼠标悬停(Hover)、右键菜单、窗口缩放等桌面独有的交互。虽然框架支持,但开发者的工作量并不少。

  3. 生态圈还不够大相比于成熟的 Electron,RN for macOS 的社区插件和现成解决方案还比较少。遇到坑的时候,可能搜不到现成的答案。

总结

微软搞这个项目,并不是为了搞"行为艺术",而是在布局跨平台开发的未来

对于我们开发者或者产品经理来说:

  • 如果你追求极致的性能原生体验,又想用 Web 技术栈,它是 Electron 之外的一个强力竞争者。

  • 如果你的团队主要是前端开发,想低成本搞个 Mac 客户端,这也是个不错的选择。

至于"微软帮苹果写代码"这种梗,笑笑就好。毕竟在开源的世界里,巨头们早就你中有我,我中有你了。

最后,如果你对这个项目感兴趣,可以去 GitHub 上围观一下:github.com/microsoft/react-native-macos

(不得不说,微软这波格局,确实打开了。)

http://www.gsyq.cn/news/118948.html

相关文章:

  • 26、GNU、自由软件基金会与开源世界:理念、哲学与资源探索
  • EmotiVoice在低资源设备上的运行优化策略
  • 数据库MySql 8.0.44的安装
  • EmotiVoice语音合成结果版权归属问题解析
  • EmotiVoice开源项目国际化(i18n)支持现状
  • Kotaemon开源框架深度解析:模块化设计助力企业级RAG落地
  • EmotiVoice语音合成引擎的容器化部署最佳实践
  • pq优先处理最优候选|桶排序
  • 开源新星Kotaemon:专为复杂对话系统而生的AI框架
  • pyslam G2O python 工程目录解析,后期添加GNSS边 - MKT
  • EmotiVoice支持哪些情感类型?全面测评来了
  • 使用EmotiVoice构建多角色对话系统的架构设计
  • EmotiVoice语音合成在紧急广播系统中的可靠性验证
  • EmotiVoice语音合成引擎的冷启动时间优化建议
  • 8051单片机程序——矩阵键盘+led数码管实现密码锁
  • EPubBuilder:零基础也能轻松上手的电子书制作神器
  • 如何快速上手mermaid-live-editor:终极实时图表编辑指南
  • AI搜索排名GEO优化家居装修业白皮书
  • ConnectivityFilter数据集中分离的区域或连通分量
  • ExtractPolyLinesFromPolyData切割一个三维模型(球体),并可视化切割后产生的多条等高线
  • ExtractSelection 选择和提取数据集中的特定点,以及如何反转该选择
  • 小熊猫Dev-C++快速上手教程:零基础搭建C/C++开发环境
  • 无需重造轮子!Kotaemon提供开箱即用的RAG组件
  • TLS网络安全协议巩固知识基础题(5)
  • 再见 PotPlayer!更好用的开源播放器,来了
  • 基于GoFrame与微内核架构的企业级物联网平台设计与实现
  • 3步解锁Wallpaper Engine创意工坊:这款下载器如何让壁纸获取变得如此简单?
  • 图灵电子书全场限时折扣,新书老书同步参与!
  • Bypass Paywalls Clean终极指南:轻松绕过付费墙的5种简单方法
  • 嵌入式学习!(一)C++学习(16)入门-12/17