月度归档:2015年03月

2015 年 2 月下旬到 3 月上旬 LeanCloud 更新总结

年过完了,大伙都回来上班了。这里跟大家汇报下,年前和年后这四周,我们都做了哪些事儿。

主要变更

闲话不提,先说说开发者们可能比较关心的改动。

首先,我们拆分了短信购买和账户余额。现在,短信额度可以在「财务」菜单里单独购买,购买后的额度将不会从每月的账单中扣除,从而避免了先前每月账单扣除可能导致短信余额不足的问题。我们会提供一段过渡时间让用户来购买短信额度,因此建议使用短信服务的用户尽快采取行动。另外,在余额用完之前,系统会通过短信和邮件向用户发送通知,所以强烈建议用户在开发者账户信息中填写手机号码,以接收我们的提醒短信。

其次,我们正式对外发布了 JavaScript Push SDK。借助它,开发者可以在网页上接收和推送消息,轻松实现弹幕和在线客服之类的应用。源码开放在 leancloud/js-push-sdk 上,开发指南文档在 这里 。我们还改进了 JavaScript SDK 的 AV.Promise 实现,兼容标准,增加了 donecatchAV.Promise.race 等方法,并补充了文档说明。

最后,我们合并了文档项目,不再区分内部和外部项目,并开放了文档生成程序。我们还发布了 Awesome LeanCloud 网站,供大家查看和提交 LeanCloud 开源生态周边的工具或软件。

网站和文档

网站方面我们做了非常多的细节改进,可能大家未必能注意到。例如:API 统计专门增加了从云代码平台发起的调用统计、应用选项勾选会提示保存成功、改了 API 在线测试工具 以支持 keys 和 include 查询等等。许多小的调整,希望能让大家在使用管理功能时感觉更容易,更方便。

网站的其他改动:

  • 在应用设置里,增加了「转让应用」功能。
  • 创建应用时,可以选择拷贝一个来源应用的数据 Schema。
  • API 统计里,加了饼状图展现,可以根据平台、Class 或者操作类型做对比展示。
  • 拆分短信购买,可以通过支付宝或账户余额购买短信,短信额度不会从每月账单里扣除。

(API 饼状图分析)
Snip20150313_3

最重要的是,我们合并了内外部文档项目,不再区分内部文档和外部文档项目,统一为 LeanCloud/docs,并且开放了文档生成代码。我们还对文档做了大量的优化。我们的新同事已开始对各个 SDK 的开发指南做深入的 Review 和优化,希望能带给大家更好的阅读和使用体验。同时也特别欢迎大家去 fork 我们的项目,并提出改进意见。

最后,我们的工程师还发布了一个名为 Awesome LeanCloud 的聚合网站。在这里你可以看到由社区维护的 LeanCloud 开源生态周边:多语言 SDK、最佳实践库、UI 组件、云代码模块等等。我们欢迎更多的开发者们来提交象多语言 SDK、最佳实践库、UI 组件、云代码模块等类库。

API 服务

  • 短信模板的上限调整为 10 个。
  • 增加 /date API 返回服务器时间。
  • 修复匿名用户转换正式用户相关问题。匿名用户将在两种情况下转换为正式用户:提供用户名和密码注册或者更新、链接到一个第三方登录账号。
  • 改进了应用内搜索:不需要填写组件配置就可以使用应用内搜索,支持 include 查询,增加重建索引 API。
  • 查询的 keys 参数支持反向选择,加上减号的字段将不在查询结果里返回,例如 keys=-name,-age 则查询结果不返回 nameage 字段。
  • 改进了 /push 接口的错误提示,当推送涉及 iOS 设备且没有上传证书或者没有安装 Installation 的时候提早报错。
  • 改进了数据导入,如果出错,在通知邮件里说明详细的错误信息。
  • CQL 做了改进:limit 和 order by 子句可以任意排序,支持 select -name,-age from Player 的过滤选择,不返回 agename
  • 短信签名增加长度校验,要求在 10 个字符内。

消息推送及聊天

  • iOS 推送支持 iOS 8 引入的 titletitle-loc-keytitle-loc-args 等新字段,并更新了文档。
  • 发布了 JavaScript Push SDK,支持网页推送。
  • 实时通信增加了 错误码文档
  • 消息推送增加了 问题排查文档 ,方便自助分析推送问题。
  • 聊天持续增强稳定性和性能。

云代码

  • 彻底解决了 nginx 偶尔 502 的问题。
  • 测试环境和生产环境做了分离。
  • 命令行工具发布 0.6.6 — 0.6.8 版本,详细更新日志请看 这里

iOS SDK v2.6.11

  • 聊天修复 session 关闭后重新打开导致 group.sessionnil 的问题。
  • 添加创建 transient 属性群组的接口,可用作临时聊天室。
  • 用户反馈添加推送答复给用户的功能。
  • 修复匿名用户转换正式用户的相关问题。
  • 修复离线时被邀请入群后接收离线消息的问题。
  • 添加缓存获取失败后请求重试次数限制。

Android SDK v2.7

  • 增加了匿名用户转化为正式用户的处理逻辑。
  • 提高了统计的使用时长的准确性。
  • 修正了社交组件的 WebView 实现在 Android 4.2 以后出现的卡在 WebView 上的问题。
  • 修正了 AVObject.toJSONObject 方法中,遇到 Pointer 时的序列化异常。
  • 聊天 onMessageSent 中获取的 AVMessage 对象补齐 fromPeerId
  • 聊天正确更新 SessionManageronlinePeerIds 的数据。

JavaScript SDK v0.5.0

  • 增强 AV.Promise,增加 donecatchfinallyAV.Promise.race 等方法,兼容 Promise/A+,并更新了开发指南和 API 文档。
  • 修复更新对象可能更新没有变更的属性的 Bug,减少请求流量。
  • 拆分 SDK,按照模块划分成多个文件。
  • 使用 gulp 构建 SDK,清理代码。
  • 修复事件流无法发送带有 AV.FileAV.Object 等类型的 Status。
  • 修复 node.js 环境下上传文件没有扩展名的 Bug。

Unity3D SDK

  • 修复 AVQuery 查询中文字符时的错误。
  • 升级支持 Unity 5.0。

「晨读推荐」《Glimmer: Ember.js 的下一代渲染引擎》等

晨读推荐

关于「晨读推荐」

由 LeanCloud 的工程师和设计师,以周为单位进行阅读分享,包含每位工程师和设计师想加入自己读到的「有价值、有趣味、有分享意义」的文章以及推荐理由。

技术向 Geek Must Read

常见的后台实践
LeanCloud 导读:
本文是一篇 objc.io 网站文章的译文,主要探讨一些常用后台任务的最佳实践。我们将会看看如何并发地使用 Core Data ,如何并行绘制 UI ,如何做异步网络请求,研究如何异步处理大型文件,以保持较低的内存占用,等等。非常值得一读。

工具向 The best tools

《Glimmer: Ember.js 的下一代渲染引擎》
LeanCloud 导读:
Yehuda Katz 是横跨 Rails / JavaScript / Rust 等等多个社区的奇人。这是 Ember.js 开发中的下一代 web 渲染引擎。Glimmer 仍然是利用类似 react 的 diff 的渲染机制,但是利用 handlebars 模版的特性,只有模版语言里面的部分是可变的,Glimmer 把模版保留到运行时,通过检查模版上数据的变化决定 DOM 里需要替换的部分。比 React 的 Virtual DOM 直接比较 DOM 减少很多工作。基于 diff 的渲染是大势所趋,大家可以简单了解一下。

设计向 Design More,Design Better

《初级设计师与高级设计师的差距》
LeanCloud 导读:
本文来自 facebook 的 产品设计师 Julie Zhuo 的几幅手绘,分别从「设计时的工作流程」、「对设计的追求」、「设计师的状态」简单轻快地阐述了两者的不同,发人深省的小幽默,不如看完之后对号入座一下。

新知向 Ren chou jiu yao duo du shu

A Very Short History of Data Science
LeanCloud 导读:
通过不太冗长的篇幅介绍了 Data Science 的发展历程。另外,博主还写了大量其他有关 Data Science 的文章,若有兴趣,也可以读一读。

细数攻城掠地中的 Apple Watch 精彩应用

玲珑小巧的 Apple Watch,蕴含的功能和商机却不少。如何利用好有限的屏幕空间,打造出实用耐看的 Watch 应用呢?幻灯片马上开始,爱学习的同学快入座。

000-apple-watch
Apple 2015 发布会召开在即,Apple Watch 无疑是最大的亮点,而它的正式推出也势必会让智能穿戴设备市场硝烟再起。很有可能,它会象 Apple 其他明星产品那样,促成新一轮的技术与创新的大跃进。
与 iPhone 相比,Apple Watch 的屏幕尺寸小了不少。作为 iPhone 的闺蜜,它的界面设计和交互体验又该如何把握?小编我收集到一些先公布出来的 Apple Watch 应用,大家看看能不能从中获得些启发,为自己未来的项目找到素材和方向。

Clear
001-apple-watch
快速浏览和勾选待办事项,清单和提醒通过 iCloud 与其他设备进行同步

Feed Wrangler
002-apple-watch
显示 RSS 订阅源中的最新文章,将其标记为己读或加到「稍后阅读」服务中去,方便在其他设备上继续看;可以阅读全文,估计大部分人只是关注下标题而已。

Fitness Spades、Exact Fitness Timer
004-apple-watch
这两款都是健身应用,Fitness Spades 让你随机抽取扑克牌,按上面的项目去训练,挑战完一张再抽下一张,不断自我超越。Exact Fitness Timer 则以设定时间来安排间歇训练。

Home Remote


可用来开门、开关灯、甚至打开电水壶的摇控器,显示效果超赞,支持触控和语音输入,让主人们能更快完成所需操作。

Honeywell & Lutron
005-apple-watch
不用离开沙发就能调节温度和照明强度,打造智能家居控制中心的完整体验。

Infinitweet
006-apple-watch
发 tweet 的小工具。通过语音输入,把长消息转换成图片,从而绕开 Twitter 上 140 个字符的发文限制。特适合在外游荡的文艺青年,让他们不用再苦逼地精简文字,搅了想要抒发心情的雅兴。

Facebook
去年 9 月发布会上,脸书有露过一小脸,界面看起来很清爽,除了显示「好友请求」和「忽略」按钮,这回应该能浏览好友们的动态消息了吧,让我们拭目以待。

OfficeTime
007-apple-watch
用来记录工作时间的长度和分配情况,在 Apple Watch 上控制计时器,在 iPhone 上查看详细的分析报告。比如一走进会议室,在 Apple Watch 上点一下打开计时器,会议结束走出会议室,再点一下停掉计时,一周下来你就知道时间都花在哪儿啦。

Peeps
008-apple-watch
用来视频聊天,但在 Apple Watch 上只显示视频的头一帧画面,若不希望看到画面也可以改成通知显示。开发者期望 Apple Watch 二代能加上前置摄像头,这样 Peeps 会大有可为。

Prompt
009-apple-watch
为做演示的人士贴心打造。先在 iPhone 上设好大纲和时长,演示开始时在 Apple Watch 上打开 Prompt,它会给出此时应该提及的内容和该部分所剩的时间,让你完全做到心中有数。

Slopes


为那些喜欢用 iPhone 的 GPS 来收集运动数据(如 Nike+)的滑雪爱好者量身定制。在冬天因为戴手套的关系,iPhone 的 Touch ID 指纹功能用起来很不方便,iPhone 放在兜里掏来掏去的也相当麻烦。现在通过 Apple Watch,各项数据一目了然,运动者们可以尽享运动的乐趣。

American Airlines
美航的这款专属应用,相信会让常坐飞机的人很开心。在一键办理自助登机后,乘客随后会收到航班登机口、起飞时间、行李提取通道等相关通知。这种简要明了的信息,对提升旅客的出行体验意义重大。

BMW
010-apple-watch
BMW i 不仅可以显示宝马新款电力车型 i3 的充电量,还能显示地图,帮助想不起停放位置的车主们找到自己的车辆。

Citymapper
011-apple-watch
公交导航应用 Citymapper 在 iPhone 上有很不错的体验,在 Apple Watch 上它会显示汇总信息,并以触觉感应方式来提醒佩戴者到站下车。
由此看来,Apple Watch 个头不大,能耐却不小,真是后生可畏!大家对它的前景都怎么看?欢迎吐槽。

原文:《The best Apple Watch apps: Developers reveal upcoming titles》
翻译:LeanCloud Da Li
图片来源:http://www.wareable.com/

晨读推荐 #011

晨读推荐4

关于「晨读推荐」

由 LeanCloud 的工程师和设计师,以周为单位进行阅读分享,包含每位工程师和设计师想加入自己读到的「有价值、有趣味、有分享意义」的文章以及推荐理由。每周一和周三在微信公众帐号进行推送。

技术向 Geek Must Read

书籍推荐:Node.js the Right Way
LeanCloud 导读:
这本书适合于对其他语言比较有经验、对 JavaScript 有初步了解的工程师快速学习 Node.js。这本书不像其他学语言的书一样花大量篇幅在简介语法和粗浅的例子上,而是 focus 在 Node.js 在现实中的实际应用,让有经验的工程师快速掌握和使用一项新技能。对于 LeanCloud 云代码的用户来说应该会非常有帮助。BTW:纸质版可以在中国亚马逊网站买到,Kindle 版则要到美国亚马逊网站购买。

工具向 The best tools

《Integrating google breakpad》
LeanCloud 导读:
Google Breakpad 是一个跨平台的崩溃信息收集处理系统,能够将各种桌面和移动平台系统的崩溃信息统一成相同格式进行处理。

设计向 Design More,Design Better

《谈谈 UI 架构设计的演化》
LeanCloud 导读:
简要介绍当今 MVVM 设计模式的来历,以及曾经出现过的不同的设计模式和它们的设计思路。属于一篇科普类的好文,推荐下。

新知向 Ren chou jiu yao duo du shu

Podcast:「Teahour 程序员电台」与马道长聊 Docker
LeanCloud 导读:
本期由玎玎主持,滚滚联合主持,邀请了国内 Docker 社区的马道长马全一老师来 Teahour 做客,聊一聊近两年在 Ops 领域非常火热的容器工具 Docker。在节目中,马老师介绍了 Docker 的历史、发展历程和国内的社区现状。想知道 Docker 在飞速发展的同时,又面临哪些机遇和挑战,想知道 Docker 的最佳使用场景和优势是什么,想知道 Docker 有哪些问题和哪些坑,哪些场景不适合使用 Docker。

晨读推荐 #010

晨读推荐3

关于「晨读推荐」

由 LeanCloud 的工程师和设计师,以周为单位进行阅读分享,包含每位工程师和设计师想加入自己读到的「有价值、有趣味、有分享意义」的文章以及推荐理由。每周一和周三在微信公众帐号进行推送。

技术向 Geek Must Read

《ES6 英文简明版》
LeanCloud 导读:
周一已经推荐了一篇比较全面的 ES6 文档。再给大家奉上一篇, 最近说 ES6 的比较多,如果想按照 6 的写法,还需要 转换器翻译到 ES5 才可以。本文的相对比较简单,有一些说明示例对应着 6 和 5 分别实现方式。对于想先概况了解的,可以先看下这个文档。

工具向 The best tools

《Dependency Injection with Dagger 2》
LeanCloud 导读:
Dagger 是一个 Java/Android 上快捷的依赖注入框架。Dagger 最早是由 Square 来开发和维护, Jake Wharton 就职于与 Square ,并且开源过多个依赖注入相关的知名项目,譬如 ButterKnife,应该是这方面的权威,这是他在介绍 Dagger 2 的幻灯片,以 twitter 使用为例,介绍的简单易懂,值得推荐。

设计向 Design More,Design Better

《How to hide/show Toolbar when list is scrolling》
LeanCloud 导读:
这是一篇介绍如何在滚动列表时隐藏关键性组件的文章,推荐给交互设计师和工程师们阅读学习,来自官方的解决方案,同时分析了包括 Google+ 和 Google Play 的交互实现。

新知向 Ren chou jiu yao duo du shu

《Have we Leaned too Far?》
LeanCloud 导读:
这是 Steve Johnson 在 Business of Software 大会上演讲的视频和讲稿。在这个演讲中他以独特的视角探讨了 Lean Startup 和 Agile Development 在实践当中的问题,特别是「倾听用户」和「观察用户」的差别,纠正了对 minimum viable product 的误解。

晨读推荐 #009

晨读推荐2

关于「晨读推荐」

由 LeanCloud 的工程师和设计师,以周为单位进行阅读分享,包含每位工程师和设计师想加入自己读到的「有价值、有趣味、有分享意义」的文章以及推荐理由。每周一和周三在微信公众帐号进行推送。

技术向 Geek Must Read

《性能计算:Little Law & Utilization Law》
LeanCloud 导读:
我们关注性能主要目的是想要明确两点:如何提升性能,以及在什么时候为应用扩容。通过性能测试和分析,来明确性能瓶颈在哪里,应用的支撑的容量在多少。如果懂一点排队理论以及经验法则,可以让我们的性能测试的结果有个更系统的认识,并且更合理地分配资源和优化。本文通过了解:一个系统的性能通常是参考一些度量值(Metric),而如何计算出这些 Metric 就是我们要讨论的。Little Law(排队理论:利特儿法则)和 Utilization Law 是 Performance Engineering(System Engineering 的一部分)常用的法则,它们都是数学理论,因此可作为性能计算的理论依据。本文介绍了这两个法则在性能评估上的应用。

工具向 The best tools

《ECMAScript 6 入门》
LeanCloud 导读:
随着越来越多的浏览器以及 nodejs 等环境对 ES6 的原生支持,有必要开始学习和掌握 ES6 中的新的特性。究竟这些特性有哪些改进,又有那些不足?本文详细介绍了 ES6 与 ES5 的所有不同之处,对涉及的语法知识给予详细介绍,并给出大量简洁易懂的示例代码。

设计向 Design More,Design Better

《2015 年第 62 届德国 iF 国际设计奖 75 项金奖汇总》
LeanCloud 导读:
2015 年第 62 届德国 iF 国际设计奖(iF Design Award 2015 获奖名单也已经公布,共有近 5000 个作品报名参与,最终 75 款获得 iF 金奖,其中不乏像苹果 Apple Watch 智能手表、三星曲面屏、索尼 Xperia Z2 平板等消费级产品荣获殊荣。iF 设计奖作为世界三大设计奖之一,有「设计界的奥斯卡」之称,评选标准不仅注重产品造型美感,同时也兼顾到性能、环保、品牌价值等因素,这篇文章列举了获奖作品,可供各位参考。

新知向 Ren chou jiu yao duo du shu

《Adopting Microservices at Netflix: Lessons for Architectural Design》
LeanCloud 导读:
Netflix 介绍基于微服务思路的架构改造,介绍基本概念和最佳实践。有演讲视频。文章本身是第一部分,之后还会介绍微服务架构相关的工具和资源,以及对团队组织的革新。