基于网络的客户端开发技巧——第一篇

最近比较忙,没时间整理,准备写一个微博/LBS等之类的网络编程技巧。
这就算第一篇吧。

1.做一个程序之前,要明确你要做的是什么。这之间道道不少,不仅仅要实现功能,还要考虑到程序功能之间是如何链接,用户如何交互。在这个基础上, 才能和美工一起配合,把程序的设计做好,而仅仅的UI,已经不能称得上是完整的设计了。利用api扩展是必需的,open api不是你自家的api,所以肯定是有局限性的,如何将api与产品良好的结合,是重点,抓细节,是重点。每条微博就是一个少量信息,所以客户端要做的 就是快,清楚,友好,稳定。
快,不用说,加载速度快,浏览的速度快。
清楚,UI布局的可识别性,一个页面,不同的排版,字体的颜色,都将影响到用户看这个页面的速度。
友好,不需要太炫的效果,也不需要很酷的动画,就算再简单的UI,也足以满足用户的需求,就看你如何做。不要烂加,有必要再加。
稳定,这个要好好说说了。客户端,毕竟不是单方面数据了,很有可能客户端缓存与数据库信息不统一,或者网络问题导致接收数据出错,这些都是需要做处理,多 测试,否则crash很杯具。前几天同事给我看Weico在官方清空了短信息,然后再回来weico客户端,直接导致weico持续crash,必须重 装,不知目前修正没有。总得来说,多测试,尤其是在数据差异的方面。

2.就目前而言,主流的微博特效就不再多说了,以后有可能细讲,基本上都有开源的了。

3.目前大多展示都是用的tableview。这里就要多说说了。tableview的使用方式有好多,下拉刷新,即可以将展示放到 tableview的subview上,也可以放到tableview cell上,这2种有啥区别呢。。。目前没有发现实质上的区别,只是在计算的时候放在外面比较好算。。。也有可能是我才疏学浅,HOHO。
正常来说,展示的步骤为:
A.访问api,获取数据
B.将数据存入数据
C.在tableview上展示数据,并载入相关的默认图片。(像新浪微博客户端是用的Webview来展示的图片,这个又可以叨叨一阵了,下次再说。。。)
D.自己封装也好,用线程也罢,将下载的图片保存到本地,并刷新tableview cell。这里又要注意2点:
>保存到本地的文件名,像这种公共数据,建议存放在同一文件夹中,像头像,可以以用户id为文件名存放,这样做多账号的时候可以直接利用到。关于与 当前账号有关的数据存于单独文件夹(例如以dir_ID为名的文件夹)。以当前账号为文件名我认为是不太安全的。像weico,上次无意中发现,他的缓存 都是用的我的登录名,不知最新版本修改了没有。
>更新cell的时候,有不少方法是利用path和tag来确定修改哪个imageview,button,但是当tag被占用时就相当郁闷,这时 就要继承一个子类。所以我比较建议直接用tableview cell的reload cell方法来刷新,这样还可以刷新行高之类,相当有用。
E.微博一般都是多行,sizeWithFont确实比较慢,我能做的也只有在获取了数据之后把所有的行高算出来保存,不知有没有更好的方法会效率高一些。

4.特色功能。想做出与众不同的产品,目前在我看来,只有特色功能。像微博的展示,lbs的签到,再怎么做,也已经大体定型,就算你做的再认真,也 是别的程序换一套皮肤,在我看来,投入成本还是换一个方面的好。想一些实用的功能,扩展一下,在完成基本功能的同时,可以给用户一个使用自己程序的理由。

5.照片处理特效。现在基本都是用开源库,主流的开源库不说了,基本都是c,c++的,只要能编译成功,基本没啥使用难度了。问题在于处理图片的效率上。

6.安全性。像我们公司为了加强用户密码的安全性,特意买了ssl,为的就是让用户的账号更安全。而open api使得我们没法控制,所以最好使用oauth认证,以及不要将用户的账号暴露在缓存之中,这些都会增加风险。

 

摘自:http://www.minroad.com/?p=291

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值