JUCE 不若 Qt 或其他知名開發框架,學習資源較多。相較之下,JUCE 的學習資源,寥寥可數。這篇文章整理一些 JUCE 學習資源,希望能減輕有心學習者的苦痛。
JUCE 官網有一個 Learn 頁面,內有主題式的 Tutorial,從入門的主題,如 Projucer 介紹(一、二),再到 JUCE 的強項——Audio Processing以及 DAW Plug-in 開發,涵蓋範圍甚廣,而且內容不退流行,跟最新的 JUCE 版本同步。
JUCE 初學者,我建議把以下教學文件看熟,建立起紮實的基本功:
Projucer Manual 是一篇完整的教學文件,幾乎涵蓋了 Projucer 的所有功能,至少要看過一次。
最後一項為 GUI Application 版面設計,相當重要。本系列有篇幅專門介紹 JUCE 用來建構 GUI 應用程式介面的手法。
JUCE Tutorial 頁裡的學習資源多,其中 Interface Design 以及 Utility Classes 區的幾篇文章,要建立紮實的 JUCE 技術力,不可錯過。
JUCE 使用 Doxygen 產生 Class Index 文件,也可以 Modules 分類的方向呈現。
JUCE Forum 累積了大量的技術討論資源,時不時可看到 JUCE 團隊成員,以及 Julian Storer 回答提問。
JUCE Forum 也是官方技術支援的場地,付費購買商用授權的客戶,遇到問題也是到此提問。
過去幾年,JUCE 每年在近年底時會舉辦 ADC 開發者大會。講師有來自 Google 以及其他大公司的主講。每年的 ADC 研討會皆會錄影,免費供人觀賞。
Julian Storer 在 2015 給了一個《Developing Graphical User Interfaces with JUCE》,示範了 Projucer 開發 JUCE 應用程式。
JUCE 的實體書,我只看過一本——《Getting Started with JUCE》。不過出版日是 2013 年十月,當時還是 JUCE v4.x。
雖然 JUCE 歷經兩次大改版,但基本架構變化不大,雖然未讀該書,其內容放在 JUCE v6 的現在,開鍵的技術架構依然適用。
JUCE 內附了範例程式示範一些組件的用法,官方下載的版本有一支 DemoRunner 程式,執行畫面如下:
DemoRunner 以 JUCE 寫就,原始碼放在 examples 目錄下。可以看看那個像波浪效果的程式碼怎麼寫的。
底下這個範例示範 JUCE 整合 Box2D 來做一些遊戲會用到的物理碰撞效果:
除了 GUI 類型的範例外,還有一些關於非 GUI 但好用的工具類。底下範例實作了 UDP 傳送與接收:
更棒的是,可以直接在 DemoRunner 裡看到實作的程式碼:
利用 DemoRunner 走走看看 JUCE 可以寫出什麼樣的程式,原始碼皆公開且運作良好,自己動手修修改改,四處破壞,是最好的學習方法之一。