原创 僅需6步,教你輕易撕掉app開發框架的神祕面紗(5):數據持久化

遇到的問題 有的時候程序中需要全局皆可訪問的變量,比如:用戶是否登錄,用戶個人信息(用戶名,地區,生日),或者一些其他信息如:是否是首次登錄,是否需要顯示新手引導等等。 其中有些數據需要持久化到本地硬盤中,比如: 大多數應用,當

原创 一個基於組件的動態對象系統

http://hulefei29.iteye.com/blog/1490889 一、靜態的痛苦      作爲一個項目經驗豐富的程序員,你經常會遇到遊戲開發過程中的“反覆”(iterations):今天美術將一個靜態的模型改爲骨骼模

原创 僅需6步,教你輕易撕掉app開發框架的神祕面紗(6):各種公共方法及工具類的封裝

爲什麼要封裝公共方法 封裝公共方法有2方面的原因: 一是功能方面的原因:有些方法很多地方都會用,而且它輸入輸出明確,並且跟業務邏輯無關。比如檢查用戶是否登錄,檢查某串數字是否爲合法的手機號。像這種方法就應該封裝起來,供各個模塊調

原创 僅需6步,教你輕易撕掉app開發框架的神祕面紗(3):構造具有個人特色的MVP模式

1. MVP的問題 之前我們說過MVP模式最大的問題在於:每寫一個Activity/Fragment需要寫4個對應的文件,對於一個簡易的app框架來說太麻煩了。所以我們需要對MVP進行一定的簡化。 關於MVP模式是什麼及其簡單實現

原创 Android 常見工具類封裝

1,MD5工具類: public class MD5Util { public final static String MD5(String s) { char hexDigits[] = { '0', '1

原创 僅需6步,教你輕易撕掉app開發框架的神祕面紗(4):網絡模塊的封裝

程序框架確定了,還需要封裝網絡模塊。 一個豐富多彩的APP少不了網絡資源的支持,畢竟用戶數據要存儲,用戶之間也要交互,用戶行爲要統計等等。 使用開源框架 俗話說得好,輪子多了路好走,我們不需要自己造輪子,拿來主義就行了。 andr

原创 僅需6步,教你輕易撕掉app開發框架的神祕面紗(1):確定框架方案

遇到的問題   做遊戲的時候用的是cocos2dx+lua,遊戲開發自有它的一套框架機制。而現在公司主要項目要做android和iOS應用。本文主要介紹如何搭建簡單易用的App框架。 如何解決   對於新手來說,接觸一門新的知識,

原创 只有20%的iOS程序員能看懂:詳解intrinsicContentSize 及 約束優先級/content Hugging/content Compression Resistance

在瞭解intrinsicContentSize之前,我們需要先了解2個概念: AutoLayout在做什麼 約束優先級是什麼意思。 如果不瞭解這兩個概念,看intinsic content size沒有任何意義。 注:由於上

原创 僅需6步,教你輕易撕掉app開發框架的神祕面紗(2):MVP比MVC更好嗎

對於程序框架的選擇,由於android天然的MVC,本來不需要另外設計直接使用即可。但是我更加鍾情於MVP模式,對於其將ui完全與業務邏輯分離的思路很贊同。 那麼什麼是業務邏輯?個人認爲,對數據(即MVC中的M)的處理即爲業務邏輯

原创 終極方案!解決正確設置LaunchImage後仍然不顯示的問題

對於如何設置LaunchImage,網絡上有各種各樣的教程。 主要分2點: 1. 正確設置圖片尺寸 2. 取消LaunchScreen.xib 但是經過上述步驟之後,你覺得完全沒有問題了,但是仍然無法顯示LaunchImage。 或者,

原创 iOS應用模塊化的思考及落地方案(二)模塊化自動構建工具的使用

1.0 iOS模塊化中的問題 前文已經介紹了模塊化的流程及一些常見的問題,我們在這裏再次總結一下。 在工作中,當我們開始一個新項目的時候,最先考慮的就是模塊化工作。 模塊化工作的想法是很美好的,可是執行過程中會遇到很多的問題,而這些問

原创 iOS應用模塊化的思考及落地方案(一)模塊的劃分及模塊化工作流程

1.0 什麼是模塊化 很多關於重構及設計模式的介紹中,經常提到的幾個詞語是複用及解耦。 模塊化之所以被提出,也更多是爲了解決這幾個問題。 複用可以減少重複造輪子的情況,很容易理解的是,我們經常使用的github上的第三方框架,比如,A

原创 算法(5)哈希表

1.0 問題描述 實現數據結構:哈希表。 2.0 問題分析 哈希表可以看作我們經常使用的字典(swift)或對象(js),可以讓一個key&value對一一對應,可以快速根據key找到value。 哈希表內部使用數組實現,我們需要將

原创 算法(4)數據結構:堆

1.0 問題描述 實現數據結構:堆。 2.0 問題分析 堆一般使用數組來表示,其中某個節點下標i的兩個子節點的下標爲 2i+1 和 2i+2。堆是一棵完全二叉樹。 堆有3種基本操作:創建,插入,刪除。 這3種操作都需要通過“調整堆”

原创 算法(2)KMP算法

1.0 問題描述 實現KMP算法查找字符串。 2.0 問題分析 “KMP算法”是對字符串查找“簡單算法”的優化。 字符串查找“簡單算法”是源字符串每個字符分別使用匹配串進行匹配,一旦失配,模式串下標歸0,源字符串下標加1。 可以很容