由于 Tutanota 关注开源和 Linux 客户端开发,因此我们希望为 Linux 和其他平台发布一个桌面应用程序。作为一个小团队,我们很快就排除了为 Linux、Windows 和 MacOS 构建原生应用程序的可能性,并决定使用 Electron 来构建我们的应用程序。
对于任何想要快速交付视觉一致的跨平台应用程序的人来说,Electron 是最适合的选择,尤其是如果你已经有一个 Web 应用程序,想要从浏览器 API 的束缚中摆脱出来时。Tutanota 就是这样一个案例。
Tutanota 基于 SystemJS 和 Mithril ,旨在为每个人提供简单、安全的电子邮件通信。 因此,它必须提供很多用户期望从电子邮件客户端获得的标准功能。
由于采用了现代 API 和标准,其中一些功能(如基本的推送通知、搜索文本和联系人以及支持双因素身份验证)很容易在浏览器中提供。其它功能(例如自动备份或无需我们的服务器中转的 IMAP 支持)需要对系统资源的限制性访问,而这正是 Electron 框架提供的功能。
虽然有人批评 Electron “只是一个基本的包装”,但它有明显的好处:
Tutanota 不依靠于大笔的投资资金,而是依靠社区驱动的项目。基于越来越多的用户升级到我们的免费服务的付费计划,我们有机地发展我们的团队。倾听用户的需求不仅对我们很重要,而且对我们的成功至关重要。
提供桌面客户端是 Tutanota 用户 最想要的功能 ,我们感到自豪的是,我们现在可以为所有用户提供免费的桌面客户端测试版。(我们还实现了另一个高度要求的功能 —— 搜索加密数据 —— 但这是另一个主题了。)
我们喜欢为用户提供签名版本的 Tutanota 并支持浏览器中无法实现的功能,例如通过后台进程推送通知。 现在,我们计划添加更多特定于桌面的功能,例如 IMAP 支持(而不依赖于我们的服务器充当代理),自动备份和离线可用性。
我们选择 Electron 是因为它的 Chromium 和 Node.js 的组合最适合我们的小型开发团队,因为它只需要对我们的 Web 应用程序进行最小的更改。在我们开始使用时,可以将浏览器 API 用于所有功能特别有用,随着我们的进展,慢慢地用更多原生版本替换这些组件。这种方法对附件下载和通知特别方便。
我们知道有些人关注 Electron 的安全问题,但我们发现 Electron 在 Web 应用程序中微调访问的选项非常令人满意。你可以使用 Electron 的 安全文档 和 Luca Carettoni 的 Electron 安全清单 等资源,来帮助防止 Web 应用程序中不受信任的内容发生灾难性事故。
Tutanota Web 客户端从一开始就构建了一个用于进程间通信的可靠协议。我们利用 Web 线程在加密和请求数据时保持用户界面(UI)响应性。当我们开始实现我们的移动应用时,这就派上用场,这些应用程序使用相同的协议在原生部分和 Web 视图之间进行通信。
这就是为什么当我们开始构建桌面客户端时,很多用于本机推送通知、打开邮箱和使用文件系统的部分等已经存在,因此只需要实现原生端(Node.js)。
另一个便利是我们的构建过程使用 Babel 转译器 ,它允许我们以现代 ES6 JavaScript 编写整个代码库,并在不同环境之间混合和匹配功能模块。这使我们能够快速调整基于 Electron 的桌面应用程序的代码。但是,我们也遇到了一些挑战。
虽然 Electron 允许我们很容易地与不同平台的桌面环境集成,但你不能低估投入的时间!最后,正是这些小事情占用了比我们预期更多的时间,但对完成桌面客户端项目也至关重要。
特定于平台的代码导致了大部分阻碍:
由于用户对不同平台上的应用程序的某些(有时不直接兼容)行为的期望,此过程有点复杂。使三个版本感觉像原生的需要一些迭代,甚至需要对 Web 应用程序进行一些适度的补充,以提供类似于浏览器中的文本搜索的功能。
我们在 Electron 方面的经验基本上是积极的,我们在不到四个月的时间内完成了该项目。尽管有一些相当耗时的功能,但我们感到惊讶的是,我们可以轻松地为 Linux 提供一个测试版的 Tutanota 桌面客户端 。如果你有兴趣,可以深入了解 GitHub 上的源代码。
via: https://opensource.com/article/19/4/linux-desktop-electron
作者: Nils Ganther 选题: lujun9972 译者: wxy 校对: wxy
完全可行的。很多人的头脑印像中,认为linux是主要用作服务器系统,特别的高深,需要手敲很多的命令来执行 *** 作。其实Linux是一个完全可以作为日常使用的 *** 作系统来使用的。 只不过,在大平台的推广下,它只能作为一个小众产品来使用而已。 现在很多linux桌面 *** 作系统本身就被设计成为模仿Windows的界面风格,熟悉Windows的用户在这一系统下会比较顺手。 常见的Linux桌面发行版有Ubuntu、深度(deepin)等。 聊天 ,腾讯QQ Linux版本,支持X64、ARM64、MIPS64架构。 办公软件 ,虽然Linux下没有微软的Office系列,但WPS是非常不错的一套办公软件哦,完全不逊色与微软的Office。游戏 ,很多人质疑说,Linux下的 游戏 太少了,根本满足不了大众的 游戏 需求,其实,在我看来,是大多数用户的大型 游戏 的需求还是不大,即便有需求,Linux下也有相应的解决方案,比如:Steam就是在Linux系统下的 游戏 分发软件,通过Steam平台,很多相当不错的 游戏 进入Linux。程序开发 ,对于程序员来说,几乎的程序开发环境都可以在Linux中搭建起来,并且绝大多数,在Linux下的开发效率是要比在Windows下开发要容易和高效的,因为Linux有着极其强大的自由性。尤其是对于web开发,由于服务器端一般都采用Linux系统,所以,如果本机也安装linux进行开发,那将会节省很多成本,并且保持了环境的高度统一。Linux对于移动端、云计算、Ai技术以及嵌入式等各个领域,都发挥着非常重要的作用。非常难,最关键的原因是在linux下,众多的专业软件没有,网银软件什么的没有,同时一些日常生活中的冷僻一点的软件也没有。1、专业的软件没有 比如PS、CAD等等,这些工具软件就是没有的,所以如果你需要使用这些专业的工具软件,就无法实现全部用linux。 2、日常生活的很多软件也没有 有些人说我不用专业软件,就日常看看视频,上上网之类的。如果你只是这些简单的需求,估计是可以。 但问题是,在linux下,很多的网银软件,控件什么的都没有,这样你付不了款,登不网上银行什么的,这些可就是大问题了。3、开发方面 开发方面也分好多种,有些是必须在windows下开发的,有些是需要MacOS环境,有些需要linux环境,具体看你的开发需求是什么,并不能一概而论。但是在我看来,完全只使用linux,不用其它的 *** 作系统,真的很难的,这也是目前国产系统无法广泛推广的根本原因之所以,毕竟所有的国产系统都是基于linux系统的修改版。我尝试过Linux系统桌面版本的使用情况,这里使Ubuntu及国内的Deepin系统。本文以Ubuntu18.04为例。我们下载系统后初始安装界面差不多就是这个样子,后期可以自定义出各种界面,自由度非常高! 一、日常生活及办公软件 1、聊天软件QQ 腾讯曾于2008年推出QQ for Linux版本,但2009年之后就再也没有更新过,但在上个月24号腾讯宣布QQ for Linux版正式回归!全新版本优化了消息体验,完善了消息的收发能力以及在性能上得到了提升。2.办公软件WPS WPS官网也是有发布Linux版本的总体来说办公软件也是非常好用的,跟windows基本没什么区别,满足日常办公需求。我自己尝试过用Linux来应付一个周的时间,在完全不打开macOS和Windows的前提下,深度Linux基本上可以完全满足我的需求。 得事先讲清楚的是,我基本上已经很少玩 游戏 了,目前做的也都是互联网产研线上的工作, 娱乐 就是看视频听音乐、看博客逛开发者社区,其余的工作和学习也都是跟互联网软件开发相关的,因此Linux对于我来说可以满足基本需求。 硅谷有两种程序员,一种是用macOS的,一种是Linux的,基本上都是这两类程序员占主要,Google和Facebook就是这类硅谷公司的典型。两类程序员基本上都是用Emacs和Vim开发的居多,尤其是做后台的大部分都是在远程服务器上完成,而服务器上就是Linux系统。 Google之前一直用定制版Ubuntu、也就是goobuntu,现在逐渐转向了gLinux,也是基于Debian的Linux版本,Google不限制员工使用什么类型的 *** 作系统,不过Google鼓励工程师实用Linux *** 作系统。 很多同学可能平时不大能接触上,国内也有不少的企业是用这样的环境开发的,比较著名的就是拥有着11亿注册用户的微信开发。微信PRC框架、服务器框架代码、微服务、路由策略、过载和自适应,消息队列等都是在Linux C/C++环境下开发,你所了解的微信的主要功能,比如朋友圈、公众号、支付等核心功能全都是在Linux下开发的。 基本上是采用的微信后台是采用SSH到服务器开发机,大部分基本上采用的是vim/emacs+gcc+gdb进行开发,听说只有很少一部分是本地IDE写好传到变以及进行编译调试,要知道微信这种级别的产品,用户量是10亿级的,代码量是千万行以上的,都还是在Linux C/C++为主要技术栈的环境下进行开发,因此Linux做开发是肯定没问题的。 除了没有Visual Studio、Xcode这些Windows或者macOS下的专门开发工具,其他的主流开发工具,Linux上都非常全面,甚至体验上会更好。 作为生产力系统,Linux对于开发者是极度友好的,Linux是最接近生产环境的,大多数的互联网企业都会选择CentOS、Debian、RedHat Linux、或者一些企业专门深度定制的Linux发行版作为服务器,即使如WhatsApp、Yahoo使用FreeBSD作为服务器,Linux也是非常接近生产环境。 我自己曾经尝试过在深度Linux下学习和工作一周时间,事实上深度Linux很好的完成了我的工作、学习和日常任务。 Emacs/Vim、Visual Studio Code、IntelliJ IDEA、PyCharm是我用得比较多的开发工具,除此之外GCC、GDB、Git都是用得比较多的工具,深度终端已经非常好用了,不需要像Windows上弄个Zoc、Cmder这些第三方终端。 文档编辑我现在基本上已经很少用office了,大部分我都是云端用Google Docs、本地用WPS,除此之外就是做presentation的时候用keynote,基本上已经不用office了,主要是我也忍不office了。脑图一个在线的ProcessOn,本地用MindMaster和Xmind也绰绰有余了。 这可能是大多数同学平时会用的, 娱乐 和社交必然是大家要用的。看视频直接用网站就好了,客户端完全可以不需要,听音乐网易云音乐、Spotify都有Linux原生客户端。游戏 方面Linux也有Steam,大家可以去下载体验一些 游戏 ,当然如果你是个资深 游戏 玩家,我还是建议你使用Windows,毕竟大多数经典的单机 游戏 、网络 游戏 都是在Linux上没办法玩的。 社交方面,现在微信、钉钉都可以用,微软为Linux开发了Skype原生版本,腾讯也为Linux开发了QQ原生版本,完全够用了。总体来说,我觉得深度Linux基本上可以满足国内程序员的日常学习、工作、以及 娱乐 的大部分需求。从问题分析,想必题主应该是一个开发人员。但是题主是一个什么样的开发人员,我却不得而知了。不过既然题主在问题中表示希望开发全部使用Linux系统的表态来看,应该并非Windows系统或者Mac系统的专有程序的开发人员。因此,我可以假定题主的开发语言应该是跨平台的,或者对特定的开发平台系统是没有要求的。因为只有这样的假定,才符合题主的问题的基础要素。从这个推断来看,在开发层面上使用Linux系统应该是没有任何问题的。需要注意的是,虽然在Linux系统上没有像Windows或者Mac那么多的可视化工具,但是主流的IDE和常用工具是并不缺少的。只是可能在使用习惯上有一些差异,作为开发人员我相信通过短时间的适应,应该是可以适用的。但是,作为开发人员,不能仅仅从开发者的角度去考虑问题。因为你需要和各个部门的人进行交互,交换各类文件是常有的事情。所以,如果你的同事适用了某个特定系统支持的特定文件格式,那么在你的电脑上可能就会出现一些问题。比如使用苹果系统的人,给你一个.page文件对吧。这个例子极端了一些,但是这样的场景确实是存在的。所以,在和同事的文件交互问题解决的前提下,使用Linux系统作为开发 *** 作系统平台是没有太大的问题的。而在日常生活中,使用Linux系统会有什么影响吗?其实还是有比较大的影响的。首先就是,很多国产端游可能你就没办法愉快的玩耍了。系统不支持,没办法。虽然Linux系统上有很多的 游戏 ,但更多的人还是喜欢玩自己常玩的 游戏 。因此,如果你常玩的 游戏 在Linux没有发行版,那么这一关就会卡死你了。不过这个问题并不严重,因为现在大家玩 游戏 主力都转移到了移动端,在PC端的 游戏 大家玩的越来越少。因此,如果你忽略 游戏 方面的需求的话,或者有专门的 游戏 主机的话,那么日常生活中使用Linux系统并没有什么太大的影响。无论是看电影,听音乐,浏览网页,还是从事一些日常的轻度办公以及一些Linux下的各类 游戏 ,还是比较丰富的。还有一点,Linux系统在部分情况下,对打印机的支持并不好,如果你有大量打印需求,最好先确认系统是否支持你的打印机型号。如果没有这个需求,那就忽略好了。一个长期使用Windows系统的用户,贸然切换为Linux系统,是会存在很多不适应的地方的。但这并非不能克服,我个人建议如果你初次尝试Linux系统,可以安装国内优秀的Linux发行版Deepin系统。该系统集成了国人常用的各类软件,让大家开箱即用、拎包入住。比如QQ\WPS\搜狗输入法等等。其自行开发的各类影音 娱乐 软件,也能满足大多数人的日常需求了。而近期因为美国政策原因,华为已经在很多电脑产品上面预装Deepin系统了。如果你近期有购买电脑的需求,并且想要尝试Linux系统,可以购买华为的电脑产品。我相信通过一段时间的学习和适应,你会喜欢上Linux的世界的。PS:我个人已经有四年不曾使用Windows系统了。主力是苹果系统和Deepin系统,我个人感觉良好。以上。Linux的破冰之路在于强大的云端,比如我要用CAD设计,Linux没有这个软件,但是可以在云端有,通过云获得使用软件的能力。那么关键就是需要有更多,更快的实时云端。更人性化的收费标准,太贵了不行。还要有灵活的收费服务套餐。比如我设计一个东西,本来预计三天完成,预计云端费用三百块钱,结果由于某种原因,导致十五天才造成,结果就造成远远超出预期费用。我的意思是,云端收费可以多样化,可以针对时间收费,也可以针对项目收费。未来中国芯片系统的突破之路或许就在云计算服务的普及。这需要更多强大的云端和更快的网络接入速度。云端当然也可以运行任何 游戏 ,由于可控性,还可以避免小孩整夜玩 游戏 !云端建设也可以多样化,比如专门面向 游戏 的,专门面向工业设计的,专门面向影视的……到那时候,个人电脑不需要极其强大的配置,就可以获得顶配的性能,这也是芯片等突出重围的路子,可以获得喘息之机,逐步提高芯片设计制造能力。 如果是常用cad这类制图类软件那在上是不太方便,虽然linux上也有相似软件替代,但总体成熟度目前不如Windows。不过工作中只是偶尔用一下的话有太多云端cad,ps,cd的应用可用了,完全可以用Linux替代 从2012年开始使用fedora至今,中间换过windows,发现不适合开发,又换回fedora,如今fedora已发布31,除了电池管理和显卡驱动,其他问题不大,甚至更高效 完全可行 嗯嗯,,,欢迎分享,转载请注明来源:内存溢出
评论列表(0条)