当前位置: 首页 > 科技观察

开发者需要知道的iOS9SDK新特性

时间:2023-03-19 16:32:47 科技观察

花年年相似,人年年不同。今年的WWDC一如既往的热闹,但因为要照顾刚出生的宝宝和宝宝的妈妈,只能宅在家里的“鸟巢”家庭影院关注这场全球苹果开发者盛会。生命无止境,学习无止境。和过去几年一样,我会继续写我觉得有趣的东西和我关注的东西,了解WWDC和新的SDK。现在回头看几年前写的东西,越来越觉得自己青春年少的时候是那么可爱,那么傻。然而,一路上的成长轨迹是显而易见的,我希望我能淡定地继续这段旅程。虚伪结束了,是时候工作了。让我们来看看我认为开发者在今年的WWDC上需要关注的一些事情。概述iOS9时代开发者面临的最大挑战和最紧迫的任务可能是两个方面,一是如何使用和适应iPad全新的分屏多任务功能,二是如何面对和使用watchOS2构建原生手表应用程序。其他的新课题基本都是对现有框架的推导和扩展,包括从单元测试扩展到UI测试,如何进一步占用和使用系统的通知中心和搜索页面,以及Swift2的使用等等。可以说,在经历了iOS7和iOS8的连续两次重量级改动和更新之后,对于普通的App开发者来说,iOS9SDK有些淡定从容,新SDK在API和整体设计上并没有发生什么变化。多么巨大的变化。开发者也可以借此机会尽快喘口气,进一步熟悉并至少过渡到使用iOS8SDK的内容来构建自己的应用(比如尝试使用SizeClass和PresentationController等).),尽快提高自己的专业技能和生产技能。app的水平和确保它能跟上滚动的Apple轮子应该是今年Cocoa开发者的主要任务。多任务处理可以说是iOS9的最大卖点。多任务处理功能,尤其是分屏多任务处理,让iPad真正成为了一台重型PC。虽然很长时间以来都有越狱插件可以让iPad同时运行多个程序,但苹果还是非常小心地在2015年将这个功能实现在其最强大的移动设备上。iOS9中的多任务分为三种表现形式,分别是临时呼出滑动叠加(SlideOver)、视频播放的画中画模式(PictureinPicture)和同时使用两个应用的真实分屏视图时间(拆分视图)。目前只有最新款的iPadAir2在能够运行iOS9的设备中支持splitview,但相信随着设备的更新换代,splitview的使用很有可能成为人们日常使用iPad的主流方式,所以提前准备开发人员必修的功课很重要。虽然乍一看支持多任务视图似乎很复杂,但如果您在前一年遵循Apple的步伐,它实际上非常简单。滑动覆盖和拆分视图的应用程序将使用iOS8引入的SizeClass中的CompactWidth和RegularHeight设置,并使用AutoLayout进行布局。也就是说,如果你的app之前是iPhone和iPad通用的,并且已经使用了SizeClass进行布局,那么基本上你不需要做任何额外的事情来支持iOS9的多任务视图。但是如果不幸的是你没有使用这些技术,你可能需要尽快迁移到这种布局方式,才能完美支持。视频应用的画中画模式比较简单。如果你使用AVPlayerViewController或AVPlayerLayer来播放视频,你不需要做任何事情来支持它。但是如果你之前选择的解决方案是MPMoviePlayerController或者MPMoviePlayerViewController,你可能也需要尽快迁移到AVKit框架,因为MediaPlayer在iOS9中会被标记为deprecated,不再维护。相关主题笔记iOS9多任务分屏亮点watchOS2在新的watchOS2中,WatchApp的架构发生了巨大变化。新系统中WatchApp的扩展将不会像现在一样存在于iPhone中,而是直接安装在手表中。AppleWatch已经从一个简单的界面显示演变为一个可以执行开发者代码的设备。得益于此,开发人员还可以在扩展中访问像数字表冠这样的智能和(虽然两者都只是基本访问,但聊胜于无)心跳计数。虽然有了一些进展,但苹果在watchOS2上的态度还是很谨慎的。这可能与初代AppleWatch的设备限制有很大关系,因此留给应用开发者的动力和性能空间并不是很大。广阔。但与目前的WatchKit相比,在没有iPhone的情况下运行的能力是一个显着的改进。为了与iPhone通信,现在添加了一个新的WatchConnectivity框架。我们有足够的理由期待AppleWatch和WatchKit在未来两三年的表现。相关主题笔记30分钟开发一个简单的watchOS2appUI测试在开发领域,测试一直是保证产品质量的关键。从Xcode4开始,测试在App开发中的地位逐年上升。从引入XCT框架,到新项目默认测试目标,再到去年新增的异步代码测试和性能测试。可以说Xcode自带的测试框架已经可以满足大部分单元测试的需求了。但这还不够。开发iOS应用程序总是更关注UI和用户体验。简单的单元测试很容易保证模型层的正确性,但很难在UI上有所作为。如何为应用程序编写UI测试一直是Cocoa社区中的难题之一。前面的话有KIF、Automating、甚至FBSnapshotTestCase这样的脑洞大开的方案。今年,苹果给出了一个更具吸引力的选择,那就是Xcode自带的XCUITest系列工具。XCUI和现有的大部分UI测试工具类似,都是通过Accessibility标签来判断view的,但是因为是Apple自己的东西,它可以自动记录你的操作过程,所以你只需要写最后的验证部分,比如其他U??I测试工具方便多了。Swift2Swift已经经过一年的改进和改进,现在已经可以很好地用于应用程序开发。作者本人半年多来一直以Swift作为日常工作的主要语言,近六个月的总体感受是越写越舒服。Swift2的主要变化是错误处理的变化。Apple将Cocoa传统的基于NSError的错误处理方式改为throwcatch异常处理机制。这个改动确实可以让程序更加安全,而且新的ErrorType也很好的统一了错误描述。但是实际接触一两天后,感觉比原来的代码写的更符合语法。可能是长期使用NSError的习惯造成的。笔者还没有完全接受Swift2中的异常机制。不过这次Apple做了一件比较激进的事情,将CocoaAPI中的所有错误都换成了throw。所以不管你喜不喜欢,向异常处理的过渡是Swift开发者必须面对的事情。此外,Apple还新增了一些控制流关键字,如guard和defer,这在其他一些语言中也是非常有用的特性,这使得Swift的编写更容易,阅读也更流畅。为了解决不同SDK在运行时的可用性问题,Apple还在Swift2中加入了availableblock。以往我们需要自己记住API的可用性,通过检查系统版本和比较它。现在有了检测功能,编译器会检测出那些可能存在版本不匹配的API调用,进一步保证了应用开发的安全性。为了让整个SDK更适合Swift的语法习惯,苹果终于在Objective-C中引入了泛型。这看似是对Objective-C的增强,但实际上为Swift统一苹果开发开辟了道路。有了Objective-C的泛型,使用Swift访问CocoaAPI基本不会获取到AnyObject类型,这使得Swift的安全特性更上一层楼。最后,Swift2开源的消息。Swift的编译器和标准库将在今年年底开源,这对普通应用程序开发者来说可能不会带来任何剧烈变化,但这确实意味着Swift将从一种用于应用程序生产的特殊语言转变为一种通用语言——目的语言。语言。最容易想到的就是基于Swift的后端开发。或许在看到Javascript称霸世界之前,我们就能感受到Swift全栈的强大?AppThinning的作者在日本工作,因为大家这里的流量都是包月和溢出,所以基本上没人在意App的大小,无非是下载5秒或10秒的区别。但是在和国内同行交流的时候,发现国内app开发对尺寸的要求近乎苛刻。因为iOS应用程序现在包含32位和64位切片以实现向后兼容性。另外,在图片资源方面,1x2x3x图片一应俱全(嗯,现在应该不需要1x了)。用户在使用app的时候,因为设备是特定的,所以实际上只需要一套资源。但是现在购买下载的时候,下载的是整个app包。Apple终于意识到这东西有多么愚蠢,在iOS9中,终于可以只选择内容(Slicing)来下载了。这对用户来说是一个很大的好处,因为他们只需要升级到iOS9就可以节省大量的流量。对于开发者来说,没什么可做的,直接用assetcatalog管理素材标签2x3x即可。另一种瘦身应用程序的方法是向Apple提交Bitcode而不是最终的二进制文件。Bitcode是LLVM的中间代码。当编译器更新时,Apple可以使用你之前提交的Bitcode进行优化,这样你在编译器更新后就不必再次提交你的应用程序,你也可以享受编译器改进带来的好处。益处。新建项目默认开启Bitcode支持,如无特殊原因无需关闭。最后,还有按需加载的资源。这在游戏中可能会有更多的应用场景。您可以使用标签来组织图像或声音等资源,例如将它们标记为level1、level2。那么一开始只需要下载level1的内容,游戏过程中再下载level2即可。或者您可以使用它来推迟需要应用内购买的资源文件的下载。这是一些大型游戏中很常见的优化方式,现在在iOS9中可以方便的使用。虽然看起来很简陋,比如插上耳机播放自己喜欢的音乐,推荐可能联系的人,打开应用等等,但这确实是非常有意义的一步。现在的Siri只是一个问答系统,如果上下文被打断,“她”连前面两句话说的是什么都记不住。记不住老板习惯的秘书绝对不是好护士,而苹果正在让iPhone朝着这个方向努力。好消息是,我们可能暂时不用担心会遇到故意让图灵测试不合格的机器,所以人工智能还有很大的发挥空间。搜索API本质上为应用程序添加了一个可能的条目。一些用户非常频繁地使用搜索界面,这是展示您的应用并提高打开率的绝佳机会。如果应用程序类型合适,这是一个非常值得的附加功能。与游戏相关的游戏应用最容易跨平台,因为在不同的移动平台上,用户体验不会有天壤之别——毕竟现在没有开发者可以忽视安卓的份额。这也是苹果自家的SpriteKit和SceneKit等游戏框架一直不温不火的原因。不再局限于Apple平台,更多的开发者选择像Unity或Cocos2d-x这样的跨平台解决方案。但今年苹果继续加强对游戏开发工具的支持,包括负责状态机维护和寻路的GameplayKit框架,负责游戏过程视频录制和回放的ReplayKit框架,以及物理的ModelI/O框架。造型。这些其实都是苹果的游戏开发体系辅以一些游戏行业成熟的算法和工具,为开发者节省了大量的时间。对于个人开发者制作的游戏,苹果提供的工具门槛相对较低,上手容易。但在大多数游戏开发需要跨平台的时代,我总觉得苹果系统能否顺利进行还需要进一步观察。其他HomeKit、CloudKit、HealthKit和其他杂项框架。如果是iOSOnlyapp,使用CloudKit作为BaaS可能是一个不错的选择,但也面临着未来难以跨平台共享数据的风险。其他几个框架比较专业,大部分需要配合硬件支持。事实上,一直有人说智能硬件是下一个爆发点,但至少目前为止他们并没有闹得很大,更多的是进入了低价竞争。(手环你懂的),只能说很期待这些设备后续的表现。最后,给刚入门或者打算投身苹果开发的朋友一个福利。现在你无需加入付费开发者计划就可以将应用部署到自己的设备上,而此前付费开发者计划需要你加入每年99的开发者计划,可以说进一步降低了苹果开发的门槛。.总结上面说到,对于开发者来说,今年的WWDC并没有像2013年和2014年那样有颠覆性的变化,大部分都是对现有功能的增强和对开发工具链的增强。今年可以说是Cocoa开发者积累前人知识、提高技能的好机会。现在WWDC15还在如火如荼的进行着。如果您打算尽快拥抱新SDK带来的变化,请不要犹豫,直接访问苹果开发者网站,寻找和观看您感兴趣的话题。苹果iOS9值得升级的10个理由http://www.linuxidc.com/Linux/2015-06/118595.htmiOS详细介绍:请点这里