系统集成项目经理继续教育课程10笔记整理.docx
- 文档编号:17087096
- 上传时间:2023-07-21
- 格式:DOCX
- 页数:61
- 大小:2.35MB
系统集成项目经理继续教育课程10笔记整理.docx
《系统集成项目经理继续教育课程10笔记整理.docx》由会员分享,可在线阅读,更多相关《系统集成项目经理继续教育课程10笔记整理.docx(61页珍藏版)》请在冰点文库上搜索。
系统集成项目经理继续教育课程10笔记整理
第一节:
原型驱动的iOS应用设计
移动应用设计的核心内容:
用户需求(最重要):
产品定位市场分析
用户体验(比较重要):
用户研究体验设计
交互设计(相对重要):
人机交互操作逻辑
用户界面:
导航方式界面设计
以用户为中心的设计(UCD):
围绕用户进行设计,而不是让用户去适应产品
符合用户的思维和语言惯性;
产品的易学程度;
对用户的吸引程度;
用户在体验产品前后的整体心理感受。
做有价值的应用:
对用户的细分
功能定位:
IOS平台的人机界面指南中归纳的应用设计的定位方法
四个方向:
娱乐有趣重要工具,中心为实用,离得越远,就越纯粹,功能竞争性就越强,不要做大而全
市场分析苹果平台为例
用户研究:
用户调查(问卷调查,现场调查)——用户测试(可用性测试)
原型驱动的用户体验设计及用户界面设计
应用产品设计流程(UE&UI):
用户分析——产品创意——原型草图——平面原型(控件、图形元素)——交互原型(导航、布局)——用户测试
举例:
头脑风暴,产生思维导图图像化把灵感和思考结果画为草图
制作原型:
平面原型使用photoshop交互原型使用AxureRP最重要使用Xcode可测试
用户的可用性测试:
个性化设计——启动图标(图标设计、启动画面、引导帮助)——交付编程
移动产品的交互特点
移动应用三大平台iOS,Android,WindowsPhone(没有文字仅听到读音)
交互——人和设备之间的对话(仅有语音)
了解移动设备:
种类——规格——使用方法
种类:
手机、平板电脑。
规格:
IOS平台移动设备的像素尺寸,以IPHONE为例,像素逐步升高,眼睛看不到最小像素。
手的握感也是重要。
Android,WindowsPhone平台的诸多移动设备
移动设备的使用方法:
移动设备的三种按键形式:
物理按键、触摸按键、虚拟按键。
(触摸按键在屏幕以外)物理按键,例如侧面开关键、音量大小。
IOS主界面上进行交互的最重要按键home键,返回键,IOS平台浏览后台挂起和最近打开的应用程序(双击home)
移动设备的人体工程学特点:
与移动设备相关的人体器官:
手指——眼睛
手指:
先从大拇指开始,移动设备的单手操作,注意在屏幕中舒适度的热区。
以photopod&USAToday为例,毁灭性按键(如清除)放在热度最低蓝色区域。
左撇子怎么办?
以WordCrasher&ESPNScoreCenter为例,左右手完全平衡。
移动设备的双手操作,以SBSWorldNews&设置为例
关于手势:
点击长点拖拽双击撑捏
OSI平台基于手指尺寸的界面设计规律7毫米44
眼睛:
应用的界面在运动中的视觉测试。
视觉的运动轨迹眼动热度图
优化视觉结构:
1对数字进行分割
2“识别并选择”比“回忆并输入”要容易
3迎合人们的视觉惯性
4使用图像而不是文字来描绘信息
5使用黄金分割和“井”字形分割iPHONE5的屏幕像素尺寸是1136*640
产品目标与功能定位:
是移动产品,不是电脑软件
移动设备的缺陷:
屏幕尺寸限制输入速度限制硬件高度集成
移动设备的优势:
移动(随机便捷不受环境和空间的约束)好的应用在移动中使用
对PC应用的移植(摈弃掉不适合在移动产品上使用的功能强化适合单手操作或者简单的双手操作的功能不必把PC软件中所有的功能都做出来)。
别让它“大而全”例如QUICKOFFICE。
外表华丽还是功能强大?
华丽的视觉效果并不适合你的移动应用:
本末倒置浪费空间成本上升。
举例:
收音机闹钟&IOS系统闹钟,功能是强大了,应用的体验却降低了(更长时间的等待更加耐心的查找和选择更加细心的操作)
它只是成千上万的OSI应用中的一个:
开放与包容专注与深入独一无二充满个性
是前无古人还是出类拔萃前无古人:
发明全新的工作原理或是交流理念掌握无法模仿的高科技技术或专利成果量身打造贴心的应用
如何才能独树一帜“我们有时候可以像思考人类一样去思考应用”设计师JoshClark
IOS应用开发最佳实践关东升
第一课IOS基础一
IOS介绍多点触摸和手势统一的屏幕尺寸高分辨率重力加速计指南针蓝牙和WiFi连接
ISO7新特性:
UI设计风格发生巨大的变化,苹果放弃了以前的拟物化设计,转而采用扁平化设计
视图动力学行为。
它能够使界面中的元素,像真实地物理世界运动起来,给用户逼真的视觉效果。
有点象游戏中的物理引擎。
TextKit。
它能够管理视图中文字和排版。
可以定义为段落、列和页中的文字定义不同的风格。
64位支持。
它能够将应用编译成为支持64设备运行的代码。
这些设备有:
iPHONE5S、iPadmini2、iPadAir.
多任务的增强。
在IOS7中后台多任务新增加了两种模型:
提取模式(etch)和远程通知模式(remote-notification)。
SpriteKit游戏框架。
SpriteKit是苹果推出游戏2D游戏引擎,它意味着苹果要进入这一市场,SpriteKit平的实用有点类似于Cocos2d-iphone游戏引擎。
地图增强。
苹果放弃了以前实用的谷歌地图,转而使用苹果自己的地图。
MapKit框架本身没有变化,只是地图内容不再是谷歌地图。
AirDrop。
能够与周围的设备进行通信,共享照片、文档、URL和少量数据。
应用间音频(Inter-AppAudio)。
应用间音频可以实现支持程序间的音频访问,即在同一台设备上不同的两个程序之间发送MIDI命令和音频流。
XcodeiOS三个模:
Application类型、Framework&Library类型、其他类型
Application类型:
Master-DetailApplication:
可以构建树形结构导航模式应用,
生成的代码中包含了导航控制器和表视图控制器等;
OpenGLGame:
可以构建基于OpenGLES的游戏应用;
Page-BasedApplication:
可以构建类似于电子书效果的应用,这是一种平铺导航;
SingleViewApplication:
可以构建简单的单个视图应用。
TabbedApplication:
可以构建标签导航模式的应用,
生成的代码中包含了标签控制器和标签栏等;
UtilityApplication:
可以构建实用型应用程序,
它会生成两个视图控制器-主视图控制器和子视图控制器,
在iphone中子视图控制器以模态方式呈现,
在iPad中子视图以浮动窗口(popover)的形式呈现。
EmptyApplication:
可以构建一个空应用程序,需要我们自己添加视图等对象。
该模板很少使用。
SpriteKitGame:
它是苹果自己的2D游戏引擎,可以帮助我们基于IOS的2D游戏。
应用剖析类图:
时序图
main函数
AppDelegate类
HelloWorld工程中故事板文件Main.storyboad
故事板的导航特点:
设计原型草图故事板设计视图故事板中的Scene和Segue
第二课IOS基础二
应用生命周期:
进入应用程序:
不可运行状态(Norunning)——非活动状态inactive——活动状态Active
退出应用程序:
(接上述状态)——后台背景(background)——挂起(suspended)
AppDelegate方法和本地通知
非运行状态——应用启动场景
点击home键——应用退出场景
*应用可以在后台运行或者挂起
*不可以在后台运行或挂起
挂起重新运行场景
内存清除——应用终止场景:
(Background)——(Suspended)——(Notrunning)
视图生命周期:
视图生命周期与视图控制器关系:
IOSUI状态保持和恢复:
应用程序委托对象视图控制器自定义视图
UI状态保持和恢复实例:
RestorationID恢复标识图
应用程序委托对象图
视图控制器图
设置产品属性:
Xcode中Project和Target图
设置常用的产品属性:
设定屏幕方向设置设备支持情况
IOSAPI的介绍:
IOS整体架构图CocoaTouch——Media——CoreServices——CoreOS
CocoaTouc层:
*AddressBookUI*EventKitUI*GameKit*iAd
*MapKit*MessageUI*Twitter*UIKit
Media层
*AssetsLibrary*AudioToolbox*AudioUnit*AVFoundation
*CoreAudio*CoreGraphics*CoreText*CoreVideo
*ImageI/O*GLKit*MediaPlayer*OpenAL
*OpenGLES*QuartsCore*SpriteKit*CoreImage*CoreMIDI
CoreServices层
*Accounts*AddressBook*AdSupport*CFNetwork*CoreData
*CoreFoundation*CoreLocation*SystemConfigaration*EventKit
*Foundation*MobileCoreServices*NewsstandKit*PassKit*QuickLook
*Social*StoreKit*JavaScriptCoreframework*CoreTelephony
*CoreMedia*CoreMotion
CoreOS层:
*Accelerate*CoreBluetooth*ExternalAccessory
*GenericSecurityServices*Security
如何使用API帮助:
Xcode快捷帮助检查器Xcode帮助窗口官方案例
IOS应用开发最佳实践
第一节IOS常用设计模式
单例模式
问题提出:
在一个IOS应用的生命周期中,有时候我们只需要某个类的一个实例。
例如,当应用程序启动时,应用的状态由UIApplication类的一个实例维护,这个实例代表了整个“应用程序对象”,它只能是一个实例,其作用是实现应用程序中一些共享资源的访问和状态的保持等。
实现原理:
(Singleton属性:
staticuniqueInstance操作:
+(Singleton*)sharedInstance)
应用案例UIApplicationUIAccelerometerNSUserDefaultsNSNotificationCenterNSFileManagerNSBundle
UIApplication类
委托模式
委托模式从GoF装饰模式(Decorator)、适配器(Adapter)模式和模板方法(TemplateMethod)模式等演变而来。
几乎每一个应用都会或多或少地用到委托模式。
不只是CocoaTouch框架,在Cocoa框架中,委托模式也得到了广泛的应用。
问题提出应用非运行状态启动场景流程图上帝UIApplication类“点击图标”——“Notrunning”——“创建实例”——“inactive”——“Active”
去上帝化的HelloWorld应用类
实现原理:
通用类(或框架类)→委托协议←委托对象
哲学家的故事:
在古希腊,有一个哲学家,他毕生只做三件事情:
“睡觉”、“吃饭”和“工作”。
为了更好的生活,提高工作效率,他会找一个徒弟,把这些事情委托给徒弟做。
然而要成为他的徒弟,需要实现一个协议,协议要求能够处理“睡觉”、“吃饭”和“工作”的问题。
应用案例:
UITextFieldDelegateUITextFieldDelegate是控件UITextField的委托,空间的委托主要负责响应控件事件或控制其他对象。
除了UITextField,WebView和UITableView等控件也有相应的委托对象。
、
委托消息命名有一定的约定性:
should后缀消息时,应该返回一个布尔值,这个返回只用于确定委托是否会相应消息。
如:
textFieldShouldBeginEduting;will后缀消息时,没有返回值,表示改变前要做的事情。
did后缀消息时,也没有返回值,表示改变之后要做的事情。
如:
textFieldDidBeginEditing.
观察者模式
*观察者(Observer)模式:
也叫发布/订阅(Publish/Subscribe)模式,
是MVC(模型-视图-控制器)模式的重要组成部分。
*在软件系统中,一个对象状态改变也会连带影响其他很多对象的状态发生改变。
能够实现这一需求的设计方案有很多,但能够做到复用性强且对象之间匿名通信的,观察者模式是其中最为适合的一个。
*抽象主题(Subject):
在Objective-C中,抽象主题是一个协议,它是一个观察者集合容器,定义了添加观察者(attach)方法、移除观察者(detach)方法和为所有观察者发送通知的方法(notifyObserver).
*抽象观察者(Observer):
在Objective–C中,抽象观察者有一个协议,它是一个更新(update)方法。
*具体观察者(ConcreteObserver):
Observer协议的具体实现。
*具体主题(ConcreteSubject):
Subject协议的具体实现.
通知机制在CocoaTouch框架中,观察者模式的具体应用有两个-通知(notification)机制和KVO(Key-ValueObserving)机制。
通知机制实例:
处理通知方法:
解除注册代码:
-(void)dealloc
{
[[NSNotificationCenterdefaultCenter]
removeObserver:
self];
}
投送通知方法
IOS系统自动投送
其他的系统通知:
*UITextFieldTextDidBeginEditingNotification
*UITextFieldTextDidChangeNotification
*UITextFieldTextDidEndEditingNotification
MVC模式
MVC概述
CocoaTouch中的MVC模式
第四节UIView与控件
(一)
视图“始祖”——UIView家族
UIControl类非UIControl类
应用界面的构建层次三个控件buttonlabelview2
视图分类:
控件窗口容器视图显示视图文本和Web视图导航视表警告框和操作表
标签控件和按钮控件
标签控件:
按钮控件*按钮的Type属性*按钮的StateConfig属性*高亮状态的设置
动作和输出口动作:
动作是为了响应一个控件的实践而定义的方法,返回值类型使用关键字IBAction声明的方法。
-(IBAction)onClick:
(id)sender或-(IBAction)onClick
sender是参数,是事件源,是发出事件的控件对象,可以省略。
输出口:
为了能访问控件,我们需要为其定义输出口,关键字为IBOutlet。
输出口可以在声明控件变量的时候声明,也可以在定义控件属性的时候声明。
@interfaceViewController:
UIViewController{
IBOutletUILabel*label;—在声明控件变量的时候声明输出口的代码
}
@property(weak,nonatomic)IBOutletUILabel*Label;
TextField控件和TextView控件举例:
打开文本框TextField,跳出键盘TextView无法关闭
TextField:
UITextFieldUITextFieldDelegate
键盘的打开和关闭*“第一响应者”是响应者链中的第一个,不同的控件成为“第一响应者”之后的“表现”不太一致*TextField和TextView等输入类型的控件会出现键盘,而我们只有让这些控件放弃他们的第一响应者身份,键盘才会关闭。
*需要调用UIResponder类中的resignFirstResponder方法。
关闭和打开键盘的通知:
*UIKeyboardDidHideNotification
*UIKeyboardDidShowNotification
键盘的种类键盘类型选择Keyboard选择:
default\ASC2Capable\NumbersandPuactutio\URL等等
Return键的选择Default\GO\Google\join\Next\Route\Search\Send\Yahoo\Done等等
开关控件:
功能类似于Windows中的复选框,它只有两种状态:
TRUE(或YES)和FALSE(或NO),两种状态的切换方法是setOn:
animated
滑块控件:
在iOS开发中滑块的值是0.0f-1.0f之间浮点数据,值的设定方法如下:
分段控件:
分段控件样式:
Plain&Bordered样式(黑白切换)和Bar样式
网页控件VEBView
本地资源的加载采用同步方式*loadHTMLString:
baseURL:
设定主页文件基本路径,通过一个HTML字符串加载主页数据*loadData:
MIMEType:
textEncodingName:
baseURL:
指定MIME类型、编码集和NSData对象加载一个主页数据,并设定主页文件基本路径。
异步加载网络资源使用的方法是loadRequest:
(NSURLRequest*)request,该方法要求提供一个NSURLRequest对象,该对象在构建的时候必须严格遵守某种协议格式,例如:
HTTP协议
file:
//localhost/Users/tonyguan/.../index.html,文件传输协议
UIWebViewDelegate协议
第五节UIView与控件
(二)
等待相关的控件与进度条:
活动指示器ActivityIndicatorView进度条ProgressView
警告框和操作表:
警告框AlertView警告框的使用场景:
*应用不能继续运行。
例如,无法获得网络数据或者功能不能完成的时候,给用户一个警告,这种警告框只需一个按钮。
*询问另外的解决方案。
好多应用在不能继续运行时,会给出另外的解决方案,让用户去选择,例如WiFi网络无法连接时,是否可以使用3G网络呢?
*询问对操作的授权。
当应用访问用户的一些隐私信息时,需要用户授权,例如用户当前的位置、通讯录或日常表等。
操作表ActionSheet:
表中包括红色的“破坏性按钮”,facebook等。
另:
iPhone比iPad多一个“取消”按钮
设定操作表的样式:
*UIActionSheetStyleAutomati—自动样式;
*UIActionSheetStyleDefault—默认样式;
*UIActionSheetStyleBlackTranslucent—半透明样式
*UIActionSheetStyleBlackOpaque—透明样式
工具栏和导航栏
工具栏:
工具栏类为UIToolbar。
在iPhone中,工具栏位于屏幕底部,其中的按钮数不能超过5个,如果超过5个,则第5个按钮(即最后一个)则是“更多”。
在iPad中,工具栏位于屏幕顶部,对于按钮的数量没有限制。
工具栏中,按钮之间有“可变空格”和“固定空格”
导航栏:
导航栏相关类和概念:
*UINavigationController-导航控制器,可以构建树形导航模式应用的根控制器;
*UINavigationBar-导航栏,它与导航控制器是一对一的关系。
它管理一个视图堆栈,用来显示树形结构中的视图;
*UINavigationItem-导航栏项目,在每个界面中都会看到。
它分为左、中、右三个区域;
*UIBarButtonItem-与工具栏中的按钮一样,它是导航栏中的左右按钮
第六节表视图
(一)
表视图概述:
表视图的组成-“列表”表头、表脚、单元格、节、节头、节脚
例如“加载中”通常出现在表头节将一个表分成几部分
表视图的相关类:
表视图分类:
普通表视图分组表视图索引表视图选择表视图搜索栏表视图分页表视图
单元格的组成和样式
UITableViewCellAccessoryType中定义常量:
UITableViewCellStyle中定义四种常量:
*UITableViewCellStyleDefault*UITableViewCellStyleSubtitle*UITableViewCellStyleValue1*UITableViewCellStyleValue2
数据源协议与委托协议:
*UITableViewDataSource*UITableViewDelegate
简单表视图
简单表视图的时序图
重用单元格,防止产生新的对象。
dequeueReusableCellWithIdentifier:
CellIdentifier
属性列表文件team.plist
第七节表视图
(二)此节主要是放教学录像,可记录东西很少
实现UITableViewDataSource协议方法
自定义单元格
设定TableView属性*设计表视图单元格*创建自定义单元格类CustomCell*选择CustomCell类*输出口连线
修改视图控制器ViewController.m
添加搜索栏基本搜索栏里面灰色的Search文字用于提示用户输入查询关键字,搜索栏的Placeholder属性可以设置这个提示信息,在TextFleld控件中也用到这属性。
带有清除按钮的搜索栏在输入框中键入文字时,会在后面出现灰色清除按钮,点击清除按钮可以清除输入框中的文字
第八节表视图(三)
带有查询结果按钮的搜索栏:
显示最近搜索结果,选中Options属性下的ShowSearchResultsButton复选框,事件响应由UISearchBarDelegate对象中searchBarResultsListButtonClicked:
方法管理
带有书签按钮的搜索栏:
显示用户收藏的书签列表,选中Options属性下的ShowBookmarksButton复选框,事件响应由UISearchBarDelegate对象中searchBarBookmarkButtonClicked:
方法管理
带有取消按钮的搜索栏:
选中Options属性下的ShowCancelButton复选框,事件响应由UISearchBarDelegate对象中searchBaCancelButtonClicked:
方法管理
带有Scope的搜索栏:
选中Options下的Sho
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 系统集成 项目经理 继续教育 课程 10 笔记 整理
![提示](https://static.bingdoc.com/images/bang_tan.gif)