Flutter+YesAPI 快速构建零运维的APP

news2024/11/17 15:43:42

前言

移动互联网经过多年的发展,已经进入一个成熟的阶段,几乎每个公司都有自己的移动应用程序或移动网站。随着5G技术的不断发展,也带来了更高效的数据传输速度和更稳定的网络连接,这使得更多的应用程序和服务能够在互联网上运行,互联网连接一切,这也给开发者带来新的机遇和挑战。

每个人都能开发自己的APP

在传统的创业团队,要打造一款应用程序,往往需要配备有Android、IOS、Web前端、后端等开发人员,开发队伍庞大,开发周期漫长,造成整个开发和维护成本居高不下,在早期资金紧缺的情况下给创业带来极大的负担。

而现在,你只需要一个人就能构建一款属于自己的APP。

技术选型

选型是开发的第一步,也是最重要的一步,它将决定后续的开发工作是否顺畅进行。

首先,客户端我们需要选择一款跨平台的开发框架,主流的开发框架有React-Native、Flutter、UNI-APP/Taro等,本文选用Flutter作为客户端框架。

关于Flutter有以下的特点:

  • 代码开源
  • 跨平台且兼容性较好
  • 有完善的文档和成熟的社区
  • 丰富的UI组件,能实现各种效果
  • 有谷歌背书
    官网:https://flutter.cn

接着是后端选型,为了能一个人完成所有开发,我们选用的是YesAPI,它是一个基于Serverless的低代码平台,不需要懂后端技术就能完成后台搭建。

关于YesAPI有以下的特点:

  • Serverless零运维
  • 低代码,接入成本低
  • 操作简单,零学习成本
  • 支持海量数据云存储
  • 支持一键动态生成http接口
    官网:https://yesapi.cn

搭建一个商场APP

我们使用Flutter编写了一个商场APP,关于Flutter开发可参考官方文档,这里就不做赘述,如果感兴趣可在评论区回复,将给你提供源码。
在这里插入图片描述

搭建一个零运维的后台

目前,我们还只有一个客户端,没有后台数据支持。接下来将以账号登录/注册为例,为你展示如何搭建一个零运维的后台,只需要鼠标操作,不需要写任何后端代码。

  1. 打开YesApi.cn,注册账号并登录。
    在这里插入图片描述

  2. 登录后,点击菜单“我的”,会看到你的专属域名,和app_key,这两个需要记起来,将作为客户端访问后台数据的凭证。
    在这里插入图片描述

注册功能

  1. 查找你需要的接口
    在这里插入图片描述

  2. 查看接口说明
    在这里插入图片描述

  3. 接口参数
    在这里插入图片描述

  4. 客户端请求接口的代码实现:

Future<bool> createAccount(String account, String password) async {
  const BASE_URL = 'https://xxxx.api.yesapi.cn/api'; // 域名替换成你的专属域名
  var url = BASE_URL + '/App/User/Register';
  try {
    print("post ${Uri.parse(url)}");

    Map<String, dynamic> jsonData = {
      "username":"$account",
      "password":"${md5.convert(utf8.encode(password)).toString()}",
      "app_key":"$APP_KEY",
    };

    final response = await http.post(
      Uri.parse(url),
      headers: <String, String>{
        'Content-Type': 'application/json; charset=UTF-8',
      },
      body: jsonEncode(jsonData),
    );

    print("response:  ${response.body}");
    final responseData = json.decode(response.body);
    print(responseData['ret']);
    if (responseData['ret'] != 200) {
      throw HttpException(responseData['msg']);
    }
    
    notifyListeners();    // 注册成功,通知UI更新
  } catch (error) {
    throw (error);
  }
}

管理已注册的用户

点击“云存储” -> “会员管理”,可以看到刚刚注册成功的用户
在这里插入图片描述

你可以对已注册的用户进行各种操作:

在这里插入图片描述

登录功能

同样的方式搜索登录到接口,查看接口说明,并依照说明实现客户端的请求。

客户端请求接口:

  Future<void> login(String account, String password) async {
    var url = BASE_URL + '/App/User/Login';
    try {

      Map<String, dynamic> jsonData = {
        "username":"$account",
        "password":"${md5.convert(utf8.encode(password)).toString()}",
        "app_key":"$APP_KEY",
      };

      final response = await http.post(
        Uri.parse(url),
        headers: <String, String>{
          'Content-Type': 'application/json; charset=UTF-8',
        },
        body: jsonEncode(jsonData),
      );

      final responseData = json.decode(response.body);

      if (responseData['ret'] != 200) {
        throw HttpException(responseData['msg']);
      }

      print('response: $responseData');

      _token = responseData['data']['token'];
      _uuid = responseData['data']['uuid'];

      notifyListeners();
      final prefs = await SharedPreferences.getInstance();
      final userData = json.encode({
        'token': _token,
        'user': jsonEncode(_user),
      });
      print('login success!!');
      prefs.setString('userData', userData);
      //print(userData);
    } catch (error) {
      throw (error);
    }
  }

在这里插入图片描述

自此,我们已经实现了APP的登录注册和账号管理了。在后续的篇章,我将带你构建后台业务数据,打造完整的APP开发,欢迎继续关注!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/451956.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

NFT介绍及监管规则

什么是NFT NFT是Non-Fungible Token&#xff08;非同质化代币&#xff09;的缩写。 NFT是“Non-Fungible Token”的缩写&#xff0c;即非同质化代币。不同于FT&#xff08;Fungible Token&#xff0c;同质化代币&#xff09;&#xff0c;每一个NFT都是独一无二且不可相互替代的…

cmake管理子程序,lib库和so库应用实践

cmake在管理大型项目时经常被用到&#xff0c;本文以简单程序演示来说明camke管理项目应用&#xff0c;其中包括主程序&#xff0c;子程序&#xff0c;so库程序&#xff0c;lib程序。 目录 1.程序目录结构 2.编译执行 3.清除临时文件 4.完整代码 1.程序目录结构 ├── bu…

【PWN刷题__ret2text】[BJDCTF 2020]babystack

新手上路~低速慢行~ 目录 前言 1. checksec 2. IDA 反汇编 3. payload编写 4. exp编写 5. pwntools用法 前言 作为pwn新手&#xff0c;尽可能在刷题中&#xff0c;记录、学习一些通用的知识点&#xff0c;因此wp是少不了的。 本题是一道简单的ret2text 1. checksec 没有…

6.2 龙格—库塔法

学习目标&#xff1a; 学习龙格-库塔法的具体明确的学习目标可以有以下几点&#xff1a; 理解龙格-库塔法的基本思想和原理&#xff1a;我们应该了解龙格-库塔法的数值求解思想和数值误差的概念&#xff0c;包括截断误差和稳定性等基本概念&#xff0c;并且要熟悉龙格-库塔法的…

大学生无线耳机怎么选?内行推荐四款高性价比蓝牙耳机

随着蓝牙耳机的使用频率越来越高&#xff0c;大学生成为了蓝牙耳机的主要用户群体之一。最近看到很多网友问&#xff0c;大学生无线耳机怎么选&#xff1f;针对这个问题&#xff0c;我来给大家推荐几款高性价比蓝牙耳机&#xff0c;一起来看看吧。 一、南卡小音舱Lite2蓝牙耳机…

MIMO-OFDM系统中信道估计的快速谐波搜索技术(Matlab代码实现)

目录 &#x1f4a5;1 概述 &#x1f4da;2 运行结果 &#x1f389;3 参考文献 &#x1f468;‍&#x1f4bb;4 Matlab代码 &#x1f4a5;1 概述 目前,由OFDM技术与空时编码技术相融合而成的MIMO-OFDM技术已经引起了通信领域的广泛关注和研究.在无线通信系统中,MIMO-OFDM技…

11. 图的入门

11. 图的入门 11.1 图的实际应用&#xff1a; ​ 在现实生活中&#xff0c;有许多应用场景会包含很多点以及点点之间的连接&#xff0c;而这些应用场景我们都可以用即将要学习的图这种数据结构去解决。 地图&#xff1a; ​ 我们生活中经常使用的地图&#xff0c;基本上是由…

关于函数栈帧的创建与销毁和可变参数列表

目录 1. 深刻理解函数调用过程1.1 基本概念1.2 函数栈帧的创建于销毁1.2.1 栈帧创建1.2.2 栈帧销毁1.2.3 有趣的现象 2. 了解可变参数列表的使用与原理2.1 可变参数列表与函数栈帧的关系2.2 宏的工作过程2.3 宏的具体实现原理 1. 深刻理解函数调用过程 1.1 基本概念 关于函数…

VBA智慧办公9——图例控件教程

如图&#xff0c;利用VBA进行可视化交互界面的设计&#xff0c;在界面中我们用到了label&#xff0c;button&#xff0c;text&#xff0c;title等多个工具&#xff0c;在进行框图效果的逐一实现后可进行相应的操作和效果实现。 VBA&#xff08;Visual Basic for Applications&a…

家用洗地机要怎么选?平价洗地机推荐

国内大多数家庭比较注重地面清洁&#xff0c;不仅是要扫的干净&#xff0c;更要拖的干净&#xff0c;尤其追求地板锃亮的视觉效果&#xff0c;因此家用洗地机因其清洁效率高、能吸除干湿垃圾以及自清洁拖布等优点&#xff0c;成为很多家庭用于替代扫帚拖把等传统清洁工具的清洁…

可视化Echarts 柱状图、饼状图、折线图的设置

柱状图 饼状图 折线图 柱状图 基本的柱状图设置 <template> <div ref"ec" id"ec"></div> </template><script> import * as echarts from "echarts"; //引用echartsexport default {mounted(){let mc ech…

【网络安全】CVE 漏洞分析以及复现

漏洞详情 Shiro 在路径控制的时候&#xff0c;未能对传入的 url 编码进行 decode 解码&#xff0c;导致攻击者可以绕过过滤器&#xff0c;访问被过滤的路径。 漏洞影响版本 Shiro 1.0.0-incubating 对应 Maven Repo 里面也有 【一一帮助安全学习&#xff0c;所有资源获取一一…

onnx手动操作001

使用onnx.helper可以进行onnx的制造组装操作&#xff1a; 对象描述ValueInfoProto 对象张量名、张量的基本数据类型、张量形状算子节点信息 NodeProto算子名称(可选)、算子类型、输入和输出列表(列表元素为数值元素)GraphProto对象用张量节点和算子节点组成的计算图对象ModelP…

王道计组(23版)3_存储系统

概述 RAM&#xff1a;随机存储器&#xff0c;任一个存储单元可以随机存取&#xff0c;易失。用作主存(DRAM)或Cache(SRAM) ROM&#xff1a;只读存储器&#xff0c;可随机读出&#xff0c;写入较慢&#xff0c;需刷新&#xff0c;非易失。Flash、SSD固态硬盘、U盘 _____SSD&…

某医院网络安全分析案例

背景 我们已将NetInside流量分析系统部署到某市医院的机房内&#xff0c;使用流量分析系统提供实时和历史原始流量。本次分析重点针对网络流量安全进行分析&#xff0c;以供安全取证、网络质量监测以及深层网络分析。 分析时间 报告分析时间范围为&#xff1a;2023-04-12 16…

牛客网Verilog刷题——VL3

牛客网Verilog刷题——VL3 题目答案 题目 要求设计一个奇偶校验模块&#xff0c;根据sel信号选择进行奇校验还是偶校验&#xff08;sel0&#xff0c;进行偶校验&#xff1b;sel1&#xff0c;进行奇校验&#xff09;&#xff0c;根据输入的32位数据生成1位的奇偶校验位。   …

云安全监控及云数据保护

如今&#xff0c;许多公司已经迁移到云&#xff0c;目的是进行扩展和现代化&#xff0c;但在此过程中&#xff0c;他们面临着新的、代价高昂的风险。云安全是一种多管齐下的方法&#xff0c;专注于保护数据和业务内容&#xff0c;同时确保企业的业务运营高效运行。 监控云访问 …

JMM 内存模型

文章目录 1、 java 内存模型1.1 原子性1.2 问题分析1.3 解决方法 2、可见性2.1 退不出的循环2.2 解决方法2.3 可见性 3、有序性3.1 诡异的结果3.2 解决方法3.3 有序性理解3.4 happens-before 4、CAS 与 原子类4.1 CAS4.2 乐观锁与悲观锁4.3 原子操作类 5、synchronized 优化5.1…

MemCache详细解读

目录 一、MemCache是什么 二、MemCache特性和限制 三、MemCache实现原理 四、MemCache的Java实现实例 五、MemCache指令汇总 一、MemCache是什么 MemCache是一个自由、源码开放、高性能、分布式的分布式内存对象缓存系统&#xff0c;用于动态Web应用以减轻数据库的负载。它…

【李宏毅】自注意力机制self-attention

课件网址&#xff1a; 【機器學習2021】自注意力機制 (Self-attention) (上) - YouTube 【機器學習2021】自注意力機制 (Self-attention) (下) - YouTube 这两章课程主要在讲self-attention是怎么做的&#xff0c;对应的矩阵操作是什么&#xff0c;以及为什么要这样处理。 …