- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于一个项目的开发与实现
摘要:展示了一个实景天气项目的开发,前期需要做的工作,并且记录了实景天气的基本开发过程,针对主要代码片段,及开发中遇到的一些难题的解决,讲授了一些开发心得和经验。
1 概述随时随地都可以查看当前所在城市以及周边地区的天气状况, 并且可以实时地记录下此刻美好的画面。1.1 功能实时拍摄实景照片并且可以记录下此刻的天气状况及自身所在的位置 (实景拍摄功能)。1.2 效果图如图1所示。2 开发分析研发一款好的APP, 首先要调查一下它的市场价值, 需要付出多少资金, 更要分析一下它具体要实现哪些功能, 需要做哪些准备, 制定合理的开发计划, 最后就是搭建好整体项目框架, 并且用典型的MVC模式开发。例如实景相机的架构, 如图2所示。主要文件夹解释:Controllers: 控制器 , 协调、沟通Views和Models, 就是把天气数据模型展示到视图上去;Views: 视图, 展示天气界面的view;Models: 模型, 抽象出来的数据模型, 此处存放天气模型数据;Pods: CocoaPods的缩写, 一个Objective-C第三方库的管理工具。完成框架搭建后, 下一步就是天气接口选择与实现。自己实现显然不是很现实, 综合比较各种天气接口, 最后决定使用由国家气象局免费提供天气预报接口API, 分为以下3种:/data/sk/101010100.html/data/cityinfo/101010100.html/data/101010100.html因为要的天气信息比较全面, 对比3个天气预报接口, 第3个天气预 报接口返 回信息比 较全面 , 也是以JSON(JavaScript Object Notation, 是一种轻量级的数据交换格式) 格式提供的, 所以选择第3个天气预报接口, 用浏览器打开后,其格式如下:为了便于理解, 加了一些注释。该JSON格式, 字段言简意赅, 城市名、英文名、阳历日期、农历日期、 星期、预报时间、城市代码, 6个预报温度 (华氏温度, 摄氏温度), 6个预报天气和风力, 剩下的就是一些气象指数。在接口确定后, 剩下的就是利用第三方库AFNetWorking的GET方式, 实现天气数据的异步下载以及JSON数据的解析, 这将省去很多不必要的代码, 节省时间 (这就是第三方库的好处), 这里用北京的城市编码实现, 主要实现代码:实现了天气数据的下载及解析后, 下一步就要实现核心的实景相机功能了 (就是实现相机拍摄界面), 主要有两种方式:第一种: 调用Apple系统的相机, 然后覆写系统的相机, 实现自己想要的天气展示效果, 如图3所示。优点: 实现简单, 开发迅速, 节省时间。缺点: 可控性不强, 有时达不到想要的效果, 后期可能更难开发代码如下:第二种: 利用AVFoundation.framework和ImageIO.framework完全自定义相机, 这样完全可以按照自己的意愿去实现; 分为6大步: 创建会话层、找到一个合适的采集设备、创建一个输入设备, 并将它添加到会话、创建一个输出设备, 并将它添加到会话、获取链接、获取图片。优点: 可以灵活控制, 实现自己想要的任何效果, 后期更好开发缺点: 实现起来相对麻烦, 尤其要控制好成像问题最后一步, 就是把解析出来的天气数据和相机结合在一起, 组成一个完整的实景相机界面, 如图5所示。综合考虑到各种因素, 最后决定使用自定义相机, 如图4所示, 虽然前期麻烦一点, 但是后期还是很受益的。天气与实景结合主要实现代码:3 开发中遇到的难点和后期项目的扩展3.1 开发中遇到的难点3.1.1 天气接口的选择要开发实景天气相机, 天气数据接口是必不可少的, 如果自己写的话肯定不现实, 而它又有XML和JSON两种格式,最后结合开发进度及实现难易, 选择了国家气象局提供的免费天气接口, 提供了未来6天的天气数据。3.1.2 实景相机界面一开始是调用的系统的相机实现的实景画面, 但是由于可控性不是很好, 最后决定放弃, 改用自己去实现实景相机界面, 虽然难度增加了, 但是自己可以灵活控制, 更容易实现自己想要的效果, 后期更容易控制。3.2 后期项目的扩展经过自己不懈努力, 基本完成了最初的设想的功能, 并提交App Store审核通过了。后期项目扩建还会加上: 照片的滤镜效果、更多更加灵活的水印切换, 亦可以移动水印位置、自定义天气心情、循环切换不同的天气显示、实时查看不同城市的天气状况、浏览实景图片、 并可以分享实景图片等, 敬请期待。代码如下:#pragma mar
您可能关注的文档
最近下载
- 生物安全实验室乙型肝炎病毒实验活动风险评估报告.docx VIP
- 2025年全国中考历史真题分类汇编.docx VIP
- 托福写作172句型.doc VIP
- 三级助听器验配师理论知识考核试题及答案.pdf VIP
- Unit 7 Happy Birthday第1 Lead-in Cartoon time三年级英语上册练习(译林版三起).pdf VIP
- 昌平区电力工程施工组织设计.doc VIP
- 2025年新人教版数学二年级上册全册课件.pptx
- T∕CCMA 0075-2019 -装载机载荷谱试验方法.pdf VIP
- 针灸入门广州中医药学PPT.ppt VIP
- 学堂在线 如何写好科研论文 章节测试答案.docx VIP
文档评论(0)