只会前端开发的人怎样学iOS开发? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
iOS 开发实用技术导航
NSHipster 中文版
http://nshipster.cn/
cocos2d 开源 2D 游戏引擎
http://www.cocos2d-iphone.org/
CocoaPods
http://cocoapods.org/
Google Analytics for Mobile 统计解决方案
http://code.google.com/mobile/analytics/
WWDC
https://developer.apple.com/wwdc/
Design Guides and Resources
https://developer.apple.com/design/
Transcripts of WWDC sessions
http://asciiwwdc.com
Cocoa with Love
http://cocoawithlove.com/
Cocoa Dev Central
http://cocoadevcentral.com/
NSHipster
http://nshipster.com/
Style Guides
Google Objective-C Style Guide
NYTimes Objective-C Style Guide
Useful Tools and Services
Charles Web Debugging Proxy
Smore
bunorte
V2EX    iDev

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

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

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

    最后再推荐一个我最近关注的论坛: http://www.iphonedevsdk.com/
    chrisyipw
        2
    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
        3
    ewangke  
       2012-09-06 14:34:00 +08:00
    请问楼主会iOS开发的人怎么学前端?
    iOS我可以教你,但你要教我前端。:)
    Echoldman
        4
    Echoldman  
       2012-09-06 14:38:20 +08:00
    设备、社区、教程什么的 @chrisyipw @PrideChung 已经说的很明白了,但是要特别注意指针、内存管理、多线程,这些可能会被忽略。无论是引用计数和更高级的ARC,都要把原来搞明白。否则,后面可能会有无数的崩溃,但是却找不到原因。
    PrideChung
        5
    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
        6
    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
        7
    chrisyipw  
       2012-09-06 15:33:31 +08:00   1
    补充一下,@Echoldman 提到「指针、内存管理」的问题:

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

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

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

    iOS 开发和 Mac 开发差距大嘛?
    PrideChung
        10
    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
        11
    walkingway  
       2012-09-06 18:11:57 +08:00
    斯坦福老头的教程我看的是720P的+外挂字幕 http://www.cocoachina.com/bbs/read.php?tid=102265 是cocoachina网友自己翻译的,还行,比网易那个要好。配合英文字幕一起看足够了。
    foru17
        12
    foru17  
       2012-09-07 00:19:47 +08:00
    @PrideChung 两点之间,最短的线段飘过...........
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2510 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 32ms UTC 15:07 PVG 23:07 LAX 07:07 JFK 10:07
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86