iT邦幫忙

2021 iThome 鐵人賽

DAY 2
0
Software Development

JUCE 入門 @ 跨平台應用程式開發使用 C++系列 第 2

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 所繪。


上一篇
Day 0:拼錯的果汁
下一篇
Day 2:可商用授權的開源專案
系列文
JUCE 入門 @ 跨平台應用程式開發使用 C++29
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

0
華叔
iT邦新手 4 級 ‧ 2021-12-16 10:13:18

Hi 大山姆,
請教一下,貴司是做什麼領域會用到 JUCE?

Hello 華叔,

我們主要依客戶的硬體開發客制的軟體。時有 Windows/macOS 平台同時支援的需求,再加上相對熟悉的程式語言為 C++,故選用 JUCE。

我要留言

立即登入留言