2016.5.23日正式接管项目 ---2016.6.23 项目搁浅
一:自责
1.对于这个项目,感觉自己有很大的因素,首先自己没有很好地和后台服务器进行交互,没能提前找到问题,并与之交涉.
2.对于与后台的交流还是有待沟通,对于后台的部分了解的还是不多.现在不同于以前,有问题可以让后台过来帮你,看一下问题所在,这次,没了后台在自己公司,变得很被动,没能尽快的适应.
3.对于新的没有接触过的技术,应该在多去学习,多去练习,不去敲,怎么会发现问题的所在.
4.又犯了以前的毛病,容易心急,还有就是瞻前顾后.
二:先谈收获
首先,之前的项目没有做过关于app带有侧拉栏,这个项目是tabbar和侧拉栏的结合.
因为没有写过类似的,所以在刚开始打框架的时候,为了不影响项目进度,就先把框架定位不带侧拉栏的,因了解过侧拉栏是随时可以添加进去的,所以,融合阶段是困难的,因为大概是弄了三次才会有现在的整体效果.第一次记得跳转是不连贯的,第二次是连贯了,但是进坑了,这个坑困扰了自己2天,因为发现跳转的时候,切换出现问题,不过,最后都是解决了.但是,还有自己不满意的地方,那就是,在侧拉开以后,最上面的是一个类似qq的个人头像的显示,暂时使用cell代替的.这个地方需要去练习,去完善.后来还是用了一个之前项目用到的第三方库 :RESideMenu
这次,整个界面的布局约束,用了不同于以往的计算屏占比的布局,而是采用了masonry的布局,以此来约束,感觉虽然约束的都很好,但是,相对于屏占比,所需要添加的代码量是很多的,但是好处就是很少在需要去调节控件的位置,相对于屏占比的优势就是不用去每一个控件都算位置.
先说一下遇到的问题,首先,当出现多个控件需要同时约束的时候,刚开始会感觉比较繁琐,代码量很大,有时一不小心,就会发现所有的控件飞的飞,挤在一起的挤在一起.只有你做的到,没有你想不到的,当然,当你去多写多用的时候,会发现代码虽然多,但是很多代码可以共用,粘贴就是.
当出现多个界面共用一套UI的时候,不要着急写,分析清楚,可以创建父类,让类似的页面都去继承父类的控件,如果需要修改,只需要在子类里面重新写这个方法就可以,这样可以减少很多的代码.在注册登陆的时候用到,在这里容我吐槽一下傻逼设计师,登录界面有登录,注册,忘记密码按钮,当你点进去才发现,fuck,别有洞天,一个界面就一个用户名,下一个界面就一个验证手机号,在下一个是验证密码,没事跳着玩,这也就算了,可以他的忘记密码,经验也是这么跳转,并且还是相同的UI界面,不同的类还需要在创建三个,头次见一个登录注册需要7个页面才可以解决,涨知识了.
在这里用到了密码加密的功能,这里用到的大家通用的MD5加密方式.这里做了处理,是吧密码加密后得到32位,在进行重新打乱排序.无非就是字符串的拼接,还很简单的.
这里要说奇葩,就是收获了一直没听说过的请求头,万恶的后台竟然为了省事,把状态码放在了网页的请求头,当你用AF去请求的时候,因为他没写返回的数据是json,导致会直接走失败的方法.
在做屏幕适配做好以后,用4去真机模拟的时候,会发现,即使界面正常显示,但是,当键盘升起的时候,会把你的textFiled输入框给挡住,这个是不允许的,先是自己写的界面升起的方法,但是一直都不如意,升起的很不舒服,后来无意发现一个很好地第三方,名字叫IQKeyboardManager,使用到底有多简单呢,就是,导入工程,运行就可以了,我噻,超级遍历.
环信和服务器的同时登陆注册,很简单,啦啦啦
smsSDK手机验证,很简单,啦啦拉
三:发现的问题
1,首先引导页,在真机模拟的时候,会出现黑屏(iPhone系统版本是7,0的),这个需要注意,如果想用这个storybord,必须把版本号限制到8.0以上.
2.当用AFNetworking去请求数据的时候,如果后台返回的数据不是json数据,及时请求对,也是走的失败的方法,当你用官方的去请求就不会出现,所以,AF内部自动转换了json,就判断返回的是否是json数据.
待续.....