基于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. 总结

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/352507.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

微博java版_新浪微博JAVA通用版

这是新浪微博JAVA通用版,专为JAVA用户打造。无论您身处何地,随时随地记录生活的点点滴滴,与好友分享。 软件介绍 新浪微博JAVA通用版是专为Java平台用户打造的新浪微博手机客户端,功能强大。完全支持阅读、发布、评论、转发、私信…

android 微博发布,手机上怎么用微博?手机如何发广播?

1 如何安装Android微博 Android微博可以通过以下两种方式进行安装:在Android market中下载腾讯微博Android版进行安装 在腾讯微博官网下载apk文件进行安装 2 腾讯微博Android客户端,可以用邮箱地址注册微博帐号吗? 非常抱歉,目前A…

腾讯微博android版本,腾讯微博

安装与下载 1 如何获取一个腾讯微博iPhone客户端? 首先请确认您已经拥有了一个iTunes帐号,可以通过该帐号在App store中下载应用。(如何获取该帐号了解更多) 您可以通过电脑中的iTunes软件将下载到电脑的腾讯微博iPhone客户端同步到您的iPhone中 您也可以…

用计算机上发微博,电脑版新浪微博怎么使用?新浪微博基本使用方法介绍

新浪微博能在第一时间传递最新消息,消息传播速度快、信息量大,在这里可以了解最新信息,可以学习经验,可以找到喜爱的各种小组,深受现代生活人们的喜爱,而新浪微博自2009年开始公测以来,已经拥有…

前端自动化测试基础概念与方案

测试的类型 常见的测试类型主要有以下几种: 单元测试:验证独立单元是否能正常工作集成测试:验证多个单元协同工作端到端测试:从用户角度以机器的方式在真实浏览器环境验证应用交互快照测试:验证程序的UI变化 单元测…

第1章:SpringMVC简介

一、SpringMVC 1.Java语言学习流程 2.SpringMVC的主要内容 二、SpringMVC简介 1.什么是MVC MVC是一种软件架构的思想,将软件按照模型,视图,控制器划分M:Model,模型层,指工程中的JavaBean,作用…

5个小时,搭出2套应用,这一低代码平台很强劲!

现代管理学之父德鲁克提及创新本质时,说了两点: 一是让昂贵的东西变得便宜,老百姓能用;二是让高门槛东西变得低门槛,普通人可用。 而低代码正符合这两个条件。 一、背景 所谓低代码,是一种软件开发方法&…

一周信创舆情观察(12.7~12.13)

一、一周舆情要点 行业方面,2020年集成电路设计行业销售额预计为3819.4亿元,比2019年的3084.9亿元增长23.8%。日前,我国自主研发的一项物联网安全测试技术(TRAIS-P TEST)由国际标准化组织/国际电工委员会(ISO/IEC)发布…

以评促建,推动高效惠民数字政府建设——2018数字政府建设论坛暨第十七届中国政府网站绩效评估结果发布会在京召开...

导语:放眼世界,政府数字化转型已成大势所趋。纵观国内,建设数字政府、数字中国逐渐升至新时代国家发展战略。作为数字中国体系重要组成部分的数字政府,是实现数字中国建设目标、推动社会经济高质量发展的重要抓手。结合国家要求&a…

亮剑“互联网+政务服务”,航天信息助力政府“最多跑一次”改革

? 点 击 关 注 2017年8月,航天信息联合浙江省台州市财政局在台州市立医院建设试点项目,开具出浙江省第一张门诊收费电子票据。截至2018年10月,航天信息已帮助浙江省的40多家医疗机构开具了近400万张电子票据。“最多跑一次”不是一句口号&am…

SpringBoot源码分析:SpringBoot自动装配(二)

一、概述 SpringBoot的启动流程入下图所示,它主要分为加载主启动类和解析启动类两个部分,我将从这两个部分分别开始介绍。 二、加载主启动类 首先点入SpringApplication.run方法 之后进入SpringApplication.prepareContext方法 之后进入SpringApplicat…

应用百花齐放,呈现北浙苏沪粤五极格局丨2021年中国区块链产业发展报告产业应用篇...

目前,区块链作为数字经济革命中的重要支撑,正以新一代信息基础设施的姿态快速发展并渗透到我国经济的各个领域,对我国经济社会发展的支撑作用初步显现。但同时,我国区块链也面临核心技术亟待突破、融合应用尚不成熟、产业生态有待…

大集中系统的个人所得税解决方案

大集中系统的个人所得税解决方案 1.1 前言 随着税收体制改革的发展,个人所得税在整个税收体系中占有的比重越来越大,自然人个人所得税明细申报也逐渐普及。个人所得税明细申报的主体涉及广大自然人纳税人,给税务机关的管理和税款…

【个人所得税的相关故事to me】

一、故事背景 虽然个人所得税汇算清缴&#xff08;以下简称为“个税年度汇算”&#xff09;自3月1号就开始了&#xff0c;个税申请退税&#xff08;ps:年收入 < 60k&#xff09;也自3月1号也开始了&#xff0c;但是我是到了今天才了解了相关的信息p(#&#xffe3;▽&#x…

powershell自动出IT考试题

以前给人培训时出的备考练习题&#xff0c;随机抽取题库题目&#xff0c;含分类练习和综合练习&#xff0c;自动出题&#xff0c;和给出答案&#xff0c;方便&#xff0c;快捷&#xff0c;小巧&#xff0c;大家可以试试 题源可以自己去更换 echo off setlocal enabledelayede…

【小demo】——直播平台自动发言

1. 背景 直播平台火热的现在&#xff0c;好多人已经开始直播致富了&#xff0c;但是很多直播新人因为人气等相关原因&#xff0c;就很难在直播平台爆火&#xff0c;有的人想到了买号&#xff0c;刷人气之类的&#xff0c;现在这款小demo就是配套的组件。 2. 前期准备 jar包 …

【MCS-51单片机汇编语言】期末复习总结⑥——串口通信(题型六)

文章目录 知识准备发送/接收缓冲器 SBUF串口通信控制寄存器SCON电源控制寄存器 PCON各个工作方式波特率的设定 常考题型例题1题目描述题目解析题解 例题2题目描述题解 知识准备 发送/接收缓冲器 SBUF 单片机在发送或接收数据的前先将数据存储在SBUF中&#xff1b;接收&#x…

程控电源CANoe上位机面板(CAN\ETH测试、RS232串口通信、编写设计思路)

程控电源CANoe上位机面板 编写此面板的目的编写思路一、通讯方式1、RS232串口连接2、CANoe与RS232串口相关的函数3、帧格式命令字4、校验码 二、面板设计1、所需文件说明2、导入使用3、功能模块化3.1 初始化3.2 端口设置3.3 控制方式3.4 脉冲程序3.5 电压电流状态3.6 运行设置的…

Android Studio Gradle实践之多渠道自动化打包+版本号管理

转&#xff1a; Android Studio Gradle实践之多渠道自动化打包版本号管理 上次介绍了Android Studio的安装、配置和基本使用。这次讲一下Android Studio用到的打包工具Gradle。Gradle是一种构建项目的框架&#xff0c;兼容Maven、Ant&#xff0c;为Java项目提供了很多插件去实现…

【测试实践】搞定云网络系统性能测试

一、前言 在部署或管理网络系统时&#xff0c;我们更多的是关心网络的连通性&#xff0c;而对于其整体的性能往往考虑不多&#xff0c;或者即使考虑到性能、异常或稳定性的问题&#xff0c;但却发现没有合适的手段去测试或监控网络健康状况。在本文中&#xff0c;首先简单介绍…