【一步步开发AI运动APP】十二、自定义扩展新运动项目03

简介: 继【一步步开发AI运动小程序】后,我们推出新系列【一步步开发AI运动APP】,助开发者打造高性能、优体验的AI运动应用。本文详解自定义扩展运动分析器的统一管理实现,提升代码复用性与可维护性,涵盖APP与小程序插件差异及完整代码示例,助力AI运动场景深度拓展。

之前我们为您分享了【一步步开发AI运动小程序】开发系列博文,通过该系列博文,很多开发者开发出了很多精美的AI健身、线上运动赛事、AI学生体测、美体、康复锻炼等应用场景的AI运动小程序;为了帮助开发者继续深耕AI运动领域市场,今天开始我们将为您分享新系列【一步步开发AI运动APP】的博文,带您开发性能更强、体验更好的AI运动APP。

前两篇博文为介绍了自定义扩展运动的基本架构及运动分析器的定义,根据前两篇的介绍您已可以实现自定义运动了。自定义扩展运动分析器开发出来后,如何统一进行管理、调用创建呢,这也是uni-app APP版插件小程序版本插件在自定义扩展运动能力上最大的差别了,本篇就为您介绍自定义扩展运动的最后环节统一管理运动分析器实现。

一、为什么要统一管理运动分析器

统一的运动分析器管理并不是必须的,在没有统一的运动分析器管理的情况下,也是可以实现扩展运动分析器的实例化和运动列表获取,代码如下:

import {
    getSports } from "@/uni_modules/yz-ai-sport";
import {
    BothHandsUpSport } from "./both-hands-up";

//构建运动列表,统一管理实现相同
const items = getSports(); //获取内置的运动列表
items.push(BothHandsUpSport.getDescriptor());//向列表添加扩展的运动
//...更多运动

//构建运动
const bothHandsUpSport = new BothHandsUpSport();
//获得运动分析器实例
const sport = bothHandsUpSport.getSportInstance();

既然按上述代码能实现运动列表及扩展运动的调用,为什么还要再实现统一的运动管理呢?这是为了提高代码重用率,减少重复代码、增强代码健壮性、提高代码可维护性,试想如果自定义了10几个运动、整个应用多处要调用运动列表、创建运动,那么将有几十行代码在多处重复、后期扩展运动的迭代也是灾难性的,所以要实现统一的运动管理。

二、APP版插件管理运动分析器的差异

受限于uni-app的新旧框架差异、目标平台实现差异和APP版插件运行在原生基座中等因素,APP版本插件没有再像小程序版插件提供扩展运动注册接口SportBase.registr,简单注册后插件便会统一维护管理所有的运动分析器。但是统一的运动分析器管理实现难度并不高,也可以使用插件的Demo实现即可。

三、实现统一的运动分析器管理

统一的运动分析管理器核心的功能便是提供统一的运动列表获取、运动创建调用入口,完整代码如下:

import {
    getSports, createSport } from "@/uni_modules/yz-ai-sport";
import {
    BothHandsUpSport } from "./both-hands-up";

/**
 * 获取所有的运动项目(含内置及扩展)
 * 
 * @returns {SportDescriptorItem[]} 运动描述列表
 */
export function getAllSports() {
   
    let items = getSports();
    items.push(BothHandsUpSport.getDescriptor());

    return items;
}

/**
 * 创建全范围(含扩展、内置)的运动
 */
export function createFullSport(key) {
   
    let sports = getSports();
    if (sports.some(x => x.key == key))
        return createSport(key);

    switch (key.toLowerCase()) {
   
        case 'both-hands-up':
            const bothHandsUpSport = new BothHandsUpSport();
            return bothHandsUpSport.getSportInstance();
        default:
            throw new Error(`没有找到${
     key}运动。`);
    }
}

四、写在最后

至此,关于自定义扩展运动的能力就为你介绍完了,详细完整的代码都可以在插件资料的demo示例项目中找到,并且提供uni-appuni-app x两套实现,完美兼容新旧两套框架。
强调基础能力,提供高扩展性一直是插件秉持的开发理念,自定义姿态和自定义运动识别检测作为小程序APP终端系列插件的核心能力之一,也深受使用者的好评,可以助力APP小程序轻松拓展更多的应用场景。

后续章节我们将继续为您分享一些典型的AI运动功能实现技巧,敬请期待...

image.png

相关文章
|
25天前
|
缓存 移动开发 JavaScript
如何优化UniApp开发的App的启动速度?
如何优化UniApp开发的App的启动速度?
325 139
|
25天前
|
移动开发 JavaScript weex
UniApp开发的App在启动速度方面有哪些优势和劣势?
UniApp开发的App在启动速度方面有哪些优势和劣势?
256 137
|
19天前
|
人工智能 安全 API
20 万奖金池就位!Higress AI 网关开发挑战赛参赛指南
本次赛事共设三大赛题方向,参赛者可以任选一个方向参赛。本文是对每个赛题方向的参赛指南。
137 11
|
18天前
|
人工智能 运维 安全
加速智能体开发:从 Serverless 运行时到 Serverless AI 运行时
在云计算与人工智能深度融合的背景下,Serverless 技术作为云原生架构的集大成者,正加速向 AI 原生架构演进。阿里云函数计算(FC)率先提出并实践“Serverless AI 运行时”概念,通过技术创新与生态联动,为智能体(Agent)开发提供高效、安全、低成本的基础设施支持。本文从技术演进路径、核心能力及未来展望三方面解析 Serverless AI 的突破性价值。
|
23天前
|
存储 人工智能 前端开发
Qoder + ADB Supabase :5分钟GET超火AI手办生图APP
本文介绍如何利用Qoder、阿里云ADB Supabase和通义千问图像编辑模型,快速搭建AI手办生图Flutter应用。无需传统后端,实现从前端生成到数据存储、AI服务集成的全链路敏捷开发,展现Vibe Coding的高效实践。
Qoder + ADB Supabase :5分钟GET超火AI手办生图APP
|
20天前
|
人工智能 运维 Java
Spring AI Alibaba Admin 开源!以数据为中心的 Agent 开发平台
Spring AI Alibaba Admin 正式发布!一站式实现 Prompt 管理、动态热更新、评测集构建、自动化评估与全链路可观测,助力企业高效构建可信赖的 AI Agent 应用。开源共建,现已上线!
1688 42
|
22天前
|
人工智能 自然语言处理 JavaScript
VTJ.PRO如何利用AI实现低代码开发
VTJ.PRO深度集成AI,实现设计稿转代码、自然语言生成组件等功能,显著提升低代码开发效率。支持双向代码穿梭、企业级工程化与多模型协同决策,兼顾开发速度与代码自由度,助力项目周期大幅压缩。
145 43
VTJ.PRO如何利用AI实现低代码开发
|
人工智能 自然语言处理 前端开发
产品经理也能“开发”需求?淘宝信息流从需求到上线的AI端到端实践
淘宝推荐信息流业务,常年被“需求多、技术栈杂、协作慢”困扰,需求上线周期动辄一周。WaterFlow——一套 AI 驱动的端到端开发新实践,让部分需求两天内上线,甚至产品经理也能“自产自销”需求。短短数月,已落地 30+ 需求、自动生成 5.4 万行代码,大幅提升研发效率。接下来,我们将揭秘它是如何落地并改变协作模式的。
289 37
产品经理也能“开发”需求?淘宝信息流从需求到上线的AI端到端实践
|
18天前
|
移动开发 JavaScript 应用服务中间件
【06】优化完善落地页样式内容-精度优化-vue加vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
【06】优化完善落地页样式内容-精度优化-vue加vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
135 5
【06】优化完善落地页样式内容-精度优化-vue加vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡

热门文章

最新文章