TE
科技回声
首页24小时热榜最新最佳问答展示工作
GitHubTwitter
首页

科技回声

基于 Next.js 构建的科技新闻平台,提供全球科技新闻和讨论内容。

GitHubTwitter

首页

首页最新最佳问答展示工作

资源链接

HackerNews API原版 HackerNewsNext.js

© 2025 科技回声. 版权所有。

Ask HN: Experienced programmer, beginner to iOS (objective-C). Where to begin?

29 点作者 architgupta大约 13 年前
What is the quickest way for an experienced programmer to come up to speed on iOS?<p>Looking for recommendations on a good book, tutorials. Pointers to good repositories on github also appreciated. I have started reading open-source code from some apps.<p>I want to write an app which needs custom UI elements (going beyond XCode's available UI elements). An example: a flipboard like app. No game dev.<p>- I am comfortable in C, C#, Python. I can write Javascript when needed for my web-apps.<p>- NO experience with Objective-C. Fairly comfortable with ANSI-C.<p>- I have written web-apps: HTML, CSS, JS as needed.<p>- I have written desktop apps: So, I am familiar with how to use available UI elements with code behind.<p>I see clutch.io, RubyMotion, MonoTouch as options too. Any feedback from folks on these?

12 条评论

reidmain大约 13 年前
I was two years out of school working on C# and WPF when I was tasked with writing an iOS app. My first steps to gain knowledge of the syntax/structure/etc of the language was to watch the Standford CS139p lectures (<a href="http://itunes.apple.com/itunes-u/ipad-iphone-application-development/id473757255" rel="nofollow">http://itunes.apple.com/itunes-u/ipad-iphone-application-dev...</a>). I only had to watch the first six or so before I had a good knowledge of the language and the starting point of UIKit. From that point I just started brute forcing it.<p>Reading Apple's documentation was the fastest way for me to ramp up and they actually include a lot of really useful examples. Even lower level things like CoreGraphics have some in depth examples which will probably be what you need for your "Flipboard" like interactions.<p>Because I do so much iOS dev I have my own "library" I now use for every project. But it was cobbled together over a couple years and inspiration was taken from many open source projects.<p>I probably learned the most from Jeff Verkoeyen's GitHub projects, his Nimbus framework being one of the best <a href="https://github.com/jverkoey/nimbus" rel="nofollow">https://github.com/jverkoey/nimbus</a><p>If you need to make web requests in your app (which basically every app should) ASIHTTPRequest is an interesting framework. <a href="https://github.com/pokeb/asi-http-request" rel="nofollow">https://github.com/pokeb/asi-http-request</a>. I took the idea behind this and distilled it down to something that was much simpler which is what I needed. ASIHTTPRequest is sorta the kitchen sink of web request clients.<p>If you need a relational database in your app, sqlite is a simple include away. There are a lot of wrapper frameworks out there but I didn't use any of them. I wrote my first app directly accessing the C API and then wrote my own wrapper framework for it. Because I had never used SQLite before needed it in iOS it helped me learn a lot more about it.<p>If you need to store username/password/token/etc for the love of god don't make the novice mistake of saving to NSUserDefaults. Save to the Keychain <a href="https://github.com/reidmain/FDKeychain" rel="nofollow">https://github.com/reidmain/FDKeychain</a><p>One thing I'd point you to is my collection of Categories and Macros that I put into every project <a href="https://github.com/reidmain/Objective-C-Categories-and-Macros" rel="nofollow">https://github.com/reidmain/Objective-C-Categories-and-Macro...</a>. Specifically pay attention to FDIsNullOrEmpty, NSObject+PerformBlock, UIView+Layout. I use these categories so much that I always include them in my precompiled header file.
评论 #3935066 未加载
评论 #3935081 未加载
speg大约 13 年前
I am going through the exact same thing. Last weekend I decided iOS would be my project for May and started digging in.<p>There is a TON of information out there. Too much. Most of it is outdated, and while the Apple documentation is a great resource, it is just not structured in a way for beginners.<p>Enter the Big Nerd Ranch.<p><a href="http://www.bignerdranch.com/book/ios_programming_the_big_nerd_ranch_guide_nd_edition_" rel="nofollow">http://www.bignerdranch.com/book/ios_programming_the_big_ner...</a><p>I think I got the kindle version for $22. It is perfect. Just released a little over a month ago, it uses Xcode 4.3. The first few chapters have no iOS stuff as they bring you up to speed on Obj-C and from there you start building the bases of iOS.<p>I love that they make you strip out all the code from the iOS templates and make you do it yourself. It really is a structured learning experience rather than just an information dump.<p>I'm only about 1/3 the way through so far - but so far it's been exactly what I needed.
评论 #3935210 未加载
checker659大约 13 年前
Read the docs from Apple. Believe or not, they are the best resources for an experienced developer. Start with the Objective-C 2.0 book/entry. Then, go from there.<p>Of course, if you didn't say you were experienced, I'd have suggested that you start with the (what now must be like a) gazillion different apress/o'reilly books on the topic.<p>Good luck!<p><i>The book: <a href="https://developer.apple.com/library/mac/documentation/cocoa/conceptual/objectivec/objc.pdf*" rel="nofollow">https://developer.apple.com/library/mac/documentation/cocoa/...</a>
keiferski大约 13 年前
Stanford's course is often recommended. I just started going through it myself.<p><a href="http://itunes.apple.com/us/itunes-u/ipad-iphone-application-development/id473757255" rel="nofollow">http://itunes.apple.com/us/itunes-u/ipad-iphone-application-...</a>
评论 #3935015 未加载
octopus大约 13 年前
For your level of experience I would go would go with Kochan - <i>Programming in Objective-C</i> 4th edition.<p>There is also a free course for iPhone programming from Stanford (video lectures).<p>MonoTouch is a good alternative if you prefer to use C#, but you will need to pay 99$/year to Apple + 399$ for Monotouch. The good thing is that you can evaluate MonoTouch and pay after you are comfortable with the tool.<p>RubyMotion is too young to be used in a large application. Also learning Ruby and Cocoa in the same time can be difficult. I think RubyMotion is a good fit for an experienced Ruby programmer that wants to start coding on iOS. Another potential problem with RubyMotion is that it is currently developed by a single person, which can be problematic on long term.<p>That been said, muy advice is to go on the Objective-C route since you are already comfortable with C. Objective-C is a small language and an experienced C programmer can be up to speed in a matter of days.<p>The real challenge is in learning the iOS libraries and not the programming language.
评论 #3934977 未加载
officialchicken大约 13 年前
I'd say there's no quick way to do it, the message passing of obj-c is very different than the event-based slots &#38; signals programming you are used to. And that's before the hell-which-is-InterfaceBuilder. Since you already familiar with programming, I'd suggest the Big Nerd Ranch guides at bignerdranch.com<p>Most online examples won't give you the details about the important stuff - single inheritance vs. categories, delegates and message passing in the runtime, extending a protocol, etc. You may see it in the code, but there won't be any theory or reasoning behind it to help you.<p>As a side note, you can track your learning progress by how much you hate XCode with specific examples of how it ruined your day.<p>Can't speak to clutch.io, but the other 2 just seem to get in the way of someone who already knows Ruby, C#, and obj-c. Do you really need another layer of abstraction if you want to learn something at a lower level?
评论 #3935039 未加载
gdubs大约 13 年前
Big Nerd Ranch guides are indispensable. Written by someone who was involved with NextStep very early on.<p>Watch the Wwdc videos, starting at 2010, and following with 2011.<p>Use ARC.<p>Pay attention to the Wwdc videos on core animation.<p>Spend time learning about delegates.<p>Don't shy away from Interface Builder.<p>Check the header files when documentation seems incomplete. They are a great resource.
评论 #3935806 未加载
codercowboy大约 13 年前
I was more or less the same as you, Java instead of C#. Built some of the apps on <a href="http://www.codercowboy.com" rel="nofollow">http://www.codercowboy.com</a> in a few weeks with help from this book, very highly recommended:<p>The iOS 5 Developer's Cookbook by Erica Sadun<p><a href="http://www.amazon.com/The-iOS-Developers-Cookbook-Programmers/dp/0321832078/ref=sr_1_1?ie=UTF8&#38;qid=1336371521&#38;sr=8-1" rel="nofollow">http://www.amazon.com/The-iOS-Developers-Cookbook-Programmer...</a><p>A few (three or four) zero-to-go chapters in about 50 pages, then entire chapters dedicated on various chunks of the IOS objective-c library. Perfect.
perezda大约 13 年前
Start with the Stanford course. It's the best free resource out there. Find a local meetup. Go to a couple hackathons.<p>re: other comments -<p>Apple's docs aren't great, in fact I hate them. Haven't put my finger on why.<p>I like some of the controls at <a href="http://cocoacontrols.com" rel="nofollow">http://cocoacontrols.com</a><p>I wouldn't start with Arc. Especially since you're comfortable in C.
评论 #3935137 未加载
0xSina_大约 13 年前
Started iOS dev about a year ago. Hvaent written dozens of apps some with very custom UI elements. Don't bother with clutch.io/rubymotion/mono touch. Learn the raw Objective-C/Cocoa-Touch APIs. Especially for something UI intensive like flipboard. Check out Standford iOS programming lectures. They are on Youtube and iTunes (for free).
micro-ram大约 13 年前
Going down the same road myself. Here is my page of links (<a href="http://iosln.com" rel="nofollow">http://iosln.com</a>)
enobrev大约 13 年前
I keep getting stopped up at the first step: Buy an Apple Computer. If I can ever build IOS apps on Linux, I may move on to step two.
评论 #3935093 未加载