The best way to learn iOS Programming... well its working for me
plus.google.com
plus.google.com
I'm doing the same thing as the OP, starting around the same time, except I quit my job to take a break. And admittedly I'm spreading myself out pretty thin because I'm also trying to learn and get pretty knowledgable in Javascript and Python.
I have to say that learning iOS programming is very hard for me, mainly because I have almost no GUI experience. I did a bit of Win32 MFC programming about 15 years ago, so some of the concepts aren't completely foreign, but they might as well should be in some cases.
XCode is a terrible IDE and the error messages I've encountered are amongst the worst I've come across. I figure it will take time to internalize this stuff, but I can tell you it is fairly painful at the beginning stages!
I am happy to talk / vent about iOS programming with you. I know it's frustrating, but please stay with it.
I think they key is to use the book as inspiration but not as Gospel. I found that some of the interface things in the book didn't mesh with the new XCode. I had to play around until I figured it out.
I am happy to chat with you anytime about it, providing you catch me on Skype. My skye id: is kent.fenwick
Also, message me on Twitter and we can arrange a time to talk about it. I don't have all the answers, but I feel your pain and think I can give you some good pointers.
Good luck Steve!! All the best,
Kent
The shameful thing is, I haven't read the book yet, and instead go with Titanium since I'm more familiar with JavaScript (not really, but better than zero experience with Objective-C). It's been a couple of days, and things are doing good (but debugging sucks).
I eventually will learn iOS/Objective-C, but since I come from Java, and I don't like Xcode (I've played around a bit) I will most likely use AppCode from JetBrains.
If we do the things we have to do long enough, the day will come when we will get to do the things we want to do.
BTW, I am also new to MAC platform and sometime finding using the MAC itself is tedious. I use windows at work and was using Linux at home. Now using mac at home.
For me, the worse part of Objective-C was memory management, the rules are simple if you alloc you must dealloc, but memory leaking was always a problem, but now we have ARC and it free us from this.
What I would really like to know, and I've never seen it in a book/tutorial explaining in detail, is, how do you skin or create costume buttons for your interface.
How do you create/code an interface like http://dayoneapp.com/ ? I don't mean the graphics, but how to implement a template or design.
If any of you know, it would be awesome ;)
Also, as others mention, the Stanford lectures are awesome, especially combined with the iTunesU iPad app.
And finally, for me the breakthrough into iOS programming came when I went to a hackathon and pair programmed with a total iOS pro, I learned WAY more in a few hours than I did reading a bunch of tutorials.
Once you finish your first app, I'd look into some open source projects and see how they are built and learn from them. It accelerates your learning, but you need the basics first.
TBNR and the iOS Docs are a great place to start, but there's nothing like just jumping right in. :)
Also a word of advice: Making the app is only 50% of the work if you are expecting to make significant income from the app.
I use the app every day as I built it for me first, the internet second.
A blog post is in draft, waiting the "first update" as its all part of the learning curve I wanted to cover in my journey into iOS development.
A new update to the app will be arriving within 10 days, Apple willing. ( It was interesting to learn how to tackle upgrades to the database. )
Issues can be reported and progress can be viewed: https://github.com/freshteapot/wordpoke/issues
New features are not on that list.
The webpage for "wordpoke" is http://wordpoke.me
On the way to work, I realised I should and now will add it to my profile.
I agree on the 50% part. I am ready to my part on the next 50%!
Delegation is a design pattern in which one object sends messages to another object that has been specified as its delegate, to ask for input or to notify the delegate that an event is occurring. The delegate object responds to these messages in a custom way. Delegation is a common design pattern in Cocoa Touch apps because it allows you to provide custom behavior without having to subclass and override the methods of a complex framework object, such as UIApplication.
It's probably confusing, really, to read about the delegation "design pattern" as on Wikipedia. Instead, it's mostly just a way to avoid subclassing: specify another object, the "delegate", to provide the information or react to an event, rather than do something like subclass and override specific methods for an event.
I hope that helped, maybe a tiny bit. If not, here's a +15 voted answer on Stack Overflow about it: http://stackoverflow.com/a/1792862/188512
You have this friend, lets say his name is Steve. Steve is a really good guy, and usually excited to hear about what you're working on - and to help out, if he can. He also happens to be really smart and knows everything about everything. He read the dictionary when he was young and continues to read wikipedia daily. So you talk to him when you need to do something[1]. Or maybe you did something and are really excited about it[2]. Perhaps you're about to do something and just need that one last piece of the puzzle before you can finish it up[3]. And if you're unsure about if an idea is worth perusing, Steve is the right person to talk to[4].
Another reason why you're such good friends with Steve is that he is an animal lover and has promised that if you ever call on him to watch your dog because you just need to take a vacation for a weekend, he will watch your dog[5] for you. Since Steve is an animal lover, he might also be able to watch your pet ferret[6]. However, Steve is allergic to cats, and much to his dismay, he cannot watch your cat for you. But, you understand. You can post a notification on Twitter to ask all your other friends if any of them can watch your cat for you[7, 8].
Steve is a delegate. There's only one of him. You only need one.
[1-4]. Some examples of when you would use a delegate
5. Protocols can have some methods that their delegate is required to implement, and the compiler will error if they are not implemented.
6. Some methods are optional to implement.
7. Since a method can be optional, it might not be implemented.
8. Notifications are another way for objects in Objective-C to talk to one another. Instead of a 1:1 mapping, they are a 1:Many mapping.
Object A is going through its life cycle, doing what it does. Certain events there trigger delegate messages. Object B, A's delegate, receives these and does things, or not, as desired, based on the event.
To delegate is to give responsibility to a subordinate. That's what you are doing; giving some control to a owning class. (not superclass)
I would also highly recommend the Stanford iTunes U Courses. http://itunes.apple.com/us/itunes-u/ipad-iphone-application-...
If you are using Xcode 4.2 the differences from the iOS Programming book are kinda tricky. I plan on posting the updated steps in the coming weeks. In the mean time, feel free to reach out to me at Steve @ Bixbyapps.com.
Thanks OP and Congrats.
Yes it does!
But I am not using Storyboards.
After you are done try learning C pointers first.
Sorry but I have to vent out my frustration of reading and fixing pathetic Objective C written by java programmers!
Basically HN readers post articles, and then vote on them. Crazy, I know, the kids these days. Anyway, that's how this article got on Hacker News, and that's why nobody gives a flying duck about your "attention being wasted".
Thus, your sense of entitlement is extremely arrogant, not to mention that your comment was rude. Besides forgetting that HN offers what the HN readers vote on, you also forget that you are perfectly free to skip anything you don't like.
You have missed an important point about HN -- the comments are usually more interesting than the articles. I have up voted lots of meh articles for the comments.