V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
timocoffee
V2EX  ›  推广

[一秒演示] 如何高效开发能处理后端数据的移动 APP,节省服务端维护成本

  •  1
     
  •   timocoffee · 2016-12-06 16:50:08 +08:00 · 1298 次点击
    这是一个创建于 2910 天前的主题,其中的信息可能已经有所发展或是发生改变。

    [前言] 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 开发网站上查看文档。

    目前尚无回复
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5659 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 07:21 · PVG 15:21 · LAX 23:21 · JFK 02:21
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.