基于ios的新浪微博iphone客户端的设计与实现毕业论文(编辑修改稿)内容摘要:
户发送一条私信; (9)收藏微博:收藏一条微博消息。 北京理工大学硕 士学位论文 6 图 微博客户端主要功能 客户端的主要任务 按照本文所设计的客户端的需求分析,它完全基于新浪微博开放平台的 REST API。 因此,它的主要任务是能够解析 REST API 返回的数据,以及按照 REST API 请求格式封装请求。 在客户端进行获取数据的过程中,解析接收到的数据是非常重要的上作。 如果解析失败,就不能看到正确的信息。 当请求返回到达客户端后,必须先调用相应的程序来进行解析,即首先根据请求的类型调用相应的处理函数来处理, 并将结果用于更新用户界面。 系统功能模块划分 功能模块划分是描述系统的一个过程,需要将需求分析中的感性描述进行抽象化,提取出要实现的功能,这是整个系统开发的一个关键过程。 在系统分析的基础上,确定系统的功能模块。 系统的功能模块图如下图 所示: 北京理工大学硕 士学位论文 7 图 系统功能模块图 开发者工具 XCode 是苹果公司的开发工具套件,它可用于管理工程,编辑代码,构建可执行文件,进行源码级调试,进行源代码仓库管 理,进行性能调节等。 套件的核心是 Xcode应用程序本身,它用于提供基本的源代码开发环境。 下面的章节将向您介绍开发 iOS软件将会用到的关键应用程序: (1)Xcode Xcode 是一个集成开发环境 (IDE),从创建及管理 iOS 上程和源文件到将源代码链编程可执行文件,并在设备运行代码或者在 iPhone模拟器上调试代码所需的各种工具 : 用于对软件产品进行定义的工程管理系统。 代码编辑环境,包括为文法显示不同颜色、代码补全以及符号指示等多种功能。 高级文档阅读工具,可用于阅读搜索苹果文档。 对上下文敏感的检查工具, 可用于查看选定代码符号的信息。 高级链编系统,具有依赖检查及链编规则计算功能。 GCC 编译器,此编译器支持对 C, C++, ObjectiveC, ObjectiveC++以及ObjectiveC 和其他语言进行编译。 微博客户端 用户 最新微博列表 发表新微博 评论微博 转发微博 搜索用户 添加关注和取消关注 登录或授权认证 北京理工大学硕 士学位论文 8 集成源码级的调试功能,此功能使用 GDB 来实现。 分布式计算,此功能可以让您将巨大的上程分布到数台联网的机器上运行。 预测编译,此功能可以加速单个文件的编译周转时间。 高级调试功能,例如停顿和继续运行,而且可以定制数据格式化方式。 高级重构工具,这些上具可以让您在不改变整体行 为的前提下对代码进行全局性的修改。 工程快照的支持。 工程快照是一种轻量级的本地源代码管理形式。 支持启动性能上具对软件进行分析。 支持源代码管理集成。 支持使用 AppleScript 实现链编过程自动化。 可以生成 DWARF 和 Stabs 调试信息 (所有的新上程都会默认生成 DWARF 调试信息 )。 Xcode 工程的中心部分是一个工程窗口,如图 所示。 此窗口为应用程序的关键元素提供快速访问。 Groups amp。 Files 列表,可以对工程文件 (包括源文件以及由源文件生成的链编口标 )进行管理。 工具栏可以访问常用的上具和 命令。 详情面板可以配置出一块区域用于对文件进行各种操作。 工程窗口的其他部分提供一些工程上下文信息。 图 Xcode 工程窗口 北京理工大学硕 士学位论文 9 通过 Xcode 链编应用程序的时候,可将其链编至 iPhone 模拟器或设备。 模拟器为应用程序测试提供本地环境,可以通过它测试应用程序是否具有正确行为。 当应用程序的基本行为符合预期后,再通过 Xcode 将其链编到设备上,然后在己连接至计算机的 iOS 设备上运行程序。 在设备运行应用程序是最终测试环境。 在这一测试过程中,Xcode 允许您将内建调试器绑定至设备上运行的代码,直接在设备上进行调试。 如图 所示。 图 Xcode 中运行项目 (2)Interface Builder Interface Builder 以所见即所得方式组装用户界面。 通过 Interface Builder,把标准系统控件拖拽到应用程序窗口,并最终组装出应用程序的用户界面。 可以使用 inspector配置组件属性,并在对象和代码之间建立正确关联。 当用户界面达到要求后,保存并将这些界面的内容保存到 nib 文件 (一种定制的资源文件格式 )。 如图 所示。 北京理工大学硕 士学位论文 10 图 Interface Builder 创建界 面 使用 Interface Builder 之后,在创建、配置及摆放界面对象的时候就无需再编写定制代码,因为它是一种可视化的编辑器,编辑时所见的界面即运行时所得。 (3)Instruments 为确保软件具有最佳的用户体验,在 iOS 应用程序运行于模拟器或设备上时,可以利用 Instruments 环境分析其性能。 Instruments 会收集运行程序的数据,并以时间线方式展现数据。 可以采集应用程序数据包括应用程序内存使用情况、磁盘活动、网络活动以及图形性能。 使用 Instruments 调整应用程序如图 所示。 北京理工大学硕 士学位论文 11 图 Instruments 调整应用程序 本章小结 本章对客户端软件的功能需求进行了分析,讨论了客户端应该满足的条件、主要功能和主要任务,最后对客户端划分了功能模块,共包括登陆、最新微博列表、发表新微博、评论微博、转发微博、搜索用户、添加和取消关注七个功能模块。 本章第二部分介绍了开发者工具,主要有 Xcode, Interface Builder, Instruments 三种。 北京理工大学硕 士学位论文 12 第 3 章 系统的设计 系统总体设计概述 新浪微博 iOS 客户端客户端的系统设计主要分为 程序的前端和后端两层,程序的前端主要负责客户端与微博用户之间的交互,后端主要负责网络请求,数据库访问,数据解析的实现。 系统由程序的前端微博用户模块和后端管理模块两个主要模块组成,同时具备了设定数据库,访问数据库,修改数据库等多种功能,各个功能模块相互协调工作。 下面是系统设计分层体系结构图。 客户端分层架构图,如图 所示: 前台 应用程序接口 后台 图 客户端分层架构图 前台部分主要负责客户端与用户之间的交互,包括接收用户请求和显示返回结果两个部分。 前台通过调用己经封 装好的应用程序接口 .IJ 以方便使用客户端的各项功能。 后台部分主要负责网络请求,数据库访问,数据解析的实现。 JSON 数据解析模块主要负责对 JSON 数据的内容进行解析和编码; REST API 网络访问模块主要负责新浪微博 REST API 网络请求;数据库访问模块主要负责本地数据库的读写访问。 用户接口 JSON 数据解析模块 网络模块 数据库访问模块 北京理工大学硕 士学位论文 13 除了用前后端的形式表现新浪微博 iOS 客户端客户端的系统设计之外,还要考虑到系统在图形,开放性和安全性方面的设计,下面是新浪微博 iOS 客户端系统在其他方面的系统设计概述 : 在功能方面,采用图形用户界面技术,使系统能够有多重图形 窗口和丰富便利的操作界面,通过鼠标或键盘的操作,为用户提供最简洁的使用方法。 在系统开放性方面,基于优秀的开发平台,再按照软件工程开发规范实现系统的开放性,既便于内容的扩充又便于技术的升级,以适用今后其他人的借鉴需求。 在系统和数据的安全性方面,本项目是采用 OAuth 认证方式,采用这种方式就需要有用户的新浪 UserID、 Access Token、 Access Secret 这 3 个要素才能自由便利的调用新浪的开放接口。 本项目是这样实现的,当用户第一次使用软件时,进行授权认证获取这 3 个要素,同时将其存储到 SharedPreferences 中以便用户下次使用。 当用户再次使用时就不需要重新进行繁琐的授权认证操作,直接从 SharedPreferences 中读取出来即可使用。 这样的需求载入页面的功能设定是这样实现的:当用户打开软件显示载入页面时开始检查 SharedPreferences 中是否已经保存有用户的新浪微博的 UserID 号、Access Token、 Access Secret 的记录, 如果一条记录都没有那就说明用户是第一次使用本软件,那么跳到认证授权页面进行授权认证操作(认证授权功能在接下来的两篇中进行实现讲解)获取 这 3 个值保 存到 SharedPreferences 中,如果已经包括了记录那么读取这些记录的 UserID 号、 Access Token、 Access Secret 值然后根据这 3 个值调用新浪的 API 接口获取这些记录对应的用户昵称信息等。 OAuth 认证的原理如下图 所示: 北京理工大学硕 士学位论文 14 图 认证原理图 系统模块设计 用户注册模块 功能描述:在用户第一次使用该应用时,如还未获得新浪微博的账号,可以通过配置页面跳转到新浪微博的用户注 册页面。 参与者:未注册的用户。 前置条件:所有未注册的用户。 后置条件:提示注册是否成功。 该模块用例如下图 所示: 图 用户注册用例图 用户登陆和授权模块 功能描述:对于第一次使用该应用的用户,在程序启动之后进入配置页面,输入 客 户 端 新 浪 微 博 服 务 器 将 APPKEY和 APPSECRET发送至新浪微博 返回 RequestToken和 RequestSecret给客户端表示新浪微博信任客户端 将 RequestToken和 RequestSecret发送至 新浪微博跳转至授权页面 授权页面 输 入 账号密码 完成授权 根据回调地址返回 oauth_verifier,表示用户信任客户端 将 RequestToken、 RequestSecret、 oauth_verifier发送至新浪微博 返回 user_id、 AccessToken和 AccessSecret用来代替账号密码 用户注册 未注册用户 北京理工大学硕 士学位论文 15 用户名和密码进行授权认证。 对于用户在自己的手机上使用过或者已经通过了授权认证则可以不用输入用户名和密码就可以选择用户进行登录。 参与者:未通过授权认证或者未登录。 前置条件:未通过授权认证或者未登录的用户。 后置条件:通过授权配置或者直接登录系统。 用户登录和授权模块用例如下图 所示: 图 用户登录和授权认证用例图 用户登录和授权模块流程图如图 所示: 通过授权认证 选择用户进行登录 用户 北京理工大学硕 士学位论文 16 图 用户登录和授权流程图 系统第一界面展示模块 功能描述:显示被用户添加关注的好友的最新微博信息。 参与者:合法登录用户。 前置条件:已登录用户。 后置条件:在首页显示所有被用户添加关注的最新微博信息列表。 该模块用例如下图 所示: 判断是否存在已授权用户 授权配置 开始 启动应用 登录 登录到应用首页 结束 是 否 北京理工大学硕 士学位论文 17 图 系统首页信息显示用例图 系统首页显示模块流程图如图 所示: 图 显示主界面流程图 发表微博模块 功能描述:该模块主要实现了用户发表微博的功能。 参与者:合法登录用户。 前置条件:已登录用户。 后置条件:新微博信息是否发表成功。 该模块用例如下图 所示: 加载数据 开始 进入首页 发表新微博 结束 显示最新微博的列表 搜索其他用户 用户 查看微博列表 搜索用户 发表新微博 北京理工大学硕 士学位论文 18 图 发表微博用例图 发表新微博流程图如下图 所示: 图 发表微博流程图 搜索相关用户模块 点击首页微博发送按钮 开 始 输入内容 点击发。基于ios的新浪微博iphone客户端的设计与实现毕业论文(编辑修改稿)
相关推荐
电影,这一切都在改变我们的日常生活。 也正是由于这些变化,移动互联网已经逐渐成为了互联网这个行业的重要组成部分。 我们也能看到,传统的PC 行业的增长已经开始放慢,国际上一些很大的传统 PC厂家例如惠普,戴尔在 PC 行业的利润已经越来越少 ,它们都在积极的寻求转型。 而反观智能机的领域,苹果,三星, HTC等企业都通过智能手机的销售取得了非常好的业绩。 特别是苹果和三星
age、AFNetworking、高德地图 SDK,首先使用 search 命令搜索类库,在终端输入 $ pod search AFNetworking(以 AFNetworking 为例) , 终端会返回一个 AFNetworking 的所有版本的列表,然后使用命令 $ cd /Users/shiyunlei/Desktop/CocoapodsSample 进入项目目录,
age 邻居发现协议 邻居发现协议是 IPv6 协议的一个组成部分,它解决同一链路上节点之间的互操作问题。 邻居发现协议定义了解决如下一些问题的机制 : (1)地址自动配置:节点为自身的网络接口配置 IPv6 地址,与之关联的有重复地址检测机制等。 (2)地址解析:由其它节点的 IPv6 地址得到其链路层地址。 (3)路由发现:主机发现同一链路上的路由,与之关联的还有参数发现、前缀发现等机制。
就是每次连接只处理一个请求。 在 iPad 端可以向服务器发送 Post 或 GET 方式请求。 因为 IOS SDK 中的 网络请求 API 用起来根复杂,所以本次论文用到的 ASI 封装了系统的 CFNetwork 框架,而且 ASI 是用 ObjectiveC 写的,可以直接在 Mac 系统或 IOS 应用中直接使用。 ASI 目前已经不更新了,但是由于效率高,功能完善,所以现在使用
代码大很多,而函数库 (通常附在软件发行本 )亦和 Smalltalk 系统要使用极大地内存来开启一个窗口的情况相反。 ObjectiveC 的最初版本本不支持垃圾回收,在当时 这是争论的焦点之一,很多人考虑到 Smalltalk 回收时有漫长的“死亡时间”,令整个系统失去功能, ObjectiveC 为避免此问题才不拥有这个功能,虽然某些第三方版本已经加入这个功能(尤其是GNUstep),再起
方式对比可见,触屏手机基于 IOS、 Android 手机设备应用程序交互适配设计研究报告 第 11 页 共 48 页 与电脑的使用方式之间有着极大的差异,不同的操作方式也将导致设计时需要考虑不同的因素,其使用体验也将不同。 场景需求对比 : 随着手机的普及,几乎人人都会有一部手机,使用手机的场景随处可见,而几乎随时随地都会使用到手机。 并且使用手机应用服务的场景相当比较分散