Android经典项目开发之天气APP实例分享
引言
由于系统的天气App比较简陋,而从Android市场下载下来的天气App比如墨迹天气界面虽然美观,数据也比较详实,但是却非常多乱七八糟的广告,一不小心点错了就后台帮你偷偷下载。作为Android开发者当然理解这种利益诉求,但从一个用户的角度而言,我却认为这已经严重影响用户体验了。因此,才有了卸载墨迹天气的下文。
后来因为考虑到自己从事安卓开发已经有一段时间了,虽然大大小小的项目也做过一些了,但是却还没有从头到尾完全独立开发过一个属于自己的App,考虑到天气App涉及知识面广,综合性强,作为android经典开发项目之一,比较能强化和深入自己对知识的理解以及锻炼提升自己的知识运用水平,加上上文提到的那些因素,因此就有了完全属于自己的天气App项目iWeather。
关于iWeather项目的开源
我的iWeather项目现在已经在github开源,感兴趣的朋友可以参考借鉴,访问我的iWeather项目的github地址.点击我访问我的github上的iWeather项目.
iWeather项目的特点
较详实的天气数据
较美观合理易用的UI
支持同时显示多个城市的天气
支持下拉刷新
背景随机切换
绝对纯净简洁安全,无广告(我不会告诉你其实是没啥广告价值)
iWeather天气App截图
关于App数据来源
天气数据来源于和风天气,我是通过百度API Store来调用的,这个和风天气免费版提供的数据还比较多,但不是很稳定,晚上12点前后虽然可以访问,但其实数据没有按照白天的频率更新。每天可以访问3000次。总的来说对于免费的天气接口,和风天气目前还算是比较好的一个选择。
图标和图片资源,有的来源于百度,有的来源于谷歌提供的material design通用图标,有的是把其它app的图标资源copy过来用(ps:对于非商业目的我觉得没什么问题,而且要找一套风格统一且美观大方的图标不是很容易,再说多把时间花在编程上才是正事)。
iWeather项目待改进方面
还未提供一个用于在桌面显示天气的widget插件
可以考虑将节气和节日也恰当地集成进去,方便用户
城市选择列表可以考虑添加侧栏字母索引排序,还有搜索添加的功能。虽然每个城市列表item数不多,滑动点击选择没有太大影响效率,但添加这两项功能无疑能改进用户体验。
没有灾害预警功能,降雨小时预报(不过这个受限于天气接口)
可以考虑将台风实时路径发布系统集成进去,我目前还没有发现有这样功能的天气App,其实这还是有需求的,在沿海城市厦门生活的我今年(2016年)强烈感受到查看台风跑哪了不能直接从天气App直接查看真是一大失望(其实不难,只是一个web页面,但是要考虑到webView的内存泄漏问题)
由于城市接口用的是中央气象台的,所以目前只支持查看中国的天气,和风天气接口本身是支持全球天气的。
背景可以更换成象征此时天气的图片而不是目前随机的风景图片,这可能会有更好的体验(ps:不过这种图片要找一套比较理想的还是挺难的)。又或者可以学习墨迹天气,背景不仅对应相应的天气状况变化,而且还是动态的,感觉效果挺好的。不过这些都要自己对每一种天气状况做一个自定义View或者动画,时间开销会比较大,性价比会比较低。
关于iWeather App的下载
由于将应用上架到国内的App市场现在都要实名制,要上传手持身份证的照片,觉得麻烦又有点担心信息泄露,而且我现在这个应用也不是针对消费市场,更多的是出于与各位Android开发者同行相互学习交流的目的,因此就不打算上架到国内的应用市场了。想要下载试用的朋友,可以移步到我的github地址。点击我从github下载iWeather天气App. 更新:之前有上传资源到CSDN,但由于在CSDN上更新资源挺麻烦的,往后如果有版本更新统一都在github上了
由于该天气接口每个百度API key每天所能访问的次数有限(每天3000次),因此不建议把从该链接下载的App作长期使用,如果有需要,你可以移步去iWeather项目的github地址(见上)去fork,然后将netutil包下面的HttpUtil.java中的百度API key改成你自己的就OK了。
注意,该App只支持API 15及以上,即android 4.0.3及以上版本。
Android经典项目开发之天气APP实例分享的更多相关文章
- Android 实践项目开发 总结
Android 实践项目开发 总结 课程:移动平台应用开发实践 班级:201592 姓名:杨凤 学号:20159213 成绩:___________ 指导老师:娄嘉鹏 ...
- Android 实践项目开发二
在地图开发中项目中,我这周主要完成的任务是和遇到的问题是以下几个方面. 1.在本次的项目中主要是利用百度地图的.jar包实现地图的定位与搜索功能,需要在百度地图开发中心网站取得 密钥,并下载相关.ja ...
- Android 实践项目开发一
这次做的项目是—手机地图系统 本次实验的功能是,为用户提供需要的目标定位系统定位处理,即用户设置一个目标后, 可以在后台启动一个Service,能够定时读取GPS数据已获得用户当前所在的位置信息, 并 ...
- 基于Android开发的天气预报app(源码下载)
原文:基于Android开发的天气预报app(源码下载) 基于AndroidStudio环境开发的天气app -系统总体介绍:本天气app使用AndroidStudio这个IDE工具在Windows1 ...
- fir.im Weekly - 600个 Android 开源项目汇总
本期 Weekly 收集了一些热度资源,包含 Android.iOS 开发工具与源码分享,程序员也应该了解的产品运营.设计等 Tips ,希望对你有帮助. 600个Android开源项目汇总 勤劳的 ...
- Android中制作自定义dialog对话框的实例
http://www.jb51.net/article/83319.htm 这篇文章主要介绍了Android中制作自定义dialog对话框的实例分享,安卓自带的Dialog显然不够用,因而我们要继 ...
- [Android教程] Cordova开发App入门(一)创建android项目
前言 Apache Cordova是一个开源的移动开发框架.允许使用标准的web技术-HTML5,CSS3和JavaScript做跨平台开发. 应用在每个平台的具体执行被封装了起来,并依靠符合标准的A ...
- [Android]天气App 2 项目搭建
对于天气App,为了简化一些功能,暂时模仿MUUI系统提供的那个App. 本项目需要引入本人经常使用的一个工具库DroidTool,这个是本人根据工作中,收集到一些工具类,下载地址. ...
- 【Android 应用开发】GitHub 优秀的 Android 开源项目
原文地址为http://www.trinea.cn/android/android-open-source-projects-view/,作者Trinea 主要介绍那些不错个性化的View,包括Lis ...
随机推荐
- (十四)RabbitMQ消息队列-启用SSL安全通讯
原文:(十四)RabbitMQ消息队列-启用SSL安全通讯 如果RabbitMQ服务在内网中,只有内网的应用连接,我们认为这些连接都是安全的,但是个别情况我们需要让RabbitMQ对外提供服务.这种情 ...
- 序列 mysql
CREATE TABLE emp_seq (seq INT); INSERT INTO emp_seq VALUES(0); UPDATE emp_seq SET seq = LAST_INSERT_ ...
- <LeetCode OJ> 62. / 63. Unique Paths(I / II)
62. Unique Paths My Submissions Question Total Accepted: 75227 Total Submissions: 214539 Difficulty: ...
- js进阶 11-6 jquery如何获取和设置元素的宽高(jquery多方法)
js进阶 11-6 jquery如何获取和设置元素的宽高(jquery多方法) 一.总结 一句话总结:jquery里面多是方法啊,比如jquery对象的宽高.所以取值是方法,赋值就是方法里面带参数. ...
- 【codeforces 760A】Petr and a calendar
time limit per test2 seconds memory limit per test256 megabytes inputstandard input outputstandard o ...
- kindeditor4跨域上传图片解决
项目中正在使用kindeditor, 版本号4.1.10 非常多公司的图片会走CDN,须要单独的一台图片上传服务如:(upload.268xue.com) kindeditor上传图片的简单内部流程: ...
- QPalette实例教程(QWidget自带的颜色设置工具,对Window的各个部分都可设置颜色)
QPalette是一款非常好用的颜色设置工具: 头文件:#include <QPalette> (^-^我没有用这个头文件也可以使用QPalette) 常用函数: void setBrus ...
- Qt 模仿QQ截图 动态吸附直线
最近在学Qt.学东西怎么能不动手. 就写了些小程序.看QQ截图能够动态吸附直线的功能挺有意思,所以就模仿了一个. 先上效果图 界面很简单..呵呵 移动鼠标,会把鼠标所在最小矩形选中.把没有选中的地方给 ...
- 【bzoj2809】派遣 (左偏树)
传送门 题目分析 每个节点都是一颗(大根堆)左偏树,先按bfs序存入数组,然后倒着从底层开始:如果当前节点的子树sum > m 那么就把根节点删去,然后统计更新答案,并将这棵树和父节点合并. c ...
- 【u235】背单词
Time Limit: 1 second Memory Limit: 128 MB [问题描述] 英语四级考试临近了,小Y却发现他已经把以前学的单词几乎忘光了.好在现在离考试还有一段时间,小Y决定从现 ...