每週專案:Voltra
本週我們與 Aprile Elcich 和 Paolo Fragomeni 會面,討論了 Voltra,一個由 Electron 驅動的音樂播放器。
什麼是 Voltra?
Voltra 是一款為想要擁有自己音樂的人們設計的音樂播放器。它也是一個商店,您可以在這裡根據您已擁有的音樂來發現和購買新音樂。它是無廣告的,跨桌面和行動平台。它也不會監視您。
Voltra 適合哪些人?
任何聽音樂的人。
什麼動機促使您創建 Voltra?
廣播一直以來都擁有大量的聽眾。它正從無線電波轉移到網際網路上。現在您可以隨選租借音樂 — 這是廣播的復興!許多新產品和服務因此應運而生,但串流廣播仍然讓其他人掌控您的音樂以及您體驗音樂的方式。
我們想要一款完全專注於您擁有的音樂的產品。讓您可以輕鬆地直接從藝術家或唱片公司發現和購買新音樂。
有免費版本嗎?
電腦版播放器是完全免費的。 銷售您的音樂也是免費的! 我們不靠廣告支持。
由於這個應用程式是免費的,我們稍後可能會將其開源。目前我們沒有足夠的精力來管理它。我們對於功能和我們想要發展的方向也有非常具體的想法。我們有一個活躍的 Beta 社群,並且我們認真看待我們的回饋。
你們如何賺錢?
我們有高級功能!
我們的 Voltra Audio Archive 是一項專為音樂設計的雲端備份服務。我們不會壓縮或共享資料區塊。您的音樂收藏會為您進行實體備份。
對於藝術家和唱片公司,我們的 Pro Membership 提供工具來幫助他們接觸到更多相關的受眾,例如分析和專業藝術家網頁。
Voltra 有什麼不同之處?
設計和可用性對我們來說非常重要。我們希望為聽眾提供一個免於干擾的聆聽體驗!市面上有一些有趣的音樂播放器和商店。但是它們中的許多都比其創作者意識到的更高級且更難使用。我們希望讓更多人能夠使用 Voltra。
我們也不從藝術家或唱片公司那裡抽成。這是我們的一個關鍵區別。這非常重要,因為它可以降低藝術家將其音樂推向市場的門檻。
你們做出了一些什麼設計和技術決策?
在設計 Voltra 時,我們考慮了來自原生應用程式和網路的 UI 慣例,我們也深入思考了我們可以移除哪些東西。我們有一個活躍的私人 Beta 群組,他們在過去幾個月中給了我們重要的回饋。
我們發現專輯封面和攝影對人們來說非常重要。許多播放器只是檔案列表。擁有實體專輯的酷事之一是專輯封面,我們希望在 Voltra 電腦版應用程式中強調這一點。
我們也確保不搞亂人們的檔案。我們使用檔案監看,因此您可以將檔案放在您想要的任何位置,我們不會為您重新命名或移動它們。我們有一個嵌入式資料庫來追蹤監看目錄的狀態,以便我們可以追蹤新內容,即使該進程未運行時也是如此。
在建置 Voltra 時,你們面臨了哪些挑戰?
我們花費大量時間專注於效能。我們從框架開始,但轉向了原生 Javascript。根據我們的經驗,它們提供的通用抽象概念,其優點勝過它們引入的效能損失和繁文縟節。
目前,我們能夠很好地處理非常大的音樂收藏。大型音樂收藏可能意味著數以萬計的圖像!從渲染進程直接使用 Node.js 的檔案系統模組,使得根據 DOM 事件非常容易地延遲載入和卸載大量圖像。
總體而言,setImmediate 和 requestIdleCallback 一直是執行大量處理並同時保持 UI 響應的非常重要的工具。更具體地說,將 CPU 密集型任務分發到單獨的進程中,確實有助於保持使用者介面的響應。例如,我們將實際的音訊上下文移動到單獨的進程中,透過 IPC 與之通信,以避免來自繁忙 UI 的潛在干擾。
你們為什麼選擇在 Electron 上建置 Voltra?
瀏覽器的沙箱對於我們的應用程式來說太受限了。但我們也在開發一個網頁播放器。因此,我們可以在這兩個實作之間共享幾乎 100% 的程式碼,這是一個巨大的勝利。
我們實際上是從使用 Swift 建置原生應用程式開始的。我們發現的主要問題是我們在重新發明許多東西。網路擁有世界上最大的開源生態系統。因此,我們很快就轉向了 Electron。
此外,最重要的是,使用 Electron,您只需開發一次,它就應該在所有主要平台上「Just Work™」。雖然不能保證,但為每個平台進行原生編碼的成本肯定超過了 Electron 引入的任何其他成本。
你們最喜歡 Electron 的哪些方面?
GTD!:將 Node.js 的網路堆疊和 Chromium 的呈現層封裝在一起,是完成工作的秘訣。
能力:它只是 Web 技術堆疊,所以實際上我們整個團隊都參與了產品的實際建置。
社群:有一個組織完善的社群,他們知道如何很好地溝通!我們對於在這樣的支持下進行開發感到非常棒。
Electron 在哪些方面可以改進?
我們希望看到 Electron 認可單一封裝器。封裝器對於 Electron 來說就像套件管理器對於 Node 一樣重要。使用者領域中有許多封裝器,每個都有有趣的功能,但每個都有錯誤。社群的共識將有助於引導貢獻者所花費的精力。
接下來有什麼?
我們目前正在開發行動應用程式,並與藝術家和唱片公司合作,將他們的音樂添加到 Voltra 商店。嘿!如果您是藝術家或唱片公司,立即註冊!當我們達到 1000 萬首曲目的目標時,我們計劃開放商店。