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

2014-06-27 20:36:48 +08:00
 hustlzp
之前一直在做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的各位小伙伴们,相互交流一下学习经验吧?这样也少走一点不必要的弯路。
5661 次点击
所在节点    iDev
44 条回复
blacktulip
2014-06-27 20:41:47 +08:00
我觉得 cocoa 从 ObjC 入手和从 swift 入手应该都能学吧
hustlzp
2014-06-27 20:43:22 +08:00
@blacktulip 应该是的,只不过我是在简单的熟悉了Obj-C后,Swift才出了。习惯了Obj-C的语法,所以打算把Swift放在后面。
dorentus
2014-06-27 20:47:30 +08:00
SQLite 和 CoreData 无关的啊,虽说好像 CoreData 底层是用的 SQLite,但是一般来说,你用 CoreData 的话就不会直接用 SQLite,用 SQLite 的话也就不会去用 CoreData。
qq2511296
2014-06-27 20:54:50 +08:00
《iOS开发指南:从零基础到App Store上架》
这本 你单纯看书会坑死的
WildCat
2014-06-27 20:58:01 +08:00
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
2014-06-27 21:01:40 +08:00
Swift 感觉语法比较亲近 Web 开发者,但现在 Swift 的系统教程还是比较少,确实觉得先弄 Objective-C 比较有效率。 感觉初学 iOS 最难得还是 cocoa 那块,objc 其实还好。。。

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

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

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

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

具体是什么样的数据要这样处理呢?
hustlzp
2014-06-27 21:58:43 +08:00
@dorentus 我想要做的App是我的一个个人项目: http://www.xichuangzhu.com 的手机应用,说白了就是浏览一些古诗词。现在实现了MySQL->SQLite的数据转换脚本,然后希望把生成的SQLite文件放到iOS应用中,直接读取显示就OK...
refear99
2014-06-27 22:00:25 +08:00
我觉得你书看的太多了,直接开始做你的项目就可以,按钮不会加?颜色不会改?大小不会调?这时候再书+google
hustlzp
2014-06-27 22:00:54 +08:00
@WildCat 我去,哥们,你这情况我能理解...有机会追过来不...

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

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

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

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

© 2021 V2EX