基于Swift的简易iOS天气APP

用Swift实现一款天气预报APP(三) 通过前面的学习,一个天气预报的APP已经基本可用了。至少可以查看现在当前的天气情况和未来几个小时的天气预报了。但是,还不够完善。如果用户想要知道他要去的地方的天气怎么办。明显我们的APP在目前来说无法满足用户的这个需求。而我们的APP需要获取其他城市的天气却非常的简单。通过查看天气的API,发现只要把城市的名称作为参数就可以获得当地城市的天气预报。API: api.openweatherma 阅读详情


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账户中的APPID、APPSecret粘贴到代码的相应位置上

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


附:

  1. 修改模拟器的经纬度

  2. 经纬度参考

地点经度Longitude纬度Latitude
伦敦2.248.52
纽约-74.040.43
莫斯科37.3555.45
北京39.92116.42
成都104.0730.67
  1. 测试API的URL获取数据时,可以使用Rested,它会将JSON数据以清晰的结构呈现出来。该软件可以在App Store获取。

3. 相关资源

3.1 API参考文档

3.2 天气图标


4. 项目源码

用Swift实现一款天气预报APP(一) Swift作为现在苹果极力推广的语言,发展的非常快。这个语言就和她的名字一样,比OC减少了很多的文件和代码量。头文件,bye bye啦,再不用查个代码上下的头文件源文件切换了。而且语言本身也增加了很多的安全性的考虑,比如类的初始化个阶段的检查等。不按照规定的写就不能编译通过!本文假定你有一定的编程基础,和一定的Swift基础。如果木有的话,请看这里迅速补起。 本文就用Swif写一个APP,让 阅读详情

相关推荐

使用易客运提供的天气API开发IOS应用天气APP

通过获取appid以及appsecret 进行API数据请求选择自己想要的数据接口,应该都可以获取,具体自己测试,我这边使用的是(专业七日天气接口v93)

qq_45240208的博客 3313

Swift创作天气APP

ios小白的第一个app

yueliangmua的博客 1038

swift实战小程序1天气预报

在有一定swift基础的情况下,让我们来做一些小程序练练手,今天来试试做一个简单地天气预报。新建一个工程,命名为Weather,然后上网找一个天气预报的API,百度搜索“天气预报 api”,打开一个网站,如下图:    我们最好找json的格式的api,比如这样的 找到API之后,我们来制作一个用户界面,打开storyboard,加载一个按钮,命名为北京的天气信息:

Cwift的专栏 8756

Swift 动画片段

UIView.transitionWithView( self.WeatherDetailsView, duration: 0.7, options: .TransitionCrossDissolve, animations: { self.WeatherDetailsView.alpha = 0.75; self....

weixin_30627381的博客 95

iOS天气预报应用实战教程

本文还有配套的精品资源,点击获取 简介:在iOS开发中,实现天气预报功能是常见的需求,Apple提供的WeatherKit API可以帮助开发者轻松集成高质量的天气数据。本文深入探讨如何利用WeatherKit实现iOS天气预报应用,包括注册和认证、集成WeatherKit到项目、请求天气数据、处理响应和错误、展示天气信息、实时更新、权限处理以及性能优化等关键步骤。 ...

weixin_35762258的博客 1660

swift-墨迹天气天气预报动态天气天气Animation

墨迹天气,天气预报,动态天气,天气Animation

APPaginalTableView:打造如iOS 7天气应用般流畅的导航体验

APPaginalTableView:打造如iOS 7天气应用般流畅的导航体验 在追求极致用户体验的移动开发领域,流畅且直观的界面设计始终是开发者不断探索的目标。今天,我们要推荐一个开源项目——APPaginalTableView,它正是为实现类似iOS 7天气应用中的视图切换效果而生,让您的App拥有那股令人眼前一亮的滑动浏览魅力。 项目介绍 APPaginalTableView 是一款精巧的组...

gitblog_00360的博客 364

swift-模仿iOS11原生天气应用的App

模仿iOS 11原生天气应用的App

用swift实现天气

第一篇博客

Here is prician 3091

NVActivityIndicatorView(iOS源代码)

来源: github/NVActivityIndica Licence: MIT 作者: 漂亮的 loading 动画收集 demo (Swift 版本) 安装: 1、Cocoapods podfile 文件中增加 pod 'NVActivityIndicatorView' 执行 pod install 2、Carthage Cartfile 中增加一行 github "ninjaprox/NVActivityIndicatorView" 执行 carth

一文搞懂深度学习:最全神经网络介绍

本文是深度学习系列文章的第二篇,我们将深入探讨各种类型的人工神经网络,探索它们独特的特性和应用。

2402_82802238的博客 2799

一个简单的iOS天气应用程序源码

记住,你需要替换YOUR_API_KEY为你的OpenWeatherMap API密钥,并且在运行此应用之前确保你已经向OpenWeatherMap注册并获取了一个API密钥。由于篇幅限制,我将提供一个基础的示例,这个例子会展示如何创建一个简单的UI,获取用户的当前位置,并从OpenWeatherMap API获取天气数据。但是,为了简化HTTP请求,我们将使用Swift的原生URLSession。填写项目信息,选择Swift作为语言,选择SwiftUI作为界面,并点击"Next",然后保存你的项目。

2301_79507619的博客 1772

STM32F407 FSMC并口读取AD7606

先贴一下最终效果图.这个是AD7606并口读取数据一个周期后的数据结果. 原始波形用示波器看是很平滑的. AD7606不知为何就会出现干扰, 我猜测可能是数字信号干扰导致的. 因为干扰的波形很有规律. 这种现象基本上可以排除是程序问题. 应该是干扰或者数字信号干扰,或者是数字和模拟共地导致的.是一个宏,实际上是指向的一个内存地址, 这个内存地址是FSMC指定的地址. 使用FSMC接口, 可免于控制引脚, 直接读取某个地址即可, FSMC会自动产生操作时序. 具体请见FSMC相关知识.

走错路的程序员 5495

Swift Language Weather:iOS天气应用开发的终极完整指南

Swift Language Weather是一款基于Swift 4开发的现代iOS天气应用,为开发者提供了学习Swift编程语言和iOS开发的完美范例。这个开源项目展示了如何构建功能完整、界面精美的天气应用,是Swift开发者不容错过的学习资源。 ## 🌟 项目核心特色 ### 现代化的Swift 4架构 项目采用最新的Swift 4语言特性,包括值类型编程、协议扩展等现代编程范式。代码结

gitblog_00809的博客 463

Spring Boot Swagger未授权访问漏洞:原理、风险与修复方案详解

在微服务架构中,API文档管理是开发与运维的重要环节。Swagger作为RESTful API文档生成与调试的标准化工具,通过OpenAPI规范自动生成交互式接口文档,极大提升了开发效率。然而,其默认配置往往缺乏访问控制,导致文档端点直接暴露,形成未授权访问漏洞。从技术原理看,该漏洞源于Spring Boot等框架集成Swagger时,相关端点未纳入安全框架的拦截范围,攻击者可通过扫描常见路径获取完整的接口定义与数据结构。这不仅会造成敏感信息泄露,更可能成为越权操作、数据篡改等深度攻击的入口点。在工程实践中

weixin_42524171的博客 493

避免踩坑!杰理AC63蓝牙名修改常见问题及解决方案(含BLE后缀处理)

本文详细解析了杰理AC63蓝牙设备名称修改的全过程,包括基础操作、BLE后缀处理及高级调试技巧。针对蓝牙名修改中的常见问题,提供了实用的解决方案和代码示例,帮助开发者避免踩坑并实现高效定制。

q6r7s8t9的博客 410

iOS开发Swift-10-位置授权, cocoapods,API,天气获取,城市获取-和风天气App首页代码

1.获取用户当前所在的位置 在infi中点击加号,选择权限:当用户使用app的时候获取位置权限. 填写使用位置权限的目的. 2.获取用户的经纬度. ViewController: import UIKit import CoreLocation class ViewController: UIViewController, CLLocationManagerDelegate { ...

LYly_B的博客 1005

海康威视iVMS-4200在银河麒麟系统部署全攻略与疑难排解

在信创国产化进程中,软件兼容性是关键挑战之一。以安防监控领域广泛使用的海康威视iVMS-4200客户端为例,其从Windows环境迁移到银河麒麟等国产操作系统时,面临架构适配、依赖库匹配等核心兼容性问题。这涉及到跨平台软件部署的通用原理:不同CPU架构(如ARM的飞腾、x86的兆芯)和操作系统底层API的差异,要求软件必须进行针对性编译和优化。解决这类问题的技术价值在于保障专业软件在国产化环境中的稳定运行,是信创产业落地的重要环节。具体到应用场景,如在基于银河麒麟V10的安防监控项目中,通过获取对应架构的.

weixin_33423874的博客 1407

iOS完整App资源收集

前言 iOS开发学习者都希望得到实战训练,但是很多资料都是只有一小部分代码,并不能形成完成的App,笔者在此处收集了很多开源的完整的App,都有源代码哦! 本篇文章持续更新中,请持续关注。本篇所收集的内容来源于四面八方,若大家看到好的资源,欢迎在评论中提出,笔者会整理至文章中,谢谢! 完整项目 zhihuDaily 高防知乎日报IOS-Swift2.0 高仿半糖App 这个开源项目为半

Kiven's Program Space 2352

手把手教你用EG2153搭建开关电源:SOP-8封装驱动芯片的5个设计技巧

本文详细介绍了使用EG2153自振荡半桥驱动芯片搭建开关电源的五个核心设计技巧。内容涵盖从深入理解芯片工作机制、频率编程计算误区、SOP-8封装的热管理方案,到死区时间评估与外部保护电路设计,以及实战调试与故障排查指南,旨在帮助工程师实现稳定可靠的小功率电源设计。

weixin_29200485的博客 376

一台NAS两个系统:飞牛nas上完美运行群晖DSM?(飞牛nas+群晖nas套娃安装实操)

想在飞牛NAS上体验群晖DSM系统?💡 本文详细记录了飞牛nas上部署群晖的完整过程,从镜像转换到系统安装,每一步都有详细说明 🖥️,让你在不增加硬件成本的情况下,轻松实现一套硬件、多种系统的灵活部署 ✅

XiaoqiangClub的博客 2360

Project-RainMan部署指南:在iOS设备上运行开源天气应用的完整流程

Project-RainMan是一款基于Swift开发的开源天气应用,提供实时天气数据、周预报和天气警报等核心功能。本指南将帮助你快速在iOS设备上部署并运行这个功能强大的天气应用,无需复杂的编程知识。 ## 📋 准备工作:部署前的必要条件 在开始部署Project-RainMan之前,请确保你的开发环境满足以下要求: - **硬件要求**:Mac电脑(推荐2018年后机型)、iOS设备(

gitblog_00393的博客 556

SAP-ABAP:SAP基础数据校验工具开发系列博客(共5篇) 第一篇:需求梳理与架构设计:从零搭建SAP主数据校验能力底座

摘要: 本系列博客介绍SAP主数据校验工具的开发和设计,旨在解决物料、供应商、客户等主数据录入不规范、关联缺失和合规性问题。第一篇聚焦需求梳理与架构设计,提出分层技术架构(展示层、业务逻辑层、数据访问层),支持实时校验和批量校验两种模式,并详细说明规则引擎设计、SAP系统对接方案及权限管控逻辑。后续篇章将深入规则引擎实现、接口对接、结果可视化和性能优化,帮助构建集中式、可配置的主数据校验能力,提升SAP数据质量。

baidu_35680696的博客 330

天气app的收获

完整的步骤包括:​ 1. 导入 CoreLocation 框架。​ 2. 创建 CLLocationManager 实例。​ 3. 在 Info.plist 配置权限描述。​ 4. 在代码中请求位置权限。​ 5. 设置代理,监听位置更新。​ 6. 处理位置更新和错误。需要注意的是,我们在获取了当前位置的信息后,需要手动停止相关的调用。​ 1.

Unlimitedz的博客 888

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Swift 周报 第十三期

本期是 Swift 编辑组自主整理周报的第四期,每个模块还在调整磨合期。各位读者如果有好的提议,欢迎在文末留言。欢迎投稿或推荐内容。目前计划每两周周一发布,欢迎志同道合的朋友一起加入周报整理。昔孔子登泰山而小天下, 今诸君阅Swift社区皆足矣。请君浅读,与君共勉!👊👊👊周报精选新闻和社区:iPhone14 Pro 刘海变“灵动岛”提案:大量提案审核结果已公布Swift 论坛:论坛内容丰富,欢迎参与讨论推荐博文:增加 App 排名的 ASO 小技巧。

记录从移动端、鸿蒙到物联网与AI的完整实战与思考。专注于分享可复用的工程方案与产品思维,尤其深入鸿蒙生态与全栈开发。以十年工程与管理沉淀,为你提供清晰的技术纵深路径。坚信技术的价值在于“贯通”与“落地”。 1546

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

上一篇: Git修改用户名和邮箱的方法(附Git常用命令)
下一篇: Mac上显示出.m2文件夹并将IDEA中的Maven修改为阿里云镜像
林大夕可
博客等级 码龄7年 2221粉丝 65原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值