![基于iOS平台的天气APP的设计与实现_第1页](http://file4.renrendoc.com/view/87ad49afd6f649c3318aa96a1364ae9d/87ad49afd6f649c3318aa96a1364ae9d1.gif)
![基于iOS平台的天气APP的设计与实现_第2页](http://file4.renrendoc.com/view/87ad49afd6f649c3318aa96a1364ae9d/87ad49afd6f649c3318aa96a1364ae9d2.gif)
![基于iOS平台的天气APP的设计与实现_第3页](http://file4.renrendoc.com/view/87ad49afd6f649c3318aa96a1364ae9d/87ad49afd6f649c3318aa96a1364ae9d3.gif)
![基于iOS平台的天气APP的设计与实现_第4页](http://file4.renrendoc.com/view/87ad49afd6f649c3318aa96a1364ae9d/87ad49afd6f649c3318aa96a1364ae9d4.gif)
![基于iOS平台的天气APP的设计与实现_第5页](http://file4.renrendoc.com/view/87ad49afd6f649c3318aa96a1364ae9d/87ad49afd6f649c3318aa96a1364ae9d5.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 基于iOS平台的天气APP的设计与实现 张淼 刘东旭摘 要:随着移动网络的成熟,智能设备在人们的日常生活中变得不可或缺,随时随地帮助我们获取最新的信息。本文使用Swift语言在iOS平台开发了一款天气APP,系统主要包括主页信息模块、城市查询模块和内容分享模块,使用的关键技术包括Alamofire、SwiftyJson、Cocoapods等,通过调用天气预报网站的API来获取城市的天气情况并呈现给用户,方便用户随时查看天气情况,及时做好出行安排。Key:iOS平台;MVC架构;Cocoapods;Alamofire一、背景随着互联网的发展和4G技术的成熟,移动终端已经变为人们的日常生活中不可
2、缺少的一部分。目前市场上的主流开发平台有安卓、iOS和Windows Phone。其中iOS因为其无与伦比的安全性、独特的工业设计风格和成熟稳定的操作系统获得了不少人的青睐,可以说占领的市场上的半壁江山。1另外由于现代人生活的节奏越来越快,出行前一般都会提前关注未来的天气以备提前安排出行计划。因此设计一款基于iOS的天气APP可以方便用户获取本地、异地的天气情况,满足日常生活中的需求。另外考虑到目前大部分人的社交需求,还在app中增加了分享功能,可以把当前信息分享给微博好友,实现信息的共享和好友的互动。二、开发环境(一)iOS平台iOS(以前称为iPhoneOS)是苹果公司专门为其硬件开发的移
3、动操作系统。它是目前为公司许多移动设备提供动力的操作系统,包括iPhone、iPad和iPod touch,也是继安卓之后全球最流行的移动操作系统之一。iOS整体架构主要分为4层,分别是Cocoa Touch层、Media层、Core Service层、和Core OS层。2Cocoa Touch层中的大部分框架和界面相关,主要负责和用户打交道,比如用户的各种触摸操作就需要通过这个框架进行处理。通过媒体层,我们可以丰富自己的应用程序,使用各种音频、视频、图形等技术。核心服务层负责系统的一些核心服务,比如电话簿、社交媒体等。核心操作系统层则提供一些底层的功能,比如对内存进行管理或者对电源进行管理
4、,主要涉及到硬件方面的处理。(二)Xcode和Swift语言工欲善其事必先利其器,在iOS上开发程序,就需要在苹果电脑上配备一个Xcode软件。Xcode是苹果公司提供的一个集成开发环境,它用于管理工程、编辑代码、构建可执行文件、進行代码调试等等。4Swift是在苹果2014年全球开发者大会(WWDC)上推出的,是苹果为iOS、OS X、WatchOS、TVOS而创建的通用、多范式、编译的编程语言。3另外Swift作为一种新编程语言,它虽然基于C和Objective-C,但由于采用了安全的编程模式和添加现代的功能来使得编程更加简单、灵活和有趣。三、软件设计与实现(一)MVC结构整个系统采用MV
5、C(Model-View-Controller)三层架构实现。Model(模型)用于封装一组特定的数据,并包含操作该数据的逻辑。比如当你想到会计软件时,发票就是一个模型。当你想到微博应用程序时,每条你看到的短文就是一个模型。本系统中定义了Weather Data Model,该类中包含城市名、天气情况、温度、湿度以及对应天气图标等。视图(View)是用户可以在用户界面(UI)中看到的对象。像UIButton、UIView和UILabel这样的对象都是常见的视图例子。控制器控制视图和模型之间的所有逻辑。由于视图和模型之间不能够直接通信,需要它在视图和模型之间传输消息。本系统中定义了Chnage
6、City View Controller,Weather View Controller和Share View Controller。(二)关键技术1.AlamofireOpen weather map网站可以提免费的天气预报接口,提供当前天气的数据、5到16天的天气预报、以往的天气信息、气象站点以及详细的气象信息等。本系统利用Alamofire通过该网站提供的免费API来获取响应信息。Alamofire是一个用Swift编写的HTTP网络库,可以让开发者非常方便的的进行http的请求以及相应数据的处理。5我们首先利用Alamofire的request方法向网站发出请求,同时在response
7、方法中定义了如何对返回的信息进行处理。2.SwiftyJson对于网站返回的JSON类型数据,如果自己定义函数处理会非常麻烦。因此我们使用第三方的框架SwiftyJSON。SwiftJSON是用Swift编写的对JSON格式数据进行处理的类库,里面提供了众多方法,使用方便。在本系统中,我们通过SwiftyJSON对网站返回的相关天气信息进行处理。3.CocoapodsCocoaPods是OS X和iOS下的一个第三类库管理工具,并且支持Objective-C和Swift语言。6。通过Cocoapods工具我们可以很轻松的管理每个类库。以本系统为例,开发中使用了Alamofire和SwiftyJ
8、son,因此在Podfile文件中添加以下两句话进行配置:pod Alamofire, 5.0.0-beta.3,pod SwiftyJSON, 4.0。(三)系统实现本系统主要分为三个部分:主页信息模块和城市查询模块和内容分享模块。用户打开APP之后首先看到启动页,紧接着加载主页信息,此时我们可以直接看到本地当前的天气状况,以及最近一周的天气情况。通过点击右上角的按钮可以切换到查询界面。在查询界面,我们可以输入任意一个地点,点击查询后,跳转到当地的天气界面。以查询界面为例,说明该模块的实现。首先获取输入框输入的文本,根据输入信息向服务器发送请求,对服务器返回的信息用SwiftyJSON进行解
9、析,然后更新主页面的展示内容。由于查询界面和主页是由不同的视图控制器控制,因此此时涉及到不同ViewController之间的数据传递。其中向服务器发送请求并处理信息的主要函数如下图所示:四、结语本文利用Swift语言在iOS平台开发了一款天气APP,通过调用天气预报网站的API来获取城市的天气情况并呈现给用户,方便用户随时查看天气情况。本系统通过MVC框架构建,通过Alamofire网络框架向服务器请求天气信息,并对返回的JSON数据利用SwiftyJson处理。经测试该APP整体使用效果较好,基本上可以满足用户简单的天气查询需求。由于时间问题,天气App应用程序还有部分功能需要完善,如增加
10、分享到微信、保存常用地点、消息推送等功能,进一步提升用户体验。Reference:1赵益泽.浅析安卓系统,iOS,Windows Phone系统的差异性J.数字通信世界,2017(11):147-148.2关东升.移动操作系统原理与实践M.北京:清华大学出版社,2017:146-147.3李亚欣,蔡永香,邓舒颖.基于Swift对Objective-C开发的移动应用程序优化J.软件导刊,2018,17(10):178-182.4传智播客.Swift项目开发基础教程M.北京:人民邮电出版社,2016:6-7.5郑国凯,侯超钧.基于iOS的学生考勤管理系统的设计与实现J.现代计算机(专业版),2016(27):68-72.6沈梦姣,蔡丽明.基于iOS平台的嗨球AP
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 车辆抵押合同借款范本年
- 商品采购合同范本年
- 合同协议补充模板
- 钢铁项目担保合同
- 摄影师劳动合同范本
- 商品混凝土合同书范本
- 草坪种植合同协议书模板范本
- 租赁合同申请书年
- 空置房屋转让合同模板
- 部编版道德与法治九年级上册《我们的梦想》听课评课记录1
- 提升模组良率-六西格玛
- DL-T+5196-2016火力发电厂石灰石-石膏湿法烟气脱硫系统设计规程
- 2024-2030年中国产教融合行业市场运营态势及发展前景研判报告
- 2024年微生物检测试剂行业商业计划书
- 高中英语选择性必修一单词表
- 物业公司介绍
- (正式版)SHT 3551-2024 石油化工仪表工程施工及验收规范
- JTGT H21-2011 公路桥梁技术状况评定标准
- 【永辉超市公司员工招聘问题及优化(12000字论文)】
- 中国直销发展四个阶段解析
- 2024届浙江省宁波市镇海区镇海中学高一物理第一学期期末质量检测试题含解析
评论
0/150
提交评论