好像微博已经没啥要说的了,这次就说说多账号的处理吧。
多账号无非就是可以让你登录N个账号,我个人比较倾向于将个人信息存在nsuserdefault中,所以先讲讲我nsuerdefault中的结构。
nsuserdefault中,nsuserdefault->accounts(nsarray)->任一 account(nsdictionary)->key:username,userpwd,userallinfo(获取用户信息时所返回的数 据,主要保存ID,name等)
nsuserdefault->current account(nsdictionary)表示当前使用的账号
再说说缓存,就像之前所说,公共信息可以放在同一个文件夹,像个人信息就放入以id为标识的文件夹中方便存储。比如我现在的账号名为aaa,密码bbb,用户ID为1001,那么必然要选择用户id来命名文件夹名,当然也可以选用表的,选择原则是无重复,不私密。
比如我的documents里面的目录结构 documents-> public(存用户头像,图片) dir_1001(ID为1001的缓存信息),dir_1002(ID为1002的缓存信息)
最后再说说如何处理多账号。
切换账号不必多说了,根据UI设定来搞吧。这里主要提几个比较需要注意的地方:
1.api的封装,最外层一定是错误处理,否则你的用户名在非本客户端修改之后,必然会出问题。增加错误检测的好处还有可以明确知道是哪的问题,不要以为只有开发者需要,用户也同样需要。
2.在写程序之前就要提前划分好哪一些是公共数据,哪一些是个人账号私有数据,提前封装好,这样不管是修改,还是以后作扩展,都会快很多。
3.缓存分账户存放是有一个好处的,不必每次启动程序都去检测密码,每次调用API的时候有前端错误检测,所以可以完全放心由于api引起的 crash问题。同时每个账号进入的时候都是会有缓存信息的,不会太空,既然你的密码已经不一致。坏处嘛,就是你就算修改了密码,还是能看到之前缓存过的 数据。
总之一句话,多账户主要就是信息存储,存储的明确了,做起来那是相当容易。。
在制作微博的过程中,要特别注重的一些细节问题。
1.本来这篇名字想叫“一根线”的,但是发现要说的细节还是比较多的,所以改了下名。我要说的这一根线,当然就是tableview的cell分隔 线。相当现在iPhone应用,cell的默认分隔线已经满足不了多数开发人员的要求了,所以制作分隔线再所难免。那么,这根分隔线如何去做呢?
至少我相信,基本很少人会用画的方式把线画到Cell上,多数还是用图片。那么图片怎么做,将是非常值得讨论的。
把线合到背景上,虽然可以解决问题,但是明显是不可取的,对于现在的iPhone内存,也许不算什么,但是对于将来UI变化,实在是相当之不方便,而且效果不能说是完美。
那么如何去处理这一根线呢,可以利用1像素的线与- (UIImage *)stretchableImageWithLeftCapWidth:(NSInteger)leftCapWidth topCapHeight:(NSInteger)topCapHeight 配合拉伸实现,也可以单独做一个图片,当然这2种方法效率谁快我还真没做过测试。。。
2.既然是基于网络服务的客户端,那么网络传输是必然少不了的。所以状态栏的网络状态必不可少。 @property(nonatomic, getter=isNetworkActivityIndicatorVisible) BOOL networkActivityIndicatorVisible 千万不要忘记哈~同时不要太频繁的set Yes,太频繁,你会发现状态栏的activityIndicator是一直在闪的。
3.UINavigationItem 的左右按钮,虽说已经给定好了位置,但是对齐还是相当必要的。这就要求图片对齐,或者用代码控制image contentoffset。同时还有一点需要注意,按下状态也是要对齐一下的,不要以为手按下去看不见就无所谓,细节真的可以决定成败。
4.每个cell中的排版,间距一定需要注意,该对齐的地方一定要对齐,这样看起来才舒服。有条件最好研究一下视觉范围。
5.每个页面加载的速度。open api必然会有限制发挥的地方,要合理利用api,而不要盲目的使用api来达到预先的效果。尽可能的节省流量,为用户节约每一分钱。
6.比较杯具的ip4的高清屏,想要显示清楚就必然要缩小图片在屏幕上的size,这方面只能将就了。
7.在textview中不管是转发,还是@以及##,记得尽量处于用户的角度想一下,移动好光标的位置。移动方法是修改textview的@property(nonatomic) NSRange selectedRange
8.在手势冲突的时候,设置好优先级。
9.使用尽量简单,尽量隐蔽的动画,来达到最好的效果。
10.没有摄像头的设备,记得不要弹出来自摄像头。。。
11.textfield/textview的键盘类型,返回键类型
12.注重细节并不是意味着到处加效果。
13.程序员也是设计师,也有义务和美工一起搞好UI。要重构的时候必须重构,就算你把制作程序当成工作,当成赚钱的手段,那么你也必须要和美工一 起达到目前能达到的最好效果,这是对你工作的交代。当然,我一直认为这样的人不适合做一名程序员,至少我一直认为我从事的是我的兴趣,我完成的是我的创 作。
14.activityindicator如果是IB拖出来,一直是转动状态,而代码只是控制显示和隐藏,记得测试后台返回的时候activityindicator是否还在转。
15.尽量避免出现由于加载而导致用户无法操作的情况。
16.整体风格的统一。
17.使用gps时,需要的时候再打开,用完关闭。
18.字体大小特别要注意,可以设有几套字号,但是同类微博的展示位置的字号要统一。