【專訪】SoundOn:台灣最大語音社交 Podcast 平台

Chloe Hsu
Flutter Taipei
Published in
11 min readFeb 20, 2021

Podcast 越來越火!Clubhouse算什麼?SoundOn 可是首支 Podcast 創作者融合 Clubhouse 聲音交友平台呢!

你也有聽 Podcast 的習慣嗎?說到 Podcast 現在還只想到 Spotify?G 家的Podcasts? 不過,這些內容大部分是以英文為主。

說到中文市場,那你可不能不認識 SoundOn 了!SoundOn 可是目前台灣最大 Podcast 創作者融合聲音交友的平台呢!

你知道在 2021 年初,SoundOn 正式宣布被17直播共同創辦人潘杰賢收購(延伸閱讀:SoundOn宣布被收購!M17前 CEO潘杰賢個人基金、新加坡投顧KV成股東團隊也在火速擴編中!🔥

認識 SoundOn

SoundOn 希望能推動台灣 Podcast 市場的發展,讓更多人認識 Podcast 這個媒體型態,並從中獲得對自己喜歡並有價值的內容。

成立之初,還沒有很多的台灣 Podcast 節目,也沒有能讓大家認識台灣節目的 Podcast Player(Apple 與 Spotify 等國外播放器幾乎都只有英文節目)

因此 SoundOn 除了經營自己的原創節目之外,也想打造一個 可以讓台灣使用者發現並找到更多台灣 Podcast 節目的 Podcast Player APP。

在台灣 Podcast 市場正快速成長的現在,SoundOn 更專注於:

如何讓使用者更方便快速的找到適合自己的節目,並協助他們挖掘並探索更多有趣的聲音,讓大家隨時隨地,找到頻率最對的聲音。

SoundOn 內容&功能

首頁

豐富的內容直接一覽無遺!特別喜歡首頁的分類方式,例如:

  • 新聲報到
  • 學無止盡
  • 文化意識
  • 通勤快聽
  • 你不理財才不理你
  • 史蒂夫推薦

SoundOn 的分類幫助你快速找到有興趣的內容。如果你在通勤。更是有通勤快聽的類別幫你分類好了呢!

探索

在 SoundOn上面,你也能直接根據有興趣的類別找到相關的 Podcasts:藝術、商業、喜劇音樂、健康健身、家庭、犯罪、科技、程式等等,想得到幾乎都找得到。

原創內容

除了創作者們優質的內容,SoundOn 更也提供了原創 Podcast 哦!原創內容是 SoundOn 團隊 feat. 許多公眾人物、作家、網紅或是某領域佼佼者一起製作的內容哦!(原創內容讓我想到了 Netflix 原創影集呢!)

打開某個節目,內容介紹也能夠一目瞭然。

清單

在清單中,你能夠快速方便找到訂閱、聆聽中和已經下載的內容。

分享

除了一般的分享到其他 App 中,SoundOn 也更是很貼心的能夠讓你直接分享到 IG 限動上哦!

下載 Podcast

SoundOn 當然也貼心地考慮到了。就算手機在飛航沒有網路的情況下,只要先把喜歡的內容下載好就可以囉!

無間斷一直聽

當然!享受 Podcasts 的同時,你也能夠關閉 App,邊聽邊做其他的事 🎧

SoundClub

近期火到爆的 Clubhouse 掀起了一陣話題。SoundClub 也如火如荼推出中呢!只要到 App 中的 SoundClub 登入後,就可以加入體驗囉!

(更多內容直接去下載親自體驗最快了哦!這邊就不贅述囉!)

簡單地認識完 SoundOn 的內容,最重要的還是工程師敲碗最想知道的事

Dash stole Bugdroid’s jet pack

SoundOn 與 Flutter 技術故事

1. 為什麼決定採用 Flutter 技術來開發呢?大約花多久的時間評估決定使用的技術?

以目前我們公司的架構,在APP上希望能使用更有效更有彈性的開發方式,SoundOn 原本就有原生 APP 工程師,再結合 Flutter 優秀的跨平台能力,讓不同平台共用大部分的邏輯和 UI,可使我們原先的人力創造更大的效能並提供給使用者更好的體驗,同時我們也看重在眾多跨平臺框架中,Flutter 強大的效能與穩定的UI表達效果,以及未來能 deploy 到網頁甚至 desktop 的可能性,因此經過與APP開發團約兩週的評估與討論後,我們決定選用 Flutter 技術。

2. 目前團隊有多少人一起投入開發?大家是什麼樣的背景呢?

兩個人,一個 iOS 工程師和一個 Android 工程師

3. 可以跟我們分享團隊/個人研究 Flutter 的過程和方式嗎 ?

Lutas: 有買 Udemy 的課程,但大概只看了兩小時。

主要還是看官網和 medium 等網路文章

4. 團隊花了多少時間時間開發?

四個月,扣掉維護舊 app 和測試的時間,實際開發時間約三個月

5. App 內有不少資訊,後端是第三方服務還是自架後端?並還有用到哪些第三方服務?

除了文章有接 Medium RSS feed 以外,其他資訊都來自自建後端。

有用到:

  • RESTful API
  • Firebase

6. 團隊之前有使用非 Flutter 的技術開發 App 的經驗嗎?使用 Flutter 後,在協作或產出方面,有沒有特別想分享的經驗呢?

  • Lutas: 有 Android 開發經驗,Flutter 大概只玩過 3 週
  • Carter: 有 iOS 開發經驗,Flutter 無經驗

7. 在決定使用 Flutter 技術時有什麼擔憂嗎?

主要是擔心 Audio Player 的可用性和穩定度,我們自己沒有找到 100% 使用 Flutter 的音頻 Production App。再來是我們兩個對 Flutter 都不算熟,有點怕學習進度趕不上開發時程。

8. 如何評估適合的架構模式,並取得共識並決定採用呢?

主要評估指標為:

  1. 是否為官方主推?
  2. 廣泛使用度
  3. 是否符合開發需求
  4. 學習曲線是否過高?

綜合以上評估後我們選擇了 Bloc Provider 混用。

9. 團隊使用的架構模式,以你們的經驗來說有什麼優缺點嗎?

優點

  • Provider 相當易學易用,而且可以拿來處理依賴注入。
  • Bloc 的使用上蠻像 viewModel,MVI pattern 對我們來說也算熟悉,可以輕鬆將多數業務邏輯都寫在 Bloc。

缺點

兩者混用在依賴注入上不太適合,之後可能會統一用 flutter_bloc 的 RepositoryProvider 來統一處理 DI。

10. 用 Flutter 開發的時候,什麼樣的事情最有挑戰性/最困難?

最大的困難在於我們原本就有原生的 App,並且已經上線了一段時間,這次的目標是 100% 改用 Fluuter 打掉重做,並且重新設計 UI/UX。

我們希望再使用者的角度看來是舊版 App 的『大進化』,所以必需承接舊版資料和要求較高的穩定度

技術上遇到的困難是:Audio Player FireStore

  • Audio Player 可看 12 點,Firebase 的難處則在他的 bug。
  • cloud_firestore 使用 Singleton 紀錄 platform channel,但又會在每次 create plugin 時建立新的 instance。簡單來講就是當 audio_service 啟動時 cloud_firestore 就會丟失前面的 communication,導致 stream 不再更新。

就我所知此 Issue 至今仍未修復,因為我們打算在未來完全棄用 firestore,所以後來改用 bloc 來取代 firestore stream provider。

有使用 FireStore 的人要小心這個坑。

11. 可以跟我們大概分享如何處理音頻嗎?在處理上特別有挑戰性的地方(例如:效能、流暢度、播放器..)

我們用 just_audio Pluging 當 Audio Player、audio_service Plugin 處理背景播放等功能。

兩者都出自同樣作者,相當熱心於幫助其他開發者處理問題,大推!

主要困難是在 audio_service 上,目前還沒到 1.0 版本。基本上每次 update API 都會大改,另外功能上也不是很完備,好在 Api 設計嚴謹,寫擴充功能也不算太難。不是太急的話建議等 1.0 推出後再使用

12. 在 App 中,有什麼特別想介紹的技術嗎?

沒用到特別潮的東西,請關注我的 Medium,用到時『有可能』會寫文章

13. 有使用任何 CI/CD 工具嗎?有的話是否可以跟我們分享使用的工具,為什麼選擇該工具?

CodeMagic

14. 如果可以重新選擇開發技術,你們還是會選擇用 Flutter 來開發嗎?

還是會,因為業務邏輯和 UI 的 code 可以共用,對我們這種小團隊來說大大提升了人力使用率,也開啟了跨其他平台的可能性。

15. 你們會推薦什麼樣的 App 使用 Flutter?如果團隊決定使用 Flutter 來開發,你們有什麼樣的建議想給大家嗎?

原本是 Web App 或長得像 Web App 的都很推薦用 Flutter 寫,Flutter 的 UI 好寫又有原生的效能。

工程師資訊

Lutas’s Medium

想說的話….

跪求大家幫我們下載 App 並五星推爆~!!⭐️⭐️⭐️⭐️⭐️

如果你想直接和工程師互動交流…歡迎直接到 Lutas 的 Medium 哦!

SoundOn 大力擴編中!!

認識了 SoundOn 與 Flutter 的故事後,是不是也感到熱血澎湃,很想上船?

SoundOn 正在尋找有經驗的 Flutter 工程師心血加入團隊,一起熱血奮鬥!

還不趕快履歷丟起來?

團隊 & 產品資訊

https://play.google.com/store/apps/details?id=com.soundon
https://apps.apple.com/tw/app/soundon-%E8%81%B2%E6%B5%AA/id1476272964

也可以直接從 Web 版本收聽精彩 Podcasts 哦!

https://player.soundon.fm/browse
文章都看了,手拍了嗎?還沒拍呀?!拍手鼓勵支持,小編們才用動力繼續寫下去哦!此計畫也才得以繼續 :) 以上文章感謝 SoundOn 熱情參與 Flutter Taipei「App 蒐集企劃」,也謝謝你讀完這篇文章!希望這篇文章和此企劃讓你更了解 Flutter 在商業化產品上的應用與導入。歡迎隨時加入 Flutter Taipei 臉書社團與大家一起互動,告訴我們更多你的想法!如果你也有興趣參與「App蒐集企劃」聊聊你們團隊/獨立開發者如何開發 Flutter App,想跟大家分享用到了怎麼樣的相關技術,歡迎直接填寫表單,我們將與你聯絡!

歡迎閱讀「台灣 Flutter App 蒐集企劃」以了解完整計畫資訊哦!

--

--