亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

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

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

        李清平+孟祥芳+宋國順

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

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

        中圖分類號:TP311.1 文獻(xiàn)標(biāo)識碼: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ēng)。目前主流的移動開發(fā)平臺以Android和iOS為主。iOS操作系統(tǒng)因功能強(qiáng)大,能展示多點(diǎn)觸摸、視頻及眾多內(nèi)置傳感器的界面而獲得使用者青睞,用戶量不斷攀升,已經(jīng)成為移動平臺開發(fā)的風(fēng)向標(biāo)[1-3]。

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

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

        2 需求分析(Requirements analysis)

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

        對于普通用戶來說,主要了解當(dāng)日的天氣情況,選擇相應(yīng)的穿衣搭配和出行安排,并且能將天氣信息推送給朋友。對于相關(guān)行業(yè)人員來說,可根據(jù)未來天氣情況提出對應(yīng)的措施,力求最大化減小損失。因此天氣預(yù)報(bào)的受眾需要了解目前的天氣情況和未來的天氣變化等,對其他城市的天氣狀況也會加以關(guān)注,同時(shí)可以對默認(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é)分享文字和圖片到新浪微博平臺。三個(gè)模塊互相協(xié)作,最終構(gòu)建一個(gè)基于iOS的天氣預(yù)報(bào)查詢程序。

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

        系統(tǒng)將所有功能模塊化,啟動期間會順序加載模塊,并自動運(yùn)行模塊的初始化代碼。初始化所有模塊后再運(yùn)行其他核心初始化代碼,系統(tǒ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程序可以抽象為主頁信息模塊、天氣查詢模塊和分享模塊,采用iOS中頁面布局導(dǎo)航控制器(UINavigationController)管理視圖管理器(UIViewController)的方式,UINavigationController創(chuàng)建一個(gè)UIViewController“?!?,用戶在場景間切換時(shí),依次將UIViewController壓入“棧”中,且當(dāng)前場景的UIViewController位于棧頂,要返回上一層界面,UINavigationController將彈出棧頂?shù)目刂破?,從而回到其一層界面的控制器[7,8]。

        5.1 主頁信息模塊

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

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

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

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

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

        5.2 天氣查詢模塊

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

        @implementation CLNowCell

        // 封裝UItableView。數(shù)據(jù)模型預(yù)先給UITableViewCell賦值,在完成數(shù)據(jù)請求后找到合適的時(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)力:%@級”,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í)會先進(jìn)入到地理位置查詢的界面。地理位置查詢主要有兩個(gè)界面,一個(gè)是先按省份查詢,當(dāng)用戶選擇好省份后點(diǎn)擊cell會跳入到市、縣級城市查詢界面,如圖5所示。endprint

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

        5.3 分享模塊

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

        6 結(jié)論(Conclusion)

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

        參考文獻(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客戶端的圖書館社會化閱讀服務(wù)模式研究[D].南京:南京大學(xué),2014.

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

        84-85.

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

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

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

        2014,17(8):58-62.

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

        作者簡介:

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

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

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

        尤物yw午夜国产精品视频| 真实夫妻露脸自拍视频在线播放| 日本不卡在线视频二区三区| 强开小婷嫩苞又嫩又紧视频韩国| 猫咪av成人永久网站在线观看| 国产女人水真多18毛片18精品| 无码综合天天久久综合网| 亚洲av乱码中文一区二区三区| 日韩丝袜亚洲国产欧美一区| 一区视频在线观看免费播放.| 久久亚洲春色中文字幕久久久综合| 成人激情视频在线手机观看| 久久精品色福利熟妇丰满人妻91| 把女人弄爽特黄a大片| 麻豆国产在线精品国偷产拍| 人妻少妇av无码一区二区| 人妻无码一区二区在线影院| 亚洲每天色在线观看视频| 中文字幕亚洲永久精品| 91精品久久久久含羞草| 精品国产亚洲av成人一区| 日本国产一区二区在线| 日韩精品人妻中文字幕有码在线| 精品国产sm最大网站| 国语对白做受xxxxx在| 亚洲精品欧美二区三区中文字幕| 国产免费资源| 亚洲一区二区三区高清视频| 亚洲国产熟女精品传媒| 日日摸天天摸97狠狠婷婷| 偷看农村妇女牲交| 999久久久免费精品国产| 精品四虎免费观看国产高清| 欧美xxxxx精品| 久久丝袜熟女av一区二区| 国产精品情侣呻吟对白视频| 日韩网红少妇无码视频香港| 免费中文熟妇在线影片| 在线观看免费人成视频| 国产精品无码mv在线观看| 国产一级黄色片一区二区|