基于IOS的仿微博系统

   这份需求说明书的目的是直接对基于MVC模式的微博系统进行需求分析和系统总体设计服务。本说明书面向的读者是进行需求分析的人员和进行系统总体设计的人员。在开发的时候做了ppt、演示视频源码等需要可联系企鹅:2415273018。主要工作是设计实现一款个性化的基 于iOS的微博客户端软件,该客户端软要使用网络数据进行通信,实现移动端浏览和发布微博等功能。同时,在实现该客户端软件的过程中,对运用到的相关知识和技术也进行了研究,总结出移动软件交互设计的一些心得,为推动移动应用开发的发展与创新献上一份绵薄之力。

  1. 背景

微博即微型博客,是一类借助关注机制来分享一些简短实时信息的广播式的社交网络平台。微博是基于用户关系来进行信息分享、传播和获取的,注重时效性和随意性的特点,使其能够更加真实的表达出用户每时每刻的思想和最新动态。世界上出现早和最著名的微博是twitter。在中国的微博领域中,新浪微博一枝独秀。新浪微博推出了其特有的LOGO标识,并宣布改名为“微博”,使新浪的色彩逐步淡化了。通过新浪微博,你可以浏览你感兴趣的信息,也可以发布内容供别人浏览。发布的内容可以是图片、视频、文字等,发布文字时,一般有140字的上限,微博由此得名。发布信息和信息传播的快速是微博的最大特点。微博的即时通讯功能非常强,当有一些大的突发事件或者引起全球关注的大事发生时,通过在场的微博用户,在微博.上发表出来,其实时性、快捷性和现场感,可能会超过所有的媒体。在当下这个移动互联网时代,微博用户体验的粘性会随着移动终端的便利性和多媒体化越来越强。

  1. 需求分析

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)可扩充性上,程序的扩展性要好,便于新功能添加。由于将来新版本有可能会加入新的功能,所以在设计的时候应该考虑相关的情况,尽量符合高内聚低耦合的准则。

  1. 概要设计

       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运行结果:  

 

 

  1. 总结

面对多种的接口要求,一一向服务器请求数据并加以封装,最后解析出有用数据并发送给视图控制器,这要求程序员有良好的编程习惯以及很强的抽象封装能力,很多接口的描述需要对字符串进行拆分、拼接、组装,最后封装成供所有请求发送的方法,这很有难度。因此,需要先构建一个网络请求抽象类,然后罗列各种接口,定义并记录接口定义,然后建立一个类框架,理清类内部关系以及需要向外界提供或者借鉴的关系。写出初步的底层核心类后,再加以抽象封装,构建出一个对外接口类,此时,视图控制器只要定义此类的对象就可以得到想要的任何数据了。这个工程是一个难点,抽象封装本来就需要很强的总结分析能力,再加上细节的处理,字符串的处理,需要用到一点点算法的思想。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值