上一篇是「[軟件製造]淺談Xamarin跨平台行動應用開發初體驗」
後來小弟持續功能改版(因為沒空也懶得寫文章),並且在GooglePlay(4月)、Apple AppStore(9月)上架
這一篇是「下」集,然後也要「下架」了!
正想在明年有空的時候,加強功能回饋意見留言的民眾並且發布WindowsPhone版一舉佔領3大平台的時候...
我收到一紙公文,同樣是資安承辦人的小弟,自己要把自己收掉。
依據「行政院及所屬各機關行動化服務發展作業原則」規定,政府機關開發之APP須依經濟部工業局106年2月訂頒「行動應用APP基本資安檢測基準」進行資安檢測,通過檢測後方可上架。
請參考「行動應用資安聯盟」
實驗室認證通過名錄(年初沒幾個,現在不少了,大多是處理金融的)
App檢測通過名錄
「行動應用App基本資安標章」申請及宣告辦法
必須通過目前7間認證實驗室檢測,讓你的APP跟豬肉一樣,取得MAS認證標章(Mobile Application Basic Security,簡稱MAS標章)才可以上架!並且要持續每年維護這個認證~
(所以不是累一次,是很多次;檢測1次牌面價約20萬左右,每年還有費用)
最初好像是為了控管各家廠商預裝在手機裡頭的APP,然後一路發展規範和產業,
這是「大政府」的典型作法,注重民眾資安問題,順便扶植國內資安產業,
副作用是這樣壓抑了就是沒錢才自行開發的公部門系統發展,不過受影響的大概也沒多少人。
開發APP的小小個體戶在接案上,未來還可能一天到晚要處理弱點掃描和修補,還可能受影響比較大。
已經打過美好的一仗,小弟我也有所收穫。
這是在沒什麼資源的情況下開發的APP,不求有成功,但是要做一種「示範」!
什麼示範?!?
一、對委外廠商---開發APP要以客戶為主,而不是以自己的產品為主
以圖書館來說,處理借還書的圖書館自動化系統當然是最重要的,但是......
圖書館自動化系統廠商所開發的行動APP,功能只環繞自家圖書館自動化系統的查詢、預約、續借...等功能是不夠的。
難道我這裡沒有辦活動嗎?(所以要活動報名、活動公告)
難道我這裡沒給人家K書嗎?(所以要自修室預約訂位、現場排隊叫號)
民眾怎麼來我這裡?(交通路線、甚至大眾運輸資訊、目前公車到哪裡)
還有常見問題、諮詢專線、目前人數、空氣品質、停車位...等,都應該整合在「1支APP」
附上跟國內主要的圖書館APP比較圖
這裡有一個點要注意,這是為了突顯我的論點做的比較表。
屬於功能數量的比較(有沾到邊就給分),不是功能強弱的比較,所以「功能少卻很強大」的APP很吃虧。
所以這是對未來有錢系統委外時,對委外廠商的一種火力展示,連沒錢都可以整合好幾個系統,這就是可行性!然後在GooglePlay和Apple AppStore唸我的人,雖然沒辦法一一滿足他們,但都是我的恩客,這樣未來資源投入的時候,會更「精準」打到痛點!
二、對內---專案規劃要反求諸己
現在越來越多資訊單位拿廠商規劃的規格辦事情,好一點的就是沒有照單全收,拿來以後自己再「畫龍點睛」一下,「什麼對自己才是最好」這個問題需要好好思考。
我不是那種反對委外,什麼都要自己來或是自己造輪子的人,
而且目前工作的大環境,多是希望你能吃很多案子,而不是對一個案子精心打磨...
只是因為我也有繳稅,希望自己的錢可以被好好地用。
接下來,是開發行動APP的心得:
1、行動APP本身其實是空殼,除非你處理的是「封閉式」的問題,
也就是你處理的事情從頭到尾都是自己的,甚至都是自己的,你卻需要存取自己後頭的雲端資源,
這樣APP都需要介接很多外來的資訊來源(如、地圖、外部OpenID認證)。
2、因為第1點,所以我又不小心接觸了RESTful WebService!
Json、JWT...然後到Google、FB用的Oauth認證。
透過這個普遍的方式來處理資料傳遞及認證的需求。
有時候當你以為玩到這裡應該差不多,眼睛又會再看到另一片天地啊!(例如、SigalR)
3、使用這種跨平台共用程式碼的方式,開發真的可以快
but...(人生有時候就是這個but),沒你想像地那麼美!
這段時間各平台作業系統更新、相對應SDK也會更新
(例如、iOS 11一發布,Apple XCode就版更,然後Xamarin SDK也同步版更)
它然後你引用的DLL元件也會不斷更新,最後你融會貫通後,再針對Android、iOS、WindowsPhone平台差異作調整和設定。
所以從前Office要過1~2年才會從2010-->2013-->2016,但是手機APP三不五時就小改版。
這種大環境的不同,讓小弟這種熱情驅動的開發者只能把它移到待辦事項。
「敏捷開發」這個概念被小弟亂解釋為:大家都很快很隨便的改程式,然後就發布給User了 XD
4、有熱情不夠,還要$!
自己開發APP沒那麼容易,因為第1、2點,所以APP後端大多有一個雲端平台。
所以你會需要養一個雲端的虛擬主機(AWS、Azure或其他),這需要錢錢!
你想說放個Google廣告賺點擊率養主機,不求賺錢只求收支平衡就好(先不論心力)!
但是如果你介接公家的開放資料(例如、寫個公車路線查詢和到站即時訊息APP,去接各縣市公車OpenData)
APP放小廣告會被視為營利行為,不能無償使用,畢竟他們很害怕圖利他人才不會管你!
小弟比較幸運的是,我可以自己生一台虛擬機自己設定開發環境就可以了!
錢能解決的問題都不是問題,問題是錢不夠 XD
最後附上從106/4月到10月的APP統計圖表(約千次下載),留個紀念。
這其實跟女明星拍寫真,然後跟大家昭告小女生長大了...把它當作成長日誌一樣很像 XD
圖一、GooglePlay截圖、Apple AppStore截圖,其實我行銷文案寫得還不錯
iLib 國資圖行動服務 是「國立公共資訊圖書館」自行開發試辦行動服務的APP。
1、館藏查詢:關鍵字找書,若在書店看到喜歡的書,掃描ISBN就可以查到國資圖有沒有這本書。
2、行動借閱證:免卡,手機就是借閱證。
3、座位預約&叫號:即時查我是不是輪到自修室了。
3、新書/新片通報:新書、新片、主題書展。
4、最新消息:本館最新消息、活動訊息。
5、動態顯示今日開放時間及休館資訊:再也不必打電話詢問或上網查詢。
6、總館/分館資訊查詢、活動報名、場地借用、預約導覽等。
圖二、GooglePlay Console報表1、GooglePlay Console報表2
圖三、Apple iTunes Connect報表
ps.美國目前主流的教育方針STEM:科學(Science)、技術(Technology)、工程(Engineering)及數學(Mathematics)
其中寫程式是很重要的一環,尤其是向下扎根。
(不限資訊人,像我就沒有資訊背景,是自己靠過去的)
ps2.其實行動支付也玩了一些,對公部門處理金流和對民眾開放程度覺得不足,改天再聊。