学习 iOS 开发的小伙伴们,交流一下学习经验吧? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
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
hustlzp
V2EX    iDev

学习 iOS 开发的小伙伴们,交流一下学习经验吧?

  •  1
     
  •   hustlzp Jun 27, 2014 6178 views
    This topic created in 4327 days ago, the information mentioned may be changed or developed.
    之前一直在做Web,一直想接触移动互联网。一开始的时候是准备学习Android,但考虑到Android兼容性以及对Java的小白,后来就果断入了iPhone转投iOS的阵营了。我的目标比较明确,就是为自己的一个业余项目做一款App。

    我自己的一些策略:

    * 先学基于Obj-C的开发教程

    虽然Swift出来了,但毕竟框架本身的知识是逃不掉了的,Swift只是一种优雅的“表达方式”,无法从根本上降低门槛。以后再学Swift吧,学了重构Obj-C做的版本。

    * 看Big Nerd Ranch的电子书

    这个应该是公认的非常不错的教程,英文的看起来有点慢,最近也有点忙,所以断断续续地一直拖...每看一章就在XCode上跟着它的节奏敲敲代码,然后做一点笔记: http://wiki.hustlzp.com

    * 有选择的看:

    由于我要做的App v1.0版的功能非常简单,用到的特性很少,所以是挑着看,从头到尾地看速度有点慢。有些东西(比如Camera、手势、AutoLayout等)先跳过,以后需要的时候再去折腾这些东西。然后v1.0的核心是SQLite,所以CoreData部分得重点关注。

    * 中文书《iOS开发指南》

    买了本《iOS开发指南:从零基础到App Store上架》,这本书虽然网上吐槽的人很多,但挺全面的,可以看出作者在这方面的经验确实比较丰富,做个参考也好。

    希望能够在未来2个月的碎片时间中能够出第一个自己的iOS App。出了后就开始研究Design,然后购买开发者账号,然后尝试上架。再接着就是学习Swift,重构之。再接着就是出v2.0版,开始研究与Server的交互。

    V2的各位小伙伴们,相互交流一下学习经验吧?这样也少走一点不必要的弯路。
    Supplement 1    Jun 28, 2014
    @wezzard 刚刚入了开发者账号,感谢。
    44 replies    2014-09-04 17:48:28 +08:00
    blacktulip
        1
    blacktulip  
       Jun 27, 2014   1
    我觉得 cocoa 从 ObjC 入手和从 swift 入手应该都能学吧
    hustlzp
        2
    hustlzp  
    OP
       Jun 27, 2014
    @blacktulip 应该是的,只不过我是在简单的熟悉了Obj-C后,Swift才出了。习惯了Obj-C的语法,所以打算把Swift放在后面。
    dorentus
        3
    dorentus  
       Jun 27, 2014   2
    SQLite 和 CoreData 无关的啊,虽说好像 CoreData 底层是用的 SQLite,但是一般来说,你用 CoreData 的话就不会直接用 SQLite,用 SQLite 的话就不会去用 CoreData。
    qq2511296
        4
    qq2511296  
       Jun 27, 2014   1
    《iOS开发指南:从零基础到App Store上架》
    这本 你单纯看书会坑死的
    WildCat
        5
    WildCat  
       Jun 27, 2014   1
    http://www.appcoda.com/ios-programming-course/
    这个不错,英文不错的话可以看看哦。

    《iOS开发指南:从零基础到App Store上架》这本书还是可以看的,不过有的例子太大。

    我的见解是,OC看看语法就可以了,会用Swift调用OC即可,编码直接Swift吧。
    我也是新手,不过这里有大牛的看法:
    http://onevcat.com/2014/06/my-opinion-about-swift/

    Cool,我可以现在就使用 Swift 么?

    Swift 作为 Apple 钦定的 objc 的继承者,作为 iOS/Mac 开发者的话,是觉得必须和值得学习和使用的。现在 Swift 可以和原来的 objc 或者 c 系的代码混用(注意,不同于 objc 和 c++ 或者 c 在同一个 .mm 文件中的混编,swift 文件不能和 objc 代码写在同一个文件中,你需要将两种代码分开)。编译出来的二进制文件是可以运行在 iOS 7 和 iOS 8 的设备上的(iOS 6 及之前的是不支持的)。虽然我没有尝试过,但是使用新的 clang 对 swift 进行编译的 app 二进制包,只要你的 target 是 iOS 7 及以上的话,应该现在就可以往 App Store 进行提交。

    一个很好的消息是 Xcode 6 中应该是所有的文档都有 objc 和 swift 两种语言版本了,所以在文档支持上应该不是问题。而按照 Apple 开发者社区的一贯的跟进速度,有理由相信在不久的将来,Apple 很可能会果断 drop 掉 objc 的支持,而全面转向 swift。所以,关于标题里的这个问题的答案,我个人的建议是,尽快学习,尽快开始使用。如果你有一定的脚本语言的基础(Ruby 最好,Python 或者 JS 什么的也很不错),又比较了解 Cocoa 框架的思想的话,转型到新的语言应该完全不是问题。你会发现以前很多 objc 实现起来很郁闷的事情,在新语言下都易如反掌。我毫不忌讳地说,在 Apple 无数工程师和语言设计天才的努力下,Swift 吸收了众多语言的精华,应该是现在这个世界上最新(这不是废话么),也是最先进的一门编程语言(之一)了。而我认为,也正是 Apple 对这门语言有这样的自信,才会在这么一个可以说公司还在全盛的时候,不守陈规、如此大胆地进行语言的更换。因为 Apple 必定比你我都精于算计,切换语言带来的利益必须远大于弊端,才会值得冒如此大的风险。在这个意义上来说,今天的发布会就是程序开发业界的一枚重磅炸弹,也必将写入史册,而你我其实真的身在其中,变成了这段历史的见证者。


    需要注意的是,目前Swift编写的程序应该还不能提交到App Store,得等正式版Xcode发布才可以。
    kawhi
        6
    kawhi  
       Jun 27, 2014   1
    Swift 感觉语法比较亲近 Web 开发者,但现在 Swift 的系统教程还是比较少,确实觉得先弄 Objective-C 比较有效率。 感觉初学 iOS 最难得还是 cocoa 那块,objc 其实还好。。。

    我觉得斯坦福那个课程确实好,但个人感觉视频太拖节奏了,书又找不到太好的。习惯是每节课按照他给的 lecture notes 上面的重点去 Google。

    看到了一个斯坦福 iOS 课程不错的笔记(http://iiiyu.com/2012/02/28/learning-ios-notes-one/),可以参考~

    后面就是去网上找一些开源的应用看源代码,仿写之类的。现在只是看=.=

    其实我觉得最快的还是有个 idea 然后去实现,哪里不会就去搜相关内容学习,通过项目学习。可是暂时没啥具体的想法。。
    blacktulip
        7
    blacktulip  
       Jun 27, 2014   2
    反正我已经受够了 NSBlahBlah @".." [[[Blah alloc] init] whatever] 了,您们谁爱学就去学吧...
    hustlzp
        8
    hustlzp  
    OP
       Jun 27, 2014
    @dorentus 额...好像确实没什么关系。请教一下,我的App需要在程序中预先准备一个sqlite数据库文件(或者其他类型的数据源,类似一种preload),然后通过CoreData来操作它,请问这样做是比较好的做法吗?
    hustlzp
        9
    hustlzp  
    OP
       Jun 27, 2014
    @WildCat 非常感谢,看来我需要尝试用Swift来写代码了。
    hustlzp
        10
    hustlzp  
    OP
       Jun 27, 2014
    @blacktulip 额...Swift确实优雅,这几天研究下Swift。
    hustlzp
        11
    hustlzp  
    OP
       Jun 27, 2014
    @qq2511296 这样啊...好吧,我被坑了...
    hustlzp
        12
    hustlzp  
    OP
       Jun 27, 2014
    @kawhi 是的,我觉得Obj-C一天就可以了。
    hustlzp
        13
    hustlzp  
    OP
       Jun 27, 2014
    @kawhi 是的,我觉得Obj-C本身花不了太多时间,只不过语法有点怪。
    sd4399340
        14
    sd4399340  
       Jun 27, 2014
    在看斯坦福的视频~
    WildCat
        15
    WildCat  
       Jun 27, 2014
    @hustlzp 卧槽,HUST……
    HUST在V2的好多……说不定你就认识我喜欢的女孩子的男盆友233
    dorentus
        16
    dorentus  
       Jun 27, 2014   1
    @hustlzp 我没用过 CoreData,不过就你的这个描述看来似乎没啥问题。
    dorentus
        17
    dorentus  
       Jun 27, 2014   1
    @dorentus 不过稍微觉得有些奇怪……

    具体是什么样的数据要这样处理呢?
    hustlzp
        18
    hustlzp  
    OP
       Jun 27, 2014
    @dorentus 我想要做的App是我的一个个人项目: http://www.xichuangzhu.com 的手机应用,说白了就是浏览一些古诗词。现在实现了MySQL->SQLite的数据转换脚本,然后希望把生成的SQLite文件放到iOS应用中,直接读取显示就OK...
    refear99
        19
    refear99  
       Jun 27, 2014
    我觉得你书看的太多了,直接开始做你的项目就可以,按钮不会加?颜色不会改?大小不会调?这时候再书+google
    hustlzp
        20
    hustlzp  
    OP
       Jun 27, 2014
    @WildCat 我去,哥们,你这情况我能理解...有机会追过来不...
    hustlzp
        21
    hustlzp  
    OP
       Jun 27, 2014
    @refear99 你说得对,我也意识到如此,今天就开始建工程写代码了: https://github.com/hustlzp/xichuangzhu_ios
    tylr
        22
    tylr  
       Jun 27, 2014
    @refear99 同意,看一半书,接着开干,Google your way out,做了一两个实际应用后再回去把书看完,我就是这样过来的
    WildCat
        23
    WildCat  
       Jun 27, 2014
    @hustlzp 嘿嘿,多年的好盆友,我自己折腾好几年没上学,现在她大三我大一啦。只能祝福她啦=。=
    她男票貌似学电子商务?您呢?
    hustlzp
        24
    hustlzp  
    OP
       Jun 27, 2014
    @WildCat 我专业是光电,被这专业坑哭了...毕业转互联网。
    WildCat
        25
    WildCat  
       Jun 27, 2014
    @hustlzp 哈哈,GL GG
    heqichang
        26
    heqichang  
       Jun 27, 2014
    我从这月也刚开始接触ios开发,最开始拿着的一本 objective-c的基础教程 把oc给大致看了一遍,然后开始看一本matthew knott的 beginning XCode 的书,照着里面的事例开始做ios,开发者账号我从开始学就购买了,也许我比较急着看真实的效果。不过本人比较懒,现在也还没开始做出个啥。。。
    dorentus
        27
    dorentus  
       Jun 28, 2014 via iPad
    @hustlzp 那这方案完全 OK。
    icyalala
        28
    icyalala  
       Jun 28, 2014
    当你写swift,遇到问题上网查的时候,发现全是objc的资料。。那就呵呵呵。。
    这几年内objc不会被抛弃的,大量的书籍、资料、第三方库仍旧是objc。如果你的目标是尽快实现App功能,那还是集中精力从oc学起吧。尽快实践和上手项目,需要什么的时候再去翻文档,这样会比较节省时间。

    未来这几年oc和swift会并行前进,所以这段时间的从业者就需要掌握两门语言,不然别人写的东西看不懂会很麻烦。。
    icyalala
        29
    icyalala  
       Jun 28, 2014
    另外,关于数据那块儿,既然都决定用sqlite了,那就没必要用CoreData了。
    https://github.com/ccgus/fmdb 用这个访问sqlite会省事很多。
    blacktulip
        30
    blacktulip  
       Jun 28, 2014
    @icyalala 我倒是有不同意见。首先,就以 iOS 开发者和教学者的基数来看,书籍资料,网络资源都是不用愁的,时间自然要等,但是肯定不会是几年,也就是一年,顶天两年的事情。我认为近几个月就会有一大批资料出来;其次,第三方 ObjC 库是能直接用的,学个调用不难吧,这完全不是问题;第三,您可能低估了大家伙儿对 ObjC 的不满情绪,都被折腾多久了,现在好不容易能解脱,我看大家迁移的速度会非常快的。
    dorentus
        31
    dorentus  
       Jun 28, 2014 via iPhone
    Swift 现在资料不多只是因为 1)本身还不是正式版,开发工具也还不稳定 2)iOS 8 beta SDK 还受 NDA 限制…
    artwalk
        32
    artwalk  
       Jun 28, 2014
    BNR 一天十几个番茄,5天就可刷完
    hustlzp
        33
    hustlzp  
    OP
       Jun 28, 2014
    @artwalk 还从没试过番茄工作法~
    allenforrest
        34
    allenforrest  
       Jun 28, 2014
    follow 楼主,刚在 amazon 入了 kindle 版本的 iOS BNR,开始苦读。
    WildCat
        35
    WildCat  
       Jun 28, 2014
    @allenforrest Amazon中国区貌似买不到啊,求入手方法
    wezzard
        36
    wezzard  
       Jun 28, 2014   1
    建先iOS者目,因可以真,真和模器的感是不同的,而且iOS7以後Core Animation的在模器和真上不一,本模器就法真反映程序在真上的形性能,iOS 7以後更加了。
    另外模型建使用CoreData,iOS 8的Core Data增了多。利用iOS8新增的API,以前20000更新在Mac上做要9秒,在只需要0.7秒。使用Core Data能利用iCloud,但是SQLite的你要自己解端更新的。如果你想9月之前就用到iOS 8的新API,那入手iOS者目就更理所然了。
    allenforrest
        37
    allenforrest  
       Jun 28, 2014   1
    @WildCat Amazon 中国区有 NNR 的中文版本实体书(无 kindle 版),但是是第三版,最新的第四版只有美区才有实体书和 kindle 版。

    你注册个 Amazon 美区帐号就能买了啊,支付可以用信用卡或 paypal。

    买好以后,kindle 登录美区帐号就能看到推送下来的书。
    WildCat
        38
    WildCat  
       Jun 28, 2014 via iPhone
    @allenforrest 美区Amazon账号登录后是否会冲掉中国区的书?另外能否透露下这本书kindle版的价格?
    hustlzp
        39
    hustlzp  
    OP
       Jun 28, 2014
    @wezzard 感谢,原来iOS8的改进如此之大。我会在下个星期把开发者账号买下。
    allenforrest
        40
    allenforrest  
       Jun 28, 2014 via iPhone   1
    @WildCat 对,切换账号会冲掉已经下载的书,但云端的不受影响哈,下次再切回来重新下载就好。价格是22.9刀
    railgun
        41
    railgun  
       Jun 30, 2014
    多看苹果的文档
    kobe1941
        42
    kobe1941  
       Jul 8, 2014
    @qq2511296 我买了这本书,真想退给关东升,他的确懂ios,但是不懂市场定位.这本书对于新手来说太难,对于已经入门的人来说太浅,书涵盖的内容多但是都是随便讲讲而已,而且大量用到了xib和StoryBoard.一本鸡肋书,还定价死贵死贵.
    hustlzp
        43
    hustlzp  
    OP
       Jul 8, 2014
    @kobe1941 是的,坑死...
    hanangellove
        44
    hanangellove  
       Sep 4, 2014   1
    IOS开发指南,我觉得那本书不咋地,更像是把网上的东西copy一下装订成书!!!!
    About     Help     Advertise     Blog     API     FAQ     Solana     1167 Online   Highest 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 138ms UTC 17:16 PVG 01:16 LAX 10:16 JFK 13:16
    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