2018年6月28日 星期四

[ 教學 ] [ 經驗分享 ] 開發一支好的 App 所需具備的條件

標籤: , , , ,
Sponsors

CC0 素材圖片

做一支 App 眉角不少,但身為開發者有仔細思考過「什麼是一支好的 App 」這個問題嗎?


其實這是近期到某間軟體公司面試時被問到的問題,當下萊德集中火力在 UI/UX效能這兩大部分說明,因為自己身為使用者最在乎的就是這兩大項目的表現,但面試結束後細想,其實一支好的 App 還有很多地方可以表現,所以特地整理成此篇文章記錄一下。


1. UI/UX

這一項主要講的就是直覺性與易用性,針對具有較多功能的 App ,當使用者一進入 App ,應該需要用一些【特別的介面設計】引導,讓他很快知道如何使用這支 App ,以滿足他當下最迫切的需求,例如較常用的功能應該放在最顯眼的地方, UI 不一定要大但最好醒目。

對於比較簡易的應用,大多時候把 UI 介面做得簡潔有力, UX 通常就不會太差。


2. 效能

第一代 iPhone 發表至今,智慧型手機的效能皆大幅變高, OS 的資源管理也越做越好,但使用者的需求也越來越大,而且大部分的 App 都是需要連網的,以遊戲 App 來說,特效或畫面做得越精緻,資源需求越大,在程式結構與網路連線的部分就要多下點功夫研究,【如何把 App 消耗資源降到最低,執行效率維持在一定水準】是一件相當不容易的事。






3. 視覺

CIS 是企業給與使用者的第一印象,因此 App 的視覺呈現也會跟 CIS 息息相關,通常來說,前期的軟體框架規劃得越周全, UI/UX 自然也不會太差,視覺方面只要能符合 CIS ,並達到公司自我要求的產品標準,給使用者的視覺效果都會不錯。


4. 程式錯誤

程式錯誤在最終穩定版本是幾乎很少見的,除非實作過程中 QA 沒有把關好、完成品也沒經過 QC 層層的檢驗就上架, Bug 可能就會滿天飛。

那既然上架都沒有 Bug ,某些衍生出來的使用者負評又是怎麼回事呢?

【閃退】,是最常從使用者口中聽到的程式錯誤,也是軟體業佈署產品的大忌,這通常跟第 2 項的效能有關,效能沒把關,消耗過多的資源就會被 OS 強制關閉,以確保 OS 運作正常,因此時時監控並釋放 App 當前消耗的資源是相當重要的。

另外,某些程式錯誤其實是自作孽造成的(x

簡單來說就是【功能擴充】,在更新 App 時沒注意而造成的程式 Bug ,由於已經是最終版本,擴充功能時的 QA 與 QC 可能都會從最初發佈那刻開始鬆懈,這也算是很常見的現象。


5. 安全性

「先求有,再求好。」

在開發過程中,安全性通常被擺在很後面才被考量,但這其實也是打造一支好的 App 不可或缺的一部分,尤其當眾多的 App 都會連上網路,更要慎防機密資訊被有心人士窺探,例如使用者的個資等等。

惡意的駭客或 DDoS 攻擊或許難防,即使做了相當規模的防護措施也有可能輕易被破解,但不能因為這樣就完全不做,畢竟安全性等同於使用者對一支 App 的信任,如果不鞏固這座橋樑,那商譽毀於一旦也是遲早的事情。

舉個例子,使用者可能只是使用 App 報名一個活動、買些東西,有一天個資突然就因為該 App 的系統安全性不夠外洩了,除了委託案主與使用者不再信任 App 的製作公司, App 的製作公司也可能面臨損害賠償的責任。

再來不得不提,台北市政府一開始推出的 pay.taipei 行動支付平台,被外國人爆料連最基本的 Https 安全協定都沒採用,使用者註冊或登入的帳密全部都以明文傳輸,以此 App 支付的安全性備受質疑。

更不用說,台灣現在有許多政府網頁,密碼竟然都是直接 Query 到 Database 的......XD


6. 維護

易於維護這點跟軟體開發前期的框架規劃脫離不了關係,周全的規劃與實作應該都要包括這點,因為一支 App 的製作與維護很多時候都是不同的人在執行工作,如果框架規劃良好,維護、甚至重構所需要耗費的時間成本就會相對降低。

軟體有開發周期,也就是有大限,因此具有強大創造與實作能力的中期開發者或許有責任做出好的程式架構,供後期維護者易於管理與 App ,如此一來,這些強大開發者才能夠繼續著手下一個新專案的開發,不用被舊專案的維護扯後腿,影響公司整體的開發效率。


7. 註解

這裡有個好佛祖註解,不加嗎?XD
https://gist.github.com/edokeh/7580064

註解和維護是一體的,程式沒有好的註解或技術文件,是非常難維護的,在開發過程中,開發者可能也需要花較多時間理解 Code ,多人協作時影響又更大了。


8. 可能還有,只是我還沒想到,未來有機會再補充XDD





此篇文章整理的項目很多都可以廣義延伸到 IT 、遊戲等等產業的開發工作,如果對你有所幫助,是我的榮幸:))



開發一支好的 App 所需具備的條件就到這邊~

我們下次見~