提高自己應(yīng)用性能的總結(jié)架構(gòu)篇

OK 命贴,為什么會(huì)寫這篇文章呢?因?yàn)樽罱佑|老一些面試者嗓袱,總感覺他們認(rèn)為做應(yīng)用只是純粹的搭個(gè)界面籍救,殊不知不僅僅如此。

我們從哪幾個(gè)方面來測(cè)試應(yīng)用的性能呢渠抹?


這里蝙昙,因?yàn)闆]用真機(jī)來調(diào)試所以不會(huì)出現(xiàn)fps選項(xiàng)。下面再來一個(gè)


這里可以測(cè)試fps 梧却,提示必須真機(jī)來運(yùn)行奇颠,fps為0因?yàn)槟銢]用動(dòng)。

fps接近于60幀放航,那么你的app是相當(dāng)?shù)牧鲿沉揖埽?dāng)然代價(jià)是要付出很多很多,然而說這些沒有什么卵用三椿,上面看的是翻天覆地的變化缺菌,沒翻天覆地變化以為你就換換皮膚呢。

在沒有很多業(yè)務(wù)開發(fā)者搜锰,和架構(gòu)組的IOS app怎么提高性能呢伴郁?

第一:架構(gòu)方面

誰說我們app 沒有架構(gòu)了。我們可以參考MVC 蛋叼,MVVM 焊傅,MVP 等一些東西來提煉出我們自己東西。

我們網(wǎng)絡(luò)請(qǐng)求的數(shù)據(jù)可以根據(jù)每個(gè)API來創(chuàng)建一個(gè)類狈涮,這個(gè)類用來接受params 狐胎,返回json

1:比如model 數(shù)據(jù)層我們可以接收網(wǎng)絡(luò)請(qǐng)求過來的JOSN 或者XML轉(zhuǎn)化成數(shù)據(jù)模型來使用,因此這里面除了你的模型屬性字段歌馍,還應(yīng)該有一個(gè)接收json轉(zhuǎn)化model 的方法握巢。還可以實(shí)現(xiàn)你的copy協(xié)議方法,以及歸檔方法方面數(shù)據(jù)持久化松却。

2:view 負(fù)責(zé)視圖元素展示暴浦。你可以在這里面,

重寫布局


或者cell高度以及給cell上元素通過傳過來的model 賦值溅话。


注意紅線部分會(huì)觸發(fā)樓上重寫布局方法。

3:你甚至可以有一個(gè)數(shù)據(jù)持久化的類歌焦,來做model 的緩存飞几,比如頭文件可以有一些save model to cache,update ?model to cache ,load model from cache, delete model from cache


4:控制器里做些什么呢

#import Controllers

#import Models

#import Views

#import Cells

上面導(dǎo)入的頭文件必須分組織隔開

#pragma mark - Constants Define

一些cell 的標(biāo)識(shí)符,常量定義

#pragma mark - Properties Getter And Setter

get set 方法實(shí)現(xiàn) 主要是get 方法可以在這里面做懶加載独撇,需要時(shí)候再創(chuàng)建屑墨,在內(nèi)存等方面得到優(yōu)化,我很多幾乎所有的創(chuàng)建東西都是懶加載纷铣,還在抱怨內(nèi)存和跳轉(zhuǎn)速度嗎卵史,不妨一試

#pragma mark - Controller Life Cycle

控制器生命周期

- (void)viewDidLoad {

[superviewDidLoad];

// Do any additional setup after loading the view.

}

- (void)didReceiveMemoryWarning {

[superdidReceiveMemoryWarning];

// Dispose of any resources that can be recreated.

}

#pragma mark - Setup

設(shè)置界面UI 等

#pragma mark - Actions

view上觸發(fā)的事件讓控制器通知model等

下面就是很多協(xié)議方法

#pragma mark - UITableViewDelegate And UITableViewDataSource

#pragma mark - UICollectionViewDelegate And UICollectionViewDataSource

5:我們需要一個(gè)類來做一些業(yè)務(wù)邏輯的東西

比如

- (NSArray*)getAlbums;

- (void)addAlbum:(Album*)album atIndex:(int)index;

- (void)deleteAlbumAtIndex:(int)index;

這里面會(huì)導(dǎo)入網(wǎng)絡(luò)請(qǐng)求邏輯,數(shù)據(jù)存儲(chǔ)邏輯搜立,轉(zhuǎn)化model邏輯程腹。我們?cè)诳刂破髡{(diào)用這個(gè)類的頭文件API方法可以良好隔離model ,網(wǎng)絡(luò)請(qǐng)求儒拂,model ,cache等邏輯。就是下圖



也就是下圖的結(jié)構(gòu)色鸳,view上觸發(fā)一個(gè)業(yè)務(wù)邏輯比如fetch 數(shù)據(jù)顯示到views社痛。controller 調(diào)用API邏輯的fetch數(shù)據(jù)接口。然后API里面邏輯有獲取json 轉(zhuǎn)化model命雀。model的管理cache方面蒜哀。最后獲取到數(shù)據(jù)把model給view 的setModel 方法,給View展示數(shù)據(jù)吏砂。


下篇從網(wǎng)絡(luò)撵儿,緩存方面來介紹,然后數(shù)據(jù)庫(kù)狐血,多線程淀歇,UI流暢度方面介紹,代碼規(guī)范匈织,頁(yè)面布局等介紹浪默。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市缀匕,隨后出現(xiàn)的幾起案子纳决,更是在濱河造成了極大的恐慌,老刑警劉巖乡小,帶你破解...
    沈念sama閱讀 216,997評(píng)論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件阔加,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡满钟,警方通過查閱死者的電腦和手機(jī)胜榔,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,603評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門胳喷,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人苗分,你說我怎么就攤上這事厌蔽。” “怎么了摔癣?”我有些...
    開封第一講書人閱讀 163,359評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵奴饮,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我择浊,道長(zhǎng)戴卜,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,309評(píng)論 1 292
  • 正文 為了忘掉前任琢岩,我火速辦了婚禮投剥,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘担孔。我一直安慰自己江锨,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,346評(píng)論 6 390
  • 文/花漫 我一把揭開白布糕篇。 她就那樣靜靜地躺著啄育,像睡著了一般。 火紅的嫁衣襯著肌膚如雪拌消。 梳的紋絲不亂的頭發(fā)上挑豌,一...
    開封第一講書人閱讀 51,258評(píng)論 1 300
  • 那天,我揣著相機(jī)與錄音墩崩,去河邊找鬼氓英。 笑死,一個(gè)胖子當(dāng)著我的面吹牛鹦筹,可吹牛的內(nèi)容都是我干的铝阐。 我是一名探鬼主播,決...
    沈念sama閱讀 40,122評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼铐拐,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼饰迹!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起余舶,我...
    開封第一講書人閱讀 38,970評(píng)論 0 275
  • 序言:老撾萬榮一對(duì)情侶失蹤啊鸭,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后匿值,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體赠制,經(jīng)...
    沈念sama閱讀 45,403評(píng)論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,596評(píng)論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了钟些。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片烟号。...
    茶點(diǎn)故事閱讀 39,769評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖政恍,靈堂內(nèi)的尸體忽然破棺而出汪拥,到底是詐尸還是另有隱情,我是刑警寧澤篙耗,帶...
    沈念sama閱讀 35,464評(píng)論 5 344
  • 正文 年R本政府宣布迫筑,位于F島的核電站,受9級(jí)特大地震影響宗弯,放射性物質(zhì)發(fā)生泄漏脯燃。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,075評(píng)論 3 327
  • 文/蒙蒙 一蒙保、第九天 我趴在偏房一處隱蔽的房頂上張望辕棚。 院中可真熱鬧,春花似錦邓厕、人聲如沸逝嚎。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,705評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)懈糯。三九已至,卻和暖如春单雾,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背她紫。 一陣腳步聲響...
    開封第一講書人閱讀 32,848評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工硅堆, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人贿讹。 一個(gè)月前我還...
    沈念sama閱讀 47,831評(píng)論 2 370
  • 正文 我出身青樓渐逃,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親民褂。 傳聞我的和親對(duì)象是個(gè)殘疾皇子茄菊,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,678評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容