文章目录

  • 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免费版的参数中不能传入经纬度),搜索框输入的中文城市名(如:成都)。

软件界面中的参数有:

  1. 城市名称、星期几、天气图标、天气类型、当前温度、湿度、气压(两个API均能获取)
  2. 空气指数、空气质量、外出建议、开窗建议(仅天气API能获取)

1.2 效果图

  1. 启动页面

  2. 打开软件后弹出获取定位的提示

  3. 加载动画

  4. 定位(国外 / 白天)

  5. 定位(国外 / 夜晚)

  6. 搜索(国内 / 空气质量好)

  7. 搜索城市(国内 / 空气质量差)


2. 运行方法

  1. 将OpenWeatherMap账户中的API_KEY,天气API账户中的APPIDAPPSecret粘贴到代码的相应位置上

  2. 模拟器选择iPhone 11以获得最好的显示效果,之后点击运行即可


附:

  1. 修改模拟器的经纬度

  2. 经纬度参考

地点 经度Longitude 纬度Latitude
伦敦 2.2 48.52
纽约 -74.0 40.43
莫斯科 37.35 55.45
北京 39.92 116.42
成都 104.07 30.67
  1. 测试API的URL获取数据时,可以使用Rested,它会将JSON数据以清晰的结构呈现出来。该软件可以在App Store获取。

3. 相关资源

3.1 API参考文档

  • 天气API
  • OpenWeatherMap

3.2 天气图标

  • 图标库:天气 | 作者:欣雨

  • 图标库:ios12 | 图标名:天气 | 作者:奔跑的宇航员


4. 项目源码

  • 通过CSDN积分获取
  • 通过GitHub免费获取

基于Swift的简易iOS天气APP相关推荐

  1. android天气搜索框,Android简易天气App

    原标题:Android简易天气App 前言 本打算是写一个贝塞尔曲线的demo,想了一下哪种场景可以直观的表现出贝塞尔曲线,想到天气预报中的那些24小时和未来几日天气变化正好适用.接着开始构思,开始是 ...

  2. iOS系统什么天气app可以访问锁屏?

    正常情况下,iOS的界面上显示的是时间和日期,并没有显示天气.我一般会在负一屏中添加墨迹天气,来实现天气预报的功能.那么,是不是在手机就不能实现锁屏天气呢? 如果想手机的主屏实现天气App,那么我们需 ...

  3. iOS 7最佳实践:一个天气App案例

    转自:sjpsega's Blog iOS7最佳实践:一个天气App案例(一) iOS7最佳实践:一个天气App案例(二) 注:本文译自:raywenderlich ios-7-best-practi ...

  4. 【iOS】APP IM聊天框架的设计(基于第三方SDK)

    [iOS]APP IM聊天框架的设计(基于第三方SDK) 前言 在开发社交聊天类型的APP的时候,IM是必不可少的功能,而且很多公司的IM服务都是接的第三方的,很少用自研的,国内的IM厂商也都很成熟, ...

  5. 简易的安卓天气app(二)——适配器、每小时数据展示

    ✅简易的安卓天气app(一)--解析Json数据.数据类封装

  6. 基于Android的天气APP

    基于Android的天气APP 前言 项目:https://github.com/w77996/Weather 多知天气,代码写的不咋的,主要是给大家学习一下.有些东西也是借鉴别人的主要借鉴的是别人的 ...

  7. Flutter打包iOS上传 AppStore ERROR ITMS-90432: “Invalid Swift Support. The file Runner.app/Frameworks/.l

    在码农的世界里,优美的应用体验,来源于程序员对细节的处理以及自我要求的境界,年轻人也是忙忙碌碌的码农中一员,每天.每周,都会留下一些脚印,就是这些创作的内容,有一种执着,就是不知为什么,如果你迷茫,不 ...

  8. swift 快速奔跑的兔几 本节的内容是:音频与视频 第一说 AVFoundation 以及简单的iOS视频app

    1.AVFoundation是一个功能强大的庞大框架,能够对音频和视频执行各种复杂操作. AVFoundation被设计用来加载和播放大量流行的视听格式. AVFoundation将可以播放的媒体称为 ...

  9. 基于vue.js开发的demo—天气APP

    一.图例及代码 花了两天的时间学习了vue.js教程及API,练习着完成了一款天气app,界面如下,希望对刚入门的你有帮助!                    详细代码下面会贴出主要的,你也可以直 ...

最新文章

  1. css grid布局
  2. RabbitMQ 安装操作
  3. .NET常用功能和代码[总结与收藏] (转)
  4. 监控硬盘脚本linux,shell脚本实现磁盘监控系统
  5. 华为支付强势杀入,微信、支付宝迎来新对手!
  6. java将字符串转小写转大写字母_输入一个字符串,将字符串中的所有大写字母转换为小写字母,所有小写字母转换为大写字...
  7. RK3399Pro Android Rock-X 人工智能开发系列(2)
  8. 通过JCONSOLE监控TOMCAT的JVM使用情况
  9. 软件设计师25-操作系统
  10. 如何用python完成基本统计信息计算_如何用python计算基本统计值?
  11. linux模拟lcd显示文字,求助 armlinux中实现lcd显示
  12. MATLAB 如何将视频和音频写入同一个文件?以视频上下颠倒为例,附带详细注释
  13. 北京专精特新企业申报攻略
  14. 宝塔实测-搭建LightPicture开源图床系统
  15. 测试UDP端口的方法
  16. java 接口,接口的特性,接口实现多态,面向接口编程
  17. C#海伦公式三边计算三角形面积
  18. git reset current branch to here
  19. 《瘟疫传说:无罪》成功背后是Asobo Studios在游戏设计中的超强控制力
  20. 科技型中小企业有哪些?

热门文章

  1. parseInt 的使用方式,基数表达
  2. Linux有问必答:如何在树莓派上安装USB网络摄像头
  3. 用phpcms如何将静态页面制作成企业网站(下)
  4. 两台计算机怎样共享一台打印机共享文件夹,两台电脑怎么共享文件和打印机
  5. 随想录(我熟知的几个实时操作系统)
  6. LCD液晶显示的51单片机简单计算器
  7. python测试嵌入式_用Python测试嵌入式系统的测试框架
  8. 移动端日历插件_小程序日历组件开发教程!
  9. onenetsim定位功能吗_餐饮空间的设计原则和特点,你了解吗?
  10. pagehelper自定义 count sql_Spring Boot 2.x(十三):你不知道的PageHelper