【專訪】高爾夫球隊:虛擬球隊經理 - Medium
文章推薦指數: 80 %
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
延伸文章資訊
- 1高爾夫球隊
高爾夫球隊1.個人球敘,計分,比賽,差點及KPI統計(上球道成功率,上果嶺成功率,推桿平均數)2.球隊管理:(1)會員來賓名冊(2)球隊行事曆(3)球隊資料夾(4) ...
- 2球隊管理 - Hi Golf雲端高爾夫
簡單在Hi Golf雲端記錄高爾夫大小事,快速管理球隊例賽報名和比賽紀錄,自動計算排名及積分,免費分析FIR個人球道率和GIR上果嶺率。
- 3【專訪】高爾夫球隊:虛擬球隊經理 - Medium
Andy 是一位退休的資深軟體工程師,為了讓自己和夥伴們在大草原運動時,不必攜帶厚重的筆電登打成績,因此選擇Flutter 開發Android/iOS 的App,讓每一位 ...
- 4在App Store 上的「Golface」
高爾夫教學影片、預約擊球,最棒的高爾夫電子桿弟、分數紀錄與球隊管理App! ... 我已經用這個軟體5-6年了,最近常常開不了地圖,有夠爛的,當我在打球要記錄成績時也 ...
- 5Golface》整合所有高球服務APP 台灣之光曾雅妮代言
Golface APP內的功能齊全,包含:「快速訂票服務」、「輕鬆球隊管理」、「方便個人成績紀錄」、「專業揮桿動作分析」、「高爾夫球訓練影片」、「智慧 ...