結合個人iphone開發經歷,提幾點iphone ui開發方面的建議。
建議1 盡量使用系統控制項
系統控制項可以使得使用者容易上手,但在iphone開發中還有很多人習慣使用checkbox而不是uiswitch,使用combobox而不是使用uipickerview。究其原因可能有兩點:一是從其他windows或者android系統轉到iphone開發的殘留,二是因為跨平台開發中為了減少設計和資源的工作而趨同設計。不過這樣的設計往往造成自定義控制項的開發投入,質量上也往往無法和系統控制項相媲美。
建議2 合理抽象
ui**是很容易重複寫的**,很多時候就會造成**效率的錯局,讓人有一種高效工作的錯覺。其實很多**是完全重複或者結構重複的,通過適當的抽象就可以進行消除和避免。比如在乙個應用中,不同地方所需要的內嵌網頁瀏覽器,這些地方往往都有一些共通的行為。比如載入的時候會顯示載入進度並在狀態列顯示網路狀態圖示,在載入完畢後隱藏進度和網路狀態顯示。如果單獨在不同controller中實現不僅不合理,而且容易造成大量**重複以至於後來的維護噩夢。通過合理抽象,抽取乙個基類後就可以封裝這塊的行為,實現相同邏輯**的復用。
建議3 優先使用組合
ui中很多部分應該像積木,可以隨意拼接組合。比如下圖的使用者資訊顯示部分可以由諸如uiimageview,uilabel等幾個基本控制項拼接而成,而這種顯示在乙個專案中會通常在多個介面中顯示。面對這種的問題,參考建議2後可能就會想著抽象乙個基類用來處理使用者資訊顯示相關的邏輯和介面。所有有這需求的介面都可以繼承自這個基類。這種抽象是解決了邏輯和介面重複實現的問題,但另一方面卻引入了高耦合的繼承。如果有些介面因為功能原因更會迫切繼承乙個其他基類,比如建議2中提到的處理網頁載入的基類,由於objective-c無法支援多重繼承,從而被迫進行部分**的copy&paste。所以在抽象的時候就應該格外珍惜基類的抽象的使用,不斷利用liskov原則進行繼承合理性的檢查和確認,同時把握「優先使用組合」的原則,通過基本控制項的組合製作一些應用相關的組合,比如顯示使用者資訊的,這樣其他需要的節目就可以利用組合來復用這部分**,從而避免繼承,也其他更合理的繼承保留可能。
建議4 ui和邏輯的分開
建議5 充分利用ib。
曾經遇到這樣的乙個同事,九幾年開始做mfc開始,最初也很希望使用stl庫,不過在一次專案中發現了stl的記憶體洩露問題後就開發摒棄stl,以至到現在也不允許自己和屬下在專案開發中使用stl。這真是一朝被蛇咬,十年怕井繩。在使用xcode進行iphone開發的過程中同樣有這樣的一些人。他們很早就開始接觸和使用ib,但使用過程中發現很多ib的問題和不便,甚至有一些在實際專案中無法忍受,以至於到現在還一直牴觸ib。目前,雖不敢說ib已經很完美,但是它對開發效率的提高所起的作用是毋庸置疑的。
,原來這種問題可以通過重寫-tableview:willdisplaycell:forrowatindexpath:的委託方法實現。想想之前罵過的話以及走過的彎路,只能感嘆自己掌握不深入。有了這樣的經歷後在遇到類似的問題我會先懷疑使用合理,而不是輕易下結論。
以上
Erlang開發建議
以下是在erlang專案開發中的一些記錄,即包含很多通俗易懂的原則,也包含一些似是而非的建議,比較混亂,還沒有積累到乙個可以分門別類的地步,各位就將就看吧.確保沒有任何編譯警告 erlang中string採用list實現,32位系統中,其1個字元用8個位元組的空間 4個儲存value,4個儲存指標 ...
Android開發建議
1 布局優化 1.1減少布局巢狀的層級,刪除無用的group 螢幕資訊的顯示過程就像是樹的層級遍歷的過程,先畫最底層,然後逐層往上畫。那麼,樹高過大顯然是不利於效能的,1.2include 使用include標籤將乙個指定的布局檔案加到當前的布局檔案中。1.3merge 常與include組合使用,...
開發體系規範建議
為減少開發過程複雜混亂的環境配置,避免影響開發心情,建議形成良好的習慣,將少本地環境應用程式安裝數量。開發電腦 windows 1 開發電腦配置16以上記憶體。2 開發電腦安裝windows 10 最新版本。3 開發電腦啟用hyper v,並安裝docker desktop。4 使用docker啟動...