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

主站蜘蛛池模板: 免费a在线观看播放| 国产成人免费| 国产精品网址你懂的| 亚洲精品无码AⅤ片青青在线观看| 欧美亚洲网| 91精品视频播放| 99热这里只有精品国产99| 青青青视频蜜桃一区二区| 国产成人无码播放| 色一情一乱一伦一区二区三区小说 | 国产午夜精品一区二区三区软件| 一级香蕉人体视频| 亚洲一区二区无码视频| 无码精品国产dvd在线观看9久 | 福利在线一区| 国产另类视频| 婷婷99视频精品全部在线观看| 日本午夜三级| 中文字幕首页系列人妻| 欧美在线视频不卡| 2019年国产精品自拍不卡| 国产麻豆福利av在线播放| 一级全黄毛片| 九九热视频精品在线| 伊人久久久久久久久久| 狼友视频一区二区三区| 色婷婷国产精品视频| 婷婷久久综合九色综合88| 色悠久久久久久久综合网伊人| 大学生久久香蕉国产线观看| 色悠久久久久久久综合网伊人| 老司国产精品视频| 国产精品亚洲片在线va| 国产特级毛片| 久久96热在精品国产高清| 亚洲欧美在线综合一区二区三区| 毛片在线区| 日本在线欧美在线| 小蝌蚪亚洲精品国产| 欧美在线综合视频| 国产视频你懂得| 欧美激情网址| 久久夜夜视频| 亚洲综合精品香蕉久久网| 日韩最新中文字幕| 亚洲侵犯无码网址在线观看| 萌白酱国产一区二区| 国产中文在线亚洲精品官网| 国产成人精品一区二区三区| 中文字幕1区2区| 精品国产91爱| 国产精品污污在线观看网站| 国产成人三级在线观看视频| 国产无码精品在线播放| 免费A级毛片无码免费视频| 色综合五月| 国产99视频在线| 国产精品永久久久久| 91精品伊人久久大香线蕉| 日本久久网站| 伊人狠狠丁香婷婷综合色| 97亚洲色综久久精品| 91精品国产自产91精品资源| 原味小视频在线www国产| 欧美一级爱操视频| 亚洲 成人国产| 久久久久中文字幕精品视频| 色综合久久88| 久久综合九色综合97婷婷| 99精品国产电影| 午夜精品一区二区蜜桃| 国产日韩AV高潮在线| 亚洲天堂久久新| 国产亚洲欧美日韩在线一区| 久久精品午夜视频| 亚洲一区网站| 免费人成视网站在线不卡| 欧美一区二区三区欧美日韩亚洲 | 97国产精品视频自在拍| 美女内射视频WWW网站午夜 | 蜜芽国产尤物av尤物在线看| 亚洲人成色在线观看|