9 月伊始,我们新推出了一个 Java 平台的统一 SDK(Java Unified SDK),该 SDK 可以在 Java、Android 和 LeanCloud 云引擎三种环境下运行,支持数据存储、LiveQuery、即时通讯、云函数、推送和混合推送等全部核心功能,并且和老版本一样开放所有源代码(代码见 这里 )。今后 LeanCloud 安卓开发团队会以开发维护 Java Unified SDK 为主,老版本 Android SDK 则会进入维护状态,维护期一年(截止到 2019 年 9 月底),期间主要是做 bugfix,不会再增加新功能,请大家尽快迁移到新版本 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("succeed to save post and comment objects."); } @Override public void onError(Throwable throwable) { System.out.print("failed to save post or comment objects. cause: " + throwable.getMessage()); } @Override public void onComplete() { } });
新版 SDK 现在处于开放测试阶段,其最新版本为 5.0.0-SNAPSHOT
,我们已经编译发布到了 LeanCloud 的maven 仓库 中。大家可以通过包依赖管理工具(如 Maven 和 Gradle 等)来下载使用,具体可以参考这里的 wiki 说明
。
大家发现 Bug、或者有任何疑问或建议,请使用 GitHub Issue 来告知我们,我们会及时跟进解决,非常感谢大家的反馈。