
The best way to learn iOS Programming... well its working for me - kentf
https://plus.google.com/114373064968292928213/posts/52UL2K2DSQK
======
steve8918
To the OP, if you're there: Are you using XCode 3 or XCode 4? You referenced
the TBNR guide book, but from what I read, it doesn't handle the new changes
for Xcode. Did that cause any difficulties? (I was on the fence about buying
the book last night because it's the older version, but after the OP's
recommendation, I just bought it on Amazon).

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!

~~~
wiradikusuma
Haha, I also set learning iOS as one of my 2012 resolutions AND I also bought
TBNR after reading good reviews in Amazon. The 2nd edition covers Xcode 4 and
iOS 4 (a bit outdated, but my target market is iOS 4+ anyway).

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.

~~~
kentf
I really think you should stick it out and learn XCode. I am not a huge fan
wither, would rather use TextMate or BBEdit, but once you stick with it, you
will get there.

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.

------
phatbyte
For me delegations was fairly easy to understand, in a nutshell, you "borrow"
events from a class to be implemented and triggered by your own class.

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 ;)

------
epaga
A book I heard about via Matt Gemmell is "Learning iPad Programming" (Kirby
Turner, Tom Harrington) - it's really an excellent overview, explained by
programming a real-life iPad app step by step. Massive coverage of tons of
major topics. <http://www.amazon.co.uk/gp/product/0321750403>

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.

------
sumukh1
Good job! The goal is here is to keep pushing yourself. What will happen is
that the next app will build on the skills you learn in the current app and so
on.

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.

~~~
thefreshteapot
Having released my first app at the end of October, I can confirm building the
app is at the highest "only 50%". Having had very little interest for it.
(less than 10 buys) I now fully understand marketing has a much larger role
than a developer like me would have liked. 2012, I will learn iOS, yet I will
also learn marketing. My first app was created with Titanium too, yet I feel
it is important to learn iOS.

~~~
dolbz
Maybe you could tell us what your app is? I tried looking to your blog without
success. If I'd have found it you might have made another sale.

~~~
thefreshteapot
The name is "wordpoke". <http://itunes.apple.com/us/app/wordpoke/id471756627>

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.

~~~
epaga
Just a thought - the screenshots look really great, but you will definitely
want to write a much longer app description. I would NEVER buy the app based
on that description alone since it is $3 and I don't even fully understand
what it's for. Why would I want to be reminded of certain words? Is it like a
flashcard app?

------
ajays
I just can't break through delegation. Any suggestions? I do have many years
of programming experience (C, Perl, some JS), but can't quite grasp
delegation.

~~~
roel_v
It's an event system, what you would use function pointers for in C. I think
its clearer to be specific and call delegates 'an implementation of the
observer design pattern', rather than a design pattern in itself. Other
implementations include the class GoF way with subclassing, or typesafe
callback abstractions like libsigc or boost::signals in C++. In dynamic
languages you'd just store an array with strings of function names to call, or
object/method name pairs of methods to call.

~~~
cnunciato
Well said. Observer is how I got my head around it also.

------
stevederico
Great Job OP. I left my full-time job last year to become an iOS Developer.
Best decision I have ever made. IOS Programming Version 2 is the best book out
there, so you are on the right track.

I would also highly recommend the Stanford iTunes U Courses.
[http://itunes.apple.com/us/itunes-u/ipad-iphone-
application-...](http://itunes.apple.com/us/itunes-u/ipad-iphone-application-
development/id473757255)

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.

------
joeconway
I completely agree with the premise that once you get past the initial scare,
it really is very easy(assuming a programming background). I also set myself a
goal of submitting an app by a deadline. I got to the day of the deadline,
panicked because I hadn't submitted anything and wrote an app which totalled <
100 lines and took about 1.5 hours to write. 170k downloads later I'm
thoroughly proud of the truly awful app I've made. Really worth the time
investment both financially and emotionally

------
MaxGabriel
In your experience, does the BNR guide translate well into iOS 5 and Xcode
4.2's ARC?

~~~
kentf
Great Question.

Yes it does!

But I am not using Storyboards.

~~~
drtse4
I'm using the same book too, the next edition should come out sometime in
march and they also made a book about cocoa programming that follows the same
approach (it covers lion too).

------
wannalearnios
The real problem is not learning iOS, the real problem is unlearning all the
java you know lol.

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!

------
aaronbrethorst
Good luck! And check out <http://cocoacontrols.com/> (shameless plug alert,
etc)

~~~
omfut
Thanks for the link. I found some interesting controls.

------
jjluna
I'm a long-time Hacker News reader who signed up, finally, to post this
comment: What's this worthless post doing wasting my attention on Hacker News?

~~~
SafdarIqbal
iOS-specific tips aside, I found the post helpful for anybody looking to start
side-projects out of their comfort zone.

~~~
kentf
Thanks!

