基于iOS平臺的天氣APP的設計與實現(xiàn)_第1頁
基于iOS平臺的天氣APP的設計與實現(xiàn)_第2頁
基于iOS平臺的天氣APP的設計與實現(xiàn)_第3頁
基于iOS平臺的天氣APP的設計與實現(xiàn)_第4頁
基于iOS平臺的天氣APP的設計與實現(xiàn)_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、 基于iOS平臺的天氣APP的設計與實現(xiàn) 張淼 劉東旭摘 要:隨著移動網絡的成熟,智能設備在人們的日常生活中變得不可或缺,隨時隨地幫助我們獲取最新的信息。本文使用Swift語言在iOS平臺開發(fā)了一款天氣APP,系統(tǒng)主要包括主頁信息模塊、城市查詢模塊和內容分享模塊,使用的關鍵技術包括Alamofire、SwiftyJson、Cocoapods等,通過調用天氣預報網站的API來獲取城市的天氣情況并呈現(xiàn)給用戶,方便用戶隨時查看天氣情況,及時做好出行安排。Key:iOS平臺;MVC架構;Cocoapods;Alamofire一、背景隨著互聯(lián)網的發(fā)展和4G技術的成熟,移動終端已經變?yōu)槿藗兊娜粘I钪胁豢?/p>

2、缺少的一部分。目前市場上的主流開發(fā)平臺有安卓、iOS和Windows Phone。其中iOS因為其無與倫比的安全性、獨特的工業(yè)設計風格和成熟穩(wěn)定的操作系統(tǒng)獲得了不少人的青睞,可以說占領的市場上的半壁江山。1另外由于現(xiàn)代人生活的節(jié)奏越來越快,出行前一般都會提前關注未來的天氣以備提前安排出行計劃。因此設計一款基于iOS的天氣APP可以方便用戶獲取本地、異地的天氣情況,滿足日常生活中的需求。另外考慮到目前大部分人的社交需求,還在app中增加了分享功能,可以把當前信息分享給微博好友,實現(xiàn)信息的共享和好友的互動。二、開發(fā)環(huán)境(一)iOS平臺iOS(以前稱為iPhoneOS)是蘋果公司專門為其硬件開發(fā)的移

3、動操作系統(tǒng)。它是目前為公司許多移動設備提供動力的操作系統(tǒng),包括iPhone、iPad和iPod touch,也是繼安卓之后全球最流行的移動操作系統(tǒng)之一。iOS整體架構主要分為4層,分別是Cocoa Touch層、Media層、Core Service層、和Core OS層。2Cocoa Touch層中的大部分框架和界面相關,主要負責和用戶打交道,比如用戶的各種觸摸操作就需要通過這個框架進行處理。通過媒體層,我們可以豐富自己的應用程序,使用各種音頻、視頻、圖形等技術。核心服務層負責系統(tǒng)的一些核心服務,比如電話簿、社交媒體等。核心操作系統(tǒng)層則提供一些底層的功能,比如對內存進行管理或者對電源進行管理

4、,主要涉及到硬件方面的處理。(二)Xcode和Swift語言工欲善其事必先利其器,在iOS上開發(fā)程序,就需要在蘋果電腦上配備一個Xcode軟件。Xcode是蘋果公司提供的一個集成開發(fā)環(huán)境,它用于管理工程、編輯代碼、構建可執(zhí)行文件、進行代碼調試等等。4Swift是在蘋果2014年全球開發(fā)者大會(WWDC)上推出的,是蘋果為iOS、OS X、WatchOS、TVOS而創(chuàng)建的通用、多范式、編譯的編程語言。3另外Swift作為一種新編程語言,它雖然基于C和Objective-C,但由于采用了安全的編程模式和添加現(xiàn)代的功能來使得編程更加簡單、靈活和有趣。三、軟件設計與實現(xiàn)(一)MVC結構整個系統(tǒng)采用MV

5、C(Model-View-Controller)三層架構實現(xiàn)。Model(模型)用于封裝一組特定的數(shù)據,并包含操作該數(shù)據的邏輯。比如當你想到會計軟件時,發(fā)票就是一個模型。當你想到微博應用程序時,每條你看到的短文就是一個模型。本系統(tǒng)中定義了Weather Data Model,該類中包含城市名、天氣情況、溫度、濕度以及對應天氣圖標等。視圖(View)是用戶可以在用戶界面(UI)中看到的對象。像UIButton、UIView和UILabel這樣的對象都是常見的視圖例子。控制器控制視圖和模型之間的所有邏輯。由于視圖和模型之間不能夠直接通信,需要它在視圖和模型之間傳輸消息。本系統(tǒng)中定義了Chnage

6、City View Controller,Weather View Controller和Share View Controller。(二)關鍵技術1.AlamofireOpen weather map網站可以提免費的天氣預報接口,提供當前天氣的數(shù)據、5到16天的天氣預報、以往的天氣信息、氣象站點以及詳細的氣象信息等。本系統(tǒng)利用Alamofire通過該網站提供的免費API來獲取響應信息。Alamofire是一個用Swift編寫的HTTP網絡庫,可以讓開發(fā)者非常方便的的進行http的請求以及相應數(shù)據的處理。5我們首先利用Alamofire的request方法向網站發(fā)出請求,同時在response

7、方法中定義了如何對返回的信息進行處理。2.SwiftyJson對于網站返回的JSON類型數(shù)據,如果自己定義函數(shù)處理會非常麻煩。因此我們使用第三方的框架SwiftyJSON。SwiftJSON是用Swift編寫的對JSON格式數(shù)據進行處理的類庫,里面提供了眾多方法,使用方便。在本系統(tǒng)中,我們通過SwiftyJSON對網站返回的相關天氣信息進行處理。3.CocoapodsCocoaPods是OS X和iOS下的一個第三類庫管理工具,并且支持Objective-C和Swift語言。6。通過Cocoapods工具我們可以很輕松的管理每個類庫。以本系統(tǒng)為例,開發(fā)中使用了Alamofire和SwiftyJ

8、son,因此在Podfile文件中添加以下兩句話進行配置:pod Alamofire, 5.0.0-beta.3,pod SwiftyJSON, 4.0。(三)系統(tǒng)實現(xiàn)本系統(tǒng)主要分為三個部分:主頁信息模塊和城市查詢模塊和內容分享模塊。用戶打開APP之后首先看到啟動頁,緊接著加載主頁信息,此時我們可以直接看到本地當前的天氣狀況,以及最近一周的天氣情況。通過點擊右上角的按鈕可以切換到查詢界面。在查詢界面,我們可以輸入任意一個地點,點擊查詢后,跳轉到當?shù)氐奶鞖饨缑妗R圆樵兘缑鏋槔?,說明該模塊的實現(xiàn)。首先獲取輸入框輸入的文本,根據輸入信息向服務器發(fā)送請求,對服務器返回的信息用SwiftyJSON進行解

9、析,然后更新主頁面的展示內容。由于查詢界面和主頁是由不同的視圖控制器控制,因此此時涉及到不同ViewController之間的數(shù)據傳遞。其中向服務器發(fā)送請求并處理信息的主要函數(shù)如下圖所示:四、結語本文利用Swift語言在iOS平臺開發(fā)了一款天氣APP,通過調用天氣預報網站的API來獲取城市的天氣情況并呈現(xiàn)給用戶,方便用戶隨時查看天氣情況。本系統(tǒng)通過MVC框架構建,通過Alamofire網絡框架向服務器請求天氣信息,并對返回的JSON數(shù)據利用SwiftyJson處理。經測試該APP整體使用效果較好,基本上可以滿足用戶簡單的天氣查詢需求。由于時間問題,天氣App應用程序還有部分功能需要完善,如增加

10、分享到微信、保存常用地點、消息推送等功能,進一步提升用戶體驗。Reference:1趙益澤.淺析安卓系統(tǒng),iOS,Windows Phone系統(tǒng)的差異性J.數(shù)字通信世界,2017(11):147-148.2關東升.移動操作系統(tǒng)原理與實踐M.北京:清華大學出版社,2017:146-147.3李亞欣,蔡永香,鄧舒穎.基于Swift對Objective-C開發(fā)的移動應用程序優(yōu)化J.軟件導刊,2018,17(10):178-182.4傳智播客.Swift項目開發(fā)基礎教程M.北京:人民郵電出版社,2016:6-7.5鄭國凱,侯超鈞.基于iOS的學生考勤管理系統(tǒng)的設計與實現(xiàn)J.現(xiàn)代計算機(專業(yè)版),2016(27):68-72.6沈夢姣,蔡麗明.基于iOS平臺的嗨球AP

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論