微信号:infoqchina

介绍:有内容的技术社区媒体

iOS应用程序自2月1日起必须兼容iOS 7

2014-01-21 22:21 InfoQ

苹果近日宣布,iOS应用程序自2月1日起必须兼容iOS 7。在向iTunes商店提交新的应用程序或更新时,开发人员必须使用XCode 5构建应用程序,而且这些应用程序需要针对iOS 7进行优化。兼容iOS 7包括根据当前的《iOS人机交互指南》和《iOS 7用户界面过渡指南》更新用户界面,以及使用新版本的iOS API。


用户界面更新


iOS 7的用户界面关注内容的清晰展示。开发人员应该避免使用像拟物化、阴影或者边框这样的图形元素,而且要使用整个屏幕向用户展示数据。用户界面元素务必不那么显著,不应该分散用户对所展示内容的注意力。除了使内容展示更清晰以外,iOS界面设计的控件现在占用的屏幕空间更小,所以可以展示更多的内容。另外,苹果建议开发人员尽可能地使用自动布局功能代替编程定位用户界面元素的做法。


文本处理现在是基于TextKit进行的,使用UILabels、UITextFields和UITextViews三个类。TextKit为文本元素带来了字距调整、断字或嵌入图片等功能。开发人员可以使用不同风格的文本代替使用点或像素确定大小的字体。iOS文本风格与HTML中的文本风格类似,包含诸如“标题”或“正文”这样的值。实际呈现的大小由iOS计算,可能会依赖于用户应用的缩放设置。


此外,iOS 7还为用户界面设计人员提供了新的设计元素和技术:

  • “半透明度(Translucency)”:开发人员可以选择使视图半透明。与不透明视图相比,它们能为用户展示底层的内容。根据《iOS用户界面指南》,这对于临时重叠视图尤其有用,像滑入式菜单或设置面板。

  • “深度(Depth)”:另外,对于展示给用户的对象,《iOS用户界面指南》鼓励设计人员使用深度和层次作为表达它们之间关系的方法。为了产生深度效果,iOS在用户界面中提供了一种假3D效果。当平移或倾斜设备时,用户能够透过浮在上面的对象看下面的内容。


iOS API增强


为了保持应用程序处于最新状态,iOS 7提供了三种新的多任务处理模式:“获取”模式使应用程序定期地检查数据更新。开发人员可以为应用程序定义一个最小更新间隔,iOS将在后台启动应用程序,并调用一个委托方法来接收新的数据。根据情况,如良好的网络连接,iOS甚至可能在更新间隔时间用完之前启动应用程序。“远程通知”模式使用推送通知来触发应用程序更新。在iOS 7之前,用户在收到通知并启动应用程序后,就不得不等待应用程序内容更新完成。现在,应用程序收到通知后就在后台更新其状态,并在更新完成后通知用户。


MapKit提供了高级的“覆盖图(overlay)”处理功能。开发人员现在可以定义不同的层来向地图上添加覆盖图。除此之外,MKOverlayView类已经弃用,开发人员应该使用新类MKOverlayRenderer来代替它。MKDirections类使应用程序可以请求路径信息,而不必切换到地图应用程序。借助MKMapSnapshotter类,开发人员可以基于坐标、高度或者间距等参数创建和显示一个地图区域的UIImage。


应用程序之间可以使用Airdrop或者点对点连接相互通信。两种API都是以在没有互联网连接的情况下发现附近的设备为基础。应用程序可以注册特定的文件类型,然后可以通过Airdrop接收它们。iOS会启动应用程序,并在收到新文件时调用一个委托方法。借助点对点连接,可以在附近的设备之间发布和发现服务。在建立会话之后,设备之间可以交换任意的消息和数据。


为了防止有的设备不支持iOS 7,开发人员仍然可以提供更新,并让用户从应用程序商店下载应用程序的早期版本。


***********************************

本文来自InfoQ微信公众账号:infoqchina

1、回复“今日新闻”,查看今天更新的新闻;

2、回复“今日英文”,查看今天英文站的更新;

3、回复“文章 +关键词”,搜索关键词相关内容;

4、回复“QCon”,了解QCon大会相关信息;

5、回复“活动”,了解最近InfoQ组织的线下沙龙;

6、回复“架构师”,获取《架构师》下载地址;

7、回复“投稿”,了解投稿和加入编辑团队的流程。

***********************************

 
InfoQ 更多文章 Facebook如何实现PB级别数据库自动化备份 学术派Google软件工程师Matt Welsh谈移动开发趋势 Spotify为什么要使用一些“无聊”的技术? 妹纸们放假了,汉纸们做啥? 大多数重构可以避免
猜您喜欢 再议--go语言写日志 专访图书作者祁宇:C++11让程序更简洁、更现代、更强大 Improving Stability with Private C\/C++ Symbol in Android N App 启动加载广告页面思路 Node.js Stream - 实战篇