DOI:10.16660/j.cnki.1674-098X.2018.29.099
2018 NO.29Science and Technology Innovation Herald科技创新导报基于iOS平台的嗨球APP的设计与实现
沈梦姣 蔡丽明
(嘉兴职业技术学院 浙江嘉兴 314036)
①
摘 要:足球是一项全世界都为之疯狂的运动,也正逐渐发展为全民运动,嗨球APP针对这一细分市场,既是一个球迷交流的平台,也是球队队内通信的平台,更是一个球队间约战的平台,是具有较高的市场价值和应用价值的。本文阐述了嗨球APP在iOS平台上的设计和实现。关键词:APP iOS MVVM中图分类号:TP315 文献标识码:A 文章编号:1674-098X(2018)10(b)-0099-02
随着移动互联技术的快速发展和智能手机的广泛普及,品类繁多的APP,正潜移默化地改变着人们生活工作的方方面面,蕴含着无限商机。这也吸引了许多投资人,瞄准某个O2O细分领域,需要快速实现相应的APP开发,进而养活了一批中小型外包企业。本文所描述的嗨球APP就是一小型外包企业承接的移动软件开发项目,分别有Android和IOS两个版本,这里仅对iOS平台的嗨球APP的设计和实现进行阐述。
1 APP架构设计
APP的总体架构采用了目前主流的MVC模式,也引入了MVVM模式。
MVC模式:M(Model)模型-统一管理数据,V(View)视图-用于展示信息,C(Controller)控制器-用于接收用户请求并更新模型。三者各司其职,从一定程度上降低了各个环节的耦合性,优化了Controller的代码量。具体Model、View、Controller之间的交互如图1所示。其中,C和V之间可以互相通信,C通过Outlet控制V,V通过Target-Action、Delegatae、data source等与C进行通信。C可直接与M对话,M通过Notification和KVO 机制与C间接通信。M和V永远不能互相通信,只能通过C传递。
MVVM模式:衍生于MVC,是对MVC的一种演进,它促进了 UI 代码与业务逻辑的分离。第一个M(Model)-与MVC中的M基本一样,但要求更轻量级,第一个V(View)-比MVC中的V更广泛些,VM(ViewModel)视图数据模型-将MVC中的Controller里大量的关于视图逻辑和数据逻辑迁移到VM中,从而减轻了视图控制器的负担。考虑到
低内聚高耦合的原则,一个MVC Controller中的代码可以
拆分到若干个VM中,ViewModel的可复用性和灵活性高,且测试更加便捷。在iOS平台上,利用MVVM模式结合ReactiveCocoa库,使得开发更加事半功倍。
嗨球APP采用CocoaPods进行第三方库管理,且引入了包括Mantle、Masonry、AFNetworking、ReactiveCocoa等在内的数十个第三方库。
ReactiveCocoa:以MVVM模式为基础,利用函数响应式编程及流通信号切割不同模块结构,使原有Controller功能分散到多个ViewModel中。
Mantle:简化Cocoa或Cocoa Touch程序中model层的第三方库,支持model的初始化和编码解码工作。
AFNetworking:一款轻量级网络请求开源框架,基于iOS和mac os网络进行扩展的高性能框架,大大降低了iOS开发工程师处理网络请求的难度。
2 APP功能
嗨球是一个手机足球软件,APP设计以功能集中、操作简单、界面简洁为原则,满足足球迷们日常约球、看球、谈球的实际需要。经过充分的市场调研以及和投资方的需求交流,嗨球APP的主要功能包括用户登录与注册、首页队内、首页球队、个人中心、微球榜、微投票、微球圈、微球讯、消息推送九大功能,具体功能模块划分如图2所示。其中微球榜为各球队打榜,展示各个球队的积分、胜率和进球数等,并且按积分排名;微投票是针对足球相关事宜
图1 MVC模式图2 APP功能模块
①作者简介:沈梦姣(1986—),女,汉族,浙江嘉兴人,硕士,助教,研究方向:软件技术。
蔡丽明(1990—),女,汉族,浙江湖州人,硕士,助教,研究方向:电子商务。
科技创新导报 Science and Technology Innovation Herald
99
科技创新导报2018 NO.29Science and Technology Innovation Herald信息科学
图3 APP实现效果图
发起投票,收集球迷和球队的意见,例如一场比赛支持哪个队赢;微球圈用于推广足球周边,包括球服、球吧、球场等;微球讯是有关最新的足球资讯;个人中心是用户的基本信息。
(1)用户登录与注册。一般而言,APP为了提高用户群体,都会支持第三方登陆,本APP也不例外,支持微信和QQ注册登录。为了降低开发成本,采用友盟+实现第三方分享、授权登录。在前期,开发者需要去友盟后台申请AppKey,去微信开发者平台申请AppID、AppSecret,去腾讯开发平台申请APPID、APPKey。然后去下载友盟第三方分享、授权登录的SDK,注意在下载的时候可以仅勾选QQ和微信,下载精简版本。利用CocoaPods 进行库管理,在工程中引入SDK,然后调用API去完成开发。
(2)消息推送。嗨球APP对消息进行了分类处理,含奖品提醒、战绩确认、队内通知、约战通知、入队申请、约战申请、约战结果、奖品确认。每种消息都有不同的处理界面和方式。消息的推送仍然使用友盟的SDK接入,进行消息的推送。此外,设置有“我的消息”页面,让用户去进行查看和处理。
(3)嗨球APP的首页,在导航栏设置了一个UISegment控件,允许通过切换,将首页切换为“队内”和“球队”两个界面。队内页主要是通过文字和图片来展示球队内部的一些最新状态,且允许球队成员和球迷去点赞、倒喝彩和点评。球队
100
科技创新导报 Science and Technology Innovation Herald
页,则分两种情况处理。当用户并未加入某个球队时,球队
页允许用户搜索球队并申请加入球队。当用户已经加入了球队后,则可以看到该球队的最新通知、比赛近况等。
3 APP成果展示
通过充分的需求调研、系统设计、软件开发测试,最终完成了基于iOS的嗨球APP,为足球迷们、专业或业余足球队提供日常约球、看球、谈球的平台,部分运行效果如图3所示。
4 结语
本文主要阐述的是基于iOS平台的嗨球APP的构建,能够满足、采用CocoaPods进行项目管理,引入了Mantle、ReactiveCocoa、AFNetworking等第三方库,且使用了本团队开发的基于表视图的页面级框架,在包体大小、内存、CPU占用率等指标上都达到了预期的要求,顺利发版,为市场上同类型APP的设计与实现提供了参考依据。
参考文献
[1] 黄浏展.基于iOS的微课视频学习APP的设计与实现[J]. 软件工程,2018(8):46-50.
[2] 喻晓,陆澄澹,黄秋霞,等.基于iOS的项目工时管理客户端的设计与实现[J].计算机时代,2018(10):22-25.
因篇幅问题不能全部显示,请点此查看更多更全内容