重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
1. 3D Touch
我们注重客户提出的每个要求,我们充分考虑每一个细节,我们积极的做好成都做网站、成都网站建设服务,我们努力开拓更好的视野,通过不懈的努力,创新互联建站赢得了业内的良好声誉,这一切,也不断的激励着我们更好的服务客户。 主要业务:网站建设,网站制作,网站设计,重庆小程序开发公司,网站开发,技术开发实力,DIV+CSS,PHP及ASP,ASP.Net,SQL数据库的技术开发工程师。
为触摸屏操作提供了另外一种维度。用户的学习成本比较低,只需要轻轻对屏幕用力,即可获得一个反馈。
3D touch的主要应用场景:
1). Home screen,用力按压App-action view
2). peek and pop, 3D touch 图片后可预览(peek),松开即可完全打开(pop)。设计peek时需要遵循的原则:
3). Live photos,用力按压live photo,照片就开始动
2. Accessibility, 易用性
兼顾障碍人士或者正常人在某些不方便的时刻的使用场景:增加字幕、语音播报、文字链背景按钮、增加对比度;
3. Audio , 略过。主要是符合人们的期望。注意静音状态(人们期待全局静音)、调节音量(人们期望除调整除了电话铃声之外的所有声音)、耳机插拔时的声音状态(拔耳机时,声音播放自动暂停)
4. Authentication,授权
Ask users to authenticate only in exchange for value。用户在授权操作后,必须得到点什么东西。
尽量推后用户注册的时间点:Give them a chance to fall in love with your app before making a commitment to it.
索要授权时,展示授权所能获得的好处。给用户提供注册入口。
需要输入信息时,展示对应的键盘结构(输入邮箱时,展示有@的键盘)
5. 数据输入 Data Entry
如果可能的话,尽量用选择代替输入;尽量从系统提供默认数据;提供合理的默认值选项;按钮在全部信息输入完之前变灰;动态校验输入是否正确;选择列表需要以某种合理的顺序排序;有必要的话,输入框中展示灰字进行提示。
6. 反馈,feedback
反馈让用户知道App正在做什么,自己之后能做什么,以及行动之后的后果,
尽量无打扰的将用户提醒信息整合在主界面上;
避免不当的使用弹窗警告(弹窗警告的力度过高)
触觉反馈。iOS内置的系统级的UI元素(选择器、切换,滑动栏)自带触觉反馈。你也可以在开发过程中让系统生成对应的触觉反馈。注意不要过度使用触觉反馈。只对人的主动行为适用触觉反馈,不要乱用;不要混用不同强度的触觉反馈,注意一致性;和视觉、声音反馈一起使用,不要只提供单一渠道的反馈(设置里是可以禁用声音反馈或者触觉反馈的);注意多个反馈渠道的同步性和反馈的及时性,避免用户感知断层。
7. File Handling:iOS的信条是,尽量忽略文件系统
确保文件总是会被自动保存的(删除和取消的时候除外):通常不需要人们去主动进行保存,在编辑的间隙(关闭app、切换出app,退出编辑状态等)进行自动保存。有一种例外情况就是编辑现有文件,在最后让用户进行确认,是否保存改动。
自动同步到云端;文件选择界面要直观、高效率。图形化界面通常会效率更高,为了提高浏览速度,最小化文件图标,并单独提供一个新建文件的按钮。内置文件预览模式(quick look,);提供选择其他App打开文件的功能。
8.First launch Experience(初次打开App的体验)
要求:fast, fun and educational
提供launch screen以供初始内容加载,launch screen要低调,和第一屏之间的切换过渡要自然。
注意App加载时,手机是被横着拿还是竖着拿的。
尽量让用户尽快上手使用App(dive in),不要过渡展示教程、选项等内容。如果一定要展示操作教程,提供skip选项以让不需要的用户快速跳过。
在用户有可能卡住的地方提供指南。请注意,虽然操作指南是必要的,但他是设计缺位造成的记过。App设计要简洁、直观,如果一个App里的用户指南太多,重新审视App的设计。
让学习操作app的过程fun and discoverable, learning by doing.使用动画,将要教给用户的内容使用交互式的方式循序渐进地告诉用户,并且要关联上下文。
如果App初次启动时需要用户输入额外信息,先给予默认值让App先启动,后续再让有需要的用户去App设置里更改。
重新切换到App时,保持上次离开时的状态。
不要强迫用户给你的App打分,不要问的太快或者太频繁。给用户形成对你的App印象的时间。
不鼓励任何让用户重新启动的行为。
9. 手势 Gestures
1.点击(Tap)
点击作为最常用手势,用于按下或选择一个控件或条目(类似于普通的鼠标点击)、
2.拖动(Drag)
拖动用于实现一些页面的滚动,以及对控件的移动功能。
3.滑动(Flick)
滑动用于实现页面的快速滚动和翻页的功能。
4.横扫(Swipe)
横扫手势用于激活列表项的快捷操作菜单
5.双击(Double Tap)
双击放大并居中显示图片,或恢复原大小(如果当前已经放大)。同时,双击能够激活针对文字编辑菜单。
6.放大(Pinch open)
放大手势可以实现以下功能:打开订阅源,打开文章的详情。在照片查看的时候,放大手势也可实现放大图片的功能。
7.缩小(Pinch close)
缩小手势,可以实现与放大手势相反且对应的功能的功能:关闭订阅源退出到首页,关闭文章退出至索引页。在照片查看的时候,缩小手势也可实现缩小图片的功能。
8.长按(Touch Hold)
在我的订阅页,长按订阅源将自动进入编辑模式,同时选中手指当前按下的订阅源。这时可直接拖动订阅源移动位置。
针对文字长按,将出现放大镜辅助功能。松开后,则出现编辑菜单。
针对图片长按,将出现编辑菜单。
9.摇晃(Shake)
摇晃手势,将出现撤销与重做菜单。主要是针对用户文本输入的。
尽量使用以上9种标准手势。不要修改标准手势所造成的效果。不要禁用系统级的手势(例如唤起控制中心)提供除了手势之外的补充方案(例如返回按钮)。某些App上,使用更多手势(游戏等比较复杂类型的App)
10. loading
当加载行为发生时,明确告诉用户;让加载画面尽量有趣;尽快展示内容。
11. Modality(模块化)
帮助人们聚焦在当前任务中,防止完成操作前去进行其他操作。地图中提醒打开定位功能的弹窗,编辑邮件的临时页面。
谨慎使用modality;提供明显并且安全的方式退出当前模块;模块里的内容不能过于复杂,Don’t create an app within your app.选择合适的modal样式,和主view切换要自然。
12. 导航
导航设计要很自然的支持App的结构,且不能刷存在感。
iOS有三种主要的导航结构:Hierarchical navigation(设置、邮件), flat navigation(music、App store), Content-driven or experience-driven navigation(game, books, immersive apps)
有些App是混用以上三种导航结构
13. 许可获取(Requesting Permission)
只有在App明确需要获得该权限的时候才询问获取权限,并且向用户剪短、明确地解释为什么需要该权限(Don't let people feel pressured.)
14. 设置,Settings
允许用户在初始状态下使用App,并提供setting供用户额外调整设置。
尽量向系统询问信息而不是像用户询问信息;优化设置的结构;提供到达深层设置的快捷入口。
15. Terminology, 术语
说人话,使用目标人群看得懂的文字和词。界面上的信息呈现要保持简洁、有效率。避免加入人称(our tutorial, my workourts)
偶尔使用缩略词。如果涉及到日期,尽量不要用今天、明天,告诉用户准确的时间。
16. Undo and Redo
如果用户通过shake出发undo, redo,弹窗提示用户。如果shake有这个功能,不要让shake再触发其他功能。
开发的相关术语。
1、不过到现在为止,Category这个名字看起来仍然让人摸不着头脑——Category的中文是分类和范畴的意思——即便这个动态机制很强大,跟分类有什么关系呢?
这是因为利用这个机制,程序员可以把一堆方法分门别类,分成若干组,每组方法用一个Category名字加以命名,定义在同一个文件里。这个就是为什么把这个机制叫做Category的原因。
注意Category只能用于方法,不能用于成员变量。
2、iphone 开发Categories 、Extensions 区别 - - 博客频道 - CSDN.NET:
进程:可以简单理解为进程为一个应用程序
线程:是CPU调度和分派的基本单位
下图是线程状态示意图,从图中可以看出线程的生命周期是:新建 - 就绪 - 运行 - 阻塞 - 死亡
多线程的四种解决方案分别是:OC主要使用NSThread,GCD, NSOperation,pthread为跨平台的。
(1)GCD术语解释
(3)GCD队列异步dispatch_async、同步dispatch_sync执行方式区别
(3.1)GCD常用场景一:实现多个异步线程同步操作
输出:nunber = 5 说明开启了一个新线程在执行
输出:在多个线程下并发执行完任务
(3.2)GCD常用场景二:dispatch_barrier_sync实现多读单写
输出:
(3.3)GCD常用场景三:dispatch_group实现多个网络请求的同步问题
输出:
总结:
(3.4)GCD造成主线死锁的情况