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 ...
随机推荐
- Vue.js开发环境搭建的介绍
包含了最基础的Vue.js的框架,包含了打包工具和测试工具,开发调试的最基本的服务器,不需要关注细节,只需关注Vuejs对项目的实现 npm在国内的网络使用较慢,所以推荐下载安装淘宝的镜像 1: 2: ...
- 阿里云OSS工具类
[前言] 我们上家公司的存储系统用的是FastDFS(智能一代云平台(二十八):对前后端分离和FastDFS的使用的再理解):现在在职的公司用的是阿里云的OSS(OSS的官方文档),在工作的时候整理一 ...
- java之 ------ 枚举类型
枚举 一.枚举类型具体说明 简单的说.Enum一般用来表示一组同样类型的常量. 如性别.日期.月份.颜色等.对这些属性用常量的优点是显而易见的,不仅能够保证单例,且在比較的时候能够用"==& ...
- COCOS2D-X 3.0在MAC下创建新IOS项目:
首先进入:CocoStudio\Source\3.0\cocos2d-x\tools\cocos2d-console\bin 运行 ./cocos new -p com.aaaa -l cpp MyG ...
- JDBC之一:JDBC快速入门 分类: B1_JAVA 2014-02-19 14:49 745人阅读 评论(0) 收藏
(1)下载Oracle的JDBC驱动,一般放在$ORACLE_HOME/jdbc/lib目录,关于驱动的版本请见: http://elf8848.iteye.com/blog/811037 ...
- 驱动程序调试方法之printk——printk的原理与直接使用
1.基本原理 (1)在UBOOT里设置console=ttySAC0或者console=tty1 这里是设置控制终端,tySAC0 表示串口, tty1 表示lcd(2)内核用printk打印 内核就 ...
- 【t053】整数去位
Time Limit: 1 second Memory Limit: 128 MB [问题描述] 键盘输入一个高精度的正整数N,去掉其中任意M个数字后剩下的数字按原左右次序将组成一个新的正整数.编程对 ...
- Theano Multi Layer Perceptron 多层感知机
理论 机器学习技法:https://www.coursera.org/course/ntumltwo 假设上述网址不可用的话,自行度娘找别人做好的种子.或者看这篇讲义也能够:http://www.cn ...
- js 复制文本的四种方式
js 复制文本的四种方式 一.总结 一句话总结:js文本复制主流方法:document的execCommand方法 二.js 复制文本的四种方式 纯 转载复制,非原创 原地址:http://www.c ...
- PPT之SmartArt功能
在PPT中,我们经常看到这样的漂亮的组合图标: 他们是怎么做出来的呢?其实用ppt自带的SmartArt功能就能做出来了. Tips:SmartArt可以直接先选择组合图标再填文字,还可以写好了文字, ...