[前言] DroiBaaS 服务提供了八大功能:云数据库、云代码、消息推送、文件存储、版本更新、账号管理、统计分析和广告服务,大幅简化了程序开发的复杂度与成本,让开发者可以专注在产品核心逻辑上,加快 App 上架速度,抢得市场先机。本文着重在八大功能中的云数据库功能,用浅显易懂的实例示范 DroiBaaS 云数据库如何简化开发者工作。
[传统 App 开发]
一般来说,开发任何一个 App ,无论是游戏还是工具软件,无可避免会需要更新数据。对于 App 初学者来说,把数据打包到 App 里,然后用户安装 App 到手机里是最直接的方法。然而这个做法有个缺点,当需要更新数据时,必须在客户端通过更新 App 的方式才能做到。这中间还牵扯到很多的环节,一是要重新打包 App 且送去审核、上架,此外,用户端必须更新 App 的版本,这件事并不在开发者的掌控中,尤其在 Ios 系统特别困难。
若能将数据与 App 主体分开,如此只需要更新数据时,便不需要重新送审上架 App 。为了做到数据和 App 分离,需要一台服务器和管理数据库的能力。服务器的部分有实体机器、 VPS 以及更简化的 PaaS 可以选择;数据库的部分则有常见的 MySQL 、 PostgreSQL 等等。前述的每项都需要投资非常大的时间成本学习,对于中小企业和个人开发者来说,不太容易上手。
[应用 DroiBaaS 云数据开发 App ]
DroiBaaS 云数据完全可以解决 App 初学者和小团队资源不足的困扰。开发者不需要深入了解服务器管理知识,以及数据库专业的设置,仅需要一般开发 App 的物件导向架构即可在云端管理数据。以下以 Android 的实例向大家说明。
——事前准备
开始前,先在 Android Studio 建立一个新的项目并设置 DroiBaaS SDK 。令人开心的是, Android Studio 把这动作自动化,只需简单设 build.gradle 即可自动完成下载 DroiBaaS SDK 。
详细说明,请参考 DroiBaaS 网站文档说明。
——设置数据物件
这次举一个实际生活的应用「红酒管理 App 」作为例子。这款 App 顾名思义,最基本的数据就是酒,很直接的我们就先创建一个物件「 Wine 」。代码如下:
public class Wine { public String Name; // 名称 public int Year; // 年份 public double Price; // 售价 public String Origin; // 产地 public int Star; // 评价 } 接着可以进行如下的操作: Wine wine = new Wine(); wine.Name = "美味红酒"; wine.Year = "1981"; wine.Price = "11999.9"; wine.Origin = "法国"; wine.Star = 5; // -- 后续操作
那么如何才能运用 DroiBaaS 云数据功能将这笔红酒资料储存到云端上呢?首先,稍微编修物件声明,让 Wine 继承 DroiObject ,然后将想要存到云端上的栏位加上 @DroiExpose 。
public class Wine extends DroiObject { @DroiExpose public String Name; // 名称 @DroiExpose public int Year; // 年份 @DroiExpose public double Price; // 售价 @DroiExpose public String Origin; // 产地 @DroiExpose public int Star; // 评价 } 接着,继续刚刚的物件操作,最后加上 wine.save(null)就完成了! Wine wine = new Wine(); wine.Name = "美味红酒"; wine.Year = "1981"; wine.Price = "11999.9"; wine.Origin = "法国"; wine.Star = 5;
wine.save(null); // 就这么简单,就存到云端上了!
——查询云端物件
当云端数据上已有完整数据后, App 会需要呈现出来。所以 DroiBaaS SDK 提供了查询云数据 API ,让开发者可将云数据传回 App 里。这里使用的是 DroiQuery 来作数据查询。
DroiQuery query = DroiQuery.Builder.newBuilder() .query(Wine.class) .build();
List<wine> list = query.runQuery(null); for (Wine wine: list) { Log.i("测试", "红酒名称: " + wine.Name); } 使用相当直接的方式,就可以把所有红酒数据查询回来。
DroiBaaS 也提供了条件查询,用法也相当直接。首先,在 Wine 物件前加上 @DroiQueryAnnotation 并重新编译 App ,如下。
@DroiQueryAnnotation public class Wine extends DroiObject { @DroiExpose public String Name; // 名称 @DroiExpose public int Year; // 年份 @DroiExpose public double Price; // 售价 @DroiExpose public String Origin; // 产地 @DroiExpose public int Star; // 评价 } 假设想查询年份 1990 之前的,且产地为法国的红酒,可用以下方式
DroiQuery query = DroiQuery.Builder.newBuilder() .query(Wine.class) .where(DroiCondition.ltOrEq(QWine.Year, 1990) .and(DroiCondition.eq(QWine.Origin, "法国"))) .build();
List<wine> list = query.runQuery(null); for (Wine wine: list) { Log.i("测试", "红酒名称: " + wine.Name); }
[后话]
DroiBaaS SDK 秉持的是尽量贴近开发者,在开发商让云数据操作、直接,开发者不用花费心思在后台管理,就能直接开发带有云端数据的 App 。
如果需要更进一步了解云数据和其相关 API ,可在 DroiBaaS 开发网站上查看文档。