2016.5.23日正式接管項(xiàng)目 ---2016.6.23 項(xiàng)目擱淺
一:自責(zé)
1.對(duì)于這個(gè)項(xiàng)目,感覺(jué)自己有很大的因素,首先自己沒(méi)有很好地和后臺(tái)服務(wù)器進(jìn)行交互,沒(méi)能提前找到問(wèn)題,并與之交涉.
2.對(duì)于與后臺(tái)的交流還是有待溝通,對(duì)于后臺(tái)的部分了解的還是不多.現(xiàn)在不同于以前,有問(wèn)題可以讓后臺(tái)過(guò)來(lái)幫你,看一下問(wèn)題所在,這次,沒(méi)了后臺(tái)在自己公司,變得很被動(dòng),沒(méi)能盡快的適應(yīng).
3.對(duì)于新的沒(méi)有接觸過(guò)的技術(shù),應(yīng)該在多去學(xué)習(xí),多去練習(xí),不去敲,怎么會(huì)發(fā)現(xiàn)問(wèn)題的所在.
4.又犯了以前的毛病,容易心急,還有就是瞻前顧后.
二:先談收獲
首先,之前的項(xiàng)目沒(méi)有做過(guò)關(guān)于app帶有側(cè)拉欄,這個(gè)項(xiàng)目是tabbar和側(cè)拉欄的結(jié)合.
因?yàn)闆](méi)有寫過(guò)類似的,所以在剛開始打框架的時(shí)候,為了不影響項(xiàng)目進(jìn)度,就先把框架定位不帶側(cè)拉欄的,因了解過(guò)側(cè)拉欄是隨時(shí)可以添加進(jìn)去的,所以,融合階段是困難的,因?yàn)榇蟾攀桥巳尾艜?huì)有現(xiàn)在的整體效果.第一次記得跳轉(zhuǎn)是不連貫的,第二次是連貫了,但是進(jìn)坑了,這個(gè)坑困擾了自己2天,因?yàn)榘l(fā)現(xiàn)跳轉(zhuǎn)的時(shí)候,切換出現(xiàn)問(wèn)題,不過(guò),最后都是解決了.但是,還有自己不滿意的地方,那就是,在側(cè)拉開以后,最上面的是一個(gè)類似qq的個(gè)人頭像的顯示,暫時(shí)使用cell代替的.這個(gè)地方需要去練習(xí),去完善.后來(lái)還是用了一個(gè)之前項(xiàng)目用到的第三方庫(kù) :RESideMenu
這次,整個(gè)界面的布局約束,用了不同于以往的計(jì)算屏占比的布局,而是采用了masonry的布局,以此來(lái)約束,感覺(jué)雖然約束的都很好,但是,相對(duì)于屏占比,所需要添加的代碼量是很多的,但是好處就是很少在需要去調(diào)節(jié)控件的位置,相對(duì)于屏占比的優(yōu)勢(shì)就是不用去每一個(gè)控件都算位置.
先說(shuō)一下遇到的問(wèn)題,首先,當(dāng)出現(xiàn)多個(gè)控件需要同時(shí)約束的時(shí)候,剛開始會(huì)感覺(jué)比較繁瑣,代碼量很大,有時(shí)一不小心,就會(huì)發(fā)現(xiàn)所有的控件飛的飛,擠在一起的擠在一起.只有你做的到,沒(méi)有你想不到的,當(dāng)然,當(dāng)你去多寫多用的時(shí)候,會(huì)發(fā)現(xiàn)代碼雖然多,但是很多代碼可以共用,粘貼就是.
當(dāng)出現(xiàn)多個(gè)界面共用一套UI的時(shí)候,不要著急寫,分析清楚,可以創(chuàng)建父類,讓類似的頁(yè)面都去繼承父類的控件,如果需要修改,只需要在子類里面重新寫這個(gè)方法就可以,這樣可以減少很多的代碼.在注冊(cè)登陸的時(shí)候用到,在這里容我吐槽一下傻逼設(shè)計(jì)師,登錄界面有登錄,注冊(cè),忘記密碼按鈕,當(dāng)你點(diǎn)進(jìn)去才發(fā)現(xiàn),fuck,別有洞天,一個(gè)界面就一個(gè)用戶名,下一個(gè)界面就一個(gè)驗(yàn)證手機(jī)號(hào),在下一個(gè)是驗(yàn)證密碼,沒(méi)事跳著玩,這也就算了,可以他的忘記密碼,經(jīng)驗(yàn)也是這么跳轉(zhuǎn),并且還是相同的UI界面,不同的類還需要在創(chuàng)建三個(gè),頭次見(jiàn)一個(gè)登錄注冊(cè)需要7個(gè)頁(yè)面才可以解決,漲知識(shí)了.
在這里用到了密碼加密的功能,這里用到的大家通用的MD5加密方式.這里做了處理,是吧密碼加密后得到32位,在進(jìn)行重新打亂排序.無(wú)非就是字符串的拼接,還很簡(jiǎn)單的.
這里要說(shuō)奇葩,就是收獲了一直沒(méi)聽說(shuō)過(guò)的請(qǐng)求頭,萬(wàn)惡的后臺(tái)竟然為了省事,把狀態(tài)碼放在了網(wǎng)頁(yè)的請(qǐng)求頭,當(dāng)你用AF去請(qǐng)求的時(shí)候,因?yàn)樗麤](méi)寫返回的數(shù)據(jù)是json,導(dǎo)致會(huì)直接走失敗的方法.
在做屏幕適配做好以后,用4去真機(jī)模擬的時(shí)候,會(huì)發(fā)現(xiàn),即使界面正常顯示,但是,當(dāng)鍵盤升起的時(shí)候,會(huì)把你的textFiled輸入框給擋住,這個(gè)是不允許的,先是自己寫的界面升起的方法,但是一直都不如意,升起的很不舒服,后來(lái)無(wú)意發(fā)現(xiàn)一個(gè)很好地第三方,名字叫IQKeyboardManager,使用到底有多簡(jiǎn)單呢,就是,導(dǎo)入工程,運(yùn)行就可以了,我噻,超級(jí)遍歷.
環(huán)信和服務(wù)器的同時(shí)登陸注冊(cè),很簡(jiǎn)單,啦啦啦
smsSDK手機(jī)驗(yàn)證,很簡(jiǎn)單,啦啦拉
三:發(fā)現(xiàn)的問(wèn)題
1,首先引導(dǎo)頁(yè),在真機(jī)模擬的時(shí)候,會(huì)出現(xiàn)黑屏(iPhone系統(tǒng)版本是7,0的),這個(gè)需要注意,如果想用這個(gè)storybord,必須把版本號(hào)限制到8.0以上.
2.當(dāng)用AFNetworking去請(qǐng)求數(shù)據(jù)的時(shí)候,如果后臺(tái)返回的數(shù)據(jù)不是json數(shù)據(jù),及時(shí)請(qǐng)求對(duì),也是走的失敗的方法,當(dāng)你用官方的去請(qǐng)求就不會(huì)出現(xiàn),所以,AF內(nèi)部自動(dòng)轉(zhuǎn)換了json,就判斷返回的是否是json數(shù)據(jù).
待續(xù).....