APP下载

一种基于云服务的即时通讯软件的设计与实现

2016-11-14胡腾宇彭召意

软件 2016年8期
关键词:即时通讯好友社交

李 杨,胡腾宇,彭召意

(1. 湖南工业大学 计算机与通信学院,湖南 株洲 412007;(2. 智能信息感知及处理技术湖南省重点实验室,湖南 株洲 412007)

一种基于云服务的即时通讯软件的设计与实现

李杨1,2,胡腾宇1,2,彭召意1,2

(1. 湖南工业大学 计算机与通信学院,湖南 株洲412007;(2. 智能信息感知及处理技术湖南省重点实验室,湖南 株洲412007)

为了适应移动通信技术的发展,满足人们即时通讯的要求,基于融云提供的即时通讯云服务,在IOS平台上设计并实现了一种即时通讯软件。软件使用Objective-C语言和Xcode进行开发,数据存储使用融云提供的云服务,并使用Storyboard和Autolayout技术完成用户界面的搭建和针对不同尺寸屏幕设备的适配。软件实现了语音、文字、图片等富媒体的即时通讯功能,提高了人们的信息交流能力,并降低了信息交流成本。

即时通讯;云服务;IOS;Objective-C

本文著录格式:李杨,胡腾宇,彭召意. 一种基于云服务的即时通讯软件的设计与实现[J]. 软件,2016,37(8):41-46

0 引言

近年来,移动互联网发展态势十分迅猛,4G移动网络通信技术的不断发展,基础通讯设施的不断完善,使得人们可以高速地接入移动互联网,忽略空间地域的限制获取海量信息。当然,这些应用离不开移动应用软件的支持。而在所有这些应用软件分类中,需求量最大的是通讯和社交类的应用。比如,就微信通讯软件而言,截止到2015年第一季度,就已经覆盖了中国90%用户,各品牌的微信公众账号总数已经超过800万个,移动应用对接数量超过85000个,微信支付用户则达到了4亿左右[1]。

即时通讯软件已经成为最热门的网络应用之一。经历了近几年突飞猛进的发展之后,即时通讯工具早已不再是简单的互联网通讯工具,它已经成为一个集互动交流、休闲娱乐、信息管理为一体的多元化互联网应用平台。总之,即时通讯软件的出现给人们彼此之间的沟通带来了无比的方便,人们可以通过聊天软件进行多员化的信息交流,并建立深刻的友情,让人们在互联网上的交流更加充满活力与生机[2]。这种交流方式正在改变我们的生活,开发和应用即时通讯软件必将大有作为。

1 系统功能分析和设计

该即时通讯软件旨在为使用iOS设备的用户提供一个简单便捷、功能完善的沟通平台,其中最主要模块是通讯模块和社交模块。通讯模块为用户提供便捷灵活的信息传递服务,方便信息共享并降低用户沟通的成本;社交模块作为人际关系的纽带,打破了孤独的壁垒,拉近人与人之间距离。

软件利用Wi-Fi/4G/3G等网络资源进行数据通讯,整合了文本、图片、语音、地理位置(POI)、即时通话等富媒体即时消息,并且通过社交模块,分享和记录自己的生活,有助于稳固和升华情感,并扩大自己的好友圈子。

目前,基于云计算平台的应用越来越多[3-4],并且数据安全性也有保障[5]。本软件采用C/S结构,基于IOS平台,数据交换和服务由LeanCloud后端云服务提供,开发语言采用Objective_C。信息的交换由服务端实现,在减少客户端任务量的同时,也保证了即时通讯软件对实时性和稳定性要求。

通过对用户需求分析和对当前较流行同类型软件进行对比,即时通讯社交软件需要有以下功能模块:账号体系模块、通讯录管理模块、即时通讯模块、社交模块、个人信息模块。

1.1即时通讯模块

即时通讯功能模块包括消息发送功能、消息接收功能、查看聊天记录功能,其中消息类型包括文字消息、表情消息、语音消息、图片消息、位置消息、语音通话等。

消息发送和接收功能:在iOS平台下,根据用户的使用场景和Wi-Fi、4G、3G等网络环境之间的切换,实现文字、表情、语音、图片、位置消息、语音通话等消息的传输,实现发送和接收功能。客户端需要实现自动断线重连功能,保障消息畅通,在完善的消息状态确认机制下,服务端对于客户端的重连间隔需保持宽容态度。

查看聊天记录功能:对于所有的会话,来往的聊天记录都应该保存在客户端本地存储中,方便用户进行查看。查看时,需要在聊天页面计算这些信息的显示位置和大小,实现界面的自动布局。

1.2社交模块

社交模块包括好友状态查看,发布状态、好友互动、扫描二维码、其中状态类型包括文字、图片等。另外还扩充了游戏、购物等功能。

好友状态查看:用户可以用文字或图片分享和记录自己的生活平台,同时供好友查看。

发布状态:选择发布文字状态,可以进入状态编辑界面。

好友互动:与好友分享记录生活的同时,进行点赞货评论。

扫描二维码:该功能主要为用户提供了用户信息获取和网页跳转的功能。

游戏:为了增加用户的活跃度和留存率和使用时长,特意添加了游戏功能。

购物:购物满足用户对于网上购物的需求,同时软件可以通过向购物网站导流的方式实现流量变现,是软件主要的盈利手段。

1.3个人信息模块

个人信息模块主要功能是个人信息的查看和修改,个人信息包括头像、昵称、手机号、二维码、性别、地区、个性签名等。

头像的查看与修改,头像在用户详情界面应显示缩略图,点击后显示原图,并且提供2种修改方式,分别是通过选择调用相机拍照或通过相册选择照片修改,用户的其他信息查看与此类似。

1.4账号体系模块

账号体系模块包含注册、登录、找回密码等功能。

注册功能:注册功能主要实现新用户的注册,用户点击注册按钮后,引导用户输入手机号和个人等信息,并将信息上传到服务器后就完成注册。

登录功能:用户点击登录按钮后,输入手机号和密码,与服务器通信验证正确匹配后,完成一次登录。

找回密码功能:用户如果忘记密码,无法登录,可以在输入手机号后,请求服务端发送验证短信,通过接受短信验证码与服务器验证的方式重置密码。

1.5通讯录管理模块

通讯录管理模块包含显示好友列表、查看好友信息、搜索好友、添加好友、删除好友等功能。

好友列表和查看:用户登录后,通过访问服务器获取该用户所有好友并具有分组功能,可以根据需要查看好友的基本信息;

搜索好友:在好友搜索框,通过好友手机号码来查找用户。如果没有好友信息,可以进行添加。如果不需要的好友,可以进行删除。

通讯录数据都需要云服务提供支持。

1.6用户界面

软件整体设计遵循操作系统的整体颜色和操作风格,聊天类功能界面在布局上符合即时通讯类软件的规范性界面架构形式,采用标题栏、信息显示面板、信息编辑工具栏的上中下形式,标题栏中包含返回上一层、标题和添加聊天成员的信息;信息显示面板中显示所有聊天纪录和记录发送时的时间;信息编辑工具栏提供信息输入形式切换的功能,可随意切换文本、表情、语音、图片等聊天方式。这样的布局模式,信息呈现方式与现在市面上主流的即时通讯类软件相似,不会使用户有陌生感。

主要界面布局效果如图1所示。

图1 主要界面布局效果图

用户界面元素采用了微信提供的WeUI,WeUI是一套与微信原生视觉体验一致的基础样式库,主要使用的基础控件有:按钮控件、单元格控件、图标控件、搜索框控件、进度条控件等。

1.7开发与运行环境要求

开发硬件要求:运行Mac OS X 10.11或以上版本系统的Mac电脑,CPU要求Intel Core i5或以上,内存8 GB或以上,硬盘128 GB或以上。

运行硬件要求:运行iOS 9.0或以上的iOS设备,内存1 G或以上,存储容量16 G或以上。

开发环境:Xcode 7.0或以上版本、Mac OS X 10.11或以上版本,Objective-C语言。

开发工具:第三方库管理工具CocoaPods、版本管理工具Git,代码托管平台Github。

2 系统主要技术

2.1LeanCloud后端数据云服务

服务端采用了LeanCloud提供的BaaS(后端即服务)服务,LeanCloud为应用开发提供后端服务解决方案,包括数据存储、用户管理、实时消息和推送、应用统计、社交分享等服务。通过集成SDK或嵌入REST API,实现云端数据的增删改查,并通过CDN进行分发加速,提供离线数据分析,具备严格的访问控制协议,确保数据的安全性[6]。

2.2融云即时通讯云服务

即时通讯模块采用融云提供的即时通讯云服务,融云为互联网、移动互联网开发者提供免费的即时通讯基础能力和云端服务。通过融云平台,开发者不必搭建服务端硬件环境,就可以将即时通讯、实时网络能力快速集成至应用中。

2.3MVC设计模式

MVC把软件系统分为三个基本部分:模型(Model)、视图(View)和控制器(Controller)。是一种软件设计典范,用一种业务逻辑和数据显式分离的方法组织代码,将业务逻辑聚集到一个部件里面,在界面和用户围绕数据的交互能被改进和个性化定制的同时而不需要重新编写业务逻辑。MVC被独特的发展起来用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构中。

2.4IOS系统

IOS的系统架构从低到高分为四个层次:核心操作系统层(Core OS Layer),核心服务层(Core Services Layer),媒体层(Media Layer),可触摸层(Cocoa Touch Layer)。

Core OS是核心操作系统层,它包括内存管理、文件系统、电源管理以及一些其他的操作系统任务;Core Services是为APP提供基础的系统服务,核心的服务框架是CoreFoundation.framework和Foundation. framework[7-8];Media主要是为APP的图片、音频、视频等方面提供服务[9];Cocoa Touch是最上面一层,为APP开发提供了各种有用的框架,这些框架包括UIKit框架、Address Book UI框架、Game Kit框架等。

3 即时通讯软件的实现

该即时通讯软件采用C/S体系结构,并采用LeanCloud后端云服务充当数据存储的后台,融云提供的即时通讯云服务充当客户端之间即时通讯的桥梁。下面主要介绍用户界面、即时通讯模块、通讯录管理模块以及数据库的设计和实现。部分功能实现参照微信软件的服务插件[10]。

3.1数据库的设计

软件系统总计设计了5张数据库表,分别为:用户信息User表、好友关系Followee表、好友状态Status表、状态评论Comment表、上传文件File表。

用户信息包括手机号码、密码、昵称、头像、性别、地区、个性签名、手机号码是否已验证、用户创建时间和更新时间等。

好友关系信息包括好友id、用户id、创建时间、更新时间,好友关系表用于保存用户两两互为好友的关系。

好友状态包括状态内容、图片、发布者id、点赞用户id、评论id,创建时间、更新时间,其中状态内容和状态图片不能同时为空,可能存在多个点赞用户和多个评论。

状态评论信息包括评论人id、评论人昵称、评论内容、被评论人id、被评论状态id、创建时间、更新时间。

上传文件信息包括文件链接、文件名称。文件媒体类型、创建时间、更新时间。

3.2用户界面的实现

即时通讯社交软件的用户界面主要使用Xco1de中提供的Interface Builder工具Storyboard来完成,使用Storyboard实现界面效果直观、界面跳转逻辑清晰,能够有效提升开发效率,同时配合Autolayout技术来适配屏幕尺寸不同的设备十分方便。

以用户登录界面为例,讲述如何通过Storyboard来构造用户界面。

①创建StoryBoard文件。在打开工程,点击File>New>File>User Interface > Storyboard,填写Storyboard文件名称,选择存储路径,完成创建。操作界面如图2所示。

图2 创建Storyboard操作界面图

3.3即时通讯模块的实现

即时通讯模块集成了融云提供的SDK,该模块需要实现私聊和群聊功能,发送的消息类型包括文字、表情、图片、语音、位置、语音通话。实现过程如下:

①初始化一个聊天界面:

即时通讯模块的聊天实现效果如图3所示。

3.4社交模块的实现

好友状态查看的实现:点击朋友圈,进入查看好友动态页面,每一条动态可以包含文字或图片,文字内容自动计算高度,图片采用九宫格式布局[11]。用户可以对好友发布的动态进行点赞或者评论,被点赞或评论后,用户会受到一条系统消息,点击消息可以查看点赞和评论。

①文字状态的发布:长按好友状态查看页面的相机按钮,可以进入文字信息发布页面,填写文字内容后,点击发布按钮,将状态信息上传到LeanCloud服务器中,上传后跳转到好友状态查看页面,可以看到刚刚发布的状态。

②图片状态的发布,点击好友状态查看页面的相机按钮,选择将要发布的图片的来源,分别有通过摄像头拍摄和读取相册中的图片,选择图片后,可以继续填写文字信息,点击发布按钮,将状态信息上传到LeanCloud服务器中,上传后跳转到好友状态查看页面,可以看到刚刚发布的状态。

图3 即时通讯聊天功能效果图

4 结语

建立在IOS平台的即时通讯社交软件为使用IOS设备的用户提供了一种随时随地与好友沟通的方式,同时也是一个分享和记录个人生活的社交平台。

基于LeanCloud提供的云服务,实现了IOS平台的即时通讯软件[17]。软件实现了用户注册登录、富媒体信息通讯、小游戏、购物、修改个人信息等一系列功能操作。系统的文件存储使用了LeanCloud提供的后端云服务,发送富媒体消息和语音通话功能由融云即时通讯后端云服务提供支持,并使用了CocoaPods充当第三库集成工具,Github作为源码版本管理工具。该软件为使用IOS设备的用户提供了一种随时随地与好友沟通的方式,同时也是一个分享和记录个人生活的社交平台,并且也为开发类似软件提供了一个借鉴。由于云平台使用的限制,该系统未来在视频的支持和附近地理位置服务方面需要进一步加强和改进。

[1] CuriosityChina. 2015微信用户数据报告[EB/OL]. http:// www.cac.gov.cn/2015-08/24/c_1116346585.htm. 2015/2015-12-25.

[2] 单文盛. 浅析即时通讯软件业的现状和发展[J]. 中国高新技术企业, 2009, 11: 77-79.

[3] 段忠祥. 基于云计算的网络平台共享资源模型的建设[J].软件, 2013, 34(5): 119-121.

[4] 熊敏, 林荣恒, 邹华. 云计算环境下的自适应资源监测模型设计[J]. 新型工业化, 2012, 2(11): 25-31.

[5] 王小亮, 刘彬, 王春露. 云计算可信机制的有效性评估方法研究[J]. 新型工业化, 2012, 2(12): 47-55.

[6] 北京云中融信网络科技有限公司. 融云SDK 2.0文档[EB/OL]. http://www.rongcloud.cn/docs/.2015/2015-12-26.

[7] 孙王. 基于XMPP的iOS平台即时通讯客户端的研究与实现[D], 青岛: 中国海洋大学, 2015.

[8] 周建亮, 朱晓民. 基于iOS平台智能点餐系统的设计和实现[J]. 软件, 2015, 36(1): 131-134.

[9] Carlo Chung. Objective-C编程之道: iOS设计模式解析[M].北京: 人民邮电出版社, 2011.

[10] 白雪竹, 郭青. 微信—从即时通讯工具到平台级生态系统[J]. 新媒体研究, 2014, 36(2): 130-133.

[11] 黄天柱, 涂时亮. IOS开发UITableView加载图片的内存管理[J]. 计算机系统应用, 2012, 21(09): 113-118.

[12] Wang S, Zheng Z, Wu Z, Lyu M, Yang F. Reputation Measurement and Malicious Feedback Rating Prevention in Web Service Recommendation Systems. IEEE Transactions on Services Computing, 2015, 8(5): 755-767.

[13] Wang S, Liu Z, Sun Q, Zou H, Yang F. Towards an accurate evaluation of quality of cloud service in service-oriented cloud computing. Journal of Intelligent Manufacturing, 2014, 25(2): 283-291.

[14] Wang S, Sun Q, Zou H, Yang F. Particle Swarm Optimization with Skyline Operator for Fast Cloud-based Web Service Composition. Mobile Networks and Applications, 2013, 18(1): 116-121.

[15] 王尚广, 孙其博, 杨放春. 基于云模型的不确定性QoS感知的Skyline服务选择. 软件学报, 2012, 23(6): 1397-1412.

[16] 王尚广, 孙其博, 杨放春. Web服务选择中信誉度评估方法研究. 软件学报, 2012, 23(6): 1350-1367.

[17] 宁柏锋. 统一电网资源云服务平台的设计与应用[J]. 电力信息与通信技术, 2016, 14(2): 143-146.

A Design and Implementation of Instant Messaging Software Based on Cloud Services

LI Yang1,2, HU Teng-yu1,2, PENG Zhao-yi1,2
(1. School of Computer and Communication, Hunan University of Technology, Hunan, Zhuzhou, 412007, china; (2. Key Laboratory of Intelligent Information Perception and Processing Technology (Hunan Province), Zhuzhou 412007, China)

In order to adapt to the development of mobile communication technology and to meet the requirements of people instant messaging, an instant messaging software was designed and implemented based on cloud services on the IOS platform. The software was developed by Objective-C language and Xcode, its database service was provided by cloud services of LeanCloud, and the user interface was developed by the Storyboard and Autolayout technology, and the user’s screen size is suitable for various users. The software has realized the instant messaging function of rich media such as speeches, texts and pictures. It could improve the ability of people's communication, and reduce the communication cost.

Instant messaging; Cloud service; IOS; Objective-C

TP311.52

A

10.3969/j.issn.1003-6970.2016.08.009

2015湖南省教育厅科研项目(15C0402)。

李杨(1994-),男,2013级本科生,主要研究方向:移动软件系统开发;胡腾宇(1995-),男,2012级本科生,主要研究方向:移动软件系统开发。

通讯联系人: 彭召意(1968-),男,教授,主要研究方向:模式识别、计算机应用技术,(中国计算机学会会员(E200034683M))。

猜你喜欢

即时通讯好友社交
社交之城
社交牛人症该怎么治
属羊
民事诉讼中即时通讯记录的证据采用进路
即时通讯软件发展模型的实证研究
科学技术哲学视域下的即时通讯
雪花特快专递