月度归档:2014年11月

更 lean 更便捷,云代码「精益模式」上线

很多用户使用 Cloud Code 云代码 是为了在服务端提供一些个性化的方法供各终端调用,而不希望关心诸如代码托管、npm 依赖管理等问题。为此我们提供了在线维护 Cloud Code 的功能。

提醒

使用此功能,你需要注意:

  • 会替代您之前 git 或者命令行部署的项目。
  • 暂不提供 Web hosting 功能。
  • 维护的所有函数可以生成并导出一个完整的项目,供 git 或命令行部署(即将推出)。
  • 之前由项目维护的云代码方法并不会显示在此处,可以认为「定义函数」和使用项目维护的云代码是两套代码。具体使用什么代码,是由最后一次部署使用什么功能决定(「定义函数」的每一个添加、修改、发布、删除动作都是一个部署动作)。

cloud_code_snippet

左上角的「创建函数」可以新创建一个函数。中间部分是已经创建好的函数,并可以进行一些维护操作。

函数类型

有几种函数类型:

  • Function:对应 AV.Cloud.define 定义的方法。
  • Hook:对应 AV.Cloud.beforeSave 等回调定义的方法。
  • Global:对应全局变量,一些全局变量和公共函数可以定义在这里。

这些函数的使用场景和具体细节,参见:Cloud 函数

创建函数

如果需要创建一个新的函数,可以点击「创建函数」按钮,您将看到如下窗口:

cloud_code_snippet_create

您需要设置的部分包括:

  • 函数类型
  • 函数名称
  • 数据具体的代码片段(注意,你不需要输入函数定义部分,即 AV.Cloud.define(...) 部分)
  • 注释
  • 全部 OK 后点击「保存」,或者放弃编辑点击「关闭」

您可以在代码框中填入下列代码:

var name = request.params.name;
if (name) {
    response.success('Hello ' + name);
} else {
    response.error('name?')
}

点击保存后,Cloud Code 会在后台编译、保存,并将代码部署到「测试环境」,这个过程可能需要十几秒钟的时间,请耐心等待。全部完成后,页面上方会提示「已更新到测试环境」;如果有错误(比如编译错误)则会出现类似提示: 加载代码出错: SyntaxError: Unexpected token )

发布

如果函数部署「测试环境」成功,就可以点击「发布」按钮将函数发布到「生产环境」。同样该过程可能需要十几秒钟的时间,请耐心等待。全部完成后,页面上方会提示「已发布到生产环境」。

同步

对于某个函数,可能生产环境运行一个版本,而测试环境正在开发一个新的版本,两个环境的代码是不一致的,这时函数列表页面相关函数的「测试环境」按钮会变成蓝色:

cloud_code_snippet_diff_version

当您在测试环境开发完成,点击「发布」后,两个环境的代码将会统一,这时「测试环境」按钮变为灰色。

测试

如果需要测试,可以点击相应函数的「调用」按钮,你将看到如下窗口:

cloud_code_snippet_invoke

选择调用环境,并输入调用参数,点击「运行」按钮即可看到调用结果。如果调用返回的 Http Status Code 不是 200,则页面上方会提示相关错误信息。

历史版本

如果您想看某个函数之前曾经部署过的代码,可以在函数列表页面点击「历史」按钮,将会弹出类似下面的窗口:

cloud_code_snippet_history

您可以点击时间来查看不同时间部署的代码。

删除

如果您确定某个函数已经不再需要,可以在函数列表页面点击「删除」按钮将其删除。 注意 :删除后该函数和其所有历史记录都将被删除,而且不能恢复。删除动作会重新部署测试和生产环境,这个过程可能需要十几秒钟的时间,请耐心等待。

2014 年 11 月份 LeanCloud 更新汇总

11 月中旬全司外出团建,因此 11 月份上旬的更新报告就延迟到现在,和下旬的更新一起跟大家汇报。

综述

整体来说,11 月份我们主要改进集中在云代码和实时聊天,云代码增加了简单模式,用户可以直接在网页上编写和测试云代码函数函数,具体请参考 《Cloud Code 管理》。实时聊天增加了消息回执功能,单聊情况下,可以通过消息回执的通知知道消息是否送达给目标用户,并且在实时聊天的控制台增加了查询 Peer 是否在线的功能。

其次,我们还大力改进了文档,发布了 《事件流 REST API 文档》《应用内搜索 REST API 文档》 以及极大改进了 《实时通信开发指南》

此外,我们还 beta 了 WindowsPhone 的实时通信 SDK。iOS 和 Android SDK 也都一起发布了 v2.6.8 版本,修复了不少相对重要的 Bug。

另外,很重要的一点,从 v2.6.8 版本开始, 我们恢复 SDK 大小版本同时开发的节奏,Bug 修复争取做到每周发布,大版本 SDK 发布仍然遵循两周一次的惯例 ,希望能为用户带来更多帮助。

最后是一些 API 服务的 Bug 修复,详情见下文。

网站

  • 数据管理支持当存在多个必填字段时候的新增记录操作
  • 实时消息控制台增加查询用户是否在线功能(见实时通信控制台底部)
  • 云代码增加简单模式,云代码菜单增加 定义函数 子菜单,可以在线编写和测试云代码函数,详情参考 《云代码开发指南》

云代码

  • 云代码增加简单模式,并增加了 相关文档
  • 增加更多云代码服务节点,提供服务性能和稳定性。
  • 修复云代码 AV.Cloud.httpRequest 的 params 参数无效的 Bug
  • 修复云代码模块循环依赖引用会造成内存溢出的 Bug

实时通信

  • 支持消息回执功能。
  • 添加 watch,unwatch 回调,所有发送消息添加序号
  • 改进 开发指南
  • 增加签名服务详细文档和 云代码实现签名的 Demo
  • Beta 发布 WindowsPhone SDK。

API 服务

  • 修复 170 号码段手机号码验证失败的 Bug,感谢用户反馈。
  • 修复 hidden 字段没有在 master key 条件下返回的 Bug。
  • 修复 _User 表的 authData 在登录和修改后相互覆盖的 Bug。
  • 修复短信模板 200 元最低限度条件错误的 Bug
  • 改进 skip 和 limit 条件的处理。
  • 新增功能,查询指定查询字段 keys 列表,如果同时 include 某个 pointer 属性,可以指定只返回 Pointer 中的某些属性,而不是原来的全部返回。以 CQL 为例子,就是可以编写 select player.username, include player from GameScore 这样的语句,其中 player 属性是 GameScore 表中的一个 Pointer。

iOS SDK v2.6.8

  • 修复北美服务器 S3 上传文件没有保存 name,mimetype 等信息的问题
  • 修复 SNS QQ 登录部分用户获取用户信息错误的问题(昵称总是 qzuser 的问题),感谢用户反馈。
  • 修改用户反馈组件创建空反馈的 Bug。感谢用户反馈。
  • 修复 SDK 内 AFNetworking 某些变量值与公用 AFNetworking 冲突的问题
  • 修改大文件上传进度回调策略,让进度提示更合理。
  • 优化部分 uuid 生成算法,有利于减少数据传输
  • 聊天模块添加 watch,unwatch 回调,所有发送消息添加序号,direct 消息添加回执,去除不必要的 appid 来回传递
  • 修改原来的 watch 和 unwatch 为同步操作
  • 签名时间戳类型改为 int64
  • 修改 AVInstallation 数据发送策略,节省带宽
  • 修改 AVSession 操作使用后台线程

Android SDK v2.6.8

  • 增加了实时通信的消息回执功能
  • AVMessageReceiver 中增加了 onPeersWatched,onPeersUnWatched 的回调代码
  • 修正 AVObject.saveAll 在遇到同一个未保存的 AVObject 对象被多次引用时的异常
  • AVGroupMessageReceiver 中修正了 onInvited,onKicked 之前的问题
  • AVFile 小文件的自动重试
  • 增加 AVGroup 查询组内成员接口
  • 修正统计在第一次启动时缺少部分统计数据的问题,建议使用统计功能的用户升级。

JavaScript 通信 SDK v1.0.3

  • 支持超级用户,即不需要 watch 也可以给对方发送消息。
  • 支持美国节点
  • 支持群组签名服务

WindowsPhone SDK v1.2.3

  • 修改请求 User Agent,方便统计

2014 年 10 月份明星 App:挑战 Plank

平板支撑一直被公认为训练核心肌群的有效方法。挑战 Plank 是一款可以帮助使用者轻松进行平板支撑训练,有效的锻炼腹横肌的应用,他们致力于通过移动互联网让人们的身体更健康,提升全民的身体素质,从而更快乐的生活。

应用分为单次计时和倒计时挑战两种模式,并按日期形成统计图表。用户还可以通过 QQ 号码和新浪微博账号登录,将数据同步到云端,记录自己慢慢强大的每一步。应用内还增加了 Plank 爱好者交流社区,用户可以得到专业的指导,也可以随时分享自己的健身经验,畅聊心得,并向广大爱好者发起挑战。你,并不是一个人在战斗!

挑战 Plank 团队曾尝试过墙外某著名产品,但由于在国内的访问速度以及本地化支持都严重受限,最终并没有使用。之后通过朋友的推荐,了解到了 LeanCloud,在经过研发团队的严格测试,结果表明平台的访问速度和稳定性都很好,便顺利的开始使用了。

在使用 LeanCloud 的过程中,因为不需要显式进行网络请求,刚开始会有一点不适应,后期使用起来就会很简单和自然。在基于对象的封装上,感觉和 CoreData 很像,使用起来十分灵活、方便。在产品准备提交上线时,Plank 遇到了一个问题,由于他们使用的 SDK 版本比较早,当时还不支持 64 位系统,恰好赶上 AppStore 当时强制要求支持 64 位系统。提交工单(ticket)后,我们的技术人员很快进行了响应,指导他们进行 SDK 版本升级,以及导入相关依赖包。最终,挑战 Plank 顺利上线。

挑战 Plank 的项目负责人于涛谈到:之所以将产品放到 LeanCloud 的平台上,主要考虑到数据对用户的重要性,LeanCloud 完美的匹配了我们的需求,尤其是在海量数据中的快速查询。而 LeanCloud 集成也比较简单,简化了我们对数据库语句的依赖,使得开发效率更高。

点击下方链接即可下载:
iOS 版下载
Android 版下载

LeanMessage for Windows Phone 8 已上架 Nuget

LeanMessage for Windows Phone 8 已上架 Nuget

LeanMessage 是 LeanCloud 开发的 Realtime Message 实时通信组件,目的就是服务于手机应用开发者,在应用中实现实时聊天功能的组件,目前在 iOS 以及 Android 上已经有很多开发者采用了 LeanMessage 作为 Realtime Message 实时通信功能作为解决方案。如此受欢迎也说明实时通信在微信,Line 等大型产品的推进下,实时通信已经成为很多手机应用必不可少的功能,当开发者还在犹豫是采用 Jetty 还是 SignalR 作为 WebSocket 服务端的解决方案时,LeanMessage 给了您一个更稳定的选择:放着我来!

今年年中的时候,我们陆续发布了 iOS 以及 Android 版本中都支持了 LeanMessage 组件,详细文档可以查阅:LeanMessage 服务开发指南

回到本文的主题,随着微软的持续加大移动市场的研发力量,Windows Phone 也占有市场的一席之地,我们也紧跟着推出了 Windows Phone 8.0 的实时通信的 SDK,现在已经在 Nuget 上架公测,欢迎开发者使用并且提出各种意见以及 Bug 回馈,我们会持续更新和完善。
文档也集成在 LeanMessage 服务开发指南

2014 年 9 月份明星 App:被窝

被窝(beiwo.ac)是目前国内最专业的⼆次元声⾳领域的内容社交平台,为所有喜爱二次元声音的爱好者提供一个乐园。

⽤户可以通过被窝的内容体系,⽅便精准的寻找到⾃⼰喜欢的内容和感兴趣的⽤户。在内容消费的同时,被窝还提供快捷的内容上传分享渠道,让用户得到最⼤程度的展⽰。针对平台上的优秀⽤户,被窝还与他们合作新类型的声⾳种类,共同丰富平台的内容,产⽣优秀的版权 IP。被窝的目标是:让更多的人随身携带二次元音乐,喜爱⼆次元⾳乐,爱上翻唱,感受到配⾳的魅⼒所在!

在以往的移动互联网产品开发过程中,为移动客户端构建一个稳定强大的后台服务,总是占据了开发者大量时间,而后台框架的业务也是大同小异的,于是造成了无谓的重复劳动。LeanCloud 作为一站式移动客户端后台服务平台,完美的解决了移动客户端所需要的几乎所有后台需求,从数据存储、用户行为分析到消息推送,涵盖了手机客户端的所有需求,极大的降低了后台开发的工作量。

被窝团队在横向对比多家国内的 BaaS 提供商后,觉得 LeanCloud 提供的服务最全面、最可靠,最终选择了我们。在使用我们的服务后,被窝研发团队可以从繁杂、重复的后台开发中抽身出来,更加注重移动客户端产品的打磨,进一步的提升客户端产品质量。

被窝的 CTO 王辰最后特别谈到:对于创业团队,快速的产品迭代是最至关重要的。合理的使用 BaaS 服务,能够让产品开发更加迅捷。LeanCloud 最让人喜欢的就是一站式的服务体验,集成了移动客户端开发所需要的几乎所有后台功能,避免了对接多家第三方服务所带来的麻烦,也有效的解决了集成多家服务所带来的⻛险。

点击下方链接即可下载:

iOS 版下载 Android 版下载