[案例分享] 茂迪公司一次打造跨平台 App 即時掌握生產線資訊

茂迪公司一次打造跨平台App  即時掌握生產線資訊

Xamarin + Visual Studio 延續既有 .NET投資 快速實現跨平台

 

茂迪股份有限公司致力於研發以及創造高質量的產品與服務,包括太陽能電池、太陽能模組、太陽能逆變器、以及太陽能發電系統,茂迪秉著這樣傲人的成績蟬連多年全球前十大太陽能電池製造廠。然而於太陽能製造廠中的高效能模組生產線,所仰賴的核心應用系統 - MES 系統十分關鍵,藉由其提供的自動化生產即時資訊,使茂迪能有效監控從太陽能電池、模組和逆變器製程中每一階段之品質管控。

即時掌握產線資訊 - Fab 生產線應用 App 化

「為了將生產即時資訊快速地提供給公司的管理階層及產線上的同仁,以輔助其決策,我們在內部早已建立了Fab Portal網站可以呈現FAB的各項生產KPI資訊,但為了配合管理階層在外或假日時的管理需求,再加上生產線的資訊是非常即時且重要的,例如良率指標,因此打算將一些重要的生產即時資訊在手機上也能查詢」茂迪公司製造資訊部生產資訊課的邱仲麟課長提到。

一開始是採用Web的開發方式,也就是開發一個行動裝置專屬的網站,完成後雖然一樣只需開啟手機的瀏覽器即可連上該網站查詢相關生產端資訊,但操作經驗並沒有針對不同平台的特性做調整,另外因主管出差在外其網路連線及瀏覽速度上也有些限制,再加上考量未來要將原有Fab Portal的功能逐步移植成行動版,因此打算改寫並同步開發不同平台的原生App。當我們收到這個需求時,光是將這兩個平台iOS和Android的開發環境建立好已經花了不少時間,正當我們決定面對這個挑戰,也買了書並且想拿出考聯考的精神時,在此時得知Xamarin的產品,因此開始評估這個可以C#/.NET的技術開發app,並且一次跨三個平台 (Windows/iOS/Android)的技術。

圖示 - 製造資訊部生產資訊課課長邱仲麟說明:「Xamarin 讓我們用熟悉的Visual Studio 工具及C#/.NET來開發不同平台的App,開發的工時及成本至少省下2分之1」

圖示 - 製造資訊部生產資訊課課長邱仲麟說明:「考量到MES是我們的核心系統,公司需有自行開發及維護的能力,考量到若要重新培養不同平台開發技能非常耗時,Xamarin讓我們可以延續既有的.NET技術投資並延用熟悉的技術及工具,一次滿足三個平台 iOS/Android/Windows App 開發」

 

用Xamarin開發App容易多了 - 熟悉的技術大幅減少2分之1的開發時程

透過Xamarin使用C# 語言開發App,不必特別請同仁去學習Android的Java開發環境,也不用熟悉iOS上的Objective C開發語言,Xamarin的進入門檻比較低,縮短了學習的時間,且相關的開發技術及教育訓練資源也比較多。我們搭配 Visual Studio 開發工具與 Team Foundation Server (TFS) 版本管控,開發人員熟悉既有的開發環境,在團隊的程式開發規範上也能夠依循既有的.NET開發方式,而不用在不同的環境下使用各種工具、軟體及不同的開發技術。邱仲麟指出「透過Xamarin + Visual Studio 開發跨平台app所需的時間,對我們來說也相對地減少很多。相反的如果是分開來開發,還需要考量大幅增加的學習成本及後續維護的不方便,有了Xamarin就不用擔心這個問題,既可以跨平台開發又可以用C#維護實在是方便多了,經我們評估後,開發的工時及成本至少省下2分之1」。

 

效能及操作經驗一樣優 - App就是要有Native原生效果

當初在考慮選擇一些跨平台的App開發工具時,我們也考慮了坊間相關的產品,包括一些將HTML/JavaScript程式封裝作法的產品,但測試結果在效能及操作經驗上不甚理想,再者許多平台的API對映上無法做到原生的效果,最後發現整合性與學習的容易性都沒有Xamarin來得好,而且相較其他軟體的價格,Xamarin又經濟實惠,更重要的是它開發出來的app就是原生 native的,效能與用各平台的原生開發方式比較上絲毫不打折,這就是我們要的!

在企業應用開發中,最常使用的功能不外乎資料存取(Data Access)、各式報告及圖表的開發功能,Xamarin也提供了一些元件,再加上開發技術又是熟悉的.NET/C#的語法,像是存取資料庫的語法,這些都是.NET開發者每天在使用且熟悉的技能。

 

實現跨平台App - 共用的邏輯 專注UI 設計

一開始進行app專案時,由於負責Android平台的同仁還有其它專案要完成,無法進行開發,此時Xamarin的好處就是可以共用一些商務邏輯的程式,像我們許多機台即時生產資訊已經是 Web Service 化了,因此要存取這些資料,在Visual Studio 中就可以很直接的加入專案,達到資料存取層的共用。因此我們讓負責iOS的同仁先進行開發,完全沒有影響到既有的專案開發進度,由於底層很多東西都是共用的,共用處不用寫兩套程式,同仁只需專注在各平台上的UI設計及了解不同平台的API,因此不會有重工的現象,還能分擔彼此開發的Loading。

另外像與AD 整合的身份驗證機制很重要,因為資安及權限的因素,在App進入畫面就需驗證身份,所幸透過原本.NET Framework就已提供了相關API,就無需為了登入機制傷腦筯,這些可以共用的邏輯都可透過.NET來實現並讓iOS/Android或Windows開發專案引用,這都大幅降低了開發企業專用的app門檻。

 

面對行動化,延用.NET技術建立App的開發能量

邱仲麟在說明建立App開發能力時提到:「考量到MES及Fab Portal是我們的核心系統,公司需有自行開發及維護的能力,才能保有競爭力並面對需求不斷變化的挑戰,我們一開始就只考慮自行開發,而不是外包的方式」。但自行建立app開發能量卻困難重重,尤其是不同平台的開發技術、工具皆不同,若要重新培養則十分耗時,Xamarin很棒的地方是一次可以跨三個平台 (Windows/iOS/Android),再加上又是熟悉的開發環境及技術,不用重新找不同領域的人才能負責此任務!

這次我們透過昕力資訊提供的教育訓練及顧問服務,以及技術支援文章替我們省了很多力氣。在上完基礎課程後,開發種子人員已經可以瞭解Xamarin的運作架構及開發模式,搭配昕力資訊所提供的技術支援服務,一些進階的應用像是對本地端資料或Web Services存取的方式,以及與第三方元件的整合,替我們節省了很多時間。

邱仲麟提到,由於已經有既有網站的基礎,我們將逐步地將Fab Portal服務搬到App行動平台上,透過Xamarin讓我們更有信心可以迅速完成專案,將即時的生產資訊化為決策輔助工具,讓公司更有競爭力。另外一些.NET的新技術,例如ASP.NET SignalR可用於即時機台資訊更新,還有Web API是一個更輕量化的HTTP共用服務,方便不同平台及行動裝置存取,這類的應用相信在導入Xamarin後可讓我們的Fab Portal行動化應用更加完整,提供給公司使用者更即時且更方便的操作體驗。