简单天气开发系列(一)——项目整体思路
来源:互联网 发布:酷音铃声mac版本 编辑:程序博客网 时间:2024/04/30 15:11
1 概述
学习android已经有段时间,但是经常学着学着又放弃了,总的来说是东一榔头西一棒,基础是相当不扎实。但是要我在认认真真找本书或者视频把基础重新走一遍,真心没那耐心,恐怕又是学到一半就不了了之。因此决定不管三七二十一,先着手开发一个简单的项目,碰到问题再解决问题。
代码地址:https://github.com/hookbrother/spweather
2 要实现的功能以及实现思路
既然是第一个项目,我也没必要太为难自己,先从简单的来,总的来说实现以下功能(因为用AndroidStudio开发,所以本系列所说的模块即eclipse中的project):
2.1 根据地名(包括汉字、拼音、首字母缩写)查询目的地天气情况
中国天气网目前提供的SmartWeatherAPI有相关的函数接口,但是该功能毕竟要从网络获取数据(这表示费流量啊,好吧,其实我是懒得注册,貌似该功能要注册才可以),因此我的思路是先建个模块,从中国天气网获取所有县名称和对应省、市、天气代码并写入数据库,然后将该数据库引入简单天气的模块,这样就可以根据地名获取天气代码,然后通过天气代码获取天气信息。
2.2 可以收藏多个地名,并随时查看每个地名的天气信息
建两个一对一关联的表就行(一个地名表,一个天气表,一条地名数据对应一条天气数据,当地名数据删除,对应天气数据同时删除),考虑到天气信息较多,天气表可能会分割成多张表,那就是一对多关联表。
2.3 手动和自动更新天气信息
手动用按钮,自动用服务,自动默认更新一个小时更新一次。
2.4 天气具体信息
大约会包括六天和24小时的基本天气信息(晴转多云,局部地区有大到暴雨之类的),气温,天气图片,当天的PM值、穿衣指数、可见度、气压等。这个反正中国天气网上可以取到,然后放入天气表。可能还会需要新建个模块来获取所有的天气图片。
2.5 自动定位
打算用百度地图api实现定位功能,然后和收藏的其他地名一样处理就行。
2.6 闹钟
如果可能,加入闹钟播报天气的功能,这个有问题碰到在说。
2.7 设置
可以设置是否允许自动更新、自动更新频率,是否只在wifi下更新,是否启用通知栏,通知栏显示哪个城市的天气(在收藏的天气里选择,并与默认界面显示的城市天气同步)。
2.8 界面
大概会包括2块,一块是地区选择+天气信息(可通过侧滑切换),一块是设置。
3 结束语
大致思路应该就这样,有点android基础的哥们有兴趣的可以一起来写,大家也碰到问题也可以互相探讨下。最后我看了下篇幅确实有点短,那就顺便推荐下android开发的两个神器————android studio、genymotion。
3.1 Android Studio
三个理由:黑色主题界面高大上、代码补全智能、google亲儿子。
3.2 Genymoiton
一个理由:快!或许Intel Atom也快,但是如果你的电脑是AMD或者是i3以下的呢?
- 简单天气开发系列(一)——项目整体思路
- 简单天气开发系列(四)——区域选择
- 科技论文写作(一)——整体思路
- 简单天气开发系列(二)——获取城市代码
- 简单天气开发系列(三)——侧滑的实现
- Spring boot 搭建个人博客系统(一)——整体思路
- 整体开发思路
- “天气项目”习得(一)
- cocos2d-x游戏实例 《简单棋》入门尝试(一) 整体思路
- 项目整体管理(一)
- C项目开发—通讯录(一) 整体设计及界面、框架搭建
- [一天一项目]获取当前天气——获取某个地区当前的天气情况。
- 基于Python的爬虫项目一——城市天气
- Android口袋天气系统一-->整体架构
- iOS项目开发实战(Swift)—查询天气小应用
- Spring框架系列(一)-整体架构
- 电影演员合作关系可视化(一)整体思路与爬虫编写
- (三)Seafile FUSE 虚拟文件系统开发---整体思路
- Java.lang.reflect.Method invoke方法 实例
- 5-2 派生类的构造函数
- 电力驱动原理
- C++著名程序库的比较和学习经验
- Spring4新特性——集成Bean Validation 1.1(JSR-349)到SpringMVC
- 简单天气开发系列(一)——项目整体思路
- 全虚拟化&半虚拟化&硬件辅助搜索虚拟化&操作系统级虚拟化
- App右上角通知应用:iOS 8 用法
- ISP
- C语言结构体
- 能否一起做个学习C语言软件?
- 关于N个数1--N数顺序入栈,有多少种出栈方式的问题
- 王爽汇编语言程序设计总结
- MySQL日期数据类型、MySQL时间类型使用总结,需要的朋友可以参考下。【转】