寻找成套的 App SDK 服务

前言html

对于开发者来讲,三方 SDK 这个词已是一个不须要任何解释的词语了,然而我想面对琳琅满目的 SDK 产品,你们都会纠结如何选择。那么选择一个 SDK 须要注意哪些问题呢?前端

  • SDK 的 稳定易用ios

  • 须要 持续更新功能git

  • BUG 修复 效率高github

  • 开公司不像开玩笑(说倒闭就倒闭了)api

  • 售后 Kill 问题的能力app

  • 与自身需求的契合度等等...async

最后,还有一个选择点让人容易忽略ide

各个 SDK 的统一性模块化

也就是在其功能相对 OK 的状况下,尽可能使用同一厂商提供的 SDK 。

为何这样说?

我想每一个开发者都有到各大平台去注册开发者帐户,而后申请应用这样的繁琐操做。
若是你有 5 个功能采用了 5 个公司 SDK ,我想,真的是一件让人抓狂的事!

不只如此,对代码的管理、项目维护都是一件至关麻烦的事。

综上,咱们期待有一个可以解决多个功能的三方 SDK 。

在这种成套的 SDK 公司的选择上,也让我纠结好久,有些公司作的很单一;有些公司 SDK 不符合咱们对 SDK 处女座般要求。

后来在公司维护推送的时候,偶然发现极光对其余服务(IM通信、短信下发、统计、分享)的支持,心中顿喜。仔细研究后,确实没有让人失望。

极光成套的 SDK
极光推送

既然是成套介绍,仍是先说极光推送吧。

想了半天都无从下口,由于实在太出名了。我是个 iOS 开发者,我我的在使用极光推送的时候,也写了一篇总结性技术博客,如有兴趣能够查看。

首先看一张极光官网展现的图片

11aa3fb1685de98ace58ac920d22d32060e1fe78_1_689x488.png

都是 知名 App,也让咱们对本身的选择有了很多信心。

JPush 提供四种消息形式:通知、自定义消息、富媒体、本地通知

再来看一张 JPush 的运行流程图

2e86f79c734949ea9b888af356038005ff1e35fc_1_690x369.png

简单来讲,经过本身部署的服务端与极光云端传讯,极光经过两个渠道与手机传讯。

由于是说明文,我就不贴代码了,具体实现和使用请看官方文档。

目前我本身公司是正在使用极光推送,准时准确率是很是高的,也很容易管理消息。也是所以,让我有兴趣看向极光的其余产品。

极光 IM(JMessage)

看到极光推出即时聊天,很让人惊喜,但又以为彷佛本应如此。由于极光推送这么强大,那么理应推出同类功能的即时聊天。

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

f6922d4c3f20a98d63565aae6eef6b6181645ea4_1_690x431.png

对于聊天,我想你们和我同样关心一个问题,提供聊天 UI 工具吗?

也不能说咱们开发者懒,毕竟这个东西本身写实在是费事,对于如今部分公司的快速开发要求,明显是吃力的。

好消息是,极光提供 UI 工具类,可是可能大部分人说了,在哪?我怎么没见到。其实这个工具被极光 开源在了他们的 GitHub。iOS 方面是使用 Swift 编写,直接开源,终于又有看大神源码的机会了。

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

极光 Share(JShare)

说到极光社交,你们可能会说,我使用了友盟社交,也很不错。的确如此,不过这不符合咱们对 套装的要求,既然极光提供社交分享,为什么不用呢?

分享实际上是一个不复杂的功能,可是集成却挺麻烦,这里不是说 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];

使用都至关的简单。

极光短信(JSMS)

短信通知,这使用率实在太多了,生活中各类短信验证码横行无忌,已然成为了各类产品会员注册、商品推广的重要渠道。

在个人公司,短信下发都是有后台开发者统一管理的,前端人员调用接口便可。

极光短信提供 文本短信、语音短信、单条模板、群发模板等发送场景

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

8124fb2325ff2d1d55287bc643e8406eab8aff9c_1_689x277.png

clipboard.png

返回示例

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

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

总结

以上介绍了极光平台提供的 推送、聊天、社交、短信、统计功能,这些功能都是咱们 App 开发中最经常使用到的一部分功能。而极光在这些服务方面作的都是不错的,固然,除却 推送的高知名度外,其余的服务彷佛不那么被人所知。就像若是你不看这篇博客,可能你并不知道极光有本身的 GitHub 开源代码

在这个各类 SDK 层出不穷的互联网中,各类竞争日趋激烈,但不论如何,咱们开发者所关注的永远是优质的代码与售后服务。

最后,期待极光的这个 套装在穿在咱们 App 身上的时候,让咱们以为愈来愈舒服、愈来愈轻快。


转自:极光社区 @Raindew

相关文章
相关标签/搜索