国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

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

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

李清平+孟祥芳+宋國順

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

關(guān)鍵詞:iOS系統(tǒng);天氣App;Objective-C編程語言;和風天氣預報API

中圖分類號:TP311.1 文獻標識碼: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)

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

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

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

2 需求分析(Requirements analysis)

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

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

3 功能分析(Functional analysis)

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

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

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

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

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

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

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

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

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

5 功能模塊(Function module)

根據(jù)需求分析和設(shè)計思想,天氣App程序可以抽象為主頁信息模塊、天氣查詢模塊和分享模塊,采用iOS中頁面布局導航控制器(UINavigationController)管理視圖管理器(UIViewController)的方式,UINavigationController創(chuàng)建一個UIViewController“?!?,用戶在場景間切換時,依次將UIViewController壓入“?!敝?,且當前場景的UIViewController位于棧頂,要返回上一層界面,UINavigationController將彈出棧頂?shù)目刂破?,從而回到其一層界面的控制器[7,8]。

5.1 主頁信息模塊

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

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

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

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

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

5.2 天氣查詢模塊

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

@implementation CLNowCell

// 封裝UItableView。數(shù)據(jù)模型預先給UITableViewCell賦值,在完成數(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:@”時間:%@”,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:@”風向(方向)%@”,now.wind.dir];

self.scLabel.text=[NSString stringWithFormat:@”風力:%@級”,now.wind.sc];

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

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

}

@end

天氣App程序需要先進行地理位置查詢,然后再進行天氣查詢。當用戶點擊查詢天氣的按鈕時會先進入到地理位置查詢的界面。地理位置查詢主要有兩個界面,一個是先按省份查詢,當用戶選擇好省份后點擊cell會跳入到市、縣級城市查詢界面,如圖5所示。endprint

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

5.3 分享模塊

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

6 結(jié)論(Conclusion)

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

參考文獻(References)

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

[2] 秦雅麗.基于IOS《淘最上?!房蛻舳说脑O(shè)計與實現(xiàn)[D].上海:復旦大學,2014.

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

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

84-85.

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

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

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

2014,17(8):58-62.

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

作者簡介:

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

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

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

邯郸市| 鸡泽县| 芦溪县| 龙门县| 修水县| 北辰区| 天峨县| 泊头市| 曲松县| 灵丘县| 盐亭县| 宣化县| 南昌县| 泾阳县| 长宁区| 建瓯市| 漳平市| 商丘市| 凯里市| 宣武区| 阿拉善左旗| 和静县| 邻水| 京山县| 嘉鱼县| 泗水县| 沧州市| 西安市| 沂水县| 北辰区| 临沂市| 商洛市| 敦化市| 彭阳县| 利津县| 岚皋县| 中西区| 富蕴县| 岳普湖县| 沙湾县| 乌鲁木齐市|