基于Swift的简易iOS天气APP
文章目录
- 1. 项目简介
- 1.1 功能与参数
- 1.2 效果图
- 2. 运行方法
- 3. 相关资源
- 3.1 API参考文档
- 3.2 天气图标
- 4. 项目源码
1. 项目简介
这是一款用Swift 5编写的简易的iOS天气APP,主要实现了定位获取本地天气
、根据城市名搜索天气
这两个功能。另外,该APP中还有通过API获取数据时的加载动画。
项目使用CocoaPods管理第三方库。这些库包括Alamofire、SwiftyJSON、NVActivityIndicatorView。
开发工具:Xcode 11.5
开发语言:Swift 5
目标系统:iOS 13.5
1.1 功能与参数
定位获取本地天气
功能通过OpenWeatherMap提供的API(该API免费版提供的数据中没有空气指数等信息)来实现,传入URL中的参数是本设备的经纬度。
根据城市名搜索天气
功能通过天气API来实现(该API免费版的参数中不能传入经纬度),搜索框输入的中文城市名(如:成都)。
软件界面中的参数有:
- 城市名称、星期几、天气图标、天气类型、当前温度、湿度、气压(两个API均能获取)
- 空气指数、空气质量、外出建议、开窗建议(仅天气API能获取)
1.2 效果图
启动页面
打开软件后弹出获取定位的提示
加载动画
定位(国外 / 白天)
定位(国外 / 夜晚)
搜索(国内 / 空气质量好)
搜索城市(国内 / 空气质量差)
2. 运行方法
将OpenWeatherMap账户中的
API_KEY
,天气API账户中的APPID
、APPSecret
粘贴到代码的相应位置上
模拟器选择
iPhone 11
以获得最好的显示效果,之后点击运行
即可
附:
修改模拟器的经纬度
经纬度参考
地点 | 经度Longitude | 纬度Latitude |
---|---|---|
伦敦 | 2.2 | 48.52 |
纽约 | -74.0 | 40.43 |
莫斯科 | 37.35 | 55.45 |
北京 | 39.92 | 116.42 |
成都 | 104.07 | 30.67 |
- 测试API的URL获取数据时,可以使用
Rested
,它会将JSON数据以清晰的结构呈现出来。该软件可以在App Store
获取。
3. 相关资源
3.1 API参考文档
- 天气API
- OpenWeatherMap
3.2 天气图标
图标库:天气 | 作者:欣雨
图标库:ios12 | 图标名:天气 | 作者:奔跑的宇航员
4. 项目源码
- 通过CSDN积分获取
- 通过GitHub免费获取
基于Swift的简易iOS天气APP相关推荐
- android天气搜索框,Android简易天气App
原标题:Android简易天气App 前言 本打算是写一个贝塞尔曲线的demo,想了一下哪种场景可以直观的表现出贝塞尔曲线,想到天气预报中的那些24小时和未来几日天气变化正好适用.接着开始构思,开始是 ...
- iOS系统什么天气app可以访问锁屏?
正常情况下,iOS的界面上显示的是时间和日期,并没有显示天气.我一般会在负一屏中添加墨迹天气,来实现天气预报的功能.那么,是不是在手机就不能实现锁屏天气呢? 如果想手机的主屏实现天气App,那么我们需 ...
- iOS 7最佳实践:一个天气App案例
转自:sjpsega's Blog iOS7最佳实践:一个天气App案例(一) iOS7最佳实践:一个天气App案例(二) 注:本文译自:raywenderlich ios-7-best-practi ...
- 【iOS】APP IM聊天框架的设计(基于第三方SDK)
[iOS]APP IM聊天框架的设计(基于第三方SDK) 前言 在开发社交聊天类型的APP的时候,IM是必不可少的功能,而且很多公司的IM服务都是接的第三方的,很少用自研的,国内的IM厂商也都很成熟, ...
- 简易的安卓天气app(二)——适配器、每小时数据展示
✅简易的安卓天气app(一)--解析Json数据.数据类封装
- 基于Android的天气APP
基于Android的天气APP 前言 项目:https://github.com/w77996/Weather 多知天气,代码写的不咋的,主要是给大家学习一下.有些东西也是借鉴别人的主要借鉴的是别人的 ...
- Flutter打包iOS上传 AppStore ERROR ITMS-90432: “Invalid Swift Support. The file Runner.app/Frameworks/.l
在码农的世界里,优美的应用体验,来源于程序员对细节的处理以及自我要求的境界,年轻人也是忙忙碌碌的码农中一员,每天.每周,都会留下一些脚印,就是这些创作的内容,有一种执着,就是不知为什么,如果你迷茫,不 ...
- swift 快速奔跑的兔几 本节的内容是:音频与视频 第一说 AVFoundation 以及简单的iOS视频app
1.AVFoundation是一个功能强大的庞大框架,能够对音频和视频执行各种复杂操作. AVFoundation被设计用来加载和播放大量流行的视听格式. AVFoundation将可以播放的媒体称为 ...
- 基于vue.js开发的demo—天气APP
一.图例及代码 花了两天的时间学习了vue.js教程及API,练习着完成了一款天气app,界面如下,希望对刚入门的你有帮助! 详细代码下面会贴出主要的,你也可以直 ...
最新文章
- css grid布局
- RabbitMQ 安装操作
- .NET常用功能和代码[总结与收藏] (转)
- 监控硬盘脚本linux,shell脚本实现磁盘监控系统
- 华为支付强势杀入,微信、支付宝迎来新对手!
- java将字符串转小写转大写字母_输入一个字符串,将字符串中的所有大写字母转换为小写字母,所有小写字母转换为大写字...
- RK3399Pro Android Rock-X 人工智能开发系列(2)
- 通过JCONSOLE监控TOMCAT的JVM使用情况
- 软件设计师25-操作系统
- 如何用python完成基本统计信息计算_如何用python计算基本统计值?
- linux模拟lcd显示文字,求助 armlinux中实现lcd显示
- MATLAB 如何将视频和音频写入同一个文件?以视频上下颠倒为例,附带详细注释
- 北京专精特新企业申报攻略
- 宝塔实测-搭建LightPicture开源图床系统
- 测试UDP端口的方法
- java 接口,接口的特性,接口实现多态,面向接口编程
- C#海伦公式三边计算三角形面积
- git reset current branch to here
- 《瘟疫传说:无罪》成功背后是Asobo Studios在游戏设计中的超强控制力
- 科技型中小企业有哪些?
热门文章
- parseInt 的使用方式,基数表达
- Linux有问必答:如何在树莓派上安装USB网络摄像头
- 用phpcms如何将静态页面制作成企业网站(下)
- 两台计算机怎样共享一台打印机共享文件夹,两台电脑怎么共享文件和打印机
- 随想录(我熟知的几个实时操作系统)
- LCD液晶显示的51单片机简单计算器
- python测试嵌入式_用Python测试嵌入式系统的测试框架
- 移动端日历插件_小程序日历组件开发教程!
- onenetsim定位功能吗_餐饮空间的设计原则和特点,你了解吗?
- pagehelper自定义 count sql_Spring Boot 2.x(十三):你不知道的PageHelper