星期三, 1月 17, 2024

IBM Mobile Platform Foundation End of Support 之關於開源軟體的省思

  


IBM Mobile Platform Foundation 是很多客戶當初在建置行動應用 App 的選擇。早在他還叫做 Worklight 的時候,我就有接觸這個產品。一開始,他還是用 PhoneGap 這個名字,後來 Adobe 保有 PhoneGap 而開源的部分則命名為 Apache Cordova

 

回想,跟這個產品相處從 v5 到現在第八版,也有七八年的時間了!然而,在 2022 年宣布,該產品將於 2025 年九月終止支援。通常,危機也是一個轉機,這代表台灣某塊 App 應用的市場將有所變化。

 

有一段時間,我們跟 IBM 談過合作,也試圖打造一個相對應的產品。技術的問題,我們團隊都有一一克服,但最終沒有推出市場 (這是另外一段故事)

 

離開前一份工作後,又再次面臨到這個問題,所以還是再調查一下可能的解決方案。當然,我知道在台灣有一支強悍的團隊可以處理這件事情,不過通常他們會讓客戶思考整個 App 打掉重做。

 

一個應用,每隔三五年就會面臨打掉再做下一個世代的產品。有時候,我不得不懷疑其實我身處「硬體」產業。怎麼這些打造出來的軟體,都需要捨棄而不能增強。

 

好吧!再來講講目前針對這件事情可以提供的幾個建議方向:

 

(1)   找到一個新的單位,繼續買維護的授權,你可以繼續使用

 

原本,我們的資訊是這產品就這樣不見了!不像 Louts 那些產品線,有一間 HCL 的公司來承接。但,後來我在 IBM 官方的網站,找到了一個新的說明。有一間叫 Persistent 的公司,他可以繼續提供產品的維護服務,當然包含 code level 的修正。但是,IBM 卻沒宣告他把這個產品賣掉了,所以這些事情我還在與該廠商確認當中。

 

(2)   找到夠熟悉這個產品的人,讓他協助你改造應用程式

 

基本上,我知道很多客戶買了這個產品,但也不是用了他 100% 的能力。所以,要能夠寫一些模組來取代既有機制,基本上問題不大,只要你對產品夠熟悉,你可以用比較小的成本來完成這件事。如此,就可以讓你脫離 IBM 的包袱。

 

(3)   財大氣粗,整個 App 重做一次

 

當然很多時候,App 是不是可以整個打掉重做取決於客戶的商業戰略與預算。如果,這麼恰好也到了一個週期,那麼重做沒什麼不好的。只是,回想一下你在做的是「硬體」還是「軟體」?

 

那麼,在重做的時候,我們就會開始思考新的 App 該用什麼方式實現?

 

1.     Native Application

2.     Hybrid Application

3.     Cross Platform Application

 

依據自己業務目標跟營運的狀況應該選定不同的策略,當初使用 IBM Mobile Platform Foundation 的客戶,大多數是使用 Apache Cordova 這個技術框架。所以,雖然在全球來說,這個技術正在走下坡,但在台灣還是有一定的商機跟市場。特別是,通常使用這個技術的客戶,都是算得上有頭有臉的。

 

另外,還有一隻強悍的團隊讓這件事情在業界上得以存活下去。

 

很多時候,客戶會問我說 Apache Cordova 還可以用嗎?剛好,在 2023 年末,Cordova 官方部落格有一個2023  Survey Result 文章,它說明了 Cordova 的發展以及所遇到的困境。

 

1.     通常使用 Cordova 的客戶,在什麼平台上建置其應用

 

根據其數據顯示,97.4% 應用在 Android 上,89% 應用在 iOS 上。

其他的部分,可以參考原文

   

2.     你是否將 Cordova 移轉程其他的技術

 

使用該平台的有 76.8% 回覆「沒有」,不過會來做這個問卷的可能也還在使用這個平台,所以比例這麼高也不太意外。另外,有 3.1% 的人移轉到 Flutter、有 3.5% 的人移轉到 React Native。好吧,我們有那少數 3% 的經驗。

 

3.     針對 23% 想移轉的,他們的想法是?

 

Plugins 的維護速度不佳,因為很多都是開源的,當社群不夠熱絡的時候相關的維護速度就不好。過去,我們團隊有撰寫一些自己的 Plugins 來解決這些問題,但我們沒有開源 

 

4.     再進一步地追問,為什麼參與問卷調查的人不挺身貢獻?

 

不外乎就是沒時間,或是有冒牌者症候群 (沒自信)

 

為什麼會去找這個文章,因為最近我在整理一個客戶的應用,他們還是想要透過編寫 html 的方式來完成 App,只是他不希望使用 Cordova 而是我們自己打造一個新的平台。

 

於是,我思考,為什麼我們不是從 Cordova 出發,而是自己打造?其實,在底層我們要做的事情可能部分類似,而 Cordova 又已經經歷了多少年的歷練,有多少既有的 Plugins 可以用。

 

對,他是在走下坡,但也是因為我們沒把自己修改的東西貢獻出來。取之於開源,用之於開源,或許我們也該思考一下自己的作法。不然,未來可能有更多我們現在使用的開源平台得不到好的支援。