只会前端开发的人怎样学iOS开发?

2012-09-06 13:57:01 +08:00
 bunorte
就会点前端的HTML,CSS,jQuery之类的东西,如果想学iOS开发的话,要怎么做?是不是首先要买台苹果电脑?
6219 次点击
所在节点    iDev
12 条回复
PrideChung
2012-09-06 14:20:21 +08:00
是的,买台Mac是肯定的,除非你有那心思去折腾 Hackintosh。然后不用说了就是看右侧的资料。
我再推荐一点教学视频,一个是Stanford老头的公开课视频,iTunesU上就可以下载到,免费。不过因为是上课的录像,讲得有点罗嗦。另一个是 Lynda.com 的 iOS SDK Essential Training,典型的收费教学视频,简单明快,不过需要 $25/月,如果实在不想花钱,VeryCD上面有下载,但是貌似是11年的旧版,可能会脱节。

无论如何,不推荐看iOS5之前(2011年10月以前)的资料来入门,iOS5以后出现了相当多有用的新特性,例如新项目默认启用ARC自动引用计数,现在可以不用自己手工写内存管理的代码,要是还跟着旧的教学资料写手工管理内存的代码,甚至连编译都无法通过。

最后再推荐一个我最近关注的论坛: http://www.iphonedevsdk.com/
chrisyipw
2012-09-06 14:29:58 +08:00
理论上可以弄一台黑苹果,不过建议买一台 Mac 吧,2009 年起产的 MacBook Air/Pro 都满足 iOS 开发,囊中羞涩的找一台二手的就可以,尽量找新产的。如果是想要 Pro,那就更应该找二手的,因为不少人都升级了 SSD,比新的再升级 SSD 要便宜不少。

然后就找一本薄的入门书看看吧,里面的开发技巧可以无视,因为很多都过时了,主要是快速了解 OS X 和 Xcode 的简单使用,之后去苹果开发者社区看文档、看 sample code,很快就会。

因为你是从前段开发过来的,建议先从 UIWebView、PhoneGap、jQuery Mobile 有关的东西入手,有需要再慢慢脱离 HTML 迁移到 Objective-C 的开发。
ewangke
2012-09-06 14:34:00 +08:00
请问楼主会iOS开发的人怎么学前端?
iOS我可以教你,但你要教我前端。:)
Echoldman
2012-09-06 14:38:20 +08:00
设备、社区、教程什么的 @chrisyipw @PrideChung 已经说的很明白了,但是要特别注意指针、内存管理、多线程,这些可能会被忽略。无论是引用计数和更高级的ARC,都要把原来搞明白。否则,后面可能会有无数的崩溃,但是却找不到原因。
PrideChung
2012-09-06 14:46:53 +08:00
@chrisyipw 我觉得PhoneGap那一类Hybrid App SDK根本就不算是iOS开发,只不过是把Web开发延续到了iOS系统上。无论是iOS还是Android,我都是提倡一上来就学Objective-C/Java,别去折腾那些二奶SDK和二奶语言,例如什么Corona,那些东西都是用来加快开发速度或者实现跨平台的,但文档少例子少,出了点问题连问的人都找不到,对系统不熟悉学这些东西只会更头大。
总是有类似的问题 “我想学Ruby On Rails,是不是先要学PHP?" 然后就扯着扯着就扯到了计算机导论,这又不是大学选课还有个先修课程。LZ既然是个前端攻城狮,基本的编程素养肯定是有的,没必要绕圈子,两点之间有比直线还短的么?
chrisyipw
2012-09-06 15:25:32 +08:00
@PrideChung ObjC 是可以和 JS 交互的,对于__前段开发__背景来说,PhoneGap 之流是很好的切入点,简单的成品,会有成就感以支持深入学习。

至于(HTML5)算不算 iOS 开发,见仁见智,我是认为 iOS 开发不是局限于 Objective-C,而是指任何为 iOS 服务的产品,至于是 ObjC 还是 RubyMotion 亦或是 HTML5,并不是重点。

另外「LZ既然是个前端攻城狮,基本的编程素养肯定是有的」,不敢同意,前端里懂 jQuery 和懂 JavaScript 是两码事,前者更多是 DOM、Ajax 的处理,是 JS 的库(类似你说的二奶 SDK),后者才有可能扯上算法等编程基础,然而 LZ 只提了 jQuery,因此我才推荐把 PhoneGap 作为转换的切入口。

PS:二奶 SDK 我深感同意,第一个用 PhoneGap 的 iOS 项目是想方便跨平台迁移,撑不到一周立刻回去 ObjC 开发。但是二奶语言就不同意,看了 RubyMotion 是真的觉得很赞,可惜价格太坑爹……
chrisyipw
2012-09-06 15:33:31 +08:00
补充一下,@Echoldman 提到「指针、内存管理」的问题:

指针其实还好,一般 Xcode 都会给出警告,把警告信息在 stackoverflow 搜一下基本可以解决,千万不要想成是 C/C++ 那种难以操控的指针。

内存管理,有用 ARC 的话,跟着官方文档走就可以了,Xcode 有分析的功能,可以分析哪里有潜在的问题,需要注意的是 Core Foundation Objects,比如 CFArray、ABRecord 等,这些都要手动维护,如果是想做一个动用系统资源的 app,就必须去看看,比如通讯录的记录就会用到 ABRecord。
walkingway
2012-09-06 16:32:07 +08:00
还是先从基础的object-c学吧,object-c的书都是手动管理内存为主的,虽然有ARC了,但了解下内存管理也没坏处,打基础么。一楼说的iOS SDK Essential Training verycd上已经有2012年的版本了,我看过,网上有英文字幕,讲的还是挺清楚的,还有斯坦福老头的视频中英字幕貌似都有了。

当然跟着自己做一个东西出来也是很必要的。
Numbcoder
2012-09-06 17:12:02 +08:00
@PrideChung
@chrisyipw
@walkingway
感谢你们了!

iOS 开发和 Mac 开发差距大嘛?
PrideChung
2012-09-06 17:43:07 +08:00
@walkingway 不推荐看旧的教程就是因为手动管理内存这部分,要是在不了解ARC的情况下用最新版本的Xcode新建项目,然后跟着那些旧教程一样[xxx retain] [xxx release] 肯定是要吃瘪的。现在有了ARC这种逆天的玩意,内存管理作为进阶内容迟些再学也没问题,有个基本概念就够了。

另外网易公开课的中文版真心不推荐看,翻译那什么东东,第一集前半段还有模有样的,后面一讲到语法 @interface,@implement 等关键字,居然直接给翻译成 @接口 @实现 @属性 @综合 @结束……好几次把class(类) 翻译成了”课程“还是”上课“什么的,不知道是字幕君本身非IT专业还是谷歌娘的卖萌渣翻,总之还不如直接在iTunes上下了啃生肉。

@Numbcoder iOS和Mac主力编程语言都是Objective-C,Foundation,Cocoa等基础的框架也通用。当然在Mac上的选择余地更大,你可以用wxPython等跨平台GUI库,使用Python来写程序。其他差别主要是在系统提供的API,界面开发,和系统环境上了,Mac App可以在后台运行,不是在Appstore发布的App不用被沙盒限制等等,差距还是有的。
walkingway
2012-09-06 18:11:57 +08:00
斯坦福老头的教程我看的是720P的+外挂字幕 http://www.cocoachina.com/bbs/read.php?tid=102265 是cocoachina网友自己翻译的,还行,比网易那个要好。配合英文字幕一起看足够了。
foru17
2012-09-07 00:19:47 +08:00
@PrideChung 两点之间,最短的线段飘过...........

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/47052

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX