Day 1:Native vs. Not-so-native

接下来的文章,我把范围限缩在「桌上型作业系统」,目前主流的作业系统有 Windows, macOS, 以及 Linux。上述作业系统 JUCE 皆有支援。

「跨平台软件」指的是可以在多种作业系统或不同硬体架构上运作的程序。

各个作业系统有着截然不同的使用者介面(GUI),底层架构也有差异。若以各平台提供的 SDK 来开发同一个产品,GUI 以外的程序码或许可以共用,但使用者介面(GUI)因为核心架构不同,能共用的程序码不多。「跨平台开发框架」即用於解决不同平台共用程序码的问题。

不过,要达到不同平台间程序码共用,很不容易。而且不同解决方案的设计取舍也不目同,常见的「跨平台框架」如 Qt、JUCE,其使用者介面非原生(Native),而是框架自行模拟原生控制项的行为以及外观。

跨平台软件开发中,「原生(Native)」指的是使用平台提供的 SDK 所开发的程序,各类控制项的行为以及外观皆与系统一致。以这个标准来看,JUCE 的控制项非「原生(Native)」。

JUCE 将不同平台底层的运作细节以 C++ 封装成一致的介面,用户端在不同平台上使用封装的介面,简化跨平台开发的麻烦。下图中可以打勾的控制项为 juce::ToggleButton:

JUCE ToggleButton
(图片来自 JUCE 官网)

上述介面在不同平台间,外观皆相同,但控制项皆非平台原生,而是 JUCE 所绘。


<<:  资料管理能力成熟度模型(DCMM)

>>:  D2- Google Apps Script (GAS) 的环境设定、专案结构(Trigger)与四种打包方式

Day-22 常用System Call

常用System Call tags: IT铁人 前面提到了OS会提供许多API给User执行,让U...

未来世界的树 - DOM Tree

每个网页都生长着一种可以七十二变的虚拟树。 DOM DOM 是 Document Object Mo...

Day16 Loops(Ⅲ)

Loops的设计策略 ●Identify the statements that need to b...

Day21:【技术篇】SSH 的基本运作原理

一、前言   会想了解 SSH 是因为工作上和自己使用 GitHub 时,都有看过这个名词,所以有稍...

Day 01-这30天的前言

前言 相信点开的你,可能是对购物车系统有兴趣亦或是有需求。因为疫情的关系在家自学,而选择了这个主题,...