基于Flutter的山羊孕测App设计与实现_邵毅.pdf
《基于Flutter的山羊孕测App设计与实现_邵毅.pdf》由会员分享,可在线阅读,更多相关《基于Flutter的山羊孕测App设计与实现_邵毅.pdf(4页珍藏版)》请在咨信网上搜索。
1、本栏目责任编辑:谢媛媛软件技术Computer Knowledge and Technology电脑知识与技术第19卷第3期(2023年1月)第19卷第3期(2023年1月)基于Flutter的山羊孕测App设计与实现邵毅,何美,陈春(毕节职业技术学院,贵州 毕节 551700)摘要:目前大部分软件产品服务形式已逐步从传统单一的B端向多平台转变,但针对各平台单独开发将会是一个较大工作量、运维成本高、人力成本高的方案,涉及智慧畜牧的情况也是这样。文章介绍选用Flutter开发框架和Golang语言设计和实现一个跨平台的山羊孕测App,包括视频监控、即时通讯、异常通知等功能。利用Golang开发操
2、作后端数据与Socket通信SDK包,使用Flutter开发框架调用SDK包编写一套程序代码进行跨端编译在Android、iOS两个平台运行。有效地提高了开发效率、性能的稳定,降低维护成本,加快对山羊孕测即时响应度。关键词:Flutter;Golang;Socket;山羊孕测中图分类号:TP311文献标识码:A文章编号:1009-3044(2023)03-0040-04开放科学(资源服务)标识码(OSID):随着移动应用在广大群众中的广泛使用频率提高,更多的B端产品逐步转向到移动端,其中原生App的高性能满足较多场景的使用,随着技术发展,跨平台方案逐步推广,引出众多跨平台技术,如React N
3、ative、Weex、Flutter等。2018年谷歌开源Flutter1.0至今3.3在跨平台的高性能与开发便捷不断受到广泛青睐。本文将在已使用Java SpringBoot设计的山羊孕测管理系统平台的基础上采用Flutter框架开发一套山羊孕测App,实现视频监控、即时通讯、异常通知等功能,为提升与山羊孕测管理系统平台的高性能多线程数据处理能力使用Golang语言开发接口SDK包。有效提高专家、管理员、员工通过App进行对山羊怀孕检测、山羊状态进行监控与管理,使用Flutter进行一套代码开发,编译出原生代码在Android、iOS平台上运行,节省了开发成本,同时也提高了App的运行效率。
4、1 山羊孕测App设计1.1 Flutter框架介绍Flutter 是 Google 开源的应用开发框架,使用Dart语言开发,仅需要一套代码就能构建精美的、原生平台编译的多平台应用软件。Flutter可快速直接编译成ARM或者Intel 平台的机械代码,确保拥有原生平台运行的性能表现能力,高效地使用热重载(Hot Reload)在开发中快速更新实时预览并不丢失状态,在屏幕上,可灵活地将每个像素都由你来把握。在Flutter3.3版本开始逐步引入新的图形引擎:Impeller,提供了丝滑的动画效果,使用 Impeller 的应用可以保持 60Hz 或者更快的刷新率的同时,能够比以前更进一步地突
5、破界限。Flutter代码由Dart语言编写,该语言提供允许编译为iOS和Android的32位和64位的机械码,以及在Web允许的JavaScript和桌面设备,并且开源、免费和社区开发者的不断增加,现已被广大开发者使用1。1.2 Go语言介绍Go 语言(Golang)起源于 2007 年,是由 Google 的Robert Griesemer,Rob Pike 及 Ken Thompson 开发的一门编译型语言。具有部署简单、并发性能好、设计与执行能力好、支持垃圾回收功能、跨平台编译运行等优点。具有Gomobile是一个应用于iOS和Android的优秀跨平台开发库,为开发者提供创建And
6、roid或iOS移动平台代码的工具。1.3 山羊孕测设计针对性能与降低开发成本,Flutter具有较好的状态管理以及极快的UI便捷开发与跨平台的支持。在实时数据更新与数据接口请求,考虑到高并发、跨平台、低成本开发2,使用Socket连接,实时进行数据通信触发数据更新接口下发更新通知,从性能方面考虑,选择使用Go语言进行编写后端与App之间数据交互的桥梁,编译出与后端数据交互的SDK,方便在多场景下集成使用3。并使用 Flutter 提供 MethodChannel通信方式,在Native和Flutter的进行调用原生的代码。其中用到状态管理插件在 Provider、GetX、Bloc、Redu
7、x中从难易度上考虑,其中Provider的使用简便,但是它需要更多的框架搭建与处理全局上下文的问题,因此选择GetX状态管理,它的使用简单,并对全局context上下文提供了对应的方法,在业务逻辑收稿日期:2022-08-25基金项目:毕节市科技局2019联合基金项目(名称:基于物联网技术的山羊怀孕检测系统研究;文件编号:毕科发【2020】2号;项目编号:毕科联合字zy(2019)4号)作者简介:邵毅(1982),男,通信作者,副教授,硕士,主要研究方向为计算机技术、软件工程、信息系统开发与项目管理、人工智能、智慧农业;何美(1982),女,副教授,硕士,主要研究方向为计算机技术、计算机网络;
8、陈春(1998),男,主要研究方向为跨平台应用开发、人工智能、微服务系统开发、云原生开发与运维。E-mail:http:/Tel:+86-551-65690963 65690964ISSN 1009-3044Computer Knowledge and Technology电脑知识与技术Vol.19,No.3,January202340DOI:10.14004/ki.ckt.2023.0150软件技术本栏目责任编辑:谢媛媛Computer Knowledge and Technology电脑知识与技术第19卷第3期(2023年1月)第19卷第3期(2023年1月)中方便地调用以及对各个页面之间
9、进行跨页面的状态更新。避免过多重复的Widget 组件实现,对重复使用频率高的组件进行封装,提高了代码质量,方便在各个页面之间直接调用,避免重复 UI 逻辑实现,并针对重复调用方法逻辑进行封装到统一的Controller 控 制 器 中 由GetX状态管理方便调用,提高了代码阅读性4。1.4 山羊孕测App网络请求拓扑图山羊孕测App首次启动进行登录,向后端发送请求,通过网关授权后从后端应用服务器获取数据信息进行初始化SDK接口并建立 Socket 连接,监听数据更新。当触发监控页面时连接视频监控视频推流地址呈现画面在App,所有数据通过SDK进行发起数据请求返回到App呈现数据。在避免重复的
10、登录操作,使用了无状态Token校验权限,在每个请求中均携带Token请求,后端服务校验通过后,返回数据5。图1为网络请求拓扑图。1.5 山羊孕测App功能山羊孕测App底部导航主要划分为首页、资讯、消息、我的四个主要页面入口。首页:包含山羊数据列表,每个山羊可点击查看具体基本信息、其他观察、超声波、预警推送、生物激素、专家意见、视频监控、当日事件等功能。资讯:提供相关的资讯内容阅读。消息:为增强即时通讯能力,用于专家、员工、管理员之间的消息即时沟通能力。我的:提供个人信息资料修改,管理员可对用户和山羊信息进行管理维护,功能结构如图2-。除消息页面(即时通讯)为通用功能、资讯页面与我的页面个人
11、信息修改外,在登录页面可以通过申请账号功能页面申请账号、忘记密码、登录账号三项功能,在登录成功后根据申请账号时申请的角色权限不同将功能细分:管理员拥有管理后台、推送版本、修改参数功能,专家与员工角色同时具备查看信息、查看监控、推送预警、日历事件,专家额外拥有编辑建议、推送状态功能权限,员工额外拥有上传图片权限。如图2-所示。2 山羊孕测实现与关键技术2.1 服务端与App端数据交互Flutter编写App在进行数据交互时候,需要与后端业务通过API接口与Socket通道进行交互。在本App设计中使用Golang对后端业务接口进行封装成SDK API,Flutter需要进行SDK初始化后端接口地
12、址,通过调用接口与后端进行交互,并使用SDK初始化Socket建立连接,实时更新山羊状态数据,通过GetX状态管理对UI状态更新。2.2 App页面功能实现6图3为山羊孕测App实现部分页面图,详情见下:1)底部导航:使用自定义BuildNavigation底部导航组件传入Scaffold 脚手架的bottomNavigationBar 生成底部导航,在脚手架body中使用IndexedStack组件记录当前导航索引进行切换页面,效果如图 3-所示。2)首页:使用GetX中Controller控制器初始化数据并建立Socket连接监听数据变化,关键代码如下:initSocket()async
13、var socket=await Socket.connect(Api.socket,Api.socketPort);socket.listen(event)initAllSheepData();update(MainMHO););使用card_swiper插件完成轮播组件,选项卡区域图1 网络请求拓扑图图2 山羊孕测App功能机构及顶层用例图41本栏目责任编辑:谢媛媛软件技术Computer Knowledge and Technology电脑知识与技术第19卷第3期(2023年1月)第19卷第3期(2023年1月)使用TabBar组件实现,效果如图3-所示,选项卡中数据使用GetBuild
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 Flutter 山羊 App 设计 实现 邵毅
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【自信****多点】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【自信****多点】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。