仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 2215|回复: 19
打印 上一主题 下一主题

[学习教程] IOS编程:WWDC2014不雅感兼回覆iOS初学者的狐疑仓酷云

[复制链接]
愤怒的大鸟 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:30:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
我当时刚学iOS开发的时候一样的感觉总想知道原理内部怎么回事感觉在像在雾里但是iOS开发就是这样他是封闭的本身就是在雾里...今天天下杯就要停战了,为了不影响人人看球,赶忙在此之前把本人对WWDC的不雅感和对Swift的团体概念分享一下吧。之以是要写这篇文章,就是由于良多伴侣(出格是初学者)在切磋这个成绩。
WWDC都开完一周了,我也迟迟没有拿出本人的概念。不是我不想第一工夫来个评测之类的,其实是此次WWDC上值得存眷的内容太多,以致于我原定活着界杯前看完WWDCsession中本人感乐趣视频的企图完全宣布停业。
如今有一个十分严厉的成绩摆在我的眼前:在接上去的日子里,难不成我要一个窗口看天下杯竞赛,一个窗口看WWDC视频?这还能兴奋的游玩吗?
关于宽大程序猿来讲,2014年6月3日的WWDC上最使人冲动的不是一众刷机党等候已久的iOS8,不是要扁平究竟与iOS合体的Yosemite,不是让可穿着设备创业者们津津有味的HealthKit和HomeKit,固然更不是Cook年夜厨大概俊秀洒脱的VPCraigFederighi,而是Swift(雨燕)这个听起来很有浪漫主义色采的编程言语。我实在很想和老板们坐在旅店的沙发上,一边举着高脚杯品味红酒一边切磋怎样在可穿着设备上整合HealthKit、HomeKit如许宏伟上的话题,但发明最初仍是情不自禁的窝在电脑前看一年夜帮出名非出名程序猿就该不应学Swift这个蛋疼的话题斗得死而复活。
Swift公布当日,苦逼程序猿们好像打了鸡血一样的会商这门重生言语,固然更少不了的是和以后各类编程言语的对照和吐槽。有人说iOS开辟者持续逝世守Objective-C不学Swift就同等于自宫了,有人说Swift是个畸形的怪物基本没有苹果说的那末好,有人说苹果今后要金瓯无缺拳打Android脚踢WP,也有人说苹果今后日暮西山忆往昔峥嵘光阴荣。。。
作为一个苹果粉丝,我也看了6月3日的keynote,固然无缘在现场为苹果雄起,但团体以为WWDC2014是自2010年以后最乐成的一次开辟者年夜会。没有鸡肋的硬件晋级,没有显摆批发店又新开了几家,即使是对Beat30亿美刀的巨额收买,也只是靠Craig在Mac上给Dr.Dre打了个德律风提示人人Dre博士已然是苹果的自家人,就此悄悄飘过,不带走一片云。WWDC2014是一个百分百的开辟者年夜会,Cook年夜厨特地夸大他在看开辟者的邮件反应,而全部keynote中公布了iOS8的浩瀚开放的地方,从第三方输出法到TouchId,从能够说完整就是OftheDeveloper,BytheDeveloper,FortheDeveloper。看完以后,我不由得想高唱一曲VivalaApple(我不懂西班牙语,生凑的)。
苹果,最少此次在软件体系上其实干的大度。固然对宽大消耗者来讲苹果是一个计划消耗类电子产物的公司,但连乔帮主都已经说过,苹果从实质下去说实际上是一家软件公司。只是,Peoplewhoarereallyseriousaboutsoftwareshouldmaketheirownhardware.
我想关于开辟者来讲,不管是打脸的吐槽仍是跪舔的奉承都意义不年夜,接上去只谈两个话题。
一个是针对正在弄iOS开辟的,此次WWDC上有哪些工具对我们开辟者真正有效,而另外一个是针对初学者的,究竟该不应学Swift(或是该不应学Objective-C)。
一.哪些工具是iOS开辟者必要出格存眷的。
关于iOS开辟者来讲,我以为除要看6月3号的那场Keynote,实在更必要看session部分的视频,出格是以下几个视频是必定要看的:
https://developer.apple.com/videos/wwdc/2014/
1.PlatformsStateoftheUnion
这个视频的主要性仅次于Keynote,假如说Keynote几另有点照应一般公共的赶脚,那末PlatformsStateoftheUnion的内容实在就是开辟者定制版的Keynote。内里涵盖了一切苹果以为十分主要的更新和严重的变更,几近上看完Keynote和这个视频也就天然分明了第一个成绩的谜底。
2.IntroducingCloudKit
iCloud今朝在消耗者市场谈不上乐成,关于开辟者来讲一直是一个鸡肋的功效。可是CloudKit明显野心很年夜,试图经由过程向前端开辟者供应相似BAAS的服务而将iOS开辟生态体系的闭环完整把握在本人的手里。人人都晓得传统的iOS开辟(包含Android开辟)实际上是分红两部分的,一部分是客户端开辟,一部分是服务器端(大概说背景)开辟。即使是一个十分有先天的iOS开辟者,要同时精晓客户端开辟和服务器端开辟都是不太实际的,最少不是最高效的。由于服务器真个开辟常常仍是依附于java,PHP,Node.js,Python等等,在增添了开辟职员本钱的同时,也给Android留下了无隙可乘。
我想苹果之以是供应壮大的CloudKit(由于工夫缘故原由,我关于CloudKit还没有做深切的研讨,这里的概念大概有误),最主要的企图仍是构成iOS开辟生态体系的闭环。也就是说把客户端开辟和服务器端(收集,数据库等)合二为一,经由过程壮大的功效和便当的服务进一步下降iOS开辟的门坎(包含引进Swift编程言语也是这个目标)。CloudKit不是为了抢服务器端开辟者的背景,而是为了把开辟者紧紧绑定在iOS的战车上,同时由于有CloudKit,那末第三方开辟者的各类数据也都一并支出了苹果的帐下(包含HealthKit和HomeKit也是这个目标),前面要弄弄真实的年夜数据云盘算就不用再打告白了。
经由过程CloudKit,我看到了一个狼子野心的苹果和一个力争完整挣脱乔帮主暗影的Cook年夜厨正在角落内里偷笑。
3.IntroducingHealthKit
由于比来在研讨和懂得互联网安康医疗范畴,因而关于HealthKit我团体是高度的器重。
苹果公布了Health使用和HealthKit开辟工具包,固然没有提到传说风闻中的iWatch,但外星人都晓得苹果对安康可穿着设备策划已久,蓄势待发。
HealthKit能够做三件十分主要的事变:
(1)从别的使用中猎取和安康相干的数据
(2)经由过程本人的使用保留和读取数据到云端
(3)举行查询和统计剖析
详细来讲:
(1)向HKHealthStore中保留数据
(2)从HKHealthStore中读取数据
(3)使⽤用HKQuery和HKSampleQuery查询数据
(4)使⽤用HKObserverQuery及时监视数据库中的相干数据变更
(5)使⽤HKAnchoredObjectQuery来限定前往的数据局限(前往新增加的对象)
(6)利用HKStatistics进⾏行复杂的统计剖析(Sum乞降,Min最⼩小,Max最⼤年夜,Average均匀数)
(7)利用HKStatisticsQuery执⾏行统计查询
(8)利用HKStatisticsCollection⽣天生基于工夫段的统计图表(借助AnchorDate)
(9)利用HKStatisticsCollectionQuery执⾏行统计图表的操纵
在HealthKit推出之前,安康办理类APP从功效上看次要分为以下几类:
(1)搜集数据(经由过程手机传感器及可穿着设备)
(2)剖析数据并供应统计剖析了局
(3)供应在线安康办理和征询服务
(4)搭建医患平台(如春雨大夫)
(5)搭建用户社区(某种特定疾病的患者,大概减肥,瑜伽等)
在HealthKit推出后,出格是将来的iWatch推出后,我团体以为只供应(1)和(2)功效的产物基础上没有太年夜的开展潜力。安康办理类APP只要真正走O2O之路才大概有出路。
4.IntroducingHomeKit
说到这儿,我以为苹果的野心太年夜了。智能家居是又一个复杂的蓝海市场,和车联网,互联网医疗,在线教导是以后互联网/挪动互联网最年夜的四个蓝海市场之一。
苹果关于Google收买Nest看似没有反响,但心坎相对不会轻敌,HomeKit实际上是对这个收买举动的反戈一击。
智能家居,车联网,互联网医疗,在线教导作为具有刚需的蓝海市场为什么老是雷声年夜雨点小,实在最基本的缘故原由是由于没无形成一个相似iOS开辟这一能够自轮回自发展的生态体系。而要打造如许的生态体系和完全代价链,尽逼不是深圳华强北一个小厂商开个模具弄个可穿着设备大概智能设备就能够弄定的,即使是小米这类靠互联网头脑异军崛起的公司,最少在今朝也不具有如许的首脑风仪。
是的,我也买了小米路由器,但一个伶仃的设备和靠HomeKit整合在一同的智能家居体系能够等量齐观吗?
那末接上去要看甚么?固然是要看Android何处会出如何的应对战略。究竟苹果对高端市场,Android对中低端市场已是人人默许的现实了。
如今苹果针对第三方开辟者开放云云多的接口,其专心其实是太分明了。不外这并非好事,只要靠首脑公司打造一个完美的生态体系才干动员全部家产链。
5.IntroductiontoSwift
好吧,为何苹果要推出一款全新的编程言语?是苹果工程师天下杯间歇期闲得蛋疼?仍是Cook年夜厨对外界批评本人没有立异精力十分末路火?
我不是Cook,猜不到他的实在设法,但团体以为Swift的公布和别的举动一样,都是在打造一个”OneApple”计谋。
开辟者不是以为Objective-C上手太难吗?人人不是以为Objective-C的方框语法丢脸难写得一逼吗?那末我们弄一个比java还上手简单,功能比java还强的不是一逼的雨燕,android开辟者另有甚么好得瑟的。
除这个,还能够看:
IntermediateSwift
AdvancedSwift
IntegratingSwiftwithObjective-C
SwiftPlaygrounds
SwiftInteroperabilityinDepth
6.游戏相干的几个视频
我想在游戏部分最使人人震动的就是ZenGarden的Demo。当漫天的樱花花瓣顶风飘洒时,我能够设想台下的游戏开辟者眼镜碎了一地,由于我就不当心把眼镜摔地上了。
功能超出OpenGLES的Metal手艺实在关于一样平常开辟者来讲无需太甚在乎,究竟这些是游戏引擎开辟商才必要存眷的,而Unity,Unreal,Crytek等老牌引擎都第一工夫撑持了Metal,这是筹办立马出AppleTV横扫PS4和XboxOne的节拍吗?
由于比来对OculusRift发生了浓郁的乐趣,实在我最想晓得的是,假如有云云壮大的功能,今后OculusRift是否是不必要配个刁悍的PC/MAC才干跑,而是能够随身举动了。假如是如许的话,假造实际的良多困扰是否是也能够真正失掉办理?(身材不必要流动在椅子上)。不外应当仍是在室内吧,否则估量跑进来失落水里了都还觉得本人在太空中战役呢。
关于为casualgame筹办的SpriteKit和SceneKit,包涵我真的不是很看好。在游戏开辟的天下内里,第三方游戏开辟引擎(cocos2d-x,unity3d,unreal等)才是真正知心的工具。
假如说使用还大概只出iOS版的话,那末几近一切的游戏都但愿是跨平台的,能赢利还嫌用户多?
团体判别,这两货关于支流的挪动游戏引擎(cocos2d-x,unity3d,再加上个但愿支流的unreal)几近不会有年夜的影响。
相干视频清单(包涵我活着界杯前仍是没看完):
What’sNewinSceneKit
What’sNewinSpriteKit
WorkingwithMetal:OverView
WorkingwithMetal:Advanced
WorkingwithMetal:Fundamentals
BestPracticesforBuildingSpriteKitGames
BuildingaGamewithSceneKit
DesigningforGameControllers
以上就是此次WWDC上必要存眷的一些重点内容。
能够说,只需开辟者乐意改邪归正(从Android转投苹果大概从双修者转成专修者),苹果乐意为你供应统统。
编程言语太难学?我们供应了Swift,上手堪比javascript,功能仅次于C言语远超java和众剧本言语。亲,中意的话给个好评吧。Cook年夜厨在等着收你的邮件呢。
想弄一个本人的输出法?好吧,第三方开辟者如今能够光明磊落的在不逃狱的iOS设备上供应输出法了。
想靠宏伟上的指纹辨认举行考证解锁?好吧,给你。KeychainandAuthenticationwithTouchID
想挪用别的使用完成某些功效?好吧,给你。
想要壮大的游戏功能?好吧,我们有比OpenGLES还快的Metal,另有NB的WebGL
想要游戏引擎?好吧,我们有SpriteKit和ScreenKit。
好了,第一个成绩回覆终了,如今往返答第二个成绩。
二.关于iOS开辟初学者,事实是要学Objective-C仍是Swift?
在供应本人的谜底之前,我起首要申明,不准人身打击。假如你要打脸,我不否决,不外打脸一主要给一张毛爷爷,如许的话接待人人多多打脸~
起首问初学者一个成绩,你往年多年夜了?你已下班了吗?假如没有,叨教你在哪儿上学?今后盘算弄学术仍是往公司打工,乃至是本人创业?叨教你在天朝吗?你是富二代大概有一个NB的寄父吗?。。。
这TMD甚么成绩,团体隐私我会告知你?这个跟学甚么言语有毛线干系?
团体以为,有很年夜的干系。
如今使用产物司理经常使用的用户画像来讲明下我的谜底:
1.你是一个90后高富帅,出身时就含着金钥匙,老爹老妈开奔腾宝马法拉利送你往小学中学,剩下的我不用睁开了,总之你是富二代大概是富二代的亲戚,不差钱。
if(你是富二代){
choice=“Swift”
}
缘故原由:
Swift代表将来,Objective-C代体现在。
既然你不用为如今的小钱忧愁,而依据苹果的尿性一定会鼎力撑持Swift,那末何纷歧入手下手就从Swift入手下手?
2.你是一个90后潘浚弦盗侥炅耍耙恢痹诟java开辟,委曲混成了北上广深的小白领,看到如今iOS开辟十分炽热,想转行弄这个。老爹老妈都是一般工薪族,没钱帮你买房,将来一片浑沌。
倡议:
先上Objective-C,上手后再学Swift
if(你卡里的钱少于500万&&如今急着换一个事情){
choice=“Objective-C”;
}
缘故原由:
Swift代表将来,Objective-C代体现在。
一个新言语的成熟必要最少两年工夫,而在这两年的工夫内里,你要干活用饭。大概你要开辟全新的项目,也大概你要保护之前的项目,但那些老鸟们(实在从08年算起最老也才勉委曲强6年履历,谁敢说本人有6年以上iOS开辟履历谁TMD是金正恩他爹)不会由于你会Swift就会放过你,最少1-2年内不会。
3.你是一个潘90后,来岁行将从一个二类院校的盘算机专业(大概是跟软件开辟完整不沾边的告白计划专业)卒业,想今后处置宏伟上的iOS开辟,不晓得该学甚么言语。
倡议:
先上Swift,上手后也要学Objective-C
if(你卡里的钱少于500万&&即刻要卒业了){
firstChoice=“Swift”;
secondChoice=“Objective-C”;
}
缘故原由:
Swift代表将来,Objective-C代体现在。
Swift上手快,能够经由过程Swift敏捷进门,但也要学Objective-C。
4.你是一个95后,还要过几年卒业。
好吧,不必形貌前面的情形了。
if(你这两年不急着找事情){
choice=“Swift”
}
5.你已在弄iOS开辟了。
好吧,
if(你是一个苦逼的iOS开辟者){
choice=“甚么都要学(不但是Swift和Objective-C开辟言语)”
}
实在第5个选项的谜底同时也合用于前4个选项。
假如情形式的谜底让人人看得混含混,这里仍是用逻辑形貌的体例吧。
1.iOS开辟进门不即是Swift或Objective-C进门
不论是Swift仍是Objective-C,都只是iOS原生使用开辟的一种编程言语罢了。
注重,这里夸大的是原生使用开辟,由于我们另有别的开辟体例,好比PhoneGap(HTML5,javascript言语),好比Xamrian(利用C#言语),乃至另有RubyMotion(利用Ruby言语)。
并且除使用开辟,我们另有游戏开辟,而iOS游戏开辟少少有人用native大概SpriteKit,90%乃至更多的游戏开辟商接纳的是cocos2d-x(c++,javascript,lua言语),Unity3D(C#,javascript)引擎。
因而,当你说本人想要学iOS开辟的时分,起首要问本人,你想开辟一个甚么样的工具。
假如是游戏,那末要进修的是游戏引擎,相干开辟言语,乃至另有OpenGLES。
假如是使用,那末要看是想开辟原生使用(native)仍是夹杂式使用(hybrid),固然今朝来讲尽年夜多半的开辟商仍是接纳native开辟。
假如是开辟原生使用,才会触及到选择Swift仍是Objective-C的成绩。
并且学会某种编程言语只是iOS开辟的最后一步,前面另有大批的工具要学,能够参考我的文章“一个iOS开辟者的修真之路”,这里就不再赘述了。
2.你盘算什么时候进进iOS开辟的正式事情
假如急着找事情大概换事情(两年内都算急),那末没话说,你必需得先学Objective-C。固然Swift仍是要学,不外不用这么急。
起首之前一切的项目都是Objective-C开辟的,大批的第三方框架,开源项目和手艺撑持都是针对Objective-C的。
假如是新的创业型公司,想疾速切进iOS开辟范畴,那末有大概会雇用Swift程序猿。
可是关于有必定范围的公司来讲,最少在1-2年的工夫内里,一定是objective-C。
假如是企业级使用开辟,加倍不必说,一定是短时间内不会切换到Swift的。
假如今朝不急着找事情(两年内),但又对iOS开辟感乐趣,那末就间接上Swift吧。
3.一专多能,与时俱进
只需你入手下手进进程序猿的行业,就要一直的进修新的常识。在JonyIve的列传中提到他昔时进修产业计划的T字进修法,就是所谓一专多能,博采众长。
团体以为,一个程序猿最少要把握三类编程言语,精晓个中的1-2种。
1.体系级言语
C,C++
2.普适性言语
Java,C#,Objective-C
3.剧本言语
javascript,PHP,Python,Ruby,Perl
Swift言语今朝还欠好分类,临时能够放在第二类。
进修体系级言语能够懂得盘算机一些绝对底层和内核的工具,即使不以此为次要偏向,但必定要有所懂得。
进修普适性言语,是由于干活最经常使用的就是这些言语。
进修剧本言语,是由于轻量级开辟用的是这些言语。
但愿以上内容回覆了之条件到的两个成绩:
1.WWDC上我们必要存眷哪些工具?
2.iOS初学进门者应当选择哪一个言语(Swift仍是Objective-C)?

不管是学习Objective-C语言,还是学习ios,我都只是跟着书上的例子,在苹果机上,在Xcode和InterfaceBuilder开发环境中,按部就班的“抄”些应用程序。
灵魂腐蚀 该用户已被删除
沙发
发表于 2015-1-21 08:52:15 | 只看该作者
看完这个你就可以有多种选择来踏入做应用的阶段
只想知道 该用户已被删除
板凳
发表于 2015-1-30 12:55:42 | 只看该作者
众多研发人员积极参与到iOS平台的开发中来也就不足为奇了。
小魔女 该用户已被删除
地板
发表于 2015-2-16 02:48:28 | 只看该作者
AD: iPhone文件系统NSFileManager讲解是本文要介绍的内容,主要是通过iphone文件系统来学习NSFileManager的使用方法,具体内容来看本文详解。
海妖 该用户已被删除
5#
发表于 2015-2-21 20:51:34 | 只看该作者
看完这个你就可以有多种选择来踏入做应用的阶段
蒙在股里 该用户已被删除
6#
发表于 2015-2-26 00:36:48 | 只看该作者
到大三时,学院与我去培训的机构成立了实习基地,并让我们寒假去实习了一段时间,感觉还不错,于是在大四的时候去培训了
再现理想 该用户已被删除
7#
发表于 2015-3-6 04:04:06 | 只看该作者
同很多iOS开发者一样,我也是通过培训进入到iOS开发这个行业,开始没有打算培训,只准备自己学习一些计算机编程相关的知识,毕业时找一份编程相关工作(本人是信息与计算科学这个专业,是数学系)。
兰色精灵 该用户已被删除
8#
发表于 2015-3-6 21:00:36 | 只看该作者
学习ios没什么捷径,关键在于多动手敲,曾看到前辈开玩笑说怎么快速学会某技术,答案是:“提高打字速度,快点写代码就能快点学会了”。
若天明 该用户已被删除
9#
发表于 2015-3-9 21:34:08 | 只看该作者
培训时可以选择安卓,iOS,Java,因为实习的时候我选了安卓,当时实习时间只有三周,学的晕头转向,而java我也没学过,iOS的基础是C语言,这个大学里还是学过的,于是选择了iOS。
小女巫 该用户已被删除
10#
发表于 2015-3-11 19:00:52 | 只看该作者
有办法利用自己手头的电脑立刻开始这个美妙旅程的。
若相依 该用户已被删除
11#
发表于 2015-3-12 16:18:52 | 只看该作者
有办法利用自己手头的电脑立刻开始这个美妙旅程的。
柔情似水 该用户已被删除
12#
发表于 2015-3-12 16:34:22 | 只看该作者
近期由于IOS7的发布,所以应用的适配潮可谓是都搞的锣鼓喧天,甚是热闹,因此呢,因适配IOS7而产生的问题也是铺天盖地的卷来,
山那边是海 该用户已被删除
13#
发表于 2015-3-13 04:44:25 | 只看该作者
要学会通过各种方法将面前的事情变成自己感兴趣的,那专研起来就不会是无聊和折磨了。
透明 该用户已被删除
14#
发表于 2015-3-16 11:52:37 | 只看该作者
培训时可以选择安卓,iOS,Java,因为实习的时候我选了安卓,当时实习时间只有三周,学的晕头转向,而java我也没学过,iOS的基础是C语言,这个大学里还是学过的,于是选择了iOS。
莫相离 该用户已被删除
15#
发表于 2015-3-22 22:31:03 | 只看该作者
每个行业都一样,想要一天学有所成是不可能的,一定要做好努力的准备,做ios不是简单的学会oc语言。不怕多走弯路,就怕不肯动手。
深爱那片海 该用户已被删除
16#
发表于 2015-3-29 14:11:57 | 只看该作者
首先是基础,在汉昌的课程非常全面。从object—c到最后的毕业项目,基本上方方面面都涉及到了,我是一名非计算机专业的学生,起初学习还有点吃力,因为基础知识薄弱。经常像听天书
飘灵儿 该用户已被删除
17#
发表于 2015-4-11 07:10:05 | 只看该作者
开始的时候甚至想放弃,不过想想自己的未来,只能咬牙坚持,课下就不停的缠着老师。放学就补基础,这些基础的东西没有速成的,只有刻苦努力。我是后来发现的,转变自己的心态,不要读书看资料当成一种痛苦
admin 该用户已被删除
18#
发表于 2015-4-14 05:42:26 | 只看该作者
培训的时候很痛苦,每天要待12个小时,上午讲课,下午和晚自习解决作业,看文档,学习的时候感觉就是资料太少,而且看着资料也不明所以,非常痛苦,
活着的死人 该用户已被删除
19#
发表于 2015-4-16 02:10:58 | 只看该作者
到大三时,学院与我去培训的机构成立了实习基地,并让我们寒假去实习了一段时间,感觉还不错,于是在大四的时候去培训了
谁可相欹 该用户已被删除
20#
发表于 2015-5-3 05:51:14 | 只看该作者
然而,在vmware软件环境下,安装Mac OS X操作系统也是一件非常复杂的事情,而且还有可能花费了大量时间,最后却跑不起来。笔者也是经过了大量的实践,
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-5-3 03:10

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表