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