Electron:质疑,理解与成为
May 3, 2023
业界有个不成文共识:使用Electron作为跨平台开发套件就会被遭到批评,如1Password。有很多原因,比如:
- Electron体积过大,同时在运行时也会占用了大量系统资源
- 性能不够优秀,导致运行速度较慢
- 大量粗制滥造的web套壳应用导致大家对它的印象不佳
入职AFFiNE后,我的第一个较重要的任务是接手AFFiNE客户端,并完成MVP版本的发布。最初版本使用的是Tauri进行开发。随着Rust开发生态的不断发展和完善,Tauri作为其中的一个重要工具,获得了越来越多的关注和认可。
Tauri的出色之处在于,它利用了系统自带的网页渲染引擎作为自己的webview,这使得它的体积更小,性能更高,从而更适合于桌面端的应用开发和使用。
尽管我们最初期望通过使用Tauri来解决一些Electron存在的问题,但我们也不可避免地遇到了一些Tauri自身的问题,例如:
- Rust在桌面端的生态还不够成熟,这给Tauri的应用和开发者带来了一些挑战和限制。
- Tauri在一些疑难杂症和跨平台方案上存在一些不一致的问题,这需要我们付出更多的精力和时间去解决。
- 我们对于Rust的掌握程度还不够熟练,这导致我们在应用开发的过程中经常会遇到一些看似简单的问题,但却卡住了很久。
- Tauri的使用也增加了应用的构建复杂度,同时也大幅影响了应用的CI时间,这需要我们花大量精力在此做更多努力和改进。
经过这些问题,我们才慢慢理解了Electron为了帮助开发者快速迭代与分发桌面端应用所做的努力。在反复思考后,我们最终放弃了Tauri,重新选择了Electron。
在重新使用Electron后,我们的开发效率大幅提高,并且终于有足够的时间去解决一些用户体验上的问题。
总的来说,这段经历对我们来说非常有意义。如果一开始我们选择了Electron,我们可能会错误地认为Tauri可以帮助我们解决掉一些Electron的痛点。但是现在我们使用过Tauri后,我们更加坚定地选择了Electron这条路,并不再怀疑自己的选择。
另:本文使用Notion AI辅助书写。