999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于iOS平臺的天氣APP的設(shè)計與實現(xiàn)

2019-10-21 09:33:19張淼劉東旭
科技風(fēng) 2019年17期

張淼 劉東旭

摘 要:隨著移動網(wǎng)絡(luò)的成熟,智能設(shè)備在人們的日常生活中變得不可或缺,隨時隨地幫助我們獲取最新的信息。本文使用Swift語言在iOS平臺開發(fā)了一款天氣APP,系統(tǒng)主要包括主頁信息模塊、城市查詢模塊和內(nèi)容分享模塊,使用的關(guān)鍵技術(shù)包括Alamofire、SwiftyJson、Cocoapods等,通過調(diào)用天氣預(yù)報網(wǎng)站的API來獲取城市的天氣情況并呈現(xiàn)給用戶,方便用戶隨時查看天氣情況,及時做好出行安排。

關(guān)鍵詞:iOS平臺;MVC架構(gòu);Cocoapods;Alamofire

一、背景

隨著互聯(lián)網(wǎng)的發(fā)展和4G技術(shù)的成熟,移動終端已經(jīng)變?yōu)槿藗兊娜粘I钪胁豢扇鄙俚囊徊糠帧D壳笆袌錾系闹髁鏖_發(fā)平臺有安卓、iOS和Windows Phone。其中iOS因為其無與倫比的安全性、獨特的工業(yè)設(shè)計風(fēng)格和成熟穩(wěn)定的操作系統(tǒng)獲得了不少人的青睞,可以說占領(lǐng)的市場上的半壁江山。[1]

另外由于現(xiàn)代人生活的節(jié)奏越來越快,出行前一般都會提前關(guān)注未來的天氣以備提前安排出行計劃。因此設(shè)計一款基于iOS的天氣APP可以方便用戶獲取本地、異地的天氣情況,滿足日常生活中的需求。另外考慮到目前大部分人的社交需求,還在app中增加了分享功能,可以把當(dāng)前信息分享給微博好友,實現(xiàn)信息的共享和好友的互動。

二、開發(fā)環(huán)境

(一)iOS平臺

iOS(以前稱為iPhoneOS)是蘋果公司專門為其硬件開發(fā)的移動操作系統(tǒng)。它是目前為公司許多移動設(shè)備提供動力的操作系統(tǒng),包括iPhone、iPad和iPod touch,也是繼安卓之后全球最流行的移動操作系統(tǒng)之一。

iOS整體架構(gòu)主要分為4層,分別是Cocoa Touch層、Media層、Core Service層、和Core OS層。[2]Cocoa Touch層中的大部分框架和界面相關(guān),主要負責(zé)和用戶打交道,比如用戶的各種觸摸操作就需要通過這個框架進行處理。通過媒體層,我們可以豐富自己的應(yīng)用程序,使用各種音頻、視頻、圖形等技術(shù)。核心服務(wù)層負責(zé)系統(tǒng)的一些核心服務(wù),比如電話簿、社交媒體等。核心操作系統(tǒng)層則提供一些底層的功能,比如對內(nèi)存進行管理或者對電源進行管理,主要涉及到硬件方面的處理。

(二)Xcode和Swift語言

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

三、軟件設(shè)計與實現(xiàn)

(一)MVC結(jié)構(gòu)

整個系統(tǒng)采用MVC(Model-View-Controller)三層架構(gòu)實現(xiàn)。Model(模型)用于封裝一組特定的數(shù)據(jù),并包含操作該數(shù)據(jù)的邏輯。比如當(dāng)你想到會計軟件時,發(fā)票就是一個模型。當(dāng)你想到微博應(yīng)用程序時,每條你看到的短文就是一個模型。本系統(tǒng)中定義了Weather Data Model,該類中包含城市名、天氣情況、溫度、濕度以及對應(yīng)天氣圖標(biāo)等。

視圖(View)是用戶可以在用戶界面(UI)中看到的對象。像UIButton、UIView和UILabel這樣的對象都是常見的視圖例子。

控制器控制視圖和模型之間的所有邏輯。由于視圖和模型之間不能夠直接通信,需要它在視圖和模型之間傳輸消息。本系統(tǒng)中定義了Chnage City View Controller,Weather View Controller和Share View Controller。

(二)關(guān)鍵技術(shù)

1.Alamofire

Open weather map網(wǎng)站可以提免費的天氣預(yù)報接口,提供當(dāng)前天氣的數(shù)據(jù)、5到16天的天氣預(yù)報、以往的天氣信息、氣象站點以及詳細的氣象信息等。

本系統(tǒng)利用Alamofire通過該網(wǎng)站提供的免費API來獲取響應(yīng)信息。Alamofire是一個用Swift編寫的HTTP網(wǎng)絡(luò)庫,可以讓開發(fā)者非常方便的的進行http的請求以及相應(yīng)數(shù)據(jù)的處理。[5]我們首先利用Alamofire的request方法向網(wǎng)站發(fā)出請求,同時在response方法中定義了如何對返回的信息進行處理。

2.SwiftyJson

對于網(wǎng)站返回的JSON類型數(shù)據(jù),如果自己定義函數(shù)處理會非常麻煩。因此我們使用第三方的框架SwiftyJSON。SwiftJSON是用Swift編寫的對JSON格式數(shù)據(jù)進行處理的類庫,里面提供了眾多方法,使用方便。在本系統(tǒng)中,我們通過SwiftyJSON對網(wǎng)站返回的相關(guān)天氣信息進行處理。

3.Cocoapods

CocoaPods是OS X和iOS下的一個第三類庫管理工具,并且支持Objective-C和Swift語言。[6]。通過Cocoapods工具我們可以很輕松的管理每個類庫。以本系統(tǒng)為例,開發(fā)中使用了Alamofire和SwiftyJson,因此在Podfile文件中添加以下兩句話進行配置:pod 'Alamofire','~> 5.0.0-beta.3',pod 'SwiftyJSON','~> 4.0'。

(三)系統(tǒng)實現(xiàn)

本系統(tǒng)主要分為三個部分:主頁信息模塊和城市查詢模塊和內(nèi)容分享模塊。

用戶打開APP之后首先看到啟動頁,緊接著加載主頁信息,此時我們可以直接看到本地當(dāng)前的天氣狀況,以及最近一周的天氣情況。通過點擊右上角的按鈕可以切換到查詢界面。在查詢界面,我們可以輸入任意一個地點,點擊查詢后,跳轉(zhuǎn)到當(dāng)?shù)氐奶鞖饨缑妗?/p>

以查詢界面為例,說明該模塊的實現(xiàn)。首先獲取輸入框輸入的文本,根據(jù)輸入信息向服務(wù)器發(fā)送請求,對服務(wù)器返回的信息用SwiftyJSON進行解析,然后更新主頁面的展示內(nèi)容。由于查詢界面和主頁是由不同的視圖控制器控制,因此此時涉及到不同ViewController之間的數(shù)據(jù)傳遞。其中向服務(wù)器發(fā)送請求并處理信息的主要函數(shù)如下圖所示:

四、結(jié)語

本文利用Swift語言在iOS平臺開發(fā)了一款天氣APP,通過調(diào)用天氣預(yù)報網(wǎng)站的API來獲取城市的天氣情況并呈現(xiàn)給用戶,方便用戶隨時查看天氣情況。本系統(tǒng)通過MVC框架構(gòu)建,通過Alamofire網(wǎng)絡(luò)框架向服務(wù)器請求天氣信息,并對返回的JSON數(shù)據(jù)利用SwiftyJson處理。經(jīng)測試該APP整體使用效果較好,基本上可以滿足用戶簡單的天氣查詢需求。

由于時間問題,天氣App應(yīng)用程序還有部分功能需要完善,如增加分享到微信、保存常用地點、消息推送等功能,進一步提升用戶體驗。

參考文獻:

[1]趙益澤.淺析安卓系統(tǒng),iOS,Windows Phone系統(tǒng)的差異性[J].數(shù)字通信世界,2017(11):147-148.

[2]關(guān)東升.移動操作系統(tǒng)原理與實踐[M].北京:清華大學(xué)出版社,2017:146-147.

[3]李亞欣,蔡永香,鄧舒穎.基于Swift對Objective-C開發(fā)的移動應(yīng)用程序優(yōu)化[J].軟件導(dǎo)刊,2018,17(10):178-182.

[4]傳智播客.Swift項目開發(fā)基礎(chǔ)教程[M].北京:人民郵電出版社,2016:6-7.

[5]鄭國凱,侯超鈞.基于iOS的學(xué)生考勤管理系統(tǒng)的設(shè)計與實現(xiàn)[J].現(xiàn)代計算機(專業(yè)版),2016(27):68-72.

[6]沈夢姣,蔡麗明.基于iOS平臺的嗨球APP的設(shè)計與實現(xiàn)[J].科技創(chuàng)新導(dǎo)報,2018,15(29):99-100.

主站蜘蛛池模板: www.亚洲一区二区三区| 国产女人喷水视频| 亚洲网综合| 一级成人欧美一区在线观看| 日韩无码真实干出血视频| 九九热这里只有国产精品| 国产视频资源在线观看| 欧美97欧美综合色伦图| 欧美啪啪精品| 原味小视频在线www国产| 无遮挡国产高潮视频免费观看| 日韩精品成人在线| 国产午夜不卡| 亚洲欧美人成人让影院| 久久精品亚洲中文字幕乱码| 国产又黄又硬又粗| 欧美精品在线看| 国产午夜小视频| 欧美五月婷婷| 欧美成人日韩| 成人午夜视频网站| 国产精品粉嫩| 国产在线精彩视频论坛| 又粗又大又爽又紧免费视频| 丁香六月激情综合| 久久中文字幕2021精品| 欧美午夜小视频| 亚洲VA中文字幕| 99久久精品久久久久久婷婷| 99久久精品免费看国产免费软件| 色精品视频| 99久久精品国产自免费| 国产精品吹潮在线观看中文| 亚洲色图欧美激情| 天天色天天操综合网| 日韩精品无码免费一区二区三区 | 亚洲看片网| 精品免费在线视频| 国产SUV精品一区二区| 国产女人爽到高潮的免费视频 | 国产福利在线免费| 五月天久久综合| 亚洲中文字幕日产无码2021| 伊人福利视频| 久久99这里精品8国产| 精品伊人久久久久7777人| 国产成人精品综合| 国产在线观看成人91| 国内精品视频区在线2021 | 在线观看91香蕉国产免费| 色丁丁毛片在线观看| 国产亚洲精品在天天在线麻豆| AV色爱天堂网| 99伊人精品| 四虎国产永久在线观看| 99re在线视频观看| 91免费国产在线观看尤物| 亚洲男女在线| 日韩精品亚洲人旧成在线| 国产乱论视频| 无码人妻免费| 中文成人在线视频| 亚洲国产精品一区二区第一页免| 狠狠ⅴ日韩v欧美v天堂| 先锋资源久久| 波多野结衣久久高清免费| 国产福利一区在线| 国产福利观看| 日韩天堂视频| 国产在线视频欧美亚综合| 久久美女精品| 午夜精品国产自在| 亚洲AV电影不卡在线观看| 国产av剧情无码精品色午夜| 99久久无色码中文字幕| 亚洲专区一区二区在线观看| 成人中文字幕在线| 亚洲色成人www在线观看| 国产福利在线观看精品| 亚洲色图综合在线| 欧美综合在线观看| 亚洲高清在线天堂精品|