西祠版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提供相应的服务,并且在后台自动完成授权。

楼层的展示,我们遇到了一种更大的难度。我们希望有一种更适合移动手机的阅读帖子的方式。 我们考虑过看图说话模式,结果图片处理难度较大,文本的编排恐怕用户也很难拿捏长度。 图文混排的话,对列表的要求则更高。 我们仔细参考了业界APP,19楼的做法是把图片大小放在图片URL上,这样就可以轻松的计算图文混排,可惜我们西祠的图片架构没能改造彻底,无法支撑。而且19楼为了图文混排,第一页只能看楼主,和几个沙发。汽车之家,威锋,索性就是内嵌网页,豆瓣则是只有楼主可以发图,回复纯文字。 我们看到了iCloud照片流分享照片+评论的模式,甚至为此争执了数天,结果依然应该革新力度太大而害怕丢失普通用户。 最终,我们敲定了一种类似facebook照片流分享的方式,竖着的是时间轴,横着的是胶片卷。这样用户可以不需要翻很多页的情况下,直接看完所有图片。但是创新的显示方式,让那些过去习惯于PC网页上放一段图,写一段话的帖子彻底失去了可读性。经过我们痛苦的挣扎,我们毅然选择了这样的方式。因为,用户的行为习惯是受呈现方式而带领的,当排版变化,也带来了新的乐趣,新的表现形式,我们不可能死守着过去传统的好,又渴望追上移动互联新时代。

楼层的排序,我们也进入了深入的讨论。过去的方式,猫扑有这样的统计,若前7层楼未出现精彩回复,那么这个帖子就很少有人继续坚持读下去了。过去也常常抢沙发,抢板凳为荣。但是,精彩的内容我们并不知道会出现在几层楼。于是我们看到网易新闻评论,是顶得最多的,排在前面。 关于这个,说起来就是智能时代与工程师文化的分界点。 工程师总是说按照时间排序,按照最后回复排序,满脑子都是按照0、1分类。殊不知其实有一种智能排序,他介于0,1之间。依靠最适合自己的策略排序。可能是访问量,可能是公正性,可能有版主设定,可能有顶贴热度排序,这么多因素加权综合后,这才是最适合人的行为习惯。 但是网易新闻有个弊端,都是最爆笑的评论在最上面,理性的声音渐渐无法得到人关注,最终网易新闻成了一块戏子和普度大众的嘲讽类娱乐APP,看久了笑话和指桑骂槐,也觉得挺没劲的。

关于代码结构上,我也做了大量的取舍和精简;当下非常很流行左滑回退的导航动作,但是开发成本非常高,后期维护需要大量的人力。因为彻底抛弃了系统自带UINavigationcontroller,完全自己模拟。而且很多开源的架构,没法跟Storyboard结合,或者结合后,再自定义的空间又特别少。考虑再三,在人力不足的情况下,我们选择了用ios7自带的左边滑动后退,ios6干脆就放弃左滑后退。实际情况是,很多项目大量的代码浪费在兼容旧系统,为了让每个系统的UI体验一致,浪费巨额的时间。我觉得是非常不值得的。不同的操作系统,就该不同的体验。为了体验的一致性,要付出工程师巨额的代价,而且随着系统升级,每次都会疲于奔命。

数据的结构上,我们使用了CoreData,为的就是让用户在地铁上也能看缓存的帖子。这使得整个APP就是不断的把本地的数据与服务器同步就可以。这很节省流量,也提供了优异的体验。我看同行的很多APP,都是每次打开新界面,重新加载一次,流量浪费非常大,还不支持离线浏览。 接口的优化上,我们做到了全项目就一个网络操作类,优异的封装和整合,使得接口数降低了,代码阅读性提高了。不像有的项目,登陆一个LoginAPI.m,注册一个SignupAPI.m,代码冗余而且维护性极差。

尽管如此,流畅的体验,其实只是业界标配,属于基本功。作为一个社交产品,必须要提高大家的UGC,鼓励用户发帖分享体验。 那么怎么鼓励用户发帖,这其实很有一门学问。 我们既不希望满论坛全是广告贴,大V,也不希望没有了大V就很冷清。那是不是真的网络活跃离不开标准的1%发帖,99%的看帖的定律呢?我们相信,是可以另辟蹊径,走出另外一条道路的。 一个人在网络上表达欲是被限制的,是冷清的,偷窥欲却是随时可以爆发的。但是,如果一个人在听歌、听一段话、玩一段游戏、被人激怒后,表达的冲动就非常强烈了。总结起来,很少有人凭空无病呻吟,但是很多人在action之后,是有react的冲动的!利用好这个冲动,这个论坛的热闹就不再是问题。加上论坛的匿名性质,兴趣分类,这个论坛就可以搞得非常活跃。

譬如我看到学生在被校长整体搜身找私人物品的时候,就集体选择到论坛发泄;有人遇到碰瓷的,选择到论坛伸冤;公共事件很容易把一群人凝聚到一起,他们可能互相不认识,但是通过这次事件走到了一起。把握好以各种兴趣、事件为索引的人类集合,既而开展社交,是很不错的方式。华侨路茶坊论坛中,但凡是房地产开发垃圾,物业垃圾的,论坛里活跃度就非常高,相反看一些高档楼盘,就非常冷清,几乎没有人发帖投诉、抱怨,应该就是佐证。

在WEB 2.0的一些网站上,把这个action-react利用的最好的便是豆瓣、知乎问答。因为有了问题,回答的表达便水到渠成。UGC自然会显得很高,尽管如此,EGC来做榜样,带动大家是不能忽视的,关于UGC始终不如EGC好,可以参考优酷是怎么用高质量影片打败草根土豆的。

说了这么多,仔细想想,论坛的未来并不会没落,只是没有人才把论坛带领走进移动互联网。他是社交,是媒体,是兴趣小组,是商家的粉丝群,是热爱生活并且乐于分享点滴的地方,我们只需要把论坛带入下一阶段,下一个时代,在移动互联网时代,用当下流行的方式带进论坛。他便自然会开花结果。

附录:

西祠版APP开发2013年底告一段落,大约8000行代码搞定!费时2个半月,共计代码3W行,排除掉第三方库则是8K行,再去掉自动生成的壳子大约7K行。以66天工作日来算,每天实际写代码100多行。性能各种超越微博啊,秒杀汽车之家,威锋,19楼等等论坛APP。我真机iPhone 4测了一下大约57帧,黑色部分连绵而整齐,画面那叫一个流畅。性能各种优化,堪称APP中的战斗机。。。 具体截图看微博