iT邦幫忙

2021 iThome 鐵人賽

DAY 24
0

遇見 JUCE 是個意外。原本對象是 Qt,但因客戶硬體限制作罷,開始尋找其他方案。2014 那年,C++ 跨平台開發框架我只認識 Qt、wxWidgets,前者太大,後者我不看好。找了找,不小心撞見了 JUCE。

雖然學習資源不多,但功能滿足當時需求。而且編譯出來的執行檔大小 2MB 不到,用在硬體受限的專案上,恰恰好。Windows 跟 macOS 版都用 JUCE 開發,雖然期間遇到些難題,但 JUCE 的表現出乎意料之外的好。

當時商用授權月月繳,一期 $50 鎂不到,大小專案都用得著,產生的連帶效益高。讓我逢人就說 JUCE 好,真的好。

優點

  1. C++
  2. 高效能
  3. 開放原始碼
  4. 程式碼品質好

C++ 的學習門檻雖高,但這幾年新加入的一些功能,讓 C++ 比以前親民了些。

JUCE 原始設計是處理聲音(Audio)。音樂類的軟體很在意效能,特別是即時聲音處理的場景,即使延遲只多一點點,也可能出現雜音或破音。因此,JUCE 相當重視程式碼效能。

JUCE 作者對程式碼品質有所堅持,Coding Standards 寫明 Coding Style,雖然有些風格與我不同,但龜毛的程度,以及自我要求,是維持高品質程式碼的關鍵。

Julian Storer 在 2015 年的影片中,拿實際案例(Zlib)說明他對程式碼的態度:

Yes

缺點

  1. 學習資源相對少
  2. 非平台原生控制項
  3. Accessibility 以及 Touch Input 的支援度有改進空間
  4. C++

JUCE 的學習資源還是少,而且至今還沒有中文書可以推人入坑...

JUCE 的 UI Controls 不是使用平台原生,因此,控制項的外觀以及表現雖然接近系統原生,但不完全一樣。評估時,一定要納入考量。

Accessibility 功能在近期釋出的 JUCE 6.1 正式支援,相較於其他產品,時間太晚。另外,Touch Input 裝置的處理有些問題,尚未確認新版本是否改善。

C++ 跟其他後起之秀比起來,相對難使。Spotify 開發的 Pedaboard 就不用 C++ 開發,而是把 JUCE 包起來,用 Python 疊加需要的功能。C++ 還是不少人的障礙...

以上,列出我認為評估 JUCE 時,需要考量的面向。


上一篇
Day 22:多國語言
下一篇
Day 24:程式「動」起來
系列文
JUCE 入門 @ 跨平台應用程式開發使用 C++29
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言