這是我在上一個服務的單位所做的主要的工作,是一個 IoT 開發部門,部門團隊研發藍牙相關的家庭應用,透過 gateway 作為信號收發中心,作為雲端及設備的中繼以及收發命令。
App 使用 web 技術,透過 Cordova building,除此之外,整份 app 使用我們自己開發的 MVC 架構,事實上,如果可行,我們當然會很希望使用 React Native 或 angular 之類的作法,不過在我開始接觸這個專案以前,專案的開發已經有一段時日了,應該有一年以上了,事實上,我接手的時候那已經是第三次的重構了,所以,某方面來說,實在是很難”說轉換就轉換”,而且我對 React Native 也還不熟,不過盡管如此,我們還是用標準的 MVC 作為 app 的架構,這說明在一定程度上,開發的標準是有依據的。
只是畢竟牽涉到藍牙,cordova 這邊老實說我認為真是有夠麻煩的了,我在這個 app 裡面,由我自己操作的 plugin 倒是不多,因為我主要是負責一切的介面,以及 GW 的 view,以及後期 GW 的 controller,而跟硬體有關的,多半是由另一位同事在負責和韌體相接,喔另外,那個可愛的 icon 當然也是我設計的了。
另外,我知道或許會有人說,cordova 用在 app 上,會有效能上的問題,這點我不否認,跟硬體相接的部分 plugin 主要在於 cordova 在管理和版本的更新、相依性上有一些缺陷,但我在本專案中,作為主要的前端開發者,這部份的痛點感受到比較少,會讓我傷腦筋的是 UI 的效能,但是當然了,凡事都有所謂的解決方案,我在這個職務上服務了將近三年,怎麼說也捉摸出一套最佳化的解決方案,可以說,如同原生 native UI 的 60fps 的 web UI,在 cordova 下絕對不是問題,而且事實上也跟 cordova 沒有太大的關係就是了。
產品的網站
Brilong | Smart Access Systems for Residential