韩丽君
(渭南师范学院 数理学院,陕西 渭南 714099)
*
摘 要:本文就iOS平台“播报哥”APP的设计做了深入的分析与构思,按照该APP软件拟实现的功能目标,在iOS操作系统
下,使用XCODE工具完成前端的页面显示模块设计,搭建页面时, 使用storyBord控制页面显示,将MVC中view的部分全面处理,同时在控制器(viewController)里对界面和数据进行控制,最终生成了一个完整高效的iOS应用程序。该APP能够实现用户注册、登录、搜索、发布、评论等一系列功能。此APP能够顺应客户需求,可为那些需要找工作的或者寻求信息、想发布消息的人提供一个了人性化的信息交互平台。
关键词:iOS平台;客户端;智能终端;APP
中图分类号:TP311 文献标识码:A 文章编号:1003-7241(2018)07-0134-07
Design and Implementation of Mobile Phone “Brother for
Broadcast” APP Based on iOS Platform
HAN Li-jun
( School of Mathematics and Physics Weinan Normal College, Weinan 714099 China )
Abstract: In this paper, the design of “Brother for Broadcast” APP based on iOS platform is analyzed and conceived in depth.
According to the functional goals which are to be implemented with the APP software, under the iOS operating system, the front page display is completed with XCODE module-design-tools. During building the page, the page display is controlled, and view in MVC is fully handled with storyboard. At the same time, the interface and data are controlled with viewController, eventually a complete and efficient iOS application is generated. The APP can realize user registration, login, search, publish, comment and a series of functions. This APP can adapt to the needs of customers, for those who need to find a job or to seek information, want to release the news to provide a user-friendly information platform.
Key words: iOS platform; client; intelligent terminal; APP
1 引言我国目前使用移动终端获取信息以及进行娱乐的人数正处于快速发展期,以阿里巴巴、百度、腾讯为首的三大巨头正带领着中国的互联网行业稳步发展,伴随着智能手机与平板电脑等移动端设备的用户急剧增多以及网络服务的高速发展,人们对网络数据的需求也迅速增长,本文设计的“播报哥”平台就是一款能够为用户提供日常生活所需的,比如找工作、招加工、招平车、求租,出租等即时信息,并可以完成用户的注册、登录、
*基金项目:陕西省军民融合研究基金项目(编号16JMR21);渭南师范学院自然科学类研究项目(编号17YKS05)收稿日期:2017-05-15
134| Techniques of Automation & Applications
[1]
消息发布、分类搜索等核心功能的交流平台。设计该 “播报哥”手机软件为那些需要找工作、招工、转让等日常业务的人提供了方便,这些人群使用“播报哥”如同发送朋友圈一样简单,其他用户能及时看到发布的消息,有需要的人会在第一时间做出响应,实用、方便、高效。
本软件开发环境是iOS系统,该系统是由苹果公司开发的移动操作系统。软件开发工具Xcode是苹果公司向开发人员提供的集成开发(非开源),用于开发Mac OS X、iOS的应用程序,其运行于苹果公司的Mac操作系统下[2-4]。软件开发的语言是Objective-C,它是一种面向对象的计算机语言[5]。
行业应用与交流Industrial Applications and Communications《自动化技术与应用》2018年第37卷第7期2 软件开发相关技术2.1 软件开发设计架构MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,M、V、C间通信的方式如图1:View既能向Controller通信,又无需知道具体的Controller是谁,这样,View就与Controller解耦了[6-8]。
服务(包括GET、POST、PUT、DELETE等)所以不用创建NSOperation与NSCollection.使用更加简单。
2.3 XIB文件和MD5加密XIB是一种页面布局方式,此软件中主要用来布局tableview的cell的页面布局,原生态的tableviewCell只能显示标题和图片,但是根据不同的业务需求可以显示不同的视图,所以使用XIB更方便灵活,省时省力,更好的实现了MVC设计架构,但是XIB只是用与布局局部界面。在tableview中使用XIB文件,需要给tableview注册,告诉tableview在绘制cell的时候使用此XIB。
为了用户的安全起见,用户在注册的时候,输入的密码在存放数据库之前要进行加密,本软件对于密码的加密方式是MD5加密。
2.4 控制器本软件应用到的控制器有UIView Controller(视图
图1 MVC设计架构示意图
控制器)和UINavigation Controller(导航控制器)。UIView controller是所有view Controller的父类,也就是所有的子控制器都继承于它,控制器负责显示控制视图如何显示数据,控制器是连接数据模型和视图的桥梁;UINavigation Controller(导航控制器)是起导引作用,导航控制器的rootview Controler(根控制器)是view Controller.导航控制器导航栏是用来显示当前页面是哪个页面,左边的返回按钮是用来返回到上一页,中间的部分是用来显示这个页面的布局与内容。
UITableview是iOS软件开发中使用较为广泛的控件,主要用来显示数据,向大家呈现数据列表。本软件的首页和个人中心的页面用的是分组的样式,发布消息的时候,选择分类中用了列表的样式[9-10]。
2.2 数据请求与响应2.2.1 网络传输协议超文本传输协议(HTTP,Hyper Text Transfer Protocol)是互联网上应用最为广泛的一种网络协议,定义了一种在服务器和客户端之间传递数据的途径。统一资源定位符(URL:Uniform Resource Locator)是对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址,定义了一种唯一的资源在网络位置的途径。HTTP请求与响应,客户端先建立一个TCP(传输控制协议,transform control protocol)连接,然发送一个请求;服务器受到请求处理后发送一个响应向客户端传递数据;然后客户端可以继续发送请求或者关闭这个TCP连接[5]。
发送http请求是根据URL(网址)发送,网址将客户端与服务端连接起来,请求方式有同步请求和异步请求,分别是post与get 。同步请求是主线程运行,异步请求是主线程与后台线程都在运行。服务端会根据客户端发出的请求头,请求体,做出响应返回数据给客户端,客户端需要对数据进行下载,下载有两种方式,同步下载和异步下载。
NSURLConnection连接,将客户端与服务端连接起来。
2.4.1 列表视图的基本用法此软件中用到的列表视图是UITableView,UITabl eview的基本用法如下:(1)、使用UITableview时需要数据源和代理。设置当前的控制器为tableview的代理,并且添加到父控件中。(2)、实现数据源中两个必要实现的方法。(3)、给tableView注册xib文件。(4)、给cell赋值。
2.4.2 传值方式在用户点击首页或个人中心的cell时会将值传到详情页面。本软件用的传值方式是userdefaluts传值,以及故事板拖线的方式传值。
使用userDefault传值,首先实例化一个userDefault对象,然后根据键设置值。这样在使用的页面里定义一个userDefault对象接收。需要根据键的名字接收。
Techniques of Automation & Applications | 135
2.2.2 网络编程类库AFNetworking是一个轻量级的iOS网络服务类库。它建立NSURLConnection和NSOperation等类库的基础上,让很多网络通信功能的实现变得十分简单。AFNetworking支持HTTP请求和基于REST的网络
《自动化技术与应用》2018年第37卷第7期行业应用与交流Industrial Applications and Communications表1 登录接口信息
表2 登录请求参数表
使用线传值,线传值适用于故事板拖线的时候,需要给拖得线设置线的identifer,然后根据线的identifer设置值。在跳线时将值传到相应的界面。
两种方法,拖线的方式,是使用storyBord控制页面显示,将MVC中view的部分全面处理,同时在控制器(viewController)里可以对界面和数据控制。
3.2 接口文档设计3 系统设计3.1 软件功能设计本软件是基于iOS平台设计的APP,它为用户提供了找工作、招工、转让等日常生活所需的实时信息,能够实现以下功能:(1)、用户浏览功能:用户在未登录的状态下也可以浏览首页信息。(2)、用户注册、登录功能: 用户可以拥有自己的播报哥账号。(3)、用户发布功能:在用户登录的状态下可以发布信息,比如用户想要找工作,或者出租等等。此功能是核心功能。(4)、用户评论功能:用户可以评论其他用户的发布的消息。(5)、用户修改个人信息功能:在登录状态下,用户可以修改自己的信息,包括微信、手机号、密码等。(6)、用户重置密码功能:用户忘记密码的时候可以根据账号重置密码,用户登录成功后也可以重置密码。(7)、注销用户功能:用户在登录成功后可以选择退出登录。(8)、用户搜索功能:用户可以根据分类进行搜索,以便快速找到用户想要的信息。
在iOS操作系统下,使用XCODE工具,可以完成前端的页面显示模块,在搭建页面的时候可以选择
该系统的接口请求参数、请求地址和响应参数,包括连接成功时的响应信息与错误时的错误代码等需进行设置[11-13],如表1-表8是登录和注册接口文档设置。
表3 登录接口响应参数表
表6 注册用户请求参数表
表7 注册用户响应参数表
4 系统实现 4.1 软件的结构流程图表4 登录接口错误代码表
表5 注册用户基础信息表
136| Techniques of Automation & Applications
行业应用与交流Industrial Applications and Communications《自动化技术与应用》2018年第37卷第7期表8 注册用户错误代码表
首先,用户进入首页浏览信息,当用户点击cell或点击评论、发布等按钮,系统会判断用户是否处于登录状态,如果处于登录状态,用户则可以进行下一步操作。如果没有登录,则会进入登录页面,当用户输入账号时,系统会判断用户输入的账号是否存在,如果账号不存在,则会进入注册页面,注册成功跳到登录页面。用户继续登录,如果用户忘记密码,则点击忘记密码进入重置密码页面。密码重置成功后进入登录页面继续登录。当用户登录成功时则会进入首页,用户就可以进行评论和发布消息。用户点击我的按钮的时候也同样会判断用户的状态,登录成功后,用户可以发布消息,重新绑定手机号,微信号和qq号、修改密码、和注销用户。该软件结构流程图如图2。
4.2.2 显示数据的实现这部分是将数据显示在tableView上,首先给table View设置代理,实现两个必要实现的方法,第一个是返回tableView的cell的个数,就是要显示多少行。第二个是绘制tableViewCell 就是在每个cell里呈现的界面。如果cell用自己的样式,就不用注册xib,如果使用了xib文件绘制cell 则需要给tableView注册xib,这样就可以在页面上显示xib里的内容。实现效果如图3所示。
图3 首页效果图
图2 软件结构流程图
4.3 注册页面如果用户没有注册,则在注册页面,用户需要输入用户的手机号,手机号是用来当做用户的唯一标记,对于手机号码需要进行判断用户输入的手机号是否为正确的手机号,判断手机号的方法是用正则表达式判断。用户还需要输入密码,为了保证用户的账号的安全性,需要对密码进行加密,然后在放到数据库中,对密码只是限制了密码的长度(6-16)位,数字,字母都可以。用户还需要输入微信号。对微信号的判断就是只能输入数字,
Techniques of Automation & Applications | 137
4.2 软件首页的实现4.2.1 图片滚动的实现在首页首先是3张图片滚动,对于轮播图是在当前控制器的view里添加ScrollView,然后在scrollView里添加3个imageView,设置是scrollView的尺寸与imageView的尺寸相等,但是scrollView的内容尺寸的宽度是imageView的尺寸的3倍,然后设置是scrollView允许分页,这样图片就可以滚动。
《自动化技术与应用》2018年第37卷第7期行业应用与交流Industrial Applications and Communications并且长度大于5位。点击注册按钮,只有当用户输入的全部符合上述条件,才会注册成功,然后跳到登录页面。用户的信息存放在数据库里,同时向用户提示注册成功信息,否则会向用户提示相应的错误信息,等待用户输入的正确的信息再进行判断。
供了更多的方便。在文本框里输入内容时,可以输入自己想要发布的内容。当然,如果客户不想打字的时候,可以选择快捷输入,点击快捷输入时会弹出根据用户在消息列表中选择的类别输出对应的内容,这一点为用户提供了方便。点击发布的时候回将发布的消息存在消息列表中,同时在我的消息列表中显示自己发布的消息。在首页也能显示出自己发布的消息。实现效果如图4。
4.4 登录页面在登录页面,用户需要输入自己的账号和密码,账号应该是注册过的播报哥账号。当用户点击登录按钮时,系统会在登录按钮的回调方法中判断用户输入的账号是否已经存在。
判断方法是将数据库中注册过的用户信息取出来与用户输入的账号进行比较,如果存在账号,则继续判断用户输入的密码是否正确,如果用户输入的密码正确,则用户可以登录成功,如果用户输入的账号不存在,则系统会提示用户输入的账号不存在,提醒用户先去注册账号然后在到此页面进行用户登录。当用户登录成功的时候此时用户输入的密码要进行加密。如果用户输入密码不正确,则会提示用户信息输入正确的密码。登录成功时会跳到首页,如果用户登录的时候忘记密码了,系统还有重置密码功能。
4.6 个人中心当用户点击“我”的按钮时,在“我”的按钮的回调方法中会判断用户的状态,如果用户处于未登录状态,则提示用户先去登录,如果用户处于登录的状态下,则可以跳转到个人中心页面。
在个人中心页面,首先在当前控制器的view上添加一个scrollView,然后在在scrollView上添加两个tableView,实现测滑效果。设置scrollView的尺寸和tableView的尺寸相等,在设置scrollView里的内容的尺寸为tableView里的2倍,因为scrollView的内容要存放两个tableView,实际上滚动的是scrollView。所以它的内容尺寸是存放两个tableView的尺寸,设置tableView和scrollView的数据源代理和scrollView的允许分页。在实例化tableView时需要给tableView做个标记,以方便后边的赋值。
当用户点击我的消息或者我的设置时,会显示相应的tableView的内容,此时需要将按钮和当前的tableView连接起来。因此在实例化按钮时,需要将按钮添加到一个可变数组里,并且给按钮做一个标记用来和当前的tableView连接,如果scrollView的偏移量除以tableView的宽度等于当前按钮的标记,就设置当前按钮的标题颜色,图片和背景颜色,那么非当前的按钮就是另外一种颜色,这些需要在scrollViewdidScroll的方法里实现。在按钮的回调方法里,需要设置点击按钮的标题和背景颜色,和图片的选择。也需要设置scrollView的偏移量。
当用户点我的消息按钮,会显示我的消息列表,如果用户的没有发布过消息,我的消息列表为空。如果用户发
4.5 发布功能图4 发布消息
当用户点击发布按钮时,在发布按钮的回调方法里需要判断用户的状态,如果处于未登录状态,则会跳到登录页面,进行登录。如果处于登录状态则进行发布消息页面。发布消息的页面,用户可以根据标题列表进行选择,自己要发布什么类型的消息,当用户点击找活按钮时,会弹出一个下拉框显示所有信息列表,为用户提
138| Techniques of Automation & Applications
布过消息,就显示用户发布过的消息。用户还以点击我的消息列表里的cell进入消息详情页面,当用户点击“我的设置“按钮,会显示用户的一些基本信息,包括用户的账号,用户的手机号、用户的微信号、和一些设置。用户还可以点击每个cell 做相应的操作,比如点击微信号那一栏,会跳转到修改用户信息页面,用户可以选择修改自己的微信号,同样当用户点击qq或者手机或者密码时都可
行业应用与交流Industrial Applications and Communications《自动化技术与应用》2018年第37卷第7期以进行相应的修改信息操作。当用户点击退出登录时,就会提示用户是否退出登录,如果用户选择确定,则用户就会处于未登录状态,如果用户选择取消,则用户会继续处于登录状态。实现效果如图5、图6所示。
钮时,会判断用户的状态,如果用户处于未登录状态,就提醒用户去登录,当用户处于登录状态,就会跳转消息详情页面,用户可以进行评论。实现效果如图7所示。
图7 评论页面
4.8 用户搜索功能图5 我的消息
此软件中,用户搜索功能也是一个核心功能,用户可以根据分类快速搜索自己的需求信息,也可以根据用户输入的信息进行快速搜索。实现此功能主要是根据分类的标题,向分类搜索的网址传递类别参数,就可以获取相对应类别的消息。实现效果如图8所示。
图6 我的设置
4.7 用户评论功能用户可以评论其他用户的消息,当用户点击评论按
图8 搜索页面图
Techniques of Automation & Applications | 139
《自动化技术与应用》2018年第37卷第7期行业应用与交流Industrial Applications and Communications5 结束语“播报哥”软件的APP在实验中通过测试,能够实现在线发布等系列功能,该系统为用户提供了快捷高效的信息交互平台,为人们的生活提供了很大的便利,顺应了如今人们高效生活方式,今后根据用户需求会添加更多实用和人性化的功能,不断对系统进行优化和完善。
[8] 姚新文,王晓明.基于设计模式的一种MVC框架的实现[J].计算机时代,2005,(6):21-22.
[9] 崔维,王艳娟.基于iOS的APP客户端的开发与实现[J].科技创新与应用,2014,(24):30-31.
[10] 宋立.iOS平台社交应用系统的设计与实现[D].北京:北京交通大学,2014.
[11] 王建鑫.基于iOS的新浪Sina微博iOS端客户端的实现[D].济南:山东大学2013.
[12] 曹森,苏贵斌.软件开发中的设计原则[J].软件导刊,2012,(1):74-75.
[13] 张伟杰.基于iOS平台的新闻应用的设计与实现[D].北京:北京交通大学2014.
参考文献:[1] 杨晴虹,吕东.我国移动互联网发展现状及行业机会分析[J].经济界,2012,(3):39-43.
[2] IAN PIPER.Learn X code tools for Mac OS and iPhone development[M].New York:Apress,2010:10-21.
[3] 北鼻.初步了解Xcode和Interface Builder[J].计算机应用文摘,2013,(4):64-65.
[4] CHUNG C.ProObjective-C Design Patterns for iOS[M].New York:Apress,2011:23-50.
[5] SCOTT KNASTER,WAQAR MALIK,MARK DALRYMPLE.Learn Objective-C on the Mac[M].New York:Apress,2012.
[6] 罗维.基于Pt-1P的MVC框架技术研究与实现[J].电脑编程技巧与维护,2013,(16):25-27.
[7] 唐奕,杨楚华.基于模式设计的MVC框架原理研究[J].软件导刊,2008,(6):40-41.
作者简介:韩丽君(1983-),女,博士在读,讲师,研究方向:移动通信与信号处理。
(上接第110页)
号采集器件,结合计算机技术和自动控制技术,设计了基于单片机的温度控制系统,系统开发和设计周期短,制作和实用成本比较低廉,功能基本够用,操作比较简单,适合中小型蔬菜大棚种植户实现大棚内温度的自动控制调节和无人值守,具有比较广阔的推广价值。
的设计[J].仪表技术与传感器,2012,(11):67-70.
[9] 郭荣艳,胡翔.基于单片机的大棚温湿度控制系统设计[J].周口师范学院学报,2012,29(5):44-48.
[10] 潘玮,杨祥,王惠红.温室智能控制系统设计与开发[J].山东理工大学学报(自然科学版),2011,25(4):82-84.
[11] 戴欣平.夏季猪舍降温设施与控制系统的研究[J].农机化研究,2006,(12):151-156.
参考文献:[1] 熊刚.基于PID算法的温室温度控制器的设计[J].自动化与仪器仪表,2015,(11):38-40.
[2] 方箫.基于STM32的温室环境控制系统的设计与研究[D].武汉:武汉科技大学,2014.
[3] 牛甲.基于模糊控制的温室环境控制系统的研究[D].西安:西安电子科技大学,2013.
[4] 郭东平.基于单片机的大棚温湿度监测报警装置的研究与开发[D].杨凌:西北农林科技大学,2015.
[5] 李红华.温基于可编程控制器(PLC)的温室环境控制装置的研制[D].南京:南京农业大学,2013.
[6] 李雪峰.基于51单片机控制的抽油烟机设计[J].微型机与应用,2012,31(13):18-21,24.
[7] 王君,谢之光,吕东航等.基于超声波定位的舞台自动追光灯设计[J].电子设计工程,2016,(4):4-6.
[8] 李文涛,杨小新.基于STC89C52的智能温度变送器
140| Techniques of Automation & Applications
作者简介:晁阳(1984-),男,研究生,讲师,研究方向:农业电气自动化技术方向。
因篇幅问题不能全部显示,请点此查看更多更全内容