重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
第一步,精读 Stephen G. Kochan 的《Objective-C程序设计》:Objective-C语言基础,iOS开发的第一技能就是精通Objective-C; 第二步,有了语言基础,精读 David Mark 的《精通iOS开发》:通过各种单独的项目,熟悉iOS SDK,XCode开发环境,明白MVC、委托等设计模式,通读完后,你就对iOS SDK有了比较全面的认识,各种框架和组件有了一定的认识; 选择性阅读了Matt Neubury 的《iOS程序设计》:本书是iOS最系统的教程,对iOS框架的底层有比较详细的介绍,深刻了我对iOS的理解。如果你是一名不仅仅想使用iOS SDK开发,还想理解底层是怎么运行实现的,那就阅读它。如果没看David Mark的《精通iOS开发》直接阅读这本教程会非常的吃力和枯燥无味,所以我建议在学习的过程中,把它作为资料库来查询,遇到想深入学习的某一方面,就选择性阅读本书的一些章节; 有了上面的一些知识,研究一些github上的优秀的项目或者从cocoaChina上找些感兴趣的代码推荐内容并且阅读源码,最好还可以在自己的DIY项目中使用上它们。还可以阅读Bear Cahill 的《iOS in Practice》:通过9个上架的应用,加深对iOS SDK的认识和理解; 到这时候,就会遇到瓶颈,希望更上一层楼。我自己的做法是通过看公开课或者中国上的开发视频,不是让你重新学习,因为身边没人带,所以这么做让你看到别人是怎么编码,别人的编程思路是什么,并且能将你前段时间学习的内容进一步巩固。 接下来当然是iOS进阶了。可以开始阅读David Mark的另一本畅销书《iOS6开发进阶与实战》,主要深入讲解了Core data,map Kit,Game Kit,iCloud,iOS安全等。 在第5和第6步的过程中,可以一点一点阅读Matt Galloway 的《Effective Objective-C 2.0》:介绍52个编写高质量IOS与OS X代码的方法; 与此同时,要学会使用下面一些中国站和工具,学会使用这些中国站和工具,才能是你的开发之路可持续发展
创新互联公司是一家专注于成都网站建设、成都网站制作与策划设计,贵州网站建设哪家好?创新互联公司做网站,专注于网站建设10年,网设计领域的专业建站公司;建站业务涵盖:贵州等地区。贵州做网站价格咨询:13518219792
[img]最近网络上流行的一句话“没有躺赢的命,就站起来奔跑”
马上要快到30岁的年纪了,我居然还想着改行到前端开发,这也是源于最初的的执念。2014年,最开始的想法是做前端开发,由于种种原因,没有去做前端开发而选择了iOS开发。
多年后,觉得,做iOS开发不是自己最喜欢的行业,于是,又开始启程前端开发的计划。
也许,这是对的选择,也许是错误的选择,但是,最终都需要为自己的选择而买单。
所以,我就开始了我的iOS转前端的漫长之路
接下来,我会记录每一段学习的心得和感触,以及所学的知识进行一个分享~
分阶段的进行学习:1、看视频(零掌握,系统的学习和了解),2、看书(对编程有了一定的掌握,作为补充和提高),3、看博客帖子(取长补短)。
依次学习和掌握:Objective-C语言基础,iOS交互开发,iOS高级进阶,前端技术(HTML,CSS,javascript),PHP与MySQL,项目实战等。
有一定的自学能力和自控能力,有一套完整的教程资料,熟练使用stackoverflower,segmentfault等站点解决技术性的问题,自学起来难度不会太大。反之,报个班系统的学习开发所需的专业技术。
近期项目中有个需求就是要实现类似微信或者支付宝的收款时的语音播报功能,于是笔者就开始了漫长的踩坑之路。
刚开始讨论实现方案时,安卓的小伙伴说可以使用WebSocket + 讯飞语音在线合成实现。于是最初的几天笔者自己也一直在这条路上走了很久,基本功能都已经实现了,项目在前台的时候,基本没问题。但是项目一进入后台大概半分钟的时间,就无法播报了。原因是iOS项目如果不做任何处理的话,在进入后台大概30s之后,程序就会进入类似休眠的状态,然后就不会再进行任何操作了
跟安卓的同事讨论之后,发现安卓有方法可以让程序一直在后台处于活跃状态,于是笔者也开始找寻保持项目后台运行的方法,大概有两种
在这里我们并没有发现,程序在后台收到推送时,作相应处理的方法,哪到底能不能收到推送后就进行处理呢?
iOS 10 之后 iOS推出了Notification Service Extension,我们可以在收到推送之后,通过这个Extension 我们可以有三十秒的时间来对这个推送进行处理
完成之后长这样
然后我们配置一下NotificationService
然后我们看下NotificationService.swift文件
在完成上述操作之后,再次收到推送的话,就会走NotificationService的逻辑了,可以打断点或者Log测试一下
需要注意的是 在推送的内容中 必须配置mutable-content字段,结构大致如下
做完上边的操作之后,我们可以知道什么时候去播报语音了,但是语音又要怎么去播报呢?
笔者这边也是试过几个方案,下边一一说来
笔者刚开始使用讯飞发现不行,然后又测试了系统自带的AVSpeech,发现也不好用,查资料才知道,苹果在近期的版本中,停用的在NotificationService中播放语音的功能,之前的某个版本应该可以这么操作。好吧,此方案Pass
既然不让我播,那我存起来总可以了吧,测试发现讯飞在线生成是可以的,也可以存到本地,但。。。是,UNMutableNotificationContent的sound好像只支持提前添加到项目中的文件,并不支持立即生成之后存到本地,然后再设置的功能。。。
笔者在项目中预先生成的文件如下(语音包通过百度语音开放平台在线生成 百度语音在下生成(拉到中间就有了) )
比如说我要播放“支付宝到账100元”,我就会发放多个通知,依次播放wx-pre,1,bai,yuan这几个语音,连贯起来就能达到要求
笔者能力有限,暂时想到的方法就是这个,有好的方法可以多多分享,沟通