三天時間,我寫出了自己的GTD應用

三天時間,我寫出了自己的GTD應用

來自專欄 MikeTech13 人贊了文章

作為一個獨立App開發者,獨立開發自己app的日子已經過去了三個年頭。想要開發一款GTD應用也是我很早就考慮過的事情,但是在iOS的應用環境中,最不缺少的就是這一類應用,從簡單易用的Wunder list到大而全的Things 3。因為這一類應用的百花齊放,我也就暫時擱置了去做一款GTD應用的想法。直到幾天前女朋友提出她需要一個簡單好用的GTD應用,沒有花哨的功能,只是記錄下每天要做的事情。我這才將開發一款新app的想法提上日程。俗話說得好,女朋友提的需求,跪著也要寫完,那麼這篇文章將會講述開發中的故事。

原型設計

想要設計一款App那麼肯定不能直接打開開發環境動手寫,至少需要知道這個App有什麼功能,最終我決定實現一個可以創建多個分類列表的todo list,然後標記完成了哪個任務就把那個事項清除掉,就這麼簡單,兩句話就把功能需求講完了。

那麼接下來,為這個App取一個名字吧,取名字的過程我們想了很久,因為很多GTD應用的名字都大同小異,xxlist,xxtodo,xxdo。想了一些時間最後將這款App命名為Listify,是List + ify 英文後綴,意思是將一切待辦列表化。

有了名字,那麼在開發環境上就可以建立項目了,不過在此之前,得先有一個大概的設計吧,於是我打開Sketch,畫出了App的第一張原型設計:

整個界面背景為淡灰色,每一個List用一個卡片實現,不同的卡片擁有一個不同的主題顏色加以區分,底部打上了很寬但是很淺的陰影來和背景區分並且產生立體的效果。卡片里就是待辦事項,完成的事情會變成淡灰色並且劃掉,右邊的CheckBox會被選中。很簡潔的設計。

交互設計

這樣的界面是很簡潔,也很好看,不過交互就成了問題,我以前開發的App都會給用戶明確的交互,按鈕是我常用的控制項,但是設計成這樣很難再去添加一個按鈕了,在Android的設計規範中中是有右下角的一套 Floating Action Button (FAB)可以用,但是加上去又會破壞整體性

那麼只好用手勢了,在移動應用中上拉一個列表執行添加或者刷新操作是很常見的,所以上來添加新的todo的交互就定下來了,剛好iOS自帶組件有一個UIRefreshControl組件可以輕鬆實現 (是的,懂開發的設計師就是不一樣,從來不在設計上給自己挖坑)。

那麼既然交互和原型設計都做好了,直接打開開發環境來實現這個App吧!

開發

「定實現一個可以創建多個分類列表的todo list,然後標記完成了哪個任務就把那個事項清除掉」,這是我在原型設計上寫到的,當時給我的感覺是,好簡單啊,我只需要實現一個兩張數據表的資料庫然後去讀數據然後就能把那個主界面繪製出來啦,估計從9點寫到晚上一兩點就能實現一個能用的東西了,畢竟我也獨立開發過比較大型的應用,寫個這個對我來說不是很困難,明天就能交差了。

於是我花了2個小時才實現了主界面的大概樣子。。從空的卡片,到加入主題標籤,到加入待辦任務,並且,這樣實現的界面還不是動態的。

並且,我遠遠低估了這個項目的規模,這個App聽起來很簡單,列表,待辦,就這兩個東西。

學過資料庫的同學都知道,一條數據,擁有增刪改查(CRUD)四個操作。

想要有一個新的todo列表,就得去創建他,想要創建,那就得再寫一個界面,還要搭配刪除和更改的操作,待辦事項也是一樣的,也得再去實現一個頁面。並且這些東西都有了,那總得有個設置界面吧,於是又多了一個界面吧。這麼多待辦事項,刪掉了總得歸檔吧,那歸檔又得再多一個界面,就是這樣,需要實現的界面一個一個多了起來。這真的是跪著寫了。

不斷增加的功能

好的,既然要實現這麼多界面,那我還是好好寫吧,寫一個可以上架的應用好了,那麼原本這麼點功能就拿不出手了啊,別人家的App都有通知功能,我沒有那不是很不好意思。一個列表的任務總得可以排序吧,於是資料庫里又得多一個欄位。

在添加功能的同時,設計也在不斷地變更,下圖左邊是一開始的添加Todo設計,主色為黑色,選擇不同列表的地方使用各自列表的主題顏色,但是後來發現,因為列表的主題色很多,所以很亂,就改成了右邊這個選中一個列表的時候整個界面跟著主題色變得方案。

在todo列表添加界面也做了相同的設計,並且為todo列表管理單獨做出了一個界面用來排序,編輯和刪除。

後來覺得要是在主界面不想看的卡片可以摺疊就再好不過了:

就這樣,原本的界面功能在增多,又有更多的新界面需要設計出來。還有就是交互上的方案的增加,在主界面中根本沒有地方放下一個設置界面的入口,思來想去最後選擇了用兩個手指來捏合(Pinch)屏幕來進入設置。並且,搖晃手機可以清除掉已經完成的任務。不過這樣的交互必須有人提前告訴你才行啊,要不誰會知道呢?

於是,在實現了這些功能之後,時間已經過去了兩天半,遠遠超過了我五個小時拿出一個可以用的原型的預期。

圖標

App快做完了,我也準備把他拿來日常使用了,那麼沒有一個圖標可不行啊,於是又花了一點時間想圖標,最後選擇了倒數第二個

用戶引導

前兩段段最後提到了一些很難想到的交互,於是第一次啟動的用戶引導界面就成了重要的一環,雖然這個環節開發寫的代碼很少,但是要畫好多圖倒是真的。

漢化 & 測試

為了防止有的用戶因為沒有中文給差評,所以多語言也是必要的。

在最終發布之前還需要在不同的機器上去測試確保界面適配沒有問題。

捐助

這是最沒有必要的一個界面,我開發的App都會有一個捐助頁面,因為都是免費提供的,但是下載量再高也沒有幾個人會去捐助我。

尾巴

列表,待辦,兩個簡單的元素,卻需要這麼多界面的承載,這就是開發一款App的整個過程,過程雖短卻是完整的,和去年的 三個月,我將這款記賬app帶到了這個世界 不同,這個輕量級GTD App在三天之內全部開發並且測試完成。Listify經歷了一個完整的產品研發周期,從原型設計到打包發布,來到了這個世界,歡迎免費去App Store下載。


推薦閱讀:

時間管理,每天從晨間日記開始
知道時間管理很重要,但就是做不到,3個大招幫你搞定!
媽媽,你的時間都去哪裡了?職場&全職媽媽通用的時間管理課,重點整理
《你一年的8760小時》:34枚金幣時間管理法
和你一起終身學習——消防工程師 第四天

TAG:GTDGettingThingsDone | 時間管理 | iOS開發 |