###引言

最近在开发APP的时候,一直在想,有什么平台既可以完成信息推送的任务,又可以帮忙发送消息和分享信息图表?最好就可以完成统计渠道数据的任务。一方面,开发时间短,另一方面,老板需求多,这个时候我是很头疼的。

###介绍

一般来说,推送消息,我们一直都在用极光。但老板一直认为,渠道统计和分享需要开发人员自建平台来做,这样才可以输出给运营人员,监测效果。但是时间就是金钱,效率就是生命,节省开发人员的时间,就是节省很多钱了。

直到有一天,偶然发现极光竟然有即时通讯和统计的功能。我突然就把擅长即时通讯的容云和统计的友盟给抛弃了。因为一个平台集成的功能,更容易让我集中精力去完成任务,而不必花太多时间去研究其他平台的功能。

###选择

有人说,如果同时集成了几家服务商的功能,虽然在某一方面是很强势,但是却增加了其他方面的成本,比如开发时间成本,沟通成本。

对待这个问题,很多服务商都开始提供一整套的服务,来不断降低企业的开发成本,提供适合更多企业的需求功能。

对接入方来说,只需要按照接入文档,去使用一些已经定制好的方法就可以实现自己的需求。

对于个人开发者来说,只申请一个平台的开发者,要方便许多。如果申请多个平台,一方面账号审核,管理起来不方便。并且文档风格也各有千秋。

###使用

下面,就是自己的使用后的干货了。最近自己想写一个即时通讯的项目,因为接触极光比较多,所以就基于极光来开发

其中用到的服务包括:

  • 推送:极光推送(JPush)
  • 即时通讯:极光IM(JMessage)
  • 分享:极光分享(JShare)
  • 渠道统计:极光统计(JAnalytics)

还有一个是验证码(JSMS)服务,因为项目中暂时没用到,所以就没集成

极光相关产品简介

  • JPush 推送

    JPush 是经过考验的大规模APP推送平台,每天推送消息数超过5亿条。 开发者集成 SDK 后,可以通过调用API推送消息。同时,JPush 提供可视化的web端控制台发送通知,统计分析推送效果。 JPush 全面支持 Android, iOS, Winphone 三大手机平台。

也是极光系列最早的产品,当遇到应用被杀死的情况,如果单方面集成过极光推送的话,App 之间可以相互之间调起。但是只对 Android 有用,而且还有个弊端是,不同 App 相互之间的唤醒会占据手机内存,而使得手机越来越卡,不过你可以选择不使用拉起功能。

  • JAnalytics 统计

极光以提供更加全面的开发者服务为目标,利用极光推送的数据和网络优势结合更丰富的功能,推出了极光统计(英文:JAnalytics)。极光统计为独立的统计 SDK ,让开发者可以更便捷的集成无需依赖 JPush 可以单独使用。通过简洁直观的数据报表帮助开发者了解用户的属性和使用情况,优化用户体验,为企业决策提供有效的数据支撑。

目前Android市场渠道大大小小有几十个,常用的也有七八个,有时候需要获取更加详细的数据,包括用户在不同设备和商店的行为分析,更新频率,和一些体验报告等等。

选择一个统计是很有必要的,毕竟现在是大数据的时代,任何产品的发展都需要以数据为支撑。

  • SMS 短信验证码

极光面向开发者提供短信验证码服务,主要包括:

  1. SDK 短信验证功能,满足 App 短信验证需求。
  2. REST API 短信验证,主要满足网站和其他终端访问需求。

验证码注册服务是每个用户系统必用的功能,一个好的验证服务更看重的是验证码的收发时间,一个验证码如果超过60秒,用户的流失几乎达到90%,很少有人会为了一个未知的服务而消费这么长的时间。

从开发者角度来说,易用性,和及时性同样重要,易用性是指要开发这个功能所消耗的工时。及时性就涉及到验证码发送,和接收这其中的时间差。同样一个技术团队的测试人员要频繁的测试功能,如果时间太长那么就会影响工期进度。

  • JShare 分享

极光 Share 致力于帮助应用快速具备国内主流社交平台分享和第三方登录功能,提供新浪微博、QQ、微信等第三方社会化服务;SDK 包体积小,集成成本低,提供 iOS 和 Android 的 SDK ,并且还提供了统计功能,方便开发者了解应用的分享效果,提高产品推广效率,助力产品获得更多用户。

大多数分享,都是自己去申请第三方分享接口,然后一个个调用。

极光分享则是在分享的基础上,给提供了一个总的控制台,我们不需要单个的去调用。而这些需要分享的内容,直接通过JShare来操作。

  • JMessage 即时通讯

极光 IM(英文名 JMessage)致力于帮助 App 解决应用内聊天和跨应用聊天问题,开发者可集成 SDK,快速实现稳定可靠的聊天功能。目前提供 iOS / Android / web 的 SDK,以及 Rest API 和后台管理系统,满足开发者不同场景下的需求,大大减少开发成本,提高效率。

如果一个企业要从零开始做一个单纯的即时通讯,就需要后端开发人员和前端相配合完成需求。但是如果不是一个以聊天为主的项目,像脉脉,京东客服这些,需要一个简易的交流功能,其实用第三方是很容易实现的。

前端人员完全可以根据开发文档来进行,目前我在写的即时通讯Demo就是完全基于 JMessage 所开发。基础的好友关系建立,资料系统,和即时对话功能已经实现。高级的比如语聊、群聊等功能

###总结

在使用极光 IM 的时候,需要本地存储用户的登录信息,和一些基本资料。这些数据需要在多个地方调用,首先想到就是建立本地数据库。

但是通过文档发现,这些操作,在集成的包中已经实现了该功能,对很多数据的增删改查,真的只需要一行代码。

对于一个新接触的领域,其中最重要的是易用性,用户在使用的过程是否流畅,是否遇到了问题,提出的问题是否及时处理了,这也是我们选择极光的一个原因。

每次遇到解决不了的问题,去论坛反馈,几乎都不用等待很久,就能得到答复。

另一个方面,文档的可读性,和对应的 demo 的跟进,能在很大程度上节省开发时间,提高开发效率。