1. 程式人生 > >Android經典項目開發之天氣APP實例分享

Android經典項目開發之天氣APP實例分享

material 預報 master key 功能 github web 獨立 提升

原文:Android經典項目開發之天氣APP實例分享

版權聲明:本文為博主原創文章,未經博主允許不得轉載。 https://blog.csdn.net/mzc186/article/details/53819371

引言

  由於系統的天氣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實例分享