Electron跨平台开发实战/Web开发经典丛书

《Electron跨平台开发实战/Web开发经典丛书》

  • 出版社:清华大学出版社
  • ISBN:9787302534891
  • 版次:1
  • 商品编码:12577315
  • 品牌:清华大学出版社(TsinghuaUniversityPress)
  • 包装:平装
  • 丛书名:Web开发经典丛书
  • 外文名称:ElectroninAction
  • 开本:16开
  • 出版时间:2019-09-01
  • 用纸:胶版纸
  • 页数:392
  • 字数:518000
  • 正文语种:中文
基本介绍书籍目录点评信息
  • 书籍内容

      如果能够使用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技术会议(举办于科罗拉多州丹佛市)的组织者。
  • 第I部分Electron入门知识
    第1章 介绍Electron
    1.1 什么是Electron
    1.1.1 什么是Chromium Content Module
    1.1.2 什么是N0dejs
    1.2 哪些人在使用E1ectron
    1.3 阅读本书之前,需要知道些什么
    1.4 为何要使用Electron
    1.4.1 重用现有技能
    1.4.2 访问原生操作系统API
    1.4.3 更高运行权限,更少功能限制
    1.4.4 在浏览器环境中使用Node的功能
    1.4.5 离线优先
    1.5 Electron的工作原理
    1.5.1 主进程
    1.5.2 渲染器进程
    1.6 对比Electron与NW.js
    1.7 本章小结
    第2章 创建第一个Electron应用
    2.1 创建一个书签列表应用
    2.1.1 组织Electron应用的结构
    2.1.2 package.json
    2.1.3 在项目中下载并安装Electron
    2.2 使用主进程
    2.3 创建一个渲染器进程
    2.3.1 从渲染器进程加载代码
    2.3.2 在渲染器进程中引入文件
    2.3.3 在渲染器进程中添加样式
    2.4 实现UI界面
    2.4.1 在Electron中发出跨域请求
    2.4.2 解析响应文本
    2.4.3 使用Web Storage API存储从响应中得到的信息
    2.4.4 显示请求的结果
    2.4.5 预防错误
    2.4.6 -个不期而至的bug
    2.5 本章小结
    第II部分 使用日ectron创建跨平台应用
    第3章 创建一个笔记应用
    3.1 定义应用的目标
    3.2 打下基础
    3.3 初始化并启动应用
    3.3.1 实现UI界面
    3.3.2 优雅地显示浏览器窗口
    3.4 实现基本功能
    3.5 调试Electron应用
    3.5.1 调试渲染器进程
    3.5.2 调试主进程
    3.5.3 使用Vsual Studio Code调试主进程
    3.6 本章小结
    第4章 使用原生文件对话框与实现跨进程通信
    4.1 触发原生文件对话框
    4.2 使用Node读文件内容
    4.2.1 限定允许打开的文件类型
    4.2.2 在macOS系统中实现工作表对话框
    4.3 实现跨进程通信
    4.4 使用跨进程通信调用文件打开功能
    4.4.1 理解CommonjS模块系统
    4.4.2 引入其他进程的功能
    4.5 从主进程向渲染器进程发送内容
    4.6 本章小结
    第5章 创建多窗口应用
    5.1 创建和管理多个窗口
    5.1.1 主进程与多个窗口之间的通信
    5.1.2 将指向当前窗口的引用传给主进程
    5.2 改进新建窗口的用户体验
    5.3 与macOS集成
    5.4 本章小结
    第6章 操作文件
    6.1 跟踪当前打开的文件
    6.1.1 使用当前文件的名称更新窗口标题
    6.1.2 检测是否修改过当前文件
    6.1.3 启用UI界面上的Save File和Revert按钮
    6.1.4 更新macOS系统的展示文件
    6.2 跟踪最近打开的文件
    6.3 保存文件
    6.3.1 导出渲染的HTML内容
    6.3.2 常用路径
    6.3.3 从渲染器进程保存文件
    6.3.4 保存当前文件
    6.3.5 回滚文件
    6.4 通过拖曳打开文件
    6.4.1 忽略无关区域的拖曳操作
    6.4.2 提供可视化反馈
    6.4.3 打开拖曳过来的文件
    6.5 监控文件的变动
    6.6 丢弃未保存的修改前提示用户
    6.7 本章小结
    ……
    第7章 创建应用菜单和上下文菜单
    第III部分 部署Electron应用
    附录 Fire Sale和Clipmaster 9000的源代码
  • 精彩书评

      ★“不仅告诉你Electron为何物,而且还教你编写复杂的Electron应用程序。”
      ——Alexey Galiullin, Voiceworks
      
      ★“让我能够快速创建自用的日常工具。”
      ——Phillippe Charriere, GtLab
      
      ★“快速阅读,轻松理解。”
      ——Jay Kelkar, Kelkar Systems
      
      ★“终于,JavaScript无所不在!”
      ——William F.Wheeler,咨询顾问
微信公众号

热门文章

更多