顯示具有 Apache Cordova 標籤的文章。 顯示所有文章
顯示具有 Apache Cordova 標籤的文章。 顯示所有文章

星期三, 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 可以用。

 

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

星期三, 4月 18, 2018

Apache Cordova - Introduction


在工作上碰 Cordova 已經有蠻長的一段時間,從他還叫做 PhoneGap 的時代就已經開始接觸,目前已經有許多的客戶使用這樣的方式進行 App 開發作業。當然,在很多部分這樣的開發模型是比不上原生 (Native) 的開發,再者會用這樣開發方式的業主大多是從做 Web 開始,想要有進一步延伸出來的管道。很多時候,開發人員除了要關注 App 端之外,也需要關注 Server 的狀況,時間久了就慢慢變成要同時處理 App Backend Server 的人。

雖然,看似有蠻多的需求,而且很多專案其實都找不到人可以執行。再到天瓏找找有沒有這類相關的書籍,看起來也不多。網路上的社群也沒有非常熱絡,也有可能是需求太多了大家沒空討論吧!剛好,最近有一連串的需求要進行教育訓練教材的準備,就將這些內容在網路上註記下來。

Apache Cordova 是一個行動應用開發框架的開放原始碼專案,它讓程式開發人員可以使用 Web 技術 (HTML5 + CSS3 + JavaScript) 來進行跨平台行動應用程式的開發。透過 Apache Cordova 開發出來的應用程式,可打包至各個不同的應用平台 (iOS and Android)。Cordova 應用程式會使用各平台標準的 API 來存取設備相關資訊。



什麼時候適合使用 Cordova 來進行 App 開發?
  • 假如你想要將你的應用程式拓展到不同的行動應用平台 (例如,iOS and Android),但你又不想各自開發一次,那麼使用這樣的技術會是一個好的選項。
  • 假如你是個 Web 應用工程師想要將 Web 應用程式打包並部署到不同的行動應用平台,以發布行動應用程式。
  • 假如你是一個行動應用開發工程師,對於混合式開發 (Web + Native) 感興趣,並想要開發 Web 與 Native 的溝通介面的話,可以嘗試 Cordova Plugin 的開發

下圖是 Apache Cordova 的架構圖:


Web App
在上圖中的 Web App 是我們所撰寫的程式碼,使用 HTML、JavaScript、CSS 等構成,預設的首頁是 index.html 在 HTML 內會定義參考的 CSS、JavaScript 及圖片等資源。


HTML Rendering Engine (WebView)
Cordova 應用程式透過 WebView (HTML Rendering Engine) 載入專案內的HTML 畫面作為 App 的使用者操作介面。

Cordova Plugin
Plugin Cordova 裡非常重要的一部分,是 Web Native 溝通的主要介面。我們可以透過 JavaScript 使用 Cordova Plugin 來存取底層的 Device API
Apache Cordova 專案維護許多的 Plugin  可以在 Core Plugins 取得相關資訊,這些 Plugin 可以協助我們存取 Device 相關特性,例如電池、相機及通續錄等。除了這些官方的 Plugin 之外,我們也可以從 plugin search  npm 找到第三方的 Plugin 。

[參考資料]