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

基于iOS系統(tǒng)的天氣App程序開發(fā)與應(yīng)用

2018-01-05 10:45:22李清平孟祥芳宋國(guó)順
軟件工程 2017年11期

李清平+孟祥芳+宋國(guó)順

摘 要:基于iOS系統(tǒng),在進(jìn)行需求分析、功能分析和系統(tǒng)總體結(jié)構(gòu)分析的基礎(chǔ)上,設(shè)計(jì)系統(tǒng)內(nèi)容的組織結(jié)構(gòu)。使用Objective-C編程語(yǔ)言在MacOS、Xcode和CocoaPods環(huán)境下開發(fā)天氣App應(yīng)用程序,主要功能模塊包括主頁(yè)信息、天氣查詢和分享三部分,重點(diǎn)分析了天氣查詢模塊的實(shí)現(xiàn)方法,列舉了關(guān)鍵代碼。天氣App程序通過對(duì)接和風(fēng)天氣預(yù)報(bào)API獲取全國(guó)主要城市的氣象資料,用戶在網(wǎng)絡(luò)連通的情況下,可針對(duì)性地查詢目標(biāo)城市的天氣動(dòng)態(tài)變化信息,方便用戶的出行和其他預(yù)防工作。同時(shí)通過分享功能,達(dá)到信息共享和好友互動(dòng)的目的。

關(guān)鍵詞:iOS系統(tǒng);天氣App;Objective-C編程語(yǔ)言;和風(fēng)天氣預(yù)報(bào)API

中圖分類號(hào):TP311.1 文獻(xiàn)標(biāo)識(shí)碼:A

Abstract:Through the requirements analysis,the functional analysis and the system overall structure analysis,the paper designs the organization structure of the system content based on iOS.In the environment of MacOS,Xcode and CocoaPods,the weather APP program has been developed by using the Objective-C programming language.The three main function modules include the homepage,the weather information query and the weather information sharing.The implement method of the weather information query module has been analyzed emphatically with the critical code.The weather APP program acquires meteorological data of major cities in China through the connection to the HeWeather API.With Internet connection,users can specifically check the dynamic weather information of target cities,so as to make some preparation and prevention for travel.Meanwhile,the sharing function can be applied to achieve the purpose of information sharing and interaction among friends.

Keywords:iOS;weather App;Objective-C programming language;heweather API

1 引言(Introduction)

隨著移動(dòng)設(shè)備的性能不斷提升,基于移動(dòng)設(shè)備系統(tǒng)的程序開發(fā)也蔚然成風(fēng)。目前主流的移動(dòng)開發(fā)平臺(tái)以Android和iOS為主。iOS操作系統(tǒng)因功能強(qiáng)大,能展示多點(diǎn)觸摸、視頻及眾多內(nèi)置傳感器的界面而獲得使用者青睞,用戶量不斷攀升,已經(jīng)成為移動(dòng)平臺(tái)開發(fā)的風(fēng)向標(biāo)[1-3]。

移動(dòng)4G將我們的生活、工作引入了更高層次的信息化時(shí)代,智能終端產(chǎn)品已經(jīng)逐漸走進(jìn)人們?nèi)粘I畹母鱾€(gè)方面。目前全世界數(shù)十億人獲取私人化、精確的氣象信息是通過天氣App程序?qū)崿F(xiàn)的[4]。

基于iOS的天氣App通過對(duì)接和風(fēng)天氣預(yù)報(bào)API來獲取氣象資料,覆蓋國(guó)內(nèi)2567個(gè)市、縣的詳細(xì)氣象信息,對(duì)可能出現(xiàn)的大風(fēng)、暴雨、冰雹等自然災(zāi)害提前預(yù)警,因此天氣App可以最大限度地減少生命、財(cái)產(chǎn)的傷害和損失,為人民生活和生產(chǎn)提供優(yōu)質(zhì)氣象服務(wù),促進(jìn)社會(huì)的穩(wěn)定和發(fā)展[4,5]。

2 需求分析(Requirements analysis)

天氣App程序的用戶主要是對(duì)獲取天氣信息有需求的人群,具體特征如下:

對(duì)于普通用戶來說,主要了解當(dāng)日的天氣情況,選擇相應(yīng)的穿衣搭配和出行安排,并且能將天氣信息推送給朋友。對(duì)于相關(guān)行業(yè)人員來說,可根據(jù)未來天氣情況提出對(duì)應(yīng)的措施,力求最大化減小損失。因此天氣預(yù)報(bào)的受眾需要了解目前的天氣情況和未來的天氣變化等,對(duì)其他城市的天氣狀況也會(huì)加以關(guān)注,同時(shí)可以對(duì)默認(rèn)城市進(jìn)行更改,天氣App的用戶需求分析如圖1所示。

3 功能分析(Functional analysis)

基于iOS系統(tǒng)的天氣App程序,其主要功能是實(shí)現(xiàn)氣象數(shù)據(jù)的實(shí)時(shí)獲取和更新,并以用戶喜愛的方式呈現(xiàn)出來。用戶能根據(jù)自己的需求加以選擇,獲取相關(guān)信息。涉及的功能模塊主要有實(shí)時(shí)天氣、未來天氣、城市搜索和默認(rèn)設(shè)置等。

4 系統(tǒng)總體結(jié)構(gòu)(System overall structure)

系統(tǒng)總體結(jié)構(gòu)包括技術(shù)和組織兩個(gè)方面。從技術(shù)角度看,系統(tǒng)設(shè)計(jì)必須有良好的運(yùn)作機(jī)制、信息流程等;從組織角度出發(fā),便捷、時(shí)尚的天氣預(yù)報(bào)查詢應(yīng)該更有吸引人的魅力[6]。

4.1 系統(tǒng)模塊協(xié)作關(guān)系

整個(gè)系統(tǒng)以菜單模塊為核心,天氣查詢模塊負(fù)責(zé)顯示天氣情況,分享模塊負(fù)責(zé)分享文字和圖片到新浪微博平臺(tái)。三個(gè)模塊互相協(xié)作,最終構(gòu)建一個(gè)基于iOS的天氣預(yù)報(bào)查詢程序。

4.2 系統(tǒng)啟動(dòng)流程

系統(tǒng)將所有功能模塊化,啟動(dòng)期間會(huì)順序加載模塊,并自動(dòng)運(yùn)行模塊的初始化代碼。初始化所有模塊后再運(yùn)行其他核心初始化代碼,系統(tǒng)啟動(dòng)流程如圖2所示。endprint

4.3 系統(tǒng)內(nèi)容組織結(jié)構(gòu)

天氣App程序主要包括地點(diǎn)查詢、天氣查詢和分享。不但可以讓用戶方便快捷地了解天氣情況,還可以發(fā)微博,與親朋好友共同分享周邊的人、事、物和自己的心情和狀態(tài),系統(tǒng)的內(nèi)容結(jié)構(gòu)如圖3所示。

5 功能模塊(Function module)

根據(jù)需求分析和設(shè)計(jì)思想,天氣App程序可以抽象為主頁(yè)信息模塊、天氣查詢模塊和分享模塊,采用iOS中頁(yè)面布局導(dǎo)航控制器(UINavigationController)管理視圖管理器(UIViewController)的方式,UINavigationController創(chuàng)建一個(gè)UIViewController“棧”,用戶在場(chǎng)景間切換時(shí),依次將UIViewController壓入“棧”中,且當(dāng)前場(chǎng)景的UIViewController位于棧頂,要返回上一層界面,UINavigationController將彈出棧頂?shù)目刂破鳎瑥亩氐狡湟粚咏缑娴目刂破鱗7,8]。

5.1 主頁(yè)信息模塊

主頁(yè)的UI界面以靜態(tài)數(shù)據(jù)顯示,上半部分為左右兩部分和底部。左邊顯現(xiàn)溫度和風(fēng)力狀況,點(diǎn)擊溫度可以進(jìn)入下一級(jí)界面;右邊顯示城市和日期,點(diǎn)擊城市可以進(jìn)入下一界面;底部三個(gè)按鈕分別為分享、生活指數(shù)和更新數(shù)據(jù)。下半部使用UICollectionView顯示四種天氣預(yù)報(bào),點(diǎn)擊cell進(jìn)入下一級(jí)界面,實(shí)現(xiàn)后的主頁(yè)信息如圖4所示。

(1)當(dāng)日氣象信息:包含當(dāng)日詳細(xì)的氣象數(shù)據(jù),如溫度、風(fēng)速、時(shí)間、天氣狀況等,同時(shí)具備溫馨提示的功能。

(2)未來氣候變化:簡(jiǎn)要列出未來若干段時(shí)間內(nèi)的氣候變化趨勢(shì)。

(3)城市搜索功能:用戶通過搜索引擎查詢?nèi)珖?guó)縣級(jí)以上城市的天氣情況。

(4)默認(rèn)設(shè)置功能:用戶可以根據(jù)需要設(shè)置默認(rèn)顯示的城市氣象信息。

5.2 天氣查詢模塊

天氣查詢模塊是本系統(tǒng)的重點(diǎn),需要實(shí)現(xiàn)地理位置查詢、天氣查詢和折線圖。該模塊主要負(fù)責(zé)用Post方法向服務(wù)器發(fā)送請(qǐng)求并將獲取到的Xml數(shù)據(jù)進(jìn)行解析,將解析得到的數(shù)據(jù)加載到創(chuàng)建好的列表上。折線圖利用iOS中比較復(fù)雜的畫板,將獲取的未來四天內(nèi)的氣溫變化以折線形式顯示在畫板上,可以方便用戶直觀了解未來的天氣狀況。同時(shí)還采用比較常用的第三方庫(kù)AFNetworking進(jìn)行數(shù)據(jù)請(qǐng)求,請(qǐng)求到的JSON數(shù)據(jù)可以直接用AFNetworking返回的字典轉(zhuǎn)換成模型,通過模型把信息顯示在界面上。另外還用到了第三方庫(kù)MBProgressHUD的加載齒輪效果。當(dāng)獲取并解析數(shù)據(jù)時(shí),屏幕中間出現(xiàn)轉(zhuǎn)動(dòng)的齒輪,此時(shí)用戶不能進(jìn)行操作;當(dāng)數(shù)據(jù)解析完畢并加載到界面后,齒輪停止轉(zhuǎn)動(dòng),此時(shí)用戶對(duì)系統(tǒng)進(jìn)行操作。主要實(shí)現(xiàn)的代碼如下:

@implementation CLNowCell

// 封裝UItableView。數(shù)據(jù)模型預(yù)先給UITableViewCell賦值,在完成數(shù)據(jù)請(qǐng)求后找到合適的時(shí)機(jī)刷新UI,按照模型賦值并用表格顯示數(shù)據(jù)

+ (instancetype)nowWithTabView:(UITableView*)tabView {

static NSString*identifier=@”nowCell”;

CLNowCell*nowCell=[tabView dequeueReusableCellWithIdentifier:identifier];

if (nowCell==nil) {

UINib*nib=[UINib nibWithNibName:@”CLNowCell” bundle:nil];

nowCell=[[nib instantiateWithOwner:nil options:nil] lastObject];

}

return nowCell;

}

- (void)setNow:(CLNow*)now {

_now=now;

self.dateLabel.text=[NSString stringWithFormat:@”時(shí)間:%@”,now.date];

self.tmpLabel.text=[NSString stringWithFormat:@”溫度:%@℃”,now.tmp];

self.humLabel.tex=[NSString stringWithFormat:@濕度%@%%”,now.hum];

self.popLabel.text=[NSString stringWithFormat:@”降水概率%@%%”,now.pop];

self.presLabel.text=[NSString stringWithFormat:@”氣壓:%@”,now.pres];

self.dirLabel.text=[NSString stringWithFormat:@”風(fēng)向(方向)%@”,now.wind.dir];

self.scLabel.text=[NSString stringWithFormat:@”風(fēng)力:%@級(jí)”,now.wind.sc];

self.spdLabel.text=[NSString stringWithFormat:@”風(fēng)速:%@km/h”,now.wind.spd];

self.degLabel.text=[NSString stringWithFormat:@”風(fēng)向(角度)%@”,now.wind.deg];

}

@end

天氣App程序需要先進(jìn)行地理位置查詢,然后再進(jìn)行天氣查詢。當(dāng)用戶點(diǎn)擊查詢天氣的按鈕時(shí)會(huì)先進(jìn)入到地理位置查詢的界面。地理位置查詢主要有兩個(gè)界面,一個(gè)是先按省份查詢,當(dāng)用戶選擇好省份后點(diǎn)擊cell會(huì)跳入到市、縣級(jí)城市查詢界面,如圖5所示。endprint

當(dāng)用戶選好想要查詢的城市后會(huì)進(jìn)入到天氣查詢界面,包括當(dāng)日天氣情況、未來四天內(nèi)的天氣情況和生活指數(shù)等。當(dāng)用戶點(diǎn)擊溫度時(shí)會(huì)進(jìn)入到“天氣狀況”界面,如圖6所示。當(dāng)點(diǎn)擊中間的按鈕將進(jìn)入生活指數(shù)界面,如圖7所示。

5.3 分享模塊

分享模塊是本系統(tǒng)吸引用戶的一個(gè)亮點(diǎn)。考慮新浪微博平臺(tái)的用戶基數(shù)比較大,另外其接口都是開放的,除了少數(shù)高級(jí)接口需要權(quán)限外,大部分接口都是免費(fèi)供開發(fā)者使用,因此本模塊選用了新浪微博平臺(tái),用戶在這里可以與更多的人分享自己的微博。

6 結(jié)論(Conclusion)

移動(dòng)智能終端已深入到生活的方方面面,人們通過移動(dòng)終端與外界發(fā)生各種聯(lián)系,具體表現(xiàn)就是提供應(yīng)用服務(wù)。基于iOS系統(tǒng)的天氣App應(yīng)用程序在進(jìn)行需求分析和功能分析的基礎(chǔ)上,提出了設(shè)計(jì)目標(biāo)和功能模塊劃分,詳細(xì)闡述了主頁(yè)模塊、天氣查詢模塊和分享模塊的實(shí)現(xiàn)方法及實(shí)際應(yīng)用效果,同時(shí)對(duì)應(yīng)用程序進(jìn)行了集成測(cè)試和可行性測(cè)試。該應(yīng)用程序目前已上架,可以通過蘋果手機(jī)AppStore,下載“見聞JW”,點(diǎn)擊“風(fēng)和天氣”進(jìn)行瀏覽。當(dāng)然,天氣App應(yīng)用程序還亟待完善,如增加“短信預(yù)報(bào)”“鬧鐘提醒”“新聞模塊”等功能,將對(duì)用戶提供更多的幫助,使他們的生活更加方便和愉悅。

參考文獻(xiàn)(References)

[1] 吳寧.iOS APP開發(fā)安全框架設(shè)計(jì)與實(shí)現(xiàn)[D].杭州:浙江大學(xué),2015.

[2] 秦雅麗.基于IOS《淘最上海》客戶端的設(shè)計(jì)與實(shí)現(xiàn)[D].上海:復(fù)旦大學(xué),2014.

[3] 韋璐娉.基于微信和APP客戶端的圖書館社會(huì)化閱讀服務(wù)模式研究[D].南京:南京大學(xué),2014.

[4] 張燕寧.移動(dòng)天氣系統(tǒng)UI設(shè)計(jì)[J].電腦知識(shí)與技術(shù),2016,12(2):

84-85.

[5] 王海南,邵國(guó)強(qiáng),介龍梅.基于IOS平臺(tái)塔防游戲的設(shè)計(jì)與實(shí)現(xiàn)[J].軟件工程師,2014,17(6):32-33.

[6] 譚穎,胡俊平,李結(jié),等.基于iOS的“同學(xué)幫”移動(dòng)應(yīng)用軟件設(shè)計(jì)與開發(fā)[J].軟件導(dǎo)刊,2015,14(8):103-105.

[7] 錢克蒼.基于IOS平臺(tái)的汽車安全駕駛系統(tǒng)[J].軟件工程師,

2014,17(8):58-62.

[8] 何宇,林曉煥,郭靖.iOS平臺(tái)上實(shí)時(shí)查詢公交的設(shè)計(jì)與實(shí)現(xiàn)[J].微處理機(jī),2014(3):60-62.

作者簡(jiǎn)介:

李清平(1969-),男,學(xué)士,副教授.研究領(lǐng)域:計(jì)算機(jī)網(wǎng)絡(luò)技術(shù).

孟祥芳(1978-),女,碩士,講師.研究領(lǐng)域:高職教學(xué)管理.

宋國(guó)順(1980-),男,碩士,講師,網(wǎng)絡(luò)工程師.研究領(lǐng)域:計(jì)算機(jī)應(yīng)用技術(shù).endprint

主站蜘蛛池模板: 热久久综合这里只有精品电影| 国产呦精品一区二区三区下载 | 国产18在线| 国产视频久久久久| 免费人成视网站在线不卡| 亚洲人成影视在线观看| 国内精自视频品线一二区| 国产美女在线观看| 欧美国产日韩在线| 免费高清毛片| 一本色道久久88| 亚洲欧美一区二区三区麻豆| 国产精品中文免费福利| 97青草最新免费精品视频| 草草影院国产第一页| 亚洲人成色在线观看| 欧美亚洲国产精品久久蜜芽| 99热最新在线| 91精品综合| 日本精品αv中文字幕| 在线精品欧美日韩| 制服无码网站| 亚洲天堂2014| 国产色爱av资源综合区| 一本综合久久| 亚洲午夜18| 国产黄在线观看| 国产毛片不卡| 成年A级毛片| 国产大全韩国亚洲一区二区三区| jizz在线免费播放| 精品丝袜美腿国产一区| 亚洲码一区二区三区| 日韩欧美国产成人| 久久青草免费91观看| 亚洲国产亚洲综合在线尤物| 精品一区二区三区四区五区| 国产精品短篇二区| www.av男人.com| 国产视频一二三区| 国产人人乐人人爱| 国产在线小视频| 日本道综合一本久久久88| 久久国产高潮流白浆免费观看| 国产精彩视频在线观看| 国产视频大全| 日韩欧美中文字幕一本| 久久精品国产999大香线焦| 欧美97欧美综合色伦图| 免费在线观看av| 国产成人毛片| 欧美黄网站免费观看| 日韩乱码免费一区二区三区| 久久综合伊人77777| 少妇人妻无码首页| 国产成人免费视频精品一区二区| 亚洲最大在线观看| 成人福利在线观看| 国产无人区一区二区三区| 亚洲91精品视频| 国产免费自拍视频| 欧美人在线一区二区三区| a毛片免费观看| 国产不卡在线看| 亚洲永久色| 免费高清a毛片| 欧美yw精品日本国产精品| 亚洲人成影院午夜网站| 亚洲中文字幕无码爆乳| 91色老久久精品偷偷蜜臀| 狠狠做深爱婷婷久久一区| 一级毛片在线播放免费观看| 久久99精品久久久久久不卡| 一级片免费网站| 久久精品国产免费观看频道| 国产亚洲现在一区二区中文| 婷婷色丁香综合激情| 精品国产一二三区| 青青操视频在线| 国产国产人免费视频成18| 国产精品亚欧美一区二区三区| 亚洲an第二区国产精品|