CEF 桌面软件开发实战--掘金小册课程推荐/优惠
版权声明
本站非掘金小册官网,与官方无任何关系。我们不提供课程下载或详细内容,仅作为课程分享和推荐平台。我们鼓励大家支持正版,尊重创作者的劳动成果,这样不仅能帮助创作者持续产出优质内容,也能让自己获得更好的学习体验。请通过官方渠道购买和学习课程,感谢您的理解与支持。
课程详情
课程介绍
作者介绍
刘晓伦liulun,资深桌面端开发工程师。目前在一家大型国有控股上市公司任职,主要负责桌面端产品的核心技术研发、重难点技术攻关,以及新技术的预研和技术储备工作,拥有十几年的软件开发经验,在 Electron 、 Qt 、 CEF 等领域都有较深的知识积累。
现已出版两本与桌面端编程
相关的技术图书:《Electron 实战:入门、进阶与性能优化》 和 《深入浅出 Electron:原理、工程与实践》。
小册介绍
目前市场上很多知名应用都使用 CEF 框架构建 GUI 界面
,比如网易云音乐、微信 PC 端、QQ 桌面端、MATLAB、 FoxMail、OBS Studio 等。
CEF 是 Chromium Embedded Framework 的简写,顾名思义,这是一个把 Chromium 嵌入其他应用的框架。这个开源项目是 Marshall Greenblatt 在 2008 年创立的,由 C/C++ 编写而成,它通过提供稳定的 API 来避免开发者被 Blink、V8、Chromium 等复杂的代码逻辑所困扰。CEF 非常注重开发者的使用体验,很多功能都有默认实现方式,遵从约定优于配置的原则,开发者可以很轻松地驾驭 CEF 框架。
CEF 是一个商业授权非常友好的开源项目,它采用的是 BSD 授权协议,这也是那么多大厂都选择 CEF 作为桌面端开发框架的原因。据 CEF 官网数据,CEF 框架装机量已经超过了 1 亿
,这个数据量还是挺惊人的。
那到底如何使用 CEF 框架来开发桌面端软件呢?
这就是我们这本小册主要解决的问题。本小册力争以一个平缓的学习曲线
,由浅入深,带领 C/C++ 开发者和前端开发者,学会 CEF 框架的基础知识和实战技巧。
你会学到什么?
基于 CEF 框架开发桌面应用涉及到的知识非常多,从现代前端开发知识到操作系统底层控制知识,无一不在其涉及范围内;而 CEF 的官网文档又假定读者都了解这些知识,仅仅蜻蜓点水地介绍 CEF 框架的 API ,大部分知识都隐藏在 CEF 示例项目的代码和注释中。因此,对于初学者来说,就很难循序渐进地学习如何使用 CEF 框架开发桌面应用的知识。
正是基于以上客观因素和学习痛点,本小册会从如何搭建 CEF 开发环境、如何使用 CEF 框架构建第一个窗口讲起,一步一个台阶地带领你逐步学习与 CEF 框架有关的知识。
当然,本小册中不仅仅包含如何使用 CEF 框架提供的各项 API 完成桌面应用的需求
,还包括很多最佳实践
,比如,如何把跨进程通信封装成 JavaScript Promise 风格的 API,如何使用 JavaScript 访问 SQLite 数据库,等等。
本小册详细的 知识结构图
如下所示:
总体来说,本小册可以为你带来如下改变
和收获
:
- 了解 CEF 框架的运作原理与核心逻辑;
- 有能力使用 CEF 框架开发一个完整的桌面应用;
- 娴熟驾驭 CEF 框架涉及到的重点、难点知识;
- 掌握多种 CEF 框架开发桌面应用的实战技巧;
- 更得心应手地把前端生态体系或 C/C++ 生态体系下的组件引入到桌面应用领域。
适宜人群
使用 CEF 框架开发桌面应用主要涉及两大领域的知识:前端开发知识、C/C++ 开发知识。
-
C/C++ 开发者可以很容易地基于 CEF 开发桌面应用的底层逻辑,但如何把这些底层逻辑与前端技术很好地结合却略显力不从心。
-
前端开发者可以很容易地基于 CEF 开发丰富多彩的界面 UI,但又很难让这些界面元素来控制操作系统底层 API 的行为。
所以说,本小册主要面向这两类读者:
- 有一定基础的 C/C++ 开发者,略懂前端开发知识;
- 有一定基础的前端开发者,略懂 C/C++ 知识。
另外,如果你是一个习惯于以平缓的学习曲线,循序渐进、按部就班、一步一个台阶来学习知识的人,那么这本小册也非常适合你。我花了很大精力为每个章节安排关键知识点,难易程度由浅入深,章节和章节之间知识的衔接性也非常强,相信这会非常利于你的理解和实践。
课程目录
- 技术选型:跨平台桌面软件开发框架对比
- 环境搭建:如何以正确的姿势进入 CEF 开发世界?
- 最简产品:第一个窗口是怎么来的?
- 本地页面 1:如何通过内置协议加载本地页面?
- 本地页面 2:如何通过自定义协议加载本地页面?
- 管理窗口:如何在一个应用内控制多个窗口?
- 对话框 1:如何自定义普通 JavaScript 对话框?
- 对话框 2:如何自定义 prompt 对话框?
- 调试工具:如何通过右键菜单打开调试工具?
- 标题栏 1:如何自定义窗口标题栏?
- 标题栏 2:如何在 JavaScript 中调用 C++ 方法?
- 系统信息:主进程如何发消息给渲染进程?
- 读大文件:如何跨进程、跨线程传输数据流?
- 应用分发:如何制作安装包?
- 对话框 3:如何使用 JSON 数据控制路径对话框?
- 数据库:如何使用 SQLite 数据库?
- 标题栏 3:渲染进程如何发消息给主进程?
- 结语:未来可期
- 开篇:小册简介与知识体系