【專訪】高爾夫球隊:虛擬球隊經理 - Medium

文章推薦指數: 80 %
投票人數:10人

Andy 是一位退休的資深軟體工程師,為了讓自己和夥伴們在大草原運動時,不必攜帶厚重的筆電登打成績,因此選擇Flutter 開發Android/iOS 的App,讓每一位 ... GetunlimitedaccessOpeninappHomeNotificationsListsStoriesWritePublishedinFlutterTaipei【專訪】高爾夫球隊:虛擬球隊經理編輯:Davina熱愛運動的你有屬於自己的球隊嗎?如果參加球隊卻沒有一套方便記錄的系統追蹤個人與球隊的成績,那麼就很難檢討和優化。

Andy是一位退休的資深軟體工程師,為了讓自己和夥伴們在大草原運動時,不必攜帶厚重的筆電登打成績,因此選擇Flutter開發Android/iOS的App,讓每一位夥伴都可以透過手機上的簡單操作,即時記錄個人成績,並且統整成球隊的成績,以此和夥伴們一起尋求成長的道路。

讓我們一起來看看Andy利用Flutter替他的團隊做了什麼,並且為什麼選擇使用Flutter吧!高爾夫球隊Q1.什麼樣的契機讓你想開發一個App來記錄你們球隊的成績?它可以做些什麼事呢?我的高爾夫球隊需要一個能處理球隊會務的電腦系統,包括記錄球隊活動、產生報表,但是市面上沒有適合的系統。

當然這些數據、報表可以透過Excel來完成,可是就會產生很多檔案、變得很雜亂,而且Excel並不適合使用手機操作。

帶著筆電到球場、開機、操作滑鼠…這些都是很麻煩的事情,如果能透過手機點一點按一按就完成操作,那會是一件很方便的事。

開發這個系統並不是只有我們的球隊可以使用,有興趣的高爾夫球隊都可以用這個App來管理自己的球隊,畢竟我想大家都有一樣的困擾。

我也想過有些人可能是沒有球隊的,所以如果是個人也一樣可以用這個App來建立球敘、紀錄成績、產生統計報告。

差別只是在球隊的專屬功能可否使用而已。

另外我也有用FlutterWeb開發人機介面WebApi服務。

總幹事在透過App建立投票或團購等活動後,系統會自動發送簡訊連結給其他沒有使用App的會員。

由於每個連結都有獨立識別碼,因此會員投票或填寫訂購單時,無需填寫個人資訊。

連結的表單採用FlutterWeb撰寫,會員填寫完成之後,即會將資訊回傳伺服器。

總幹事可以直接在App上檢示表單統計的結果。

除了WebApi之外,總幹事也可以建立例賽備忘錄,裡面列出例賽時間地點、交通地圖、球車分組、用餐地圖等資訊,將超連結貼到Line群組,群組裡的人直接點擊超連結就能叫出FlutterWeb畫面查閱。

Q2.有些人會擔心把資料放在App,將來換手機或各種原因會導致資料遺失。

這個App有什麼備份機制呢?用戶一開始必須註冊自己的帳號密碼,系統會產生一個識別碼,儲存在本機資料庫,接下來所有操作產生的資料,都是儲存在雲端資料庫裡。

所以當用戶更換手機,或是另外也使用平板,甚至桌上型電腦,只要安裝App後輸入同一組帳號密碼,就能恢復原來的使用環境。

本機資料庫裡,除了識別碼外,還會有下場比賽的成績相關資料,因為下場打球時,在高爾夫球場上不見得隨時都能連上網路,所以會先將比賽成績的資料先儲存在本機資料庫,等到有網路的時候再上傳到雲端資料庫。

Q3.為什麼決定採用Flutter技術來開發?在決定使用Flutter技術時有什麼擔憂嗎?剛開始我是用Android寫了一個版本,但是球隊裡有一半的人是用iPhone,所以開始研究跨系統的開發環境。

大概花了一個月的時間來評估Flutter這項技術。

我有多年開發WinCE與Android的經驗,由此判斷Flutter是一套很先進而且很有未來性的工具。

當然跨平台是一個主要考量,不過在我深入研究半年之後,確信Flutter是一套非常有企圖心,且非常符合企業M化的先進工具。

而且它是Google主推的工具,相信有足夠的研發實力及財力,能確保後續穩健的發展。

當然它目前還是一個很新的技術,版本變更速度快,因此也產生一些隱憂。

在Flutter編譯的環境,整合了太多外部資源,隨著版本演進,相容性以及適用性會難以掌握。

另外第三方套件的部份,安全性也比較沒有保障。

Q4.目前採用的系統架構是什麼樣子呢?基本上現在的軟體架構都是MVC概念,然後透過API串接WebService。

我的WebService是用C#寫的,主要分成四種服務:(1)DataService:接收Sqlcommand字串,回傳JSonDataSet。

(2)DataAccess:接收New,Chg,Del封包,邏輯檢查、讀寫Table,回傳JSon結果。

(3)BusinessMethod:接受Method封包,邏輯檢查、資料維護,回傳JSon結果。

(4)BusinessReport:接受Report封包,產生圖表、回傳圖表。

Q5.可以和我們介紹一下研究與開發Flutter的過程,以及花了多少時間進行開發嗎?我開發過很多系統,例如製造業、零售業、倉儲業、以及公家機關的專案;待過多家上市公司,也待過系統整合公司;或是教別人作系統分析、專案管理。

所以我很清楚一個資訊系統的架構,也清楚一個資訊系統的軟體工程。

研究一套新的工具,就是看一下技術文件,把環境裝起來,測試寫幾個程式,我就知道好不好用、能不能用。

再到網路搜一搜就知道有那些資源與規模,憑直覺就知道能作那些事。

高爾夫球隊是我第一個用Flutter開發的App,實驗目的為主,所以過程中有反覆重寫,才能瞭解Flutter的能耐。

大概花了6個月,其中有2個月都在解決Mac上的問題。

如果以現在熟悉開發環境的情況再重寫這個App,應該2個月左右。

Q6.以您的經驗來說,Flutter和其它的開發經驗有何不同?覺得有什麼優缺點,或遇到那些困難?以前用Android寫過App,感覺有點低階,要寫較複雜的功能,要深入研究它的原理。

Flutter相對很容易寫出複雜且生動的畫面,尤其有很豐富的套件可以使用。

Flutter的程式流程也很容易理解,相對算是很高階的語言,很好用。

我認為他的優點有幾個:(1)很有彈性的畫面Widget結構,這個非常優秀,能作出很豐富的畫面。

(2)同一套程式碼能編譯Android、iOS,甚至Web,且操作手勢都一樣。

(3)套件資源很豐富,很容易滿足程式需求。

至於缺點,我想開發環境的視覺化畫面可以再加強,雖然有熱編譯的功能,但當程式報錯時,就很不好使。

另外以前寫程式基本上都是同步(先後順序,逐列執行),如果需要非同步才特別寫,邏輯很清楚。

但是Flutter到處都是非同步,反而一定要同步(先後順序,逐列執行)時,必須增加很多函數,邏輯上不是很明確。

過去比較熟悉Window的開發與生態,比較多的困難是從這裡產生的。

例如對Mac不熟,要在Mac上產生App上架,如闖叢林。

然後當App編譯發生錯誤時,很難Debug,感覺開源的開發環境很複雜。

當App持續增加修改功能、上架及審查,用戶版本更新是一個痛苦循環。

最後還有一點是,當App大到64K,才發現App是不能無限放大的。

Q7.你們會推薦什麼樣的APP使用Flutter?有什麼樣的建議想給大家嗎?我是一個已經退休的資訊人員,作了5年的程式設計師,7年的系統分析師,7年的專案經理,7年的資訊主管。

我整個資訊生涯都在開發企業應用的ERP系統,在職時曾經力推企業M化,就是透過行動裝置連上網路處理公司事務。

從目前產業現況看起來,好像上面的情境都已經實現了,但實際上是同一個系統被分別用不同技術、不同平台作整合。

例如一個訂單系統,在公司內部用VB寫給業務部門的開立訂購單,然後用HTML5寫手機網頁給主管能用手機簽核,再用ASP.NET寫PC網頁版給客戶簽認,再傳郵件超連結讓供應商開啟WebApi備貨數量時程確認。

我覺得產業界最大的問題就是,系統隨著企業成長,產業升級,資訊系統也必須快速調整,但一個企業養不起能負擔多種技術,多個平台的資訊人員,所以必須委外開發維護,但委外除了成本考量外,委外的團隊經常因為人事變動,技術變遷,配合度出問題後,企業的系統就面臨無法滿足用戶需求,企業的資訊人員也因為技術差異而坐困愁城。

過去Android跟iOS兩套系統必須由不同團隊開發,版本混亂以外,企業型App經常更新版本,造成用戶安裝上的困擾,有時還會因為版本不一,造成後端資料庫誤植。

因此我很樂見Flutter跨平台整合,可以解決一些的問題,我會建議用Flutter發展企業用App,原因如下:(1)企業用App,程式量很龐大,程式新增修改很頻繁,純App並不洽當,應該是將App當成是一個入口平台,然後將ERP的程式用FlutterWeb呈現。

(2)需要使用到硬體資源的部份例如照相、錄影、錄音、經緯度等寫在App。

(3)讓App不會經常修改,不會造成用戶頻繁更新。

(4)Web可隨時新增修改,不會有版本不一致問題。

高爾夫球隊AppStore下載高爾夫球隊PlayStore下載感謝AndyCheng程福堂分享精彩的經驗給我們,不知道大家對於那個部份覺得有收獲呢?歡迎留言告訴我們喔😘文章都看了,手拍了嗎?還沒拍呀?!拍手鼓勵支持,小編們才用動力繼續寫下去哦!此計畫也才得以繼續哦!以上文章感謝AndyCheng程福堂熱情參與FlutterTaipei「App蒐集企劃」,也謝謝你讀完這篇文章!希望這篇文章和此企劃讓你更了解Flutter在商業化產品上的應用與導入。

歡迎隨時加入FlutterTaipei臉書社團與大家一起互動,告訴我們更多你的想法!如果你也有興趣參與「App蒐集企劃」聊聊你們團隊/獨立開發者如何開發FlutterApp,想跟大家分享用到了怎麼樣的相關技術,歡迎直接填寫表單,我們將會與你聯絡!95MorefromFlutterTaipeiFlutter每月新資訊摘要、相關技術文章分享、活動紀錄。

定期於台北舉辦Flutter相關技術活動,相關資訊:https://www.meetup.com/Flutter-Taipei/ReadmorefromFlutterTaipeiGetstartedFlutterTaipei210FollowersFlutterTaipeiMediumFollowMorefromMediumJayinTheSanguineTechTrainerWayforwardMachinefromInternetArchive—CodingTutor’sPerspectiveMichaelCastanaroNetcat|Let’sConnectRaphaelSamuelCS373Fall2021:RaphaelSamuelPhillipRoshonVaushvs.AhrelevantHelpStatusWritersBlogCareersPrivacyTermsAboutKnowable



請為這篇文章評分?