寻找成套的 App SDK 服务

前言:

对于开发者来说,三方SDK这个词已经是一个不需要任何解释的词语了,然而我想面对琳琅满目的SDK产品,大家都会纠结如何选择。那么选择一个SDK需要注意哪些问题呢?SDK稳定易用 需要持续更新功能 BUG修复效率高 开公司不像开玩笑(说倒闭就倒闭了) 售后Kill问题的能力 与自身需求的契合度等等...最后,还有一个选择点让人容易忽略各个SDK的统一性 也就是在其功能相对OK的情况下,尽量使用同一厂商提供的SDK。 为什么这样说?我想每个开发者都有到各大平台去注册开发者账户,然后申请应用这样的繁琐操作,如果你有5个功能采用了5个公司SDK,我想,真的是一件让人抓狂的事!不仅如此,对代码的管理、项目维护都是一件相当麻烦的事。 综上,我们期待有一个能够解决多个功能的三方SDK

在这种成套的SDK公司的选择上,也让我纠结很久,有些公司做的很单一,有些公司SDK不符合我们对SDK处女座般要求。后来在公司维护推送的时候,偶然发现极光对其他服务(IM通讯 短信下发 统计 分享)的支持,心中顿喜。仔细研究后,确实没有让人失望。

既然是成套介绍,还是先说极光推送

想了半天都无从下口,因为实在太出名了。我是个iOS开发者,我个人在使用极光推送的时候,也写了一篇总结性技术博客,若有兴趣可以查看。 首先看一张极光官网展示的图片

image.png

都是知名App,也让我们对自己的选择有了不少信心。 JPush提供四种消息形式:通知 自定义消息 富媒体 本地通知 再来看一张JPush的运行流程图

image.png

简单来说,通过自己部署的服务端与极光云端传讯,极光通过两个渠道与手机传讯。因为是说明文,我就不贴代码了,具体实现和使用请看官方文档.目前我自己公司是正在使用极光推送,准时准确率是非常高的,也很容易管理消息。也是因此,让我有兴趣看向极光的其他产品。

极光IM

看到极光推出即时聊天,很让人惊喜,但又觉得似乎本应如此。因为极光推送这么强大,那么理应推出同类功能的即时聊天。

值得一提的是,极光所有的SDK都是模块化的,即不同需求可分开实现。看下图,你就明白,这样的好处是,解决了SDK的臃肿也利于低耦合。

image.png

对于聊天,我想大家和我一样关心一个问题,提供聊天UI工具吗?也不能说我们开发者懒,毕竟这个东西自己写实在是费事,对于现在部分公司的快速开发要求,明显是吃力的。好消息是,极光提供UI工具类,但是可能大部分人说了,在哪?我怎么没见到。其实这个工具被极光开源在了他们的GitHub。iOS方面是使用Swift编写,直接开源,终于又有看大神源码的机会了。

另外,我在查看JMessage集成文档的时候发现,他们的iOS代码文档是采用Appledoc编辑的,简单来说就是苹果风,我们都知道苹果在文档方面的编写是相当卓越的。

极光Share

说到极光社交,大家可能会说,我使用了友盟社交,也很不错。的确如此,不过这不符合我们对套装的要求,既然极光提供社交分享,为何不用呢? 分享其实是一个不复杂的功能,但是集成却挺麻烦,这里不是说SDK,主要是个大平台的注册,真的多,我自己公司分享5个平台,每个平台都要去拿AppKey,这样是没办法的事。分享代码示例:

JSHAREMessage *message = [JSHAREMessage message];
    message.text = @"JShare SDK 支持主流社交平台、帮助开发者轻松实现社会化功能!";
    message.platform = JSHAREPlatformQQ;
    message.mediaType = JSHAREText;
    [JSHAREService share:message handler:^(JSHAREState state, NSError *error) {
          NSLog(@"分享回调");
        }
    }];

在三方登录方面,相同的,极光也提供了一个总体的回调函数,不管什么平台登录都会回调这个函数,在里面拿到平台用户的名称 头像等信息。

[JSHAREService getSocialUserInfo:platfrom handler:^(JSHARESocialUserInfo *userInfo, NSError *error) {
        NSString *alertMessage;
        NSString *title;
        if (error) {
            title = @"失败";
            alertMessage = @"无法获取到用户信息";
        }else{
            title = userInfo.name;
            alertMessage = [NSString stringWithFormat:@"昵称: %@\n 头像链接: %@\n 性别: %@\n",userInfo.name,userInfo.iconurl,userInfo.gender == 1? @"男" : @"女"];
        }
        UIAlertView *Alert = [[UIAlertView alloc] initWithTitle:title message:alertMessage delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
        dispatch_async(dispatch_get_main_queue(), ^{
            [Alert show];
        });
    }];

极光统计(JAnalytics)

极光统计提供了 页面统计 地理位置统计 崩溃日志统计 购买统计 登录统计等等....前面列举的都是我们平时开发常用的。

对一个公司来说,想了解用户对自身产品的回应度,统计是必不可少的。我记得马云在一个节目里面说起大数据的好处,他问自答,你们知道那个省的女人胸平均最小吗?浙江省。虽然是个活跃气氛的玩笑话,确是个真实的玩笑话,足以说明了数据的重要性。

极光统计可帮助开发者了解用户的属性和使用情况,优化用户体验,为企业决策提供有效的数据支撑。

简单说下用法
页面统计,在这两地方调用方法就能记录用户进出页面的路径、时间了
 - (void)viewDidAppear:(BOOL)animated {
    [JANALYTICSService startLogPageView:@"first_page_flow"];
}
- (void)viewDidDisappear:(BOOL)animated {
    [JANALYTICSService stopLogPageView:@"first_page_flow"];
}

崩溃统计、就一行代码
    [JANALYTICSService crashLogON];
地理位置统计,更新位置后调用以下代码
    CLLocation * location = [[CLLocation alloc] initWithCoordinate:CLLocationCoordinate2DMake(116.46, 39.92) altitude:50 horizontalAccuracy:50 verticalAccuracy:50 timestamp:[NSDate date]];
    [JANALYTICSService setLocation:location];

使用都相当的简单。

极光短信

短信通知,这使用率实在太多了,生活中各种短信验证码横行无忌,已然成为了各种产品会员注册、商品推广的重要渠道。 在我的公司,短信下发都是有后台开发者统一管理的,前端人员调用接口即可。 极光短信提供 文本短信 语音短信 单条模板 群发模板等发送场景

来看下极光短信提供给服务端调用短信的API

image.png

image.png

返回示例

发送成功
{"msg_id": "288193860302"}`
发送失败
{
    "error": {
        "code": *****,
        "message": "******"
    }
}

具体开发文档请点击这里查看

总结

以上介绍了极光平台提供的推送 聊天 社交 短信 统计功能,这些功能都是我们App开发中最常用到的一部分功能。而极光在这些服务方面做的都是不错的,当然,除却推送的高知名度外,其他的服务似乎不那么被人所知。就像如果你不看这篇博客,可能你并不知道极光有自己的GitHub开源代码。

在这个各种SDK层出不穷的互联网中,各种竞争日趋激烈,但不论如何,我们开发者所关注的永远是优质的代码与售后服务。最后,期待极光的这个套装在穿在我们App身上的时候,让我们觉得越来越舒服、越来越轻快。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏华章科技

Gartner:2017年十大战略技术趋势

投稿和反馈请发邮件至hzzy@hzbook.com。转载大数据公众号文章,请向原文作者申请授权,否则产生的任何版权纠纷与大数据无关。

873
来自专栏求索之路

从零开始写一个抖音App——开始一、写在前面二、项目概述三、尾巴

1241
来自专栏较真的前端

怎样才算是个出色的移动网站[译]

2065
来自专栏织云平台团队的专栏

腾讯云运维干货沙龙-海量运维实践大曝光 (三)

12月16日,首期沙龙“海量运维实践大曝光”在腾讯大厦圆满举行。沙龙出品人腾讯运维技术总监、复旦大学客座讲师、DevOps专家梁定安,讲师腾讯手机QQ运维负责人...

7291
来自专栏开源项目

码云周刊:谷歌 Chrome 新功能曝光;GitLab 称有 707 位用户超 5000 个项目丢失数据;下一代PC是这样的

1、2017 码云招聘-被窝已暖,漂洋过海来睡我 好吧,我承认这是一则寻人启事! 既然来了,何不今日将咱们彼此之间纯洁的革命友谊升华一下?外面冷我已将被窝暖好...

32811
来自专栏Crossin的编程教室

个人开发者如何申请微信小程序

作为一个间接性拖延症患者,直到昨天微信小程序疯转之后,我才想起来去做个 demo 试试。 把之前的 python 网页编辑器(公众号最右菜单栏->在线编程)移植...

3816
来自专栏知晓程序

好奇心日报的 App 和小程序,你会选哪个?

1666
来自专栏非著名程序员

一个 Bug 引发的思考(超赞的文章)

? 写在最前面~ 这篇文章是对前端定位方案的一篇总结,平日我们在前端开发过程中针对定位问题不会专门专注内部的实现原理,会直接调用封装好的库去实现定位能力。这样...

2688
来自专栏SEO

「SEO技术」14种搜索引擎优化技术详细解说

正如没有静止不动的河水,我们生命中的每一个时刻,都联系着过去与未来。唯有心中时时有着想要抵达的地方,才能顺着时间之流的力量,在不确定性中有所把握、有所坚持,一点...

1330
来自专栏前端黑板报

全栈工程师权威指南

根据 Stack Overflow 2016年开发者调查显示,全栈工程师是最受欢迎的开发者职业。毫无疑问现在有许多在线或个人课程来帮助程序员成为全栈开发者,甚至...

20411

扫码关注云+社区