Java Unified SDK 开放测试通知

9 月伊始,我们新推出了一个 Java 平台的统一 SDK(Java Unified SDK)。该 SDK 可以在 Java、Android 和 LeanCloud 云引擎三种环境下运行,支持数据存储、LiveQuery、即时通讯、云函数、推送和混合推送等全部核心功能,并且和老版本一样开放所有源代码(代码见这里)。今后 LeanCloud 安卓开发团队会以开发维护 Java Unified SDK 为主,老版本 Android SDK 则会进入维护状态,并将于 2019 年 9 月底停止维护。在此期间我们主要做 bugfix,不再增加新功能,因此建议大家尽快迁移到 Java Unified SDK 上来。

为什么我们要新推一个 SDK

一份代码,支持多个平台
老版本 SDK 因为历史原因,Android 平台和纯 Java 平台(在云引擎中使用)是两套完全分开的代码,功能有差异,接口不统一,维护比较困难。新的 SDK 则对此进行了修改,使用一套代码来适配多个平台,给开发者带来完全一致的使用体验。

Reactive API
老版本 SDK 所有的网络请求都是通过 Callback 方式实现的,在实现多轮前后衔接的业务逻辑时会导致代码嵌套层级过多,影响阅读,同时在 Java 开发环境下这种异步的方式也不太友好。故而新版本 SDK 的存储接口完全基于 RxJava 来构建。函数式编程风格的 API,给业务开发带来更多便利。
例如,我们在发表一篇博文(Post)的时候,需要同步增加一些 Comment,在新的 SDK 中则可以这样来实现:

AVObject post = new AVObject("Post");
post.put("title", "LeanCloud 发布了新版 Java 统一 SDK");
post.put("content", "9 月初,LeanCloud 发布了新版 Java 统一 SDK,欢迎大家试用!");
post.saveInBackground().map(new Function<AVObject, AVObject>() {
  public AVObject apply(AVObject p) throws Exception {
    // 在 Post 保存成功之后,再新建一个 Comment 对象.
    AVObject comment = new AVObject("Comment");
    comment.put("content", "好想试一下");
    comment.put("post", p);
    return comment.saveInBackground().blockingFirst();
  };
}).subscribe(new Observer<AVObject>() {
  @Override
  public void onSubscribe(Disposable disposable) {
  }

  @Override
  public void onNext(AVObject comment) {
    System.out.print("post and comment objects have been saved successfully.");
  }

  @Override
  public void onError(Throwable throwable) {
    System.out.print("Saving post or comment objects failed. cause: " + throwable.getMessage());
  }

  @Override
  public void onComplete() {
  }
});

如何使用新版 SDK

新版 SDK 现在处于开放测试阶段,其最新版本为 5.0.0-SNAPSHOT ,我们已经编译发布到了 LeanCloud 的 maven 仓库中。大家可以通过 Maven 和 Gradle 等包依赖管理工具来下载使用,具体可以参考这里的 wiki 说明

大家发现 Bug 或者有任何疑问或建议,请使用 GitHub Issue 来告知我们,我们会及时跟进解决,非常感谢大家的反馈。

评论

Loading comments ...