【AICon】 如何构建高效的 RAG 系统?RAG 技术在实际应用中遇到的挑战及应对策略?>>> 了解详情
写点什么

搞不定移动端性能,全球爆火的 Notion 从 Hybrid 转向了 Native

  • 2022-07-25
  • 本文字数:2945 字

    阅读完需:约 10 分钟

搞不定移动端性能,全球爆火的Notion从Hybrid转向了Native

7 月 20 日,Notion 笔记程序发布了版本更新,并表示更改了移动设备上的技术栈,将从 webview 逐步切换到本机应用程序,以获得更快更流畅的性能。

 

该团队声称该应用程序现在在 iOS 上的启动速度提高了 2 倍,在 Android 上的启动速度提高了 3 倍。

 


Notion 发布的这条 Twitter 也得到了广泛的关注,几天之内就有了上千条转发。由于前几年 Notion 的技术栈一直没有公开,开发者对此充满了各种猜测,很多人认为 Notion 使用的是 React Native 或 Electron,因此这次 Notion 宣称切换为原生 iOS 和原生 Android,再一次引发了“框架之争”。

 

其中有不少人发表了“贬低”跨平台开发的看法,对 React Native 等框架产生了质疑,毕竟现在向跨平台过渡是不可避免的,这些框架是对原生工具包的一个“威胁”,而 Notion 恰恰又切换到了“原生”开发模式。

 

实际上,在 2020 年之前 Notion 使用的是 React Native,随后切换到了 Hybrid 混合开发模式:使用 Kotlin/Swift + 运行网络应用程序的 Web 视图。但移动端的性能一直是一个问题,2 年之后,Notion 再次切换到了原生开发模式。

 

有网友认为,像 Notion 这样重 UI 和交互的产品,如果不知道如何掌握 Web 技术,那么对他们的产出速度表示担忧。面对这种吵翻天的状况,Notion 的前端工程师也因此再度出面回应这次切换的原因和一些思考。

 

Notion 的发展和理念

 

 Notion 是一款将笔记、知识库和任务管理无缝衔接整合的多人协作平台。Notion 打破了传统的笔记软件对于内容的组合方式,将文档的内容分成一个个 Block,并且能够以乐高式的方式拖动组合这些 Block,让它使用起来十分灵活。

 

Notion 由 Ivan Zhao、Simon Last 于 2013 年在旧金山创立。去年底,Notion 获得了 2.75 亿美元的 C 轮融资。截至 2021 年 10 月,Notion 估值 103 亿美元,在全球拥有超 2000 万用户。Notion 的创始人和 CEO Ivan Zhao 是一位 80 后华人。他出生于中国新疆,曾就读于清华附中,中学时随家人移居加拿大,现在被很多人认为将成为硅谷的下一个袁征(Zoom 的创始人)。Ivan 在大学时期主修认知科学,学习的是人的大脑怎么运作,外加对计算机也很感兴趣。

 


“我想分享一个 Notion 创始人的故事。2013 年的时候,我在一家咖啡馆遇到了 Ivan,他对我的钥匙复制服务感兴趣,但他很不喜欢这个服务的网站。于是他用一晚上的时间,用 HTML 和 CSS 重写了它......”。

 

Ivan 也曾表示“我的很多朋友都是艺术家。我是他们中唯一会编码的人。我想开发一款软件,它不仅可以为人们提供文档或网页。” 因此,在 2012 年大学毕业后,在文档共享初创公司 Inkling 工作期间,他创办了 Notion。原本的目标是构建一个无代码应用构建工具,不过项目很快失败了。随后 Ivan 与 Simon 迁往了日本京都,待了一年左右,小而安静的地方能“让我们专注在写代码”,在相对无压力和与世隔绝的环境下,构思并设计出了现在的 Notion 原型。用 Reddit 论坛上的一条获得高赞的网友总结就是:一个 Notion = Google docs + Evernote + Trello + Confluence + Github + Wiki +……

 

“工具应该模仿人脑的工作方式。但由于每个人的思维和工作方式都不同,这意味着工具需要非常灵活。”Ivan 解释道。而 Notion 创建的目的,就是将用户从一堆各式各样的生产力工具之中解放出来,给予一个干净清爽、简便易行的 All in One 工作平台。企业用户也可以在 Notion 上基本实现公司的内部管理所需要涉及到的所有功能。包括公司知识库和资料库的创建与管理、项目进度管理、信息共享、工作日志、内部社交、协作办公等等。

 


有人甚至说,Notion 堪比办公软件届的苹果。在 2016 年发布 1.0 版本后,因其独特的设计、专注于将事情做得更好、对投资人的冷淡态度,外加疫情远程办公潮,多方面因素让 Notion 迅速火遍全球。作为一款 All in one 的概念型工具,Notion 一直被众多企业抄作业,但它目前几乎未逢敌手。

 

Notion 为什么要两次更换技术栈?

 

Notion 在 2017 年、2018 年分别发布了 iOS 客户端和 Android 客户端。在发布 2.0 版本之后,该公司于 2019 年以 8 亿美元的估值筹集了 1000 万美元的资金。但也许和创始人的发展理念相关,Notion 的员工数量一直不多。

 

2019 年 3 月的时候,工程团队总共才 4 个人,当时 Notion 用 React Native 来渲染 web 视图。Notion 在 Twitter 上解释说,这是为了更快地部署新功能和进行一些其他修复。

 

但如果这个系统适合开发者,那么它对用户来说远非最佳:许多人抱怨移动版本非常缓慢。“即使是新 iPhone 也非常慢 - 大约 6-7 秒后我才能开始输入笔记。到那时我都快忘记了我之前想写什么。它基本上是一个非常重的 web 应用程序视图。”“如果 Notion 不选择改变,那么它将迅速被其它同类产品取代。”......

 



2020 年,Notion 第一次因这个问题,更改了技术栈,放弃 React Native,切换到了 Hybrid 开发环境。

 

Notion 前端负责人 Jake Teton‑Landis 表示,“React Native 的优势在于允许 Web 开发人员构建手机应用程序。如果我们已经有了 webview,那么 React Native 不会增加价值。对我们来说,它让一切变得更加困难:性能、代码复杂性、招聘等等。用 React Native 快速完成任务的同时,也在跟复杂性战斗,这让我们感觉束手束脚。”

 

虽然这次移动端的性能有了一些提升,但也没有根本解决问题,更新之后,Android 端依然是一个相当大的痛点。

 


Notion 也曾在 2019 年的时候表示不会很快发布本机应用程序,但他们同时强调“原生开发也是一个选择”。

 

7 月 20 日,Notion 发布了版本更新,并表示将从主页选项卡开始,从 webview 逐步一个个地切换到本机应用程序。

 

此时 Notion 工程团队也大约只有 100 人, 总共包含 3 位 iOS 工程师、4 位 android 工程师,除主页使用 SwiftUI/Jetpack Compose 进行渲染,其他部分仍然是 webview 进行绘制。

 

“似乎这还是招聘不足产生的人员问题。”Jake 解释说,“我们的策略是随着团队的壮大逐步本地化我们应用程序的更多部分。我们这个程序必须使用本机性能,如果它是原生的,则更容易达到这个性能要求。

 

凭借我们拥有的经验,以及对问题的了解,我们因此选择了原生 iOS 和原生 Android 开发。虽然出于复杂性的权衡,在可预见的未来,编辑器可能仍然是一个 webview,毕竟 Google Docs、Quip、Dropbox Paper、Coda 都使用原生 shell、webview 编辑器。”

 

原生开发才是王道?!

 

虽然无论是原生开发还是 Hybrid 都可以完成工作,但原生应用程序是按照操作系统技术和用户体验准则开发的,因此具有更快的性能优势,并能轻松访问和利用用户设备的内置功能(例如,GPS、地址簿、相机等)。

 

Hybrid 开发方式,通常是在面对市场竞争需要尽快构建并发布应用程序时候的一种选择。如果期望的发布时间少于六个月,那么混合可能是一个更好的选择,因为可以构建一套源代码,跨平台发布,与原生开发相比,其开发时间和工作量要少得多,但这也意味着需要做出许多性能和功能上的妥协。

 

如果有足够时间,那么原生方法最有意义,可以让应用程序具有最佳性能、最高安全性和最佳用户体验。毕竟,用户体验是应用程序成功的关键。互联网正在放缓,人们使用手机的时间越来越长,缓慢的应用程序意味着糟糕的业务。在这种情况下,对 Notion 来说,拥有一个快速应用程序比以往任何时候都更加重要。

 

参考链接:

https://www.notion.so/releases/2022-07-20

https://twitter.com/jitl/status/1530326516013342723?s=20&t=xT0gfWhFvs0yNvc1GQ3sTQ

2022-07-25 19:4411241

评论 6 条评论

发布
用户头像
跨平台的很难做到和原生一致的用户体验
2022-08-06 10:23
回复
用户头像
怎么不考虑用flutter?
2022-07-26 11:30
回复
flutter是Dart Hy和RN理论上都是Web,而且flutter底层渲染跟原生没法比
2022-07-26 15:53
回复
你的理解是错误的。Flutter是自己实现了一套渲染机制。底层用的是C++,所有的控件是它自己画出来的。其实就是自己实现了一套GUI系统。所以这个从某种意义上说也是原生代码。
2022-08-22 03:48 · 美国
回复
都是桥接的,按你这说法,react-native也属于原生了
2022-08-25 19:25 · 福建
回复
查看更多回复
没有更多了
发现更多内容

LockBit勒索攻击大杀四方,超千家企业被攻击,金融、能源等成重灾区

德迅云安全_初启

移动图形工作站有哪些价格实惠的推荐?

青椒云云电脑

图形工作站

Parallels Desktop 19 for Mac v19.1.0一键激活版

iMac小白

海外营销推广难?看看这款外贸人强推的海外云手机!

Ogcloud

跨境电商 外贸

TiDB故障处理之让人迷惑的Region is Unavailable

不在线第一只蜗牛

数据库 架构 TiDB 集群库

2024年科技行业十大经济预测

这我可不懂

人工智能 科技 发展趋势

Microsoft Office LTSC 2021 for Mac(office全家桶)v16.80中文正式版

影影绰绰一往直前

Proxifier for Mac(全局代理客户端) v3.11注册版

影影绰绰一往直前

Axure RP 9 for Mac(快速原型设计软件) v9.0.0.3731正式版

影影绰绰一往直前

深入探究音视频开源库WebRTC中NetEQ音频抗网络延时与抗丢包的实现机制 | 主赛道

Dynamic Wallpaper for Mac(Mac动态壁纸桌面)v17.0中文版

影影绰绰一往直前

SD-WAN:解决Office 365卡顿问题的新途径

Ogcloud

网络 组网

企业云桌面解决方案

青椒云云电脑

云桌面 云桌面解决方案

跨链技术 2023:拥抱区块链的互操作性

区块链软件开发推广运营

dapp开发 区块链开发 链游开发 NFT开发 公链开发

Royal TSX for Mac(强大的远程管理软件)v6.0.2激活版

影影绰绰一往直前

sublime text for Mac(代码编辑器) v4.0(4169)中文注册版

影影绰绰一往直前

Navicat Premium 16 for Mac(数据库管理软件)v16.3.4中文激活版

影影绰绰一往直前

JNPF开发平台--初体验

互联网工科生

低代码 JNPF

Solidity之旅(十六)Constant 和 Immutable状态变量

BSN研习社

区块链 Solidity

2024通义语音AI技术图景,大模型引领AI再进化

阿里技术

通义千问

ERP与智能商品系统在供应链管理上有哪些区别和优势?

第七在线

哪些关键供应链指标的数据集成可以提高智能商品系统决策支持效果

第七在线

Premiere Pro 2024 for Mac(PR 2024视频编辑软件) v24.1中文激活版

影影绰绰一往直前

IBM SPSS Statistics 27 for Mac(spss数据统计分析软件) v27.0.1中文版

影影绰绰一往直前

喜讯|极狐GitLab 通过信通院汽车软件研发效能成熟度模型能力评估,荣获全面级!

极狐GitLab

macOS 13 Ventura (苹果最新系统) v13.6.3正式版

iMac小白

Java-springboot整合activiti实际项目案例(源代码)

金陵老街

一文讲透基于感知超分模型的实时视频抗弱网技术

中关村科金

人工智能 音视频

VMware Fusion Pro 13 for Mac(VM虚拟机)v13.5.0中文激活版

影影绰绰一往直前

Magnet for mac(macOS窗口管理软件)v2.14.0中文免激活版

影影绰绰一往直前

移动图形工作站电脑配置攻略

青椒云云电脑

图形工作站

搞不定移动端性能,全球爆火的Notion从Hybrid转向了Native_大前端_Tina_InfoQ精选文章