书籍内容
如果能够使用Web开发技能创建桌面应用,岂不是美事一桩?Electron正是一个用以实现此类需求的框架。不管是在哪个操作系统上,Electron都能让我们使用JavaScript和Node创建出简洁、时髦的桌面应用。在基于Electron创建工具、游戏和软件的过程中,我们可以充分感受到Electron的快捷、实用和趣味性。 《Electron跨平台开发实战》讲述如何使用JavaScript、Node和Electron框架创建跨平台应用。在创建一个读取和渲染Markdown文件的文本编辑器应用的过程中,读者将学会像一名桌面开发者那样去思考。 《Electron跨平台开发实战/Web开发经典丛书》还讲解如何为应用添加各种与操作系统有关的功能,包括访问文件系统、定制菜单和访问系统剪贴板,以及如何使用Chromium的工具分发已完工的产品。 此外,《Electron跨平台开发实战/Web开发经典丛书》还介绍数据存储、性能优化和自动化测试等主题。 《Electron跨平台开发实战/Web开发经典丛书》主要内容: 为macOS、Windows和Linux 平台创建应用 使用原生操作系统API 使用React等第三方框架 将应用部署到MacAppStore 读者对象: 读者需要具备中级JavaScript和Node技能,但无须具有任何桌面应用开发经验。
前言/序言
《Electron跨平台开发实战》的主要目标是帮助你快速着手创建Electron应用。通过将各种基础概念体现于实践代码之中,我们可以更好地学习这些概念。这本书不仅介绍Electron的基础知识,还会提供创建新应用的灵感和点子。
本书读者对象
本书适用于这样一些受众:想要创建功能远远超出浏览器功能的桌面应用的人;想要为自己创建一款满足个人需要的桌面应用,但又不希望重新学习一门新的编程语言或框架的人:想要突破自身能力,使用同一份代码创建运行于多个操作系统之上应用的小型团队。而在笔者的内心深处,本书既适用于想要为命令行应用创建GUI界面的人,也适用于希望无须在计算机上安装Nodejs即可运行应用程序或工具的人。
本书假设读者已经熟练掌握了JavaScript,但是由于读者的技术背景各不相同,有些读者可能只对某个领域比较有经验,所以如果书中讲到了读者可能不熟悉的Web或Node.js知识点,我会对它们进行讲解。本书的组织结构:路线图
本书分为16章。各章的内容都前后衔接、循序渐进。如果只想了解如何在你的应用中实现某个特定功能,也可以直接跳到相关章节进行阅读。
第1章将讲述Eleclron是什么。我们可以看到一些Electron能够做到,而浏览器和Node.js无法独自做到的事情。
第2章将开始创建一个简单的Electron应用。该章的目标是通过亲自动手实践,让读者了解使用Electron创建一个应用是多么容易。
第3章将介绍本书中的一个主要应用-FireSale,这是一个让用户可以打开文件系统中的Markdown文件并对它们进行编辑的应用。
第4章将介绍如何使用原生系统对话框和警示框,用户可以使用对话框从文件系统中选择一个文件并在FireSale中编辑它。FireSale应用会模糊DOM与Node标准库之间的界线,协调两者以实现对话框功能。
第5章将向应用添加多窗口支持,多窗口会引出一系列单浏览器窗口应用和无窗口Nodejs应用不会遇到的问题。第6章将引入更多的原生操作系统集成功能。我们将把FireSale中打开的文档添加到操作系统的最近打开文件列表中,创建一个检查当前打开的文件是否已被其他应用修改的监听器,并根据当前文件是否有未保存的更改,更新窗口标题栏中显示的文本。
第7章将探讨如何创建原生应用菜单和上下文菜单,前者被一个应用的所有窗口共享,后者会在用户右击鼠标时弹出。
第8章将讲解如何基于应用的状态更新应用菜单,包括启用或禁用指定的菜单项。
第9章将创建一种驻留在macOS的菜单栏中或Windows的系统托盘区域的新型应用。Web应用是无法将自己驻留在这些区域的。你在该章会创建Clipmaster应用,这是一个精简的剪贴板管理器,可以从系统剪贴板读取和写入内容,响应全局快捷键,并在完成操作时向用户显示通知。
第10章将使用第三方库,创建一个像FireSale那样有UI界面的新版Clipmaster应用。这个新版本的名称是Clipmaster9000,它可以访问GitHub的GistAPI,并且可以通过快捷键把保存的剪贴项发布到另一个Web系统。
之前我们一直在使用标准JavaScript语言实现Electron应用的功能。在第11章,将展示如何在应用中使用Babel、TypeScript和CoffeeScript等可转译为JavaScript的语言,以及Sass和Less等可转译为CSS的语言。你在该章会使用React创建一个名为Jetsetter的旅行打包列表应用。
第12章将介绍如何将数据保存到数据库,将演示在客户端代码中,如何使用SQLite数据库实现数据读写操作。除了SQLite之外,还会演示使用基于浏览器的IndexedDB数据库。
第13章将介绍Spectron这个测试工具,它让开发者可以为Electron应用编写Selenium测试代码。我们将为前面章节创建的Clipmaster9000应用编写一组测试。
第14章将介绍对应用进行打包的工具。使用工具打包应用之后,可以将它们分发给不想仅通过命令行启动应用的用户。其实不光是用户,很多开发者也不太喜欢使用命令行启动应用。
第15章涵盖如何为macOS应用签名,如何创建Windows安装程序,以及如何创建用于收集错误日志和崩溃报告的简单服务器。
第16章将讲解如何把应用发布到MacAppStore。如果你更喜欢自己分发应用,就不必把应用发布到MacAppStore。但是,如果你确实想那样做但又对流程不熟悉,那么该章对你会非常有帮助。
作者简介
史蒂文·金尼(Steve Kinney),SendGrid的首席工程师,同时也是Frontend Masters的一名讲师和DinosaurjS技术会议(举办于科罗拉多州丹佛市)的组织者。