iOS列表UITableView提速指南

##UITableview 从08年到现在开发过的iOS应用不计其数了,但是面试很多人的时候,发现依然很多同学在最基本的列表控件上懂得不够深,下面就结合各方面的资料进行再一次讲解。 我们都知道纯代码是效率最高的,但是在开发成本上已经越来越不如使用Storyboard性价比高,速度快,所以本文试图结合UIStoryboard来描述一整套方案。 ###简单配置 在Storyboard中拖入UITableViewController,并且修改涂涂画画 在代码区new File生成一个基于UITableviewController的自定义类,我这里暂时取名为Home。因为主页就是一个复杂的列表的不在少数吧?呵呵。 然后在Identity insepctor里修改对应的Class name,使得代码与Storyboard产生关联。 想要做下拉刷新嘛?系统自带了一个给你,并且可以自定义换标题哦。很多人真的不知道在哪儿选中,请看下图,先选中UITableviewController,然后在选项卡中enable这个refresh选项,就自动完成了。 对应的代码还是复制进去,就会自动触发。 然后你需要对UITableView做一些简单的配置,首先要选中UITableView,很多人看不到选项,是因为默认关闭了。。 下图是对UITableview的简单配置。 Content是动态列表/静态列表,如果是静态的,那你基本不用写代码就能所见即所得,譬如“设置”页面就可以套用。但是诸如微博啦,朋友圈,还是老实的用动态列表,用代码控制。 Prototype Cells指会出现的cell有几种类型。这个后面再讲。 Style效果现场试一下就看出来了 Separator指的分隔行样式。 然后你就需要代码中做一些简单的配置了,我只列重要的,这里不是基础教程,基础的还是老实的看教科书 - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView //几组 - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section//每一组分别几行 -(CGFloat)tableView:(UITableView *)tableView...

《悲催世界》《平凡的世界》有感

第一次看电影版《悲催世界》就有震撼到,芳婷的一句“don’t you know you are make love to a body who is already dead!!” 把看得略微昏沉的我猛然惊醒,简直吓住了!后面的情节也非常符合常理,一点也不做作,这让我非常后悔没有用心看下去这部文学巨著。 看完更多的是震撼,这是完全超越心中曾经排名第一的《红磨坊》的一部反映社会的大型歌剧,很长一段时间,我都在默想,咱们中国社会跟当时法国大革命时代的社会有什么相同,有什么区别。社会同样存在深刻的偏见,巨大的贫富差距,人民对公平、人权、民主的渴望,相爱的人因为门第差距无法走到一起,男娼女盗,道德良心水准一降再降,法律惩罚成了统治者手里的工具,等等。 当然这些都是零星的闪现着对比,直到有一次豆瓣自动推荐了一次《 Les Misérables: The Musical That Swept the World (10th Anniversary Concert at the...

西祠版APP之感慨--论坛的第二春

论坛从互联网初期的极其火爆到中期的渐渐分化,到至今的不瘟不火,似乎人们已经渐渐将他遗忘。 很多时候,我们的注意力被微博、微信、淘宝给吸引着,大家再也不去逛论坛了。 一晃就是10多年,西祠15年庆不断暗示着时代的变化之快。 我入职西祠当时的状况大概就是这样,一颗枯树,年事已久,却依然有一批死忠用户天天刷论坛,数量不多,但是足够养活滋润。回想我当时听到这个网站的用户数时,我依然很诧异,怎么移动互联网时代会依然还有几百万人喜欢逛西祠? 既然要来大干一场,必然要好好思考论坛的未来。 以前先后火过的论坛,猫扑、天涯,写手云集,discuz论坛各种垂直领域,威锋论坛,汽车之家,19楼,各种论坛,当我翻开他们的APP的时候,我被震惊了,居然都没有一个高品质的论坛APP,难道论坛都不喜欢拥抱移动互联网吗?痛定思痛,我们还是要好好的深刻的理解用户需要什么。 社交首先是人类永恒的需求,有强关系的社交网络,诸如微信,人人网,也有强媒体属性的微博、博客,也有强调弱关系的陌陌,豆瓣等等。 人类的社交需求从来都不是集中在一个方面,人格是多样性的,每个人都有不同的人群中不同的性格特征。有的人办公室里是ugly betty,饭桌上是行侠仗义的兄弟,酒吧里是乱来的独狼,是爸妈面前的乖乖女。这些都决定了人不可能一直混一个社交网络。丁磊关于易信的评价提醒了我们,人不会当着朋友的面做丢面子的事,但是却能在不认识的人面前做出无耻的事。都是因为强关系、弱关系的问题。人找工作都是弱关系起作用,强关系反而容易犯冲。 所以论坛可以满足一些这样的需求,兴趣小组,垂直人群(诸如学生),明星后援团,母婴分享,亲子花嫁,狗友会,车友会,1912酒吧一条街活动等等,这些需求并没有消失,只是他们用手机上网后,需要一款给力的移动APP来承接以前的老关系,老朋友,而不是到微博、微信关注那些新大V,新公共账号,他们不喜欢用手机浏览器打开网站。 于是,我们拿出来了看家本领,重新打造推翻设计,改造新版论坛APP的呈现方式。 结果第一棒就迎面而来,那就是论坛是有翻页需求的,继而导致整体后台都是围绕翻页这个需求来设计的架构。手机却是列表式的,是下拉刷新,上拉加载更多的,这是一个无缝的列表,可以无限刷新。 我纵观了猫扑、天涯、威锋网、汽车之家,他们无一例外的选择了继承老式翻页技术,在巴掌大的屏幕上放了“上一页”“下一页”“页码输入”等等。用户体验可想而知。不过汽车之家的翻页体验倒是改进的不错。于是我们做了精确的算法,保证按照列表刷新,同时也妥协了后台的架构,但是依然用翻页的API去请求数据,只是呈现起来掩护的非常精妙。 论坛是有标题、有内容的表达方式,区别于微博的一段话的表达形式。现在人已经越来越懒,更不可能在发帖的时候思考一下标题是啥,内容是啥,于是我们想了一种第一行40个字以内默认截取为标题,但是未来趋势肯定是越来越多的用户直接发内容,无需发标题。相比之下,天涯至今依然给了2个输入框,先写标题,再写内容,这样的网站不倒闭才怪。 内容的呈现方式,我们大胆的采用了不定高度的卡片,这一步策略是有危险的。要知道列表的滑动畅快很大程度决定了用户会不会长久的玩下去。 我们知道iOS的游戏有60fps才叫流畅一说。其实APP应用也是这个道理,1000毫秒60帧,平均每帧16毫秒,也就是说你在每16毫秒内动态的画面计算不出不来下一帧,你悲剧了,你的APP很卡,用户滑动几下后就可能觉得视觉很累。 那么列表类的应用,滑动流畅决定性因素是什么呢? 1.列表的每一行的高度,固定高度则流畅,不固定高度则需要优化才能流畅 2.列表的每行的元素复杂程度,内容越多越花哨,越复杂。 3.下拉刷新、加载更多的触发机制 4.图片异步下载 我曾经偷懒的建议产品向网易新闻客户端学习,他们的新闻列表经过编辑后,行高是固定的,列表简洁明了。但是跟产品交锋后,还是觉得要啃下这块硬骨头。 于是经过大量的使用autolayout后,已经较流畅,较便捷了,加载20条带图的不定长度新帖子只需要半秒钟。但是总感觉新的帖子加载更多之后,总是有卡顿现象。经过Profile之后,发现大量时间耗费在帖子自动布局算高度上了。后来,咬咬牙,干脆手动计算高度存档,于是我们做到了加载300层帖子只需要1秒钟。这还是在古董机iPhone 4上实现的。我们发现甚至做得比网易新闻客户端还要快! 我坚信一个好的简洁、畅快的产品,不应该跟微博一样卡,跟QQ一样卡。他们启动APP要10多秒,刷个帖子列表聊天记录,跟死机了一样。这样的APP,如果有其他选择,有谁会用?!同样花哨的界面,同样各种业务逻辑,同样动态高度,我们做到了超畅快淋漓的体验! 我清晰的记得,列表的日期有“刚刚”“几分钟前”“今天几点几分”“某日几点几分”的时间表示方法,以让用户更加方便易懂。但是这个时间计算几乎是无所不在的,小小的判断可有大学问。if else的先后顺序,都要根据统筹学设计,让经常会涉及到的范围优先进入判断跳出。我记得profile后本来4毫秒的计算压缩到了1毫秒,对于动辄几十行的列表来说,每一次计算累加起来就有很大的区别。 再谈到微博分享,是分享到社交,引导其他社交网站朋友加入我们APP的方式。很多APP都有一键分享,实际体验很值得考究。若是SSO第三方APP授权,则存在APP流失率,说白了我们都是在为微博、微信打工,却鲜见流量返回。用户也越来越讨厌各种第三方邀请加入的APP。于是也有小心眼的APP开发商,选择在网页内输入用户密码登陆微博,用户频繁,体验之糟糕,罄竹难书。应该提出一种纯粹的第三方认证机制,由苹果iOS负责垂询支持此服务的应用数量,由用户指定相应的APP提供相应的服务,并且在后台自动完成授权。 楼层的展示,我们遇到了一种更大的难度。我们希望有一种更适合移动手机的阅读帖子的方式。 我们考虑过看图说话模式,结果图片处理难度较大,文本的编排恐怕用户也很难拿捏长度。...

重谈交友社交产品类设计

如果说以结婚为目的的交友才不是耍流氓,那么偏偏有很多人需要一种耍流氓的产品来满足需求。 那么这样的产品,往往都有那些需求呢? 缘分 没有互联网的时候,耍流氓靠的是眼神,情书,机缘巧合。那时候人保守,妹子骚也不好意思说出来,要么忍要么滚,大部分都忍下来变成了怨妇,把感情寄托于下一代的成长。 从QQ第一代开始,随机刷一批人,管这个叫缘分,加为好友就开始慢慢培养感情,然后继而见面开房。后来的微信摇一摇,都满足了随机的特征。人是有一种相信这种缘分的,人是害怕主动找上门的,怕找事儿的。“随机=缘分”这一特性利用的很好。 2.私密性与安全感 但是随着QQ软件发展,渐渐的沦为主流沟通工具,谈恋爱反而不是主流方式了。这时候互联网渐渐发展火爆,各种论坛遍地开花,交友群继而诞生,可是群交友,总是不好意思嗒,中国人害羞,做啥都遮遮掩掩,哪敢光明正大的到群里约炮?不怕是公共汽车么?强调人的类别,很重要,人最怕跑到一群不知根知底的里面,生怕会出事。安全感很重要。 渐渐的微信为代表的LBS应用开始火爆,手机的GPS属性,更容易把附近的都想约会的人联系到了一起。刚开始还非常火爆,渐渐的微信又沦为工具了。因为渐渐的,人不敢摇一摇,不敢查看附近的人,因为万一遇到熟人怎么办?所以私密性也非常重要,必须不能有太多熟人。所以大家要好好重新考虑一下微博、微信第三方登录的必要性哦。 3.满足彼此的幻想 SNS类校内、开心网发展火爆,抓住了学生的属性,纯情、激情、不负责任、不计代价是主要特征,网站私信交友成为了主要途径,谁不喜欢单纯的大学生漂亮妹子呢?所以,我是不看好校内改名人人的。因为完全背离了大学生妹纸的特征嘛! 与此相比,很多产品都或多或少的满足了意淫幻想。譬如汽车之家的“我的媳妇是车模”满足了人妻的幻想,一些车友会满足了对身份的崇拜,一些法语学习会满足了对浪漫异国的憧憬,等等,不一一举例了,在美国有些异地旅游交友好像也是蛮刺激的社区哦! 4.避开性别配比失调 俄罗斯很有名的Chatroulette视频聊天网站,国内也有类似的文字的,视频的,基本都是每个人看几秒就挂了,遇到男的一半都在撸,女的基本都在发春。这网站很火爆,但是有一个问题,就是男人太多。国内这个类型的网站同样有这个问题。 这些产品,都是男人太多,女人太少。产品设计本来就不怎么讨女人喜欢,再加上女性人数少,还有这么多男性围着骚扰,最后就走向了全是男的在撸,女人就成了凤毛麟角了。 我觉得在这一点上,酒吧是成功的典范。从来没人发现酒吧男女比例失调。 因为他们做到了男100,女免费的收费模式。在线的完全也可以这么做到,譬如mailbox的排队制,或者VIP插队制,或者56视频的撒花制,或者QQ游戏平台的VIP入场,这也是一个商业模式哦! 5.拿捏住外貌协会 我们都知道看照片选人,大部分人只跟美女聊天,不喜欢跟丑女多聊几句。实际上,大家都结婚了,丑女也嫁掉了。这是为什么?那就是感情有了投入之后,母猪也在那个人心中成了女神。 所以直接开门见山的就给对方看照片,结果就跟会所挑小姐一样,丑女没人要,美女大家围着抢。这个产品的活跃度就只剩下了1%的女神和99%的屌丝围捧,其他人选择了默默离开。这个可以参考陌陌的产品感受。 与外貌协会的只看照片挑人,实际上人与人的感受远超过了视觉,有声音,味道,触感,以及很私密的。。我就不说了^_^!直接上来就挑人照片,显然是不对的。现在有个比邻这类APP,也不错,直接打语音的电话给随机的陌生人,很不错。他们有个奇特的属性,声音,这个东西是可以带来想象空间的,视频却很实在。如果实实在在的约炮,99%会看了对方后,想再换个人再说吧,这个看不顺眼,但是语音却会实实在在留住人。如果对方声音跟林志玲一样嗲,但是长相只能打个7,8分,我想你一定会留下来继续促膝长谈。 我说这些并不是说外貌不起作用,而是要留住用户,可以考虑先用其他信息产生更多粘性。 最终总结下: 说了这么多,关于交友这个恒久不变的话题,永远存在的市场,天朝社会浮躁,道德缺失,贫富悬殊,更是这个市场天然的温床。我想未来趋势一定是每个产品都有每个各自的生存空间,并且持续的发展下去。

KPI考核真的有用吗?

所谓KPI考核,大概就是流行遍大江南北,政企业都争相拥抱的考核制度。从西方引进,在国内各种公司里像传染病般流行。 KPI有用不有用,我们要先看看KPI到底是干啥。 KPI,大概就是给员工定期考核,规定好加分项,扣分项,最终累积打分,按照总分值范围来论功行赏,或者处罚。 说白了,这是一个赏罚制度。目的当然是让公司员工更加勇于创新,做好业绩,增长壮大。 但是这就涉及到2件事。 第一,规则谁来制定? 规则往往都是管理层制定。人来制定的话,就存在制定标准是否公平,是否激进。这两个是矛盾的。 公平,则是鼓励平庸,照顾大家嘛,挣钱了肯定要大家分享,打击了创新。 激进,鼓励了创新,伤了平庸的大多数,人拍屁股走人的比较多。 所有的这些KPI,最终都涉及每个员工的利益,说白了无非就工资多少,年终奖多少。既然这些都是人为制定,为嘛人不能直接一步到位谈工资,谈年终奖。难道有些“温柔”不好意思撕破脸的老板,非要老费周折通过制度赶人走?如果你是私企老板,你完全可以赶人走啊!噢,不行,有劳动法规定,不是随随便便就能赶人走的,必须用制度、规章,符合某些规定才能合理的赶人走。这不,KPI是应对劳动法裁人限制的啊! 我也跳过很多槽,见识过很多公司,真正牛逼的人,都不怕考核,都不应对考核。真正工作同事的挫人,都是最终离开了,不管是被离职,还是主动混不下去。所以,KPI要了何用? 我们社会上,用曲线分布来描述人的话,肯定大部分的是平庸的,无非干活勤快点的,干活懒惰的,聪明的,愚笨的。曲线是平缓的,真正的牛逼的,往往不拘一格,完全的超越了常人的水准。肯定是突变。 这样的曲线怎么可能能用一个函数来表达?在未知的地方突然突变一下,然后在大部分都是平缓的。怎么合理的分配利益? 这个唯有人类可以。说白了,完全自由化的工作环境,以人为本的管理体制才是王道。 第二,规则谁来执行? 这就涉及到一个问题,公司本是一家人,又是裁判员,又是运动员。怎么管得好? 你看看我党,还不一样出现这个问题?就算体制内,设立单独的裁判员部门,那又如何了解细节部门的好与坏?说白了,一切都是领导说了算嘛!天朝我们天天骂的体制问题,我们大家的公司都存在呀。 那我们解决的办法无非几个,让市场竞争来筛选公司,压力直面传导到员工的身上。要么没有竞争,就是自上而下的政治学习,反思,总结问题,说白了就是习大大,毛爷爷玩的群众路线,批评与自我批评。 说白了,也论证了KPI没用。总结了半天的KPI,结果还不如直接让压力传导到员工身上实在。我就见过外包公司动态薪水的。但是外包只学了薪水的动态减少,没有动态增加。真尼玛可恨。当然,这是后话。 所以,那些依然正在执行KPI考核的公司,那些以KPI考核而谋生的裁判员,是不是觉得自己忙得都是空白,为社会平添负担呢? 趁早悬崖勒马吧!