关键词:
IOS常用设计模式――委托模式(IOS开发)(通用8篇)
篇1:IOS常用设计模式――委托模式(IOS开发)
委托模式在之前的博客中用到了很多,比如各种复杂的Cocoa Touch框架的UI控件,几乎都用到了委托来响应控件事件或控制其他对象,
委托模式
-问题:
处理一切IOS应用都在UIApplication中完成,但是在设计过程中并不友好,它藕合度高,职责不清,难以维护,需要不断不断的重构,因此需要把看似功能很复杂的类分解或者分派成功能明确的类。
Apple中我们经常用两种类,一个是框架类,各种用,不断的用,啥都能用;另一个就是协议类,就是协议。
协议的目的,终究是降低一个对象的复杂度和藕合度。框架类经常会生成一个保持对象的指针,并在特定时刻向委托对象发送消息。就像我们常见的“obj delegate = self;”委托对象做些事情或者委托对象控制。
- 原理:
// 委托类PhilosopherDelegate.h@protocol PhilosopherDelegate@required- (void) sleep;- (void) eat;- (void) work;@end// ViewController.h@interface ViewController : UIViewController@end// ViewController.m@implementation ViewController- (void)viewDidLoad{ [super viewDidLoad]; Philosopher *obj = [[Philosopher alloc] init]; obj.delegate = self; [obj start];}#pragma -- PhilosoperDelegate方法实现- (void) sleep{ NSLog(@”Sleep...“);}- (void) eat{ NSLog(@”eat...“);}- (void) work{ NSLog(@”work...“);}@end
注意,viewDidLoad方法中的obj.delegate = self语句来指定委托对象和通用类的引用关系,
虽然通用类(一般都是UIViewController之类的东东)是UIKit直接提供,但是我们在这个例子中得实现自己的通用类Philosopher,我给出代码,但是真的不是很重要的部分。
// Philosopher.h#import ”PhilosopherDelegate.h“@interface Philosopher :NSObject{ ...}// 可以保存对象的引用@property (nonatomic, weak) iddelegate;- (void) start;- (void) handle;@end// Philosopher.m#import ”Philosopher.h"@implementation Philosopher@synthesize delegate;-(void)start{ ...}-(void)handle{ ...}@end
- 具体应用:太多了,好多空间都有委托,主要负责响应控件事件或控制其他对象。对于那些更复杂的控件,如UITableView,除了要实现委托协议外,还需要实现数据源协议。都是委托设计模式的具体应用。
委托的方法是可选的,但数据源的方法一般是必须实现的!
篇2:IOS常用设计模式――委托模式(IOS开发)
2.在IOS开发中,如果很多模块都要使用同一个变量,此时如果把该变量放入单例类,则所有访问该变量的调用变得很容易,否则,只能通过一个模块传递给另外一个模块,这样增加了风险和复杂度
非ARC环境创建单例模式的基本步骤
1.声明一个单例对象的静态实例,并初始化为nil
2.声明一个类的工厂方法,生成一个该类的实例,并且只会生成一个
3.覆盖allcoWithZone方法,确保用户在alloc 时,不会产生一个多余的对象
4.实现NSCopying协议,覆盖release,autorelease,retain,retainCount方法,以确保只有一个实例化对象
5.在多线程的环境中,注意使用@synchronized关键字
非ARC环境具体代码实现
#import
ARC环境创建单例模式的基本步骤
+ (instantClass *)sharedClient {static instantClass *_sharedClient = nil;static dispatch_once_t onceToken;dispatch_once(&onceToken, ^{_sharedClient = [[instantClass alloc] init];});return _sharedClient;}
该方法有很多优势:
1 线程安全
2 很好满足静态分析器要求
3 和自动引用计数(ARC)兼容
篇3:IOS常用设计模式――委托模式(IOS开发)
关键词:APP,交互设计,UI设计,程序开发,性能测试
服装品牌APP开发分为市场调查及需求分析、交互设计、UI设计、程序开发、可用性能测试和发布六个步骤。不同服装品牌开发设计根据品牌具体情况进行APP开发。
一、市场调查及需求分析
在制作一款服装品牌APP之前,首先要对该服装品牌进行市场调查,明确品牌定位和营销需求,及该服装品牌开发APP的目的。根据前期调查所获数据,结合该服装品牌多种网络平台的设计是否符合产品定位和品牌风格、产品图片及导航位置是否清晰合理、店铺是否建设的足够成熟、产品线是否每期都有特定主题、所有插画和服装产品是否都围绕该主题展开等因素,最后确定服装品牌APP的整体视觉风格是否沿用网站的设计风格。
内容方面,在现有的电子商务基础上,加入一些附加内容,使用户除了购买需求外,也有其他功能或活动吸引用户使用该服装品牌APP。
二、交互设计
交互,也称为互动,指用户在使用设备时所进行的操作以及设备对其操作所进行的反馈。交互设计的目的是设计出合理的、易于使用的、符合用户需求和预期的产品,它决定着整个服装品牌APP的模块分布和使用逻辑。通常,在服装品牌APP的开发中,交互设计所扮演的角色是制作交互原型,通过可视化的逻辑整理,规划每个模块的位置,以及不同模块之间的关联方式、页面与页面之间的逻辑联系等,通过构建服装品牌APP的交互框架,明确整个服装品牌APP的信息构架。
交互设计的开发步骤为:1.制作低保真原型,用草图的形式确定产品大框架;2.使用低保真原型与项目相关人员讨论,确认产品方向框架;3.根据讨论意见进行修改,再次确认;4.在确认的低保真原型基础上细化原型,完成高保真原型,此过程可基于Axure RP原型工具来搭建服装品牌APP的交互原型;5.使用高保真原型演示产品细节规划及功能需求,与相关人员讨论确认;6.对交互原型及设计细节进行说明,方便后期的开发和UI界面设计。
三、UI设计
UI是指用户界面(User Interface),UI设计是在交互设计完成的基础上,根据交互原型、操作逻辑进行用户界面的美化设计。用户在使用服装品牌APP过程中,首先感知到的就是整个界面的设计风格,一个美观易用的品牌UI设计能提升用户体验的愉悦感,从而增加用户对该服装品牌APP的好感度。UI设计的核心是对整个服装品牌APP的信息架构和使用逻辑进行包装和美化,是为交互框架“穿衣服”的过程,但这种美化是以交互为基础的,绝不能脱离了交互的框架随意发挥。
服装品牌的UI设计可顺应近年流行的扁平化界面设计,以色块和线条风格的图标为主,沿用该服装品牌淘宝店铺的设计风格,使整个品牌有统一的视觉识别系统。根据前期所设计的交互原型进行界面美化设计,使界面更符合品牌风格,更美观。
四、程序开发
开发IOS环境下的服装品牌APP所使用的工具是Xcode开发工具,该软件必须在MacOSX系统,即苹果公司的PC系统下运行。服装品牌APP开发使用Objective-C语言,在Xcode中可以使用Objective-C语言编辑代码、构建可执行的程序、对代码进行调试。通过代码的编写,可以实现前期交互设计和UI设计中所设计的页面构架及各种按钮的交互效果、页面之间的跳转效果。
五、可用性测试及发布
当前期的设计和程序制作完成后,可进入测试阶段,目前阶段所开发的程序只能在IOS模拟器上测试运行,但完成测试,必须使用真实设备模拟该服装品牌APP实际使用的环境。要在移动设备上进行测试,则需要申请开发者证书。该证书会将你的身份链接到注册时提供给Apple公司的有效联系人地址。开发者证书可以允许开发者在自己的设备上进行测试和调试应用,而向APP Store提交该服装品牌APP,并使用户能够去应用商店下载并使用该服装品牌APP则需要申请服装品牌APP的分发证书。
服装品牌APP测试周期一般为两周时间,可根据项目具体情况及开发程序的质量适当缩短或延长测试时间。
测试流程及具体内容:
(1)测试资源:测试任务开始前,检查各项测试资源:产品功能需求资料、产品原型图、产品效果图、用户行为统计分析资料、测试设备及其他资料。
(2)测试要点:
版本测试:程序开发应填写《APP测试版本提交质量规范》,接收版本时应注意测试版本规范,如不符合,则需重新修改规范报告然后再次提交测试。
UI测试:确认所接收的服装品牌APP原型图及效果图为已确认的最终版本,一切界面问题以效果图为准。
功能测试:首先确认所接收的功能需求文档为当前最新版本,根据该需求测试是否实现所有的预定功能并且运行逻辑正确。
版本兼容测试及性能测试:确保服装品牌APP在所有兼容机型上都能正常使用,若在技术上难以修改或者无法在短时间内改进,必须在测试报告中注明,并得到相关人员的确认。在性能测试时必须满足硬件压力条件下的测试需要。
用户行为统计测试:确认所接收的行为统计分析资料为已确认的正式版本,且与开发人员所持有的资料一致。尽可能真实地模拟用户行为,以便预估用户可能的行为操作,进行测试。
回归测试:软件最终上线前,需对产品进行回归测试,测试内容包含之前所有的测试项目。在回归测试确认通过后,即可对产品进行提交。
(3)最终提交:对所有版本的服装品牌APP程序安装包进行验证,确认完毕后即可将最终的产品安装包上传至应用商店等待上线审核。
六、小结
本文基于IOS平台,从市场调查及需求分析、交互设计、UI设计、程序开发、可用性能测试和发布六个部分对服装品牌APP的开发过程进行了探讨。按照服装品牌APP的设计流程,结合不同服装品牌的自身特点,可设计出符合各服装品牌的APP。
参考文献
[1]郑莉.界面交互设计与运用[J].华东师范大学,2010(3).
[2]赵大羽,关东升.交互设计的艺术—i OS7拟物化到扁平化革命[J].清华大学出版社,2014(2).
篇4:IOS常用设计模式――委托模式(IOS开发)
早在6月9日,苹果就在全球开发者大会上宣布将推出一款应用,帮助Android用户将资料迁移至iOS设备。毫无疑问,苹果此举意在抢夺三星、HTC等其他一系列Android手机的用户。无独有偶,当月底Apple Music正式登场时,苹果又宣布其将会在稍后时间推出Android版—大致是2015年秋季。素来高冷的苹果主动勾搭Android用户,很容易让人猜想是否因为Apple Music在iOS平台表现无法达到苹果预期,导致苹果需要抱Android大腿来救场。
8月,苹果发布招聘信息,声称“我们正在寻找能帮助我们将令人振奋的新移动产品引入Android平台的工程师。”此时,Apple Music的表现还非常强势,所以抢攻Android可能并非是苹果的临时策略,更像是一项长久计划。
面对苹果的逼人态势,Android平台的领头羊三星坐不住了,也在8月推出了一项名为“Ultimate Test Drive”(终极测试)的挖墙角服务。iPhone用户只需要1美元,就可以试用Galaxy Note 5或者Galaxy S6 Edge+一个月。在试用结束后,用户也可以选择不购买三星手机。三星希望通过这项活动,让iOS用户体验并爱上Android系统。有业内人士认为,三星此举会让iPhone用户更加坚定的停留在iOS阵营,因为iPhone用户很难放弃熟悉的iOS系统而转投Android阵营,更重要的是一个月试用期结束时正好赶上苹果最新旗舰iPhone 6s发布。
到了9月中旬,苹果招聘的Android工程师也交出了他们的成果—Move to iOS。它是iOS 9中的全新功能,Android用户可以利用这款应用快速将数据转移到iPhone当中,而不必像以前那样单独移动。可移动的数据不仅包括信息、联系人、邮件以及日历等,就连壁纸、歌曲、照片以及拍摄到的视频等内容也可以转移。Move to iOS还尝试确定哪些Android应用在苹果App Store应用商店中有相对应的应用,并自动下载其中的免费应用,付费应用则会被添加到iTunes愿望清单上。
Move to iOS的描述表示,“只需要几个步骤,你就可以将你的Android设备的内容安全地迁移到iOS设备。没有必要在离开Android设备之前在其他地方备份你的东西,Move to iOS应用可以安全地传输所有类型的个人数据。”在转移完成时,Move to iOS会提示“回收您的Android手机”—“您可以前往任何Apple Store免费回收这台Android手机”。
在手机领域,Android市场和苹果市场都有所防备和计较,如苹果商店不允许Android手机应用的上架,Android也在手机上屡次对苹果发起挑战,但这些年来总算是相安无事。Android手机转到苹果手机原本是用户的自由,但是在苹果或蓄意为之或无心之失后变了味道,苹果的这一次主动“进攻”,无疑让Android粉丝们这些年潜伏的矛盾瞬间爆发。
此次苹果的举动和措辞遍布“嘲讽”,最后的“免费”二字更是深深刺痛了Android拥趸的心。正所谓,是可忍孰不可忍,谷歌能忍,Android粉丝却忍不住了。作为回应,Android粉丝们很快推出了一款名为Stick with Android的应用。顾名思义,它的出现就是为了呼吁Android用户们坚守阵营的,并且远离“其他(更糟的)平台”。
幼稚斗气,低级拉人终非正途
Stick with Android上架后,很快就有5 400余人下载,其中共获得了5 265位用户的5星评分,比率高达97%。与之对应,目前Move to iOS已经累积了32 000余次的下载量,其中有25 800多个1星评分和5 500多个5星评分,分别占80.3%和17.2%,评论中也充斥着激动的Android粉丝们。从数据上来看,这两个应用可以说是直接反映了Android和iOS两大阵营间日积月累的恩怨已根深蒂固。
与iOS应用一贯的精致和完美相比,Move to iOS显得极为粗糙,并没有太多苹果真正实力的体现。这款应用伴随着高大上的iOS 9而来,只是iOS 9最终也未能挽救它那令人心碎的设计。Move to iOS安装的诸多条件限制和不可重复性,对需要安装这款应用的Android用户来说实在是太麻烦和太有挑战性了,一旦安装不成功,连再来一次的机会都没有。另外,“丑”也是不少用户反映的缺点之一。
究其原因,还是苹果在Android版的应用设计上不用心,毕竟苹果一直都不耻与谷歌的Android平台相提并论,在其应用商店上也明确表示:带有任何其他移动平台名称的应用或元数据将会被拒绝。这种行为的本身就是要显示自己的独特性,但是同时也将其他公司和某些潜在用户拒之门外。此次挖墙角的行为看来是低估了Android用户的忠诚度和大众对其傲慢行为的反感度,首次尝试终究以失败而告终。
小编观点
篇5:IOS常用设计模式――委托模式(IOS开发)
当一个类要使用某一个Protocol(协议)时,都必须要遵守协议。比如有些必要实现的方法,你没有去实现,那么编译器就会报警告,来提醒你没有遵守××协议。注意,我这里说的是警告,而不是错误。对的,就算你不实现那些“必要实现”的方法,程序也是能运行的,只不过多了些警告。
我会在本文的结尾放上此Demo的下载地址,有需要的话可以去下载,谢谢。
Protocol(协议)的作用:
一、定义一套公用的接口(Public)
@required:必须实现的方法
@optional:可选实现的方法(可以全部都不实现)
二、委托代理(Delegate)传值:
它本身是一个设计模式,它的意思是委托别人去做某事。
比如:两个类之间的传值,类A调用类B的方法,类B在执行过程中遇到问题通知类A,这时候我们需要用到代理(Delegate)。
又比如:控制器(Controller)与控制器(Controller)之间的传值,从C1跳转到C2,再从C2返回到C1时需要通知C1更新UI或者是做其它的事情,这时候我们就用到了代理(Delegate)传值。
一、定义一套公用的接口(Public)
ProtocolDelegate.h代码(协议不会生成.m文件):
#import
@protocol ProtocolDelegate
// 必须实现的方法
@required
- (void)error;
// 可选实现的方法
@optional
- (void)other;
- (void)other2;
- (void)other3;
@end
在需要使用到协议的类,import它的头文件:
#import “ViewController.h”
#import “ProtocolDelegate.h”
我这里选择的是入口文件
记得要遵守协议:
@interface ViewController ()
@end
这时会报一个警告,因为定义的协议里有一个是必须实现的方法,而我们没有去实现:
实现了必须实现的方法后,编译器就不会报警告了:
至于其它的可选方法,你可以选择实现,也可以全都不实现。
二、委托代理(Delegate)传值
下面放出主要类文件代码,我在里面写了注释,大家应该能看懂。不懂也没有关系,我会在本文结尾放上Demo下载地址。
ViewController.m文件:
#import “ViewController.h”
#import “ProtocolDelegate.h”
#import “ViewControllerB.h”
@interface ViewController ()
@end
@implementation ViewController
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
ViewControllerB *vc = segue.destinationViewController;
[vc setDelegate:self];
}
// 这里实现B控制器的协议方法
- (void)sendValue:(NSString *)value
{
UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@“成功” message:value delegate:nil cancelButtonTitle:@“确定” otherButtonTitles:nil, nil];
[alertView show];
}
- (void)error
{
}
@end
ViewControllerB.h文件:
#import
// 新建一个协议,协议的名字一般是由“类名+Delegate”
@protocol ViewControllerBDelegate
// 代理传值方法
- (void)sendValue:(NSString *)value;
@end
@interface ViewControllerB : UIViewController
// 委托代理人,代理一般需使用弱引用(weak)
@property (weak, nonatomic) id
@end
ViewControllerB.m文件:
#import “ViewControllerB.h”
@interface ViewControllerB ()
@property (strong, nonatomic) IBOutlet UITextField *textField;
@end
@implementation ViewControllerB
- (IBAction)backAction:(id)sender
{
if ([_delegate respondsToSelector:@selector(sendValue:)]) { // 如果协议响应了sendValue:方法
[_delegate sendValue:_textField.text]; // 通知执行协议方法
}
[self.navigationController popViewControllerAnimated:YES];
}
@end
小结:
当你需要定义一套公用的接口,实现方法可以是不同的时候,你可以使用Protocol协议,
当你需要进行类与类之间的传值时,你也可以基于Protocol协议,使用代理设计模式进行传值。
本文作者:GarveyCalvin
篇6:IOS常用设计模式――委托模式(IOS开发)
直接上代码如下:
WHC_MenuCell.h 头文件如下:
//// WHC_MenuCell.m// WHC_MenuCell//// Created by 吴海超 on 15/4/3.// Copyright (c) Sinosun Technology Co., Ltd. All rights reserved.//#import@class WHC_MenuCell;@protocol WHC_MenuCellDelegate- (BOOL)WHC_MenuCell:(WHC_MenuCell*)whcCell didPullCell:(NSInteger)index;//拉动tableView的回调@end@interface WHC_MenuCell : UITableViewCell@property (nonatomic,assign) CGFloat menuViewWidth; //菜单总宽度@property (nonatomic,retain) NSArray * menuItemTitles; //每个菜单的标题@property (nonatomic,retain) NSArray * menuItemTitleColors; //每个菜单的文字颜色@property (nonatomic,retain) NSArray * menuItemBackImages; //每个菜单的背景图片@property (nonatomic,retain) NSArray * menuItemNormalImages; //每个菜单正常的图片@property (nonatomic,retain) NSArray * menuItemSelectedImages; //每个菜单选中的图片@property (nonatomic,retain) NSArray * menuItemBackColors; //每个菜单的背景颜色@property (nonatomic,retain) NSArray * menuItemWidths; //每个菜单的宽度@property (nonatomic,strong) UIView * ContentView;//自定义内容view@property (nonatomic,assign) CGFloat fontSize; //字体大小@property (nonatomic,assign) NSInteger index;//cell下标@property (nonatomic,assign) iddelegate; //cell代理//单击菜单项- (void)clickMenuItem:(UIButton*)sender;//关闭菜单- (BOOL)closeCellWithAnimation:(BOOL)b;//关闭批量菜单- (BOOL)closeCellWithTableView:(UITableView*)tableView index:(NSInteger)index animation:(BOOL)b;//开始或者正在拉开菜单- (void)startScrollviewCell:(BOOL)state x:(CGFloat)moveX;//结束拉开菜单- (void)didEndScrollViewCell:(BOOL)state;@end
WHC_MenuCell.m源文件如下:
篇7:iOS开发、设计面试题
你昨天/这周学习了什么?
你为什么热衷于软件开发?
你对哪一种控制系统比较熟悉?
是否参与过GitHub项目?
是否参与过GitHub或其他同类型网站的iOS开源项目?
请描述一下你的iOS应用开发流程。
是否熟知CocoaPods?它是什么?如何运行的?
请概括一下你对软件授权的理解,及其对软件开发的影响。
请概括一下你在构建iOS应用时的测试过程。iOS应用如何实现对其他语言、日期格式以及货币单位的支持?
请描述一下Instruments及其作用。
关于iOS技术
请解释一下Handoff是什么,并简述它是如何实现iOS、Mac/网页应用互通的。
iCloud包含了哪些技术与服务?
iOS扩展是指?能否列举一些热门或常见的范例?
HealthKit是什么?
HomeKit是什么?
Apple Pay是什么?能否描述一下如何在应用中使用Apple Pay?
请解释一下iOS应用沙盒机制。
VoiceOver是什么?请举例解释一下iOS中的辅助功能(Accessibility)。开发者如何使用这些功能?
iOS应用是如何实现后台多任务处理(Multitasking)的?
Game Center针对iOS游戏有哪些功能?
iBeacons是什么?
Cocoa/Cocoa Touch是什么?
请概括一下Core Audio,Core Data以及Core Location各是什么。它们对iOS应用有何意义?
请描述SpriteKit和SceneKit的作用。
Metal是什么?
响应链(Responder Chain)是什么?它是如何发挥作用的?
按钮和其他控制方式对哪些操作做出回应?
AppDelegate扮演着什么样的角色?
请解释一下NSUserDefaults。就你而言,你会如何在磁盘中对数组对象进行序列化?
你会如何储存用户的认证信息?
请问何为Keychain服务?
篇8:IOS常用设计模式――委托模式(IOS开发)
异常状态/事件/良好实践的报告。
根据分级分类原则对报告的筛选。
事件调查。
原因分析, 包括直接原因分析和根本原因分析。
纠正行动管理, 含纠正行动的批准、实施、跟踪和评估。
异常状态/事件的趋势分析。
工程经验反馈信息的存储、检索。
工程经验反馈的培训、交流及推广。
工程经验反馈管理体系运行的评价及考核。
为有效保证上述活动的实施和管理, 经验反馈信息化系统必不可少, 其中应包括经验反馈信息的发起、导入、查询、分析、检索、跟踪等基本功能。
在国内某核电项目的建设实践中, 已采用JSP、Windows Server 2003和Oracle等开发工具和平台建立了浏览器/服务器 (Browser/Server) 模式上的经验反馈管理系统和数据库, 并通过其运行, 结合项目实践, 收集到相当数量有关设计、采购、施工、调试等领域的经验反馈信息, 随着当前移动互联网的快速发展以及移动智能化终端的普及, 为进一步将经验反馈信息应用从办公室中的PC端延伸并拓展至现场的移动端, 基于现有主流移动应用平台开发工具设计经验反馈信息应用不失为明智的选择, 与传统的应用环境相比, 不难看出, 面向移动应用领域的经验反馈信息系统具有如下主要优点:
在现场复杂的施工环境中, 工程技术人员发起、检索、使用工程经验反馈信息更加便捷。
现有智能终端能很轻易地实现即时拍照、录音、摄像等功能, 可以丰富异常状态/事件/良好实践的报告内容。
只需要很少的升级成本就能通过现有智能终端 (如手机) 、无线网络成熟的应用环境实现上述管理活动中的流程性和表单性内容。
1总体功能设计
根据引言中所写到经验反馈的主要管理内容, 经分析, 系统的总体功能示意如图1所示。
主要包含如下方面:
经验反馈工程师信息的管理, 用户角色及权限的管理、资料的上传/下载、信息发布专栏的设计、专题信息的发布流程和功能等。
经验反馈状态报告、反馈任务管理等流程, 配套的数据库及其管理系统, 以及数据查询、浏览和统计、相关报告报表模块的实现等。
经验反馈指标管理或考核功能、趋势分析、数据 (案例) 的相似度指标设计及相似匹配功能等。
其中作为核心流程的状态报告管理流程如图2所示。
2开发平台和开发技术简介
i OS作为目前移动应用领域的主流操作系统, 是苹果公司专门提供给开发者开发基于iphone、i Pod touch和i Pad等移动终端使用的, 上述终端在运行本地应用程序所需的操作系统和运行环境均包含在i OS中。
iOS的系统架构分为4个层次:可轻触层 (Cocoa Touch layer) 、媒体层 (Media layer) 、核心服务层 (Core Services layer) 、核心操作系统层 (Core OS layer) 。其中下层为上层提供基础的调用服务, 同时高层提供更复杂的、和应用直接相关的服务, 这些服务也依赖于对底层服务的调用, 如图3所示。
在基于iOS的应用程序开发中, 通常采用模型-视图-控制器 (MVC) 模式作为指导原则, 开发平台选用i Phone SDK。MVC是一种程序设计模式, 它把应用程序的输入、处理和输出分为3个核心类别:模型、视图、控制器, 这3个类别各自有其不同的任务, 可以灵活方便地进行分工协作, 提高了开发效率, 增强系统的可维护性和扩展性, 同时也可以降低部件之间的耦合度。iPhone SDK是i OS应用程序开发的软件开发工具包, 其包含一系列的组件, 最重要的是集成开发环境工具xcode。通过这种开发工具和环境可以简单方便的开发各种i Phone应用程序来满足用户体验, 还可以利用工具中自带的调试工具和i Phone仿真器对开发的程序进行验证, 进而对设计思路进行分析和总结。
3应用 (APP) 的开发设计
根据运行载体的区别, 应用可分为两部分进行设计实现:一部分是UI展示及用户信息的收集, 呈现在客户端;另一部分是服务器端, 负责对数据进行处理, 其基本架构如图4所示。
下面分别进行简要说明。
3.1客户端设计
客户端通过采用x Code中的UIKitk框架来提供一系列的Class (类) 来建立和管理i OS应用程序的用户界面接口、应用程序对象、事件控制、绘图模型、窗口、视图和用于控制触摸屏等的接口。主要程序采用Objective-C进行编写, 设计的主要菜单示意如图5所示。
3.2服务器端的开发设计
服务器的主要功能是提供数据交互, 使用户提交的信息及时进入系统处理流程, 并反馈相关信息和任务给相应用户。系统基于Tomcat 6.0提供Web服务, 利用JSP编译动态页面, 采用JSON (Java Script Object Notation) 作为数据交换格式, 具有面向对象的特点, 易于阅读和编写, 同时也易于机器解析和生成, 设计的主要菜单如图6所示。
4结语
随着近些年移动应用的迅猛发展, 移动信息化已经变得越来越触手可及。核电建设本身具有严谨、规范、细致的特点, 其经验反馈管理信息化的提升也必然无法忽略移动应用所带来的推动作用, 后者将进一步延伸在核电工程建设领域的深度和广度。
基于上述背景, 本文从核电经验反馈信息化系统的总体设计入手, 基于现在主流的i OS移动应用平台开发工具和技术, 研究和设计了主要模块和相关功能, 通过进一步对该应用的研究和开发, 可以向信息实施部门提出更科学, 便于实施的业务要求, 以升级现有信息化手段, 优化经验反馈流程, 提升核电企业工程建设管理水平。
摘要:以智能终端为主要载体的移动互联网技术迅速发展, 进一步推动了企业管理的信息化实现和升级。文章针对核电工程建设经验反馈领域的主要管理活动和流程, 研究了基于i OS移动平台技术的信息应用设计与开发, 为核电工程建设领域多项目经验反馈管理活动的实施提供了新的思路和手段。
关键词:移动应用,iOS,智能终端,经验反馈
参考文献
[1]刘鹏, 庞小平, 艾松涛, 等.基于Android和i OS的极地移动信息平台设计与开发[J].极地研究, 2015 (1) :97-103.
[2]沈璇.基于i OS系统的移动图书馆客户端的设计构想[J].图书馆研究, 2015 (1) :23-26
[3]周建亮, 朱晓民.基于i OS平台智能点餐系统的设计与实现[J].软件, 2015 (36) :131-134.
[4]赵杏杏, 张晓祥.移动水利信息APP模块的设计与实现[J].测绘工程, 2014 (7) :46-50.
[5]杨宏焱.企业级i OS应用开发实战[M].北京:机械工业出版社, 2013.