基于IOS的仿微博系统
? ?這份需求說明書的目的是直接對(duì)基于MVC模式的微博系統(tǒng)進(jìn)行需求分析和系統(tǒng)總體設(shè)計(jì)服務(wù)。本說明書面向的讀者是進(jìn)行需求分析的人員和進(jìn)行系統(tǒng)總體設(shè)計(jì)的人員。在開發(fā)的時(shí)候做了ppt、演示視頻源碼等需要可聯(lián)系企鵝:2415273018。主要工作是設(shè)計(jì)實(shí)現(xiàn)一款個(gè)性化的基 于iOS的微博客戶端軟件,該客戶端軟要使用網(wǎng)絡(luò)數(shù)據(jù)進(jìn)行通信,實(shí)現(xiàn)移動(dòng)端瀏覽和發(fā)布微博等功能。同時(shí),在實(shí)現(xiàn)該客戶端軟件的過程中,對(duì)運(yùn)用到的相關(guān)知識(shí)和技術(shù)也進(jìn)行了研究,總結(jié)出移動(dòng)軟件交互設(shè)計(jì)的一些心得,為推動(dòng)移動(dòng)應(yīng)用開發(fā)的發(fā)展與創(chuàng)新獻(xiàn)上一份綿薄之力。
微博即微型博客,是一類借助關(guān)注機(jī)制來分享一些簡(jiǎn)短實(shí)時(shí)信息的廣播式的社交網(wǎng)絡(luò)平臺(tái)。微博是基于用戶關(guān)系來進(jìn)行信息分享、傳播和獲取的,注重時(shí)效性和隨意性的特點(diǎn),使其能夠更加真實(shí)的表達(dá)出用戶每時(shí)每刻的思想和最新動(dòng)態(tài)。世界上出現(xiàn)早和最著名的微博是twitter。在中國(guó)的微博領(lǐng)域中,新浪微博一枝獨(dú)秀。新浪微博推出了其特有的LOGO標(biāo)識(shí),并宣布改名為“微博”,使新浪的色彩逐步淡化了。通過新浪微博,你可以瀏覽你感興趣的信息,也可以發(fā)布內(nèi)容供別人瀏覽。發(fā)布的內(nèi)容可以是圖片、視頻、文字等,發(fā)布文字時(shí),一般有140字的上限,微博由此得名。發(fā)布信息和信息傳播的快速是微博的最大特點(diǎn)。微博的即時(shí)通訊功能非常強(qiáng),當(dāng)有一些大的突發(fā)事件或者引起全球關(guān)注的大事發(fā)生時(shí),通過在場(chǎng)的微博用戶,在微博.上發(fā)表出來,其實(shí)時(shí)性、快捷性和現(xiàn)場(chǎng)感,可能會(huì)超過所有的媒體。在當(dāng)下這個(gè)移動(dòng)互聯(lián)網(wǎng)時(shí)代,微博用戶體驗(yàn)的粘性會(huì)隨著移動(dòng)終端的便利性和多媒體化越來越強(qiáng)。
2.1 綜合描述
隨著人們生活水平的提高,人們對(duì)精神生活的追求也更加豐富多彩。博客需組織語言陳述事實(shí)或者采用修辭手法來表達(dá)心情,而微博則需求只言片語就可以表達(dá)心情或者表述大概事實(shí),符合人們現(xiàn)在的生活節(jié)奏和表達(dá)方式。也使得用戶更加容易對(duì)訪問者留言進(jìn)行回復(fù),從而形成良好的互動(dòng)關(guān)系。為了適應(yīng)用戶的這種需求,所以我們應(yīng)用新技術(shù),采用標(biāo)準(zhǔn) MVC設(shè)計(jì)模式開發(fā)微博系統(tǒng)。
2.2 功能需求
作為一個(gè)微博客戶端,需要滿足的基本特點(diǎn),如:把用戶請(qǐng)求轉(zhuǎn)化成服務(wù)器能夠理解和處理的格式;向服務(wù)器傳送用戶請(qǐng)求,同時(shí)接收服務(wù)器響應(yīng);解析來自服務(wù)器的響應(yīng),并將其展示給用戶等等。實(shí)現(xiàn)如下功能:
(1)用戶登錄、注冊(cè)
(2) 用戶撰寫并發(fā)送一條純文字、純文字+圖片的新微博;
(3)用戶發(fā)布的微博
(4) 關(guān)注用戶的微博
(5) 黑名單功能
(6)私信功能(可開關(guān))
(7)轉(zhuǎn)發(fā)微博
(8)評(píng)論微博
?????? 2.3 運(yùn)行開發(fā)環(huán)境
iOS是蘋果公司專用的操作系統(tǒng),是使用最廣的移動(dòng)操作系統(tǒng)之一,作為蘋果移動(dòng)設(shè)備的開發(fā)人員,必須基于此操作系統(tǒng)進(jìn)行開發(fā),因此要熟知相應(yīng)的軟硬件開發(fā)環(huán)境。
(1)硬件配置
主機(jī)操作系統(tǒng)版本:Windows 10 Home, 64-bit (Build 19044.1645) 10.0.19044
虛擬機(jī)軟件:VMware? Workstation 16 Pro 16.0.0 build-16894299
安裝的虛擬機(jī)系統(tǒng):MacOS Monterey 版本 12.2.1程序運(yùn)行環(huán)境 Simulator 模擬器版本:iPhone 11 Pro – iOS 15.0
2.4非功能性需求:
非功能性需求同樣是需求的一項(xiàng),是對(duì)功能性需求的補(bǔ)充,對(duì)系統(tǒng)開發(fā)十分重要。非功能性需求指的是應(yīng)用程序除了功能需求以外為滿足用戶業(yè)務(wù)需求必須具有的一-些特性,包括系統(tǒng)的性能、可靠性、可維護(hù)性、可擴(kuò)充性和對(duì)技術(shù)和對(duì)業(yè)務(wù)的適應(yīng)性等要求。
(1)應(yīng)用的各界面設(shè)計(jì)風(fēng)格保持一致性,并且符合iOS平臺(tái)下大部分的設(shè)計(jì)規(guī)范。
(2)保證程序運(yùn)行穩(wěn)定,性能效率要高,不出現(xiàn)由于內(nèi)存錯(cuò)誤引起的崩潰等現(xiàn)象,盡量減少因從網(wǎng)絡(luò)獲取數(shù)據(jù)而讓用戶長(zhǎng)時(shí)間等待的現(xiàn)象。
(3)注重用戶體驗(yàn)和操作習(xí)慣,在操作等方面模擬蘋果手持設(shè)備自帶的功能,如畫面的擴(kuò)大縮小等功能。在可縮放的界面進(jìn)行改變界面大小的操作時(shí),不應(yīng)改變界面的整體布局。
(4)可擴(kuò)充性上,程序的擴(kuò)展性要好,便于新功能添加。由于將來新版本有可能會(huì)加入新的功能,所以在設(shè)計(jì)的時(shí)候應(yīng)該考慮相關(guān)的情況,盡量符合高內(nèi)聚低耦合的準(zhǔn)則。
?????? 3.1系統(tǒng)體系結(jié)構(gòu):
MVC模式定義了對(duì)象之間跨越其角色的抽象邊界的通信方式。該模式下的對(duì)象在應(yīng)用程序中被劃分為三組:模型、視圖和控制器。
Model:模型對(duì)象封裝特定于應(yīng)用程序的數(shù)據(jù),并定義操作和處理該數(shù)據(jù)的 邏輯和計(jì)算。例如,模型對(duì)象可能表示游戲中的角色或地址簿中的聯(lián)系人。模型 對(duì)象可以與其他模型對(duì)象具有一對(duì)多關(guān)系,因此有時(shí)應(yīng)用程序的模型層有效地是一個(gè)或多個(gè)對(duì)象圖。作為應(yīng)用程序持久狀態(tài)的一部分的大部分?jǐn)?shù)據(jù)(無論持久狀 態(tài)是存儲(chǔ)在文件還是數(shù)據(jù)庫(kù)中)都應(yīng)該在數(shù)據(jù)加載到應(yīng)用程序后駐留在模型對(duì)象中。因?yàn)槟P蛯?duì)象代表與特定問題域相關(guān)的知識(shí)和專業(yè)知識(shí),所以它們可以在類 似的問題域中重用。理想情況下,模型對(duì)象應(yīng)該沒有與呈現(xiàn)其數(shù)據(jù)的視圖對(duì)象的 顯式連接,并允許用戶編輯該數(shù)據(jù),它不應(yīng)該關(guān)注用戶界面和表示問題。
View:視圖對(duì)象是用戶可以看到的應(yīng)用程序中的對(duì)象。視圖對(duì)象知道如何繪 制自身并可以響應(yīng)用戶操作。視圖對(duì)象的主要用途是顯示應(yīng)用程序模型對(duì)象中的 數(shù)據(jù)并啟用對(duì)該數(shù)據(jù)的編輯。盡管如此,視圖對(duì)象通常與 MVC 應(yīng)用程序中的模型對(duì)象分離。因?yàn)槟ǔ?huì)重用和重新配置它們,所以視圖對(duì)象可以提供應(yīng)用程 UIKit 和 AppKit 框架都提供了視圖類的集合,Interface Builder 在其庫(kù)中提供了許 多視圖對(duì)象。
Controller:控制器對(duì)象充當(dāng)應(yīng)用程序的一個(gè)或多個(gè)視圖對(duì)象與其一個(gè)或多個(gè)模型對(duì)象之間的中介。因此,控制器對(duì)象是視圖對(duì)象通過其獲知模型對(duì)象的變 化的管道,反之亦然。控制器對(duì)象還可以為應(yīng)用程序執(zhí)行設(shè)置和協(xié)調(diào)任務(wù),并管理其他對(duì)象的生命周期。
3.2 客戶端整體架構(gòu)設(shè)計(jì)與實(shí)現(xiàn)
APP架構(gòu)設(shè)計(jì)與實(shí)現(xiàn),是APP程序快速開發(fā)和穩(wěn)定運(yùn)行的靈魂。做好APP程序的架構(gòu)設(shè)計(jì),可以使APP程序結(jié)構(gòu)更清晰、程序更友好、開發(fā)更方便、應(yīng)用運(yùn)行更穩(wěn)定。客戶端的分層架構(gòu)如圖所示:
從業(yè)務(wù)邏揖角度分析,微博客戶端可劃分為五大模塊,分別是:“登錄模塊”,“版本新特性模塊”,“主頁模塊”,“發(fā)微博模塊”,“我模塊”“消息模塊”,如下圖所示。要把這些功能有機(jī)的組織起來,就需要UI業(yè)務(wù)邏輯的設(shè)計(jì)。每一個(gè)功能模塊都需要定義了一系列的UI界面。
微博列表界面流程圖:
??? 3.3數(shù)據(jù)處理、數(shù)據(jù)存儲(chǔ)、數(shù)據(jù)可視化:
數(shù)據(jù)處理主要是使用AFN進(jìn)行網(wǎng)絡(luò)數(shù)據(jù)獲取,通過NSArray和NSDictionary對(duì)數(shù)據(jù)進(jìn)行分組和解析。數(shù)組是一個(gè)集合類,是有序的,可以根據(jù)編制的索引找到想要的結(jié)果。OC數(shù)組只能存儲(chǔ)對(duì)象(如字符串、數(shù)組、字典等),不能存儲(chǔ)基本數(shù)據(jù)類型(如int,float,char),也不能存儲(chǔ)nil。分為不可變數(shù)組(NSArray)和可變數(shù)組(NSMutableArray)。不可變數(shù)組一經(jīng)創(chuàng)建就不能對(duì)其內(nèi)容進(jìn)行操作。NSDictionary(字典)是使? hash表來實(shí)現(xiàn)key和value之間的映射和存儲(chǔ)的, hash函數(shù)設(shè)計(jì)的好壞影響著數(shù)據(jù)的查找訪問效率。數(shù)據(jù)在hash表中的分布越均勻,其訪問效率越高。在objective-c中通常是用NSString來作為鍵值,其內(nèi)部使用的hash函數(shù)也是通過使用NSString對(duì)象作為鍵值來保證數(shù)據(jù)的各個(gè)節(jié)點(diǎn)在hash表中分布均勻。
3.4運(yùn)行結(jié)果: ?
?
?
面對(duì)多種的接口要求,一一向服務(wù)器請(qǐng)求數(shù)據(jù)并加以封裝,最后解析出有用數(shù)據(jù)并發(fā)送給視圖控制器,這要求程序員有良好的編程習(xí)慣以及很強(qiáng)的抽象封裝能力,很多接口的描述需要對(duì)字符串進(jìn)行拆分、拼接、組裝,最后封裝成供所有請(qǐng)求發(fā)送的方法,這很有難度。因此,需要先構(gòu)建一個(gè)網(wǎng)絡(luò)請(qǐng)求抽象類,然后羅列各種接口,定義并記錄接口定義,然后建立一個(gè)類框架,理清類內(nèi)部關(guān)系以及需要向外界提供或者借鑒的關(guān)系。寫出初步的底層核心類后,再加以抽象封裝,構(gòu)建出一個(gè)對(duì)外接口類,此時(shí),視圖控制器只要定義此類的對(duì)象就可以得到想要的任何數(shù)據(jù)了。這個(gè)工程是一個(gè)難點(diǎn),抽象封裝本來就需要很強(qiáng)的總結(jié)分析能力,再加上細(xì)節(jié)的處理,字符串的處理,需要用到一點(diǎn)點(diǎn)算法的思想。
總結(jié)
以上是生活随笔為你收集整理的基于IOS的仿微博系统的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java HTML5 学习资料汇总
- 下一篇: java信息管理系统总结_java实现科