前言
這將是一個系列的博文,這個系列將介紹一個iPhone軟件項目中遇到的各種坑以及我們的解決方案,其中包括:架構設計
、UI組件設計
、storyboard使用
、autolayout使用
、coredata使用
、藍牙解決方案
等。
項目背景
這是一個以客戶設計
為導向的軟件。客戶設計?這是我自己杜撰出來的一個詞,如有雷同純屬巧合。
與以往的客戶需求導向不同,已經不是單一的從客戶那進行需求調研然后我們給出解決方案,做出原型然后確認需求,最后開發。
客戶不僅僅有自己的需求,而且已經把UI、互交、軟件層級都已經給出。
看到這里可能大家一定想的是:都設計完了那還不好?直接開發就OK了啊,真是幫你們省事啊~
在之前我也是這么想的,可是拿到設計稿之后心中頓時出現幾個字:尼瑪!
。
簡單介紹一下項目背景。這是一個配合硬件來使用的軟件,其中目前設想和規劃支持的硬件大致有 16 種。可以分為3大類分別是:健康、安全、家庭
。暫時支持的硬件有:Thermometer(體溫計)、Activity Tracker(運動手環)、Pet Tracker(寵物追蹤器)。
客戶的想法
客戶想做這樣的一個軟件:
該軟件在最外層有一個類似于Android眾的Launcher的功能,能夠在這個Launcher中統一管理各個子軟件以及作為各子軟件的入口。
大家要注意的是這個軟件到最后需要支持的子軟件有16種之多。我們曾經建議他們將這些子軟件都獨立成一個App,僅僅將Launcher作為入口和身份驗證,不要將子軟件完全在Lancher中實現,否則這個Launcher將是一個非常龐大的App,不僅生成的安裝文件會非常的大,而且越到后面維護成本也會成指數增加。
但是~甲方如果能夠聽乙方的意見的話,那這個世界上就沒有難做的項目。最后也只有我們來妥協。
所以我們需要比較好一點的底層架構來支持我們這個軟件,以至于到后期擴展應用與維護
的時候不會那么困難,對于巨大的安裝文件我們是沒有辦法了。
UI、互交與層級
部分UI如下圖,關于美觀的問題這里就不做評價,各人審美不同(據客戶說是一個20多人的設計團隊設計出來的#-_-)。



img
img
img



由截圖可以看出整個App的一個UI架構可以分為三塊SideBar
,Tabbar
,MainView
。
這種UI架構是沒有什么問題的很主流,但是各位看官請注意側邊欄內容,再看看底部導航欄,是不是有幾項是相似的?沒錯了這幾個相似的功能就是一樣的功能點擊后的效果是一致的!
客戶對側邊欄的定義是快捷方式
。

做過App的尤其是iPhone App的應該都知道,在開發之前都會設計一條優質的路徑去引導用戶如何來使用(也就是UINavigation)。這次完全打破了傳統,要用Native App開發出Web App的特性,任意跳轉。
這只是整個項目中的一個坑,在后續的介紹中我們會一一指出,并提供我們的解決方案。
好廢話說了一大堆,現在是時候來干貨了,現在進入我們的第一篇: