15158846557 在线咨询 在线咨询
15158846557 在线咨询
所在位置: 首页 > 营销资讯 > 网站运营 > 天气预报 APP 的设计与实现

天气预报 APP 的设计与实现

时间:2023-06-05 01:30:01 | 来源:网站运营

时间:2023-06-05 01:30:01 来源:网站运营

天气预报 APP 的设计与实现:

一、需求分析

背景

天气信息和人们的日常生活息息相关,随着人们活动范围的扩大和出行需要,天气预报已经成为人们生活不可缺少的一部分,在这样的市场需求的基础上,本人设计了天气预报软件,它可以提供天气相关信息和生活指数,用户可以通过软件及时获取近期的天气状况和变化,及时做好各方面的计划和防护措施。

需求总体介绍

天气预报的用户主要是对获取天气信息有需求的人群,对于普通用户来说,主要了解当日的天气情况,选择相应的穿衣搭配和出行安排,对于相关行业人员来说,可根据未来天气状况制定相关措施,保证行业项目的顺利实施。因此天气预报的受众需要了解目前天气状况和未来的天气变化等,对其他的城市天气状况也会有所关注。







系统的非功能性需求

用户界面需求

界面简洁明了,采用图标加文字结合的方式,易于用户理解,对于重要信息,放大进行显示,界面排列符合阅读逻辑。

软硬件需求

客户端操作系统:Android 4.0 及以上;

客户端硬件设备:Android 手机等移动终端

产品质量需求

二、系统设计

体系结构设计

系统功能模块划分

针对此天气预报 APP,按照设计的基本要求,可以将系统划分为下面几个功能模块:

天气显示界面模块

显示城市天气状况,包括温度,天气,风力,生活指数等信息,显示未来七天天气,及小时级天气。通过滑动切换不同城市的天气信息。

城市设置模块

编辑天气城市列表信息。

城市增加模块

用户可通过列表选择或搜索进行城市的添加。

分享模块

用户可通过分享按钮将天气信息分享给其他用户。







数据设计

本软件数据库主要包含用户添加的城市数据,结构较为简单,由一个城市表组成。

人机交互设计

界面流设计







功能界面原型设计

三、系统实现

系统目录结构

├─build

├─libs

└─src

├─androidTest

├─main

│ ├─assets

│ ├─Java

│ │ └─com

│ │ └─taimin

│ │ └─weatherforecast

│ │ ├─Adapter //适配器目录

│ │ ├─bean //bean 类

│ │ ├─db //数据库适配器

│ │ ├─fragment //fragment 文件

│ │ ├─utils //工具类

│ │ └─view //view 文件

│ └─res

│ ├─drawable

│ ├─drawable-v24

│ ├─layout

│ ├─mipmap-anydpi-v26

│ ├─mipmap-hdpi

│ ├─mipmap-mdpi

│ ├─mipmap-xhdpi

│ ├─mipmap-xxhdpi

│ ├─mipmap-xxxhdpi

│ └─values

└─test

系统功能实现

软件通过 activity+fragment 进行布局,通过控制 fragment 的切换来切换不同的页面,为了防止重复切换带来的卡顿,fragment 均进行了缓存处理。

天气预报主界面

界面展示













主界面是一个 fragment,采用 RelativeLayout(顶部栏)+ViewPager 来实现不同城市天气的切换,通过对 viewpager 监听实现顶部栏城市及背景的切换,用户在进入 app 时系统会自动进行定位并将当前位置设置当前城市,具体代码为:

城市管理







用户通过点击主界面右上角图标即可进入该界面,用户可以通过该界面进行快速选择城市,删除城市等功能,选择城市后即可快速跳转到 viewpager 制定页面。具体代码如下:

城市选择



















城市选择界面首先会进行定位,页面分为五个部分,分别为搜索栏,定位栏,热门城市,城市列表,侧边滑动条,用户可通过选择或搜索来完成城市的添加。部分代码如下:

天气分享













用户点击页面的右上角即可进行当前城市信息的分享操作。具体代码如下:

雷达云图







雷达云图功能采用 webview 方式,接入中国天气网雷达云图 h5 页面实现。

我的







四、总结

项目技术总结

整个 app 实现了对天气预报的获取、展示,位置的获取等功能。通过安卓网络编程的方式可以很方便的获取到天气 JSON 数据,通过使用 GSON 库,解析为我们软件需要的数据结构,给软件的编写提供了极大的便利。安卓的 Activity、Fragment、Service 等提供了强大的数据处理功能,使各个页面间可以灵活的传输数据。界面采用了 viewpager 与 fragment 结合的方式进行设计,每个 fragment 对应一个城市页面,可以通过滑动进行翻页控制。且为防止多页面造成的卡顿,app 会首先进行 fragment 的初始化缓存,使软件响应速度得到提升。

技术创新及特点

通过 GSON 库解析请求到的 JSON 数据,GSON 是 Google 提供的用来在 Java 对象和 JSON 数据之间进行映射的 Java 类库。可以将一个 JSON 字符转成一个 Java 对象,或者将一个 Java 转化为 JSON 字符串,使用更加灵活。

对于一些通用的工具函数进行了封装,便于使用。

城市天气信息与软件背景对应更新,增加了软件的统一性。

采用下拉刷新的方式进行天气信息的更新,更加方便快捷。

个人收获与体会

经过本学期对 Android 开发的学习以及本项目的编写,使我学到了许多开发相关的知识,比如 Android 环境的搭建,Intent、Activity、fragment、SQLite 的用法以及网络编程相关内容。因为本学期同时开展了软件工程课程,使我对软件的工程化构建有了一个初步的了解,避免了以往编写程序时耦合高、软件功能未分离等缺点。同时也让我了解到了 Android 的布局方式,使我编写出了美观的软件界面。软件的编写不是一帆风顺的,在使用 view pager 做滑动切换时,我遇到了页面卡顿、数据不更新、fragment 间通信等一些困难,但都一一克服了,这也让对 Android 开发有了更加深入的了解。我相信我的软件在各个方面还有许多需要改进的地方,同时软件还可以进一步发展,添加一些对用户有利的功能,未来我会继续进行完善。

最后感谢老师及同学们的帮助,使我解决了软件开发方面的一些问题,使得软件顺利开发完成。

关键词:实现,设计,天气预报

74
73
25
news

版权所有© 亿企邦 1997-2025 保留一切法律许可权利。

为了最佳展示效果,本站不支持IE9及以下版本的浏览器,建议您使用谷歌Chrome浏览器。 点击下载Chrome浏览器
关闭