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及以上版本。
![](/img/my/wx.png)
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
使用Xamarin开发手机聊天程序 -- 基础篇(大量图文讲解 step by step,附源码下载)
原文: 使用Xamarin开发手机聊天程序 -- 基础篇(大量图文讲解 step by step,附源码下载) 如果是.NET开发人员,想学习手机应用开发(Android和iOS),Xamarin无疑是最好的选择,编写一次,即可发布到Android和iOS平台,真是利器中的利器啊!而且,Xamarin已经被微软收购并被大力推广,.NET开发人员将时间投资在Xamarin上,以应对移动开发的热潮,应该是值得的。 好了,废话不多说,就开始吧。本系列文章将详细介绍如何使用Xamarin开发出一个简单的即时通信IM聊天系统(文末有源码下载,可先睹为快),本文作为第一篇基础篇,将着重介绍Xamarin Android和Xamarin iOS环境的搭建,包括安装、设置、模拟器、部署、运行调试等。本系列后面的文章将详细介绍手机聊天系统结构原理和具体代码实现。 一.搭建环境 1. 安装 Xamarin。 VS2017已经集成了Xamarin,只要在安装的时候,将“使用.NET的移动开发”选项勾选上,即可。 2.设置Xamarin Android。 (1)启动VS 2017之后...
- 下一篇
手机端页面在项目中遇到的一些问题及解决办法
1.解决页面使用overflow: scroll在iOS上滑动卡顿的问题? 首先你可能会给页面的html和body增加了height: 100%, 然后就可能造成IOS上页面滑动的卡顿问题。解决方案是: (1) 看是否能把body和html的height: 100%去除掉。 (2) 在滚动的容器中增加:-webkit-overflow-scrolling: touch或者给body增加:body {overflow-x: hidden}。 2.ios页面橡皮弹回效果遮挡页面选项卡? (1) 有时body和html的height: 100%去除掉问题可能就没有了。 (2) 到达临界值的时候在阻止事件默认行为 var startY,endY; //记录手指触摸的起点坐标 $('body').on('touchstart',function (e) { startY = e.touches[0].pageY; }); $('body').on('touchmove',function (e) { endY = e.touches[0].pageY; //记录手指触摸的移动中的坐标 //手指下...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
-
Docker使用Oracle官方镜像安装(12C,18C,19C)
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS8编译安装MySQL8.0.19
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS7,8上快速安装Gitea,搭建Git服务器
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
推荐阅读
最新文章
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS6,CentOS7官方镜像安装Oracle11G
- SpringBoot2整合Redis,开启缓存,提高访问速度
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- Hadoop3单机部署,实现最简伪集群
- MySQL8.0.19开启GTID主从同步CentOS8
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果