0
回答
【一秒演示】 如何高效开发能处理后端数据的移动APP,节省服务端维护成本
注册华为云得mate10,2.9折抢先购!>>>   
前言

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开发网站上查看文档。
<无标签>
举报
浮小生
发帖于1年前 0回/331阅
顶部