Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.

TheLondonFella

Suspended
Original poster
Oct 6, 2014
430
266
Hello all,

I wonder if you may be able to help out a newbie, here?

I'd like to start developing apps.

Specifically for iOS devices.

Can anyone please recommend the "best" book, website, YouTube channel, tutorial videos etc for Swift?

I'm assuming it's best to jump straight into Swift, right?

I did some programming maaaaaany years ago (1989-1992!) while at college.

We covered BASIC, COBOL & Dbase.

But as I have said, this was a long time ago so I am basically starting from "new".

I kind of understand the concept of objects, and I know about if/else etc.

I believe that with the right material, I could really get back into this.

Anyway, I hope some of you may be able to offer some great advice/pointers which will enable me to be productive as soon as possible.

Thanks in advance ...
 
Not sure about swift resources.

If you're serious about it and do not know any languages, (as I was) read Objective-C and iOS programming by the Big Nerd Ranch. It'll take weeks, maybe months but then you'll have a good understanding of the language and know how to use the Developer Documentation to make use of the provided the Cocoa Touch objects in your own apps.

The transition to Swift will be easy then as you will be familiar with Cocoa.
 
teamtreehouse.com have a good swift course.

You don't need to learn Obj-C first, you will have to become familiar with it eventually though.
 
I would get a system setup (if you don't already) and run thru the iTunesU Stanford learning videos. At some point, I'd take the time to have a very good understanding of OO programming.

OO programming was not a part of the languages in that era that you mentioned and a good working understanding is important to advanced programming in iOS.

There's a big debate about ObjC vs Swift and very strong points on both sides.

IMO the debate for ObjC is stronger as we are some 7+ years into the whole iOS/App Store thing, and as apps get more advanced, few see an advantage to starting a new language this far in. Not to mention the code base of examples and routines already out there.

Part of this decision of where to start should include a goal. Making your own apps is very different from getting a good iOS job. Getting a good iOS job is an issue of number of years exp vs what the job market demand will be when you get there.

I also like the Lynda.com learning videos.
 
I found the stanford course to fast for me, at the time as I was a novice developer.

Objective-C by BNR, is an excellent, well structured introduction to OOP with a focus around Xcode and Obj-C.
 
I found the stanford course to fast for me, at the time as I was a novice developer.

Objective-C by BNR, is an excellent, well structured introduction to OOP with a focus around Xcode and Obj-C.

I've heard and I've seen a few of the other courses on iTunesU. I think Harvard had some. IIRC, there's all kinds of computer programming stuff.

Going from zero to ObjC is not so easy. OO takes time, programming takes time, iOS takes time, the API takes time, even Xcode take a bit.

Not the easiest job in the world.
 
Are you looking to make apps, websites, or games?

If you're looking to make games, learn Unity 3D instead. It's purpose made for making games and the games you make in it will be cross platform.

If you're looking to make websites, I suggest getting familiar with meteor.js.

If you still think you're looking to make an app, you're probably wrong - you probably want to make a website. Given the restrictions of the sandbox in iOS, I can't imagine many things that would actually be worth doing as a native app.
 
  • Like
Reactions: chinchillas
Than Stanford courses are of course good but I'm always amazed that people recommend them for beginners. Why would a complete rookie take a Stanford comp sci class that has a fair list of prerequisites.
 
Thank you so much for all of the great responses, fellas.

It's much appreciated.

I'll definitely check out all of your suggestions.

Have a great weekend :)
 
I found the stanford course to fast for me, at the time as I was a novice developer.

The Stanford course requires around 3 pre-requisite courses, which means the students who take it have already spent 100's of hours coding non-trivial problem sets in perhaps 2 other programming languages, before even looking at Swift or Objective C.

So go and do likewise. Your local library probably has 100's of books on beginning and intermediate (OOP and basic 2D graphics might be recommended) programming in dozens of programming languages.
 
Don't take an on-line course. The best way to learn programming is to get a tutorial book and I highly recommend Big Nerd Ranch series. Then get an idea for a project and start programming.
 
I don't know if it would be better to start a new thread or post here, but I'm trying to get started with iOS development and don't know where to start either.

I have a computer science degree and years of experience, but I've never done anything remotely like GUI programming. I've got experience at the hardware level (device drivers in C/embedded assembly), and lower level algorithm coding (in C++). I have a little bit of practice with event-based programming in visual basic and visual C from the 90's, so I get the general concept but it's too obsolete to be useful now.

Most of the resources I can find are for "non-programmers", and even the rest seem to be aimed at a different audience.

I will look at the Stanford lecture, but I generally prefer books where I can follow at my own pace more easily.
 
If you have a CS degree, then start with the Stanford iOS videos, and then look for intermediate/advanced iOS books with later chapters that cover the material in more detail. None of the advanced books are meant to be "followed". More for reference after you have an app idea already underway.

Or you can skim one of the intro books (from the library), and just skip the easy 80%.
 
I don't know if it would be better to start a new thread or post here, but I'm trying to get started with iOS development and don't know where to start either.

I have a computer science degree and years of experience, but I've never done anything remotely like GUI programming. I've got experience at the hardware level (device drivers in C/embedded assembly), and lower level algorithm coding (in C++). I have a little bit of practice with event-based programming in visual basic and visual C from the 90's, so I get the general concept but it's too obsolete to be useful now.

Most of the resources I can find are for "non-programmers", and even the rest seem to be aimed at a different audience.

I will look at the Stanford lecture, but I generally prefer books where I can follow at my own pace more easily.

I too came in with years of programming, but it was mostly Windows stuff.
I found the BNR (Big Nerd Ranch) books to be very good. Maybe start with the ObjC then iOS.

Another discussion is to pick ObjC or Swift. Yet another question is what kind of programming do you want to do. Games vs other. Games, I would go with Unity. Other, I would go with ObjC.

iOS dev is or has become kind of it's own world, just like the PC did. Best to find a direction that fits with your goal. I don't think I would bother with BNR or ObjC if I were to specialize in games.
 
I found the jump from C++ and the Windows API to OSX and iOS not very hard. Objective C is a very good easy to learn change and you can use your C knowledge with it. Personally I like it better than the MFC API.

As far as the whole GUI thing goes Apple has done a very good job of hiding all the processes in its Objective C classes and the XCode XIB and StoryBoard methods of building views is a whole lot better than the MS Visual product.

One of the nice things Object C does for you is memory management. The coder no longer has to de-allocate any of their objects because the Apple XCode compiler will take care of it for you.

Did I forget to mention the cost? To just practice program it is free for the complete XCode environment. Of course you will have to join the developer network for $100 a year to put apps on the App Store. The last time I looked the MS Visual Studio (the unrestricted version) costs about $400 and to put apps on their store one must also join the MS program.

As in all things I recommend just come up with a project and start coding away. By doing so you will work through the issues and find all the resources which can help you through your struggles.
 
So MS wants over $400 to join up? Wow, no wonder they are having problems. Given that and the cost of the test device, they are shooting themselves in the foot (not the 1st time).

Apple makes a better PC OS and made if free, they have the lions share of the market when compared to MS and they charge less.

Apple has native compiled apps, faster mobile OS, excellent security and simple quality product line. hmmmmm...

MS needs to wake up pretty quick here.
 
No it's not $400. to join, that's the cost of the full unrestricted Visual Studio Pro and I was wrong the price is $499. Unlike Apple they give away limited versions which really are there to wet that appetite. The MS App store program, like Apple, is about $100.00.

But there are many who use the free tools, but I found them to be so limited I got the VSP through a professional agreement with MS.

By the way, back in the day it was reversed, MS basically gave away their programming suite while Apple thought all their stuff was gold and charged like it was. Those were the days of the Motorola chip and such, before Objective C. There were also other programming suites for Windows and MSDOS like Borland and MS Quick C.

Today's XCode and the Apple API tools are a huge leap forward.
 
Last edited:
I too came in with years of programming, but it was mostly Windows stuff.
I found the BNR (Big Nerd Ranch) books to be very good. Maybe start with the ObjC then iOS.

Another discussion is to pick ObjC or Swift. Yet another question is what kind of programming do you want to do. Games vs other. Games, I would go with Unity. Other, I would go with ObjC.

iOS dev is or has become kind of it's own world, just like the PC did. Best to find a direction that fits with your goal. I don't think I would bother with BNR or ObjC if I were to specialize in games.

I looked at the BNR books yesterday for the first time after reading this thread. It looks like their latest edition of iOS programming is "Updated and expanded to cover iOS 7 and Xcode 5" from Feb 2014. I understand Xcode 6 was a pretty big change, and of course the book pre-dates swift.

Between Objective C or Swift, the syntax of ObjC really rubs me the wrong way so I'd probably go with Swift. Learning a programming language has never been a big deal anyway. I just pick up the basics as I use it over a few weeks and the details come as I need to do something and look up how.

Where I have trouble is trying to develop a program connected to its GUI, things like to storyboard, how it ties into my code, etc. All the things the books seems to gloss over by saying just click here, here, and here.

As far as direction, I really don't have anything in mind. I've never done game programming beyond the checkers in basic level. Now that I've found out how easy it is to get high quality royalty-free sprite, I do want to play around with some simple games, but that's just to see how works.
 
I looked at the BNR books yesterday for the first time after reading this thread. It looks like their latest edition of iOS programming is "Updated and expanded to cover iOS 7 and Xcode 5" from Feb 2014. I understand Xcode 6 was a pretty big change, and of course the book pre-dates swift.

Between Objective C or Swift, the syntax of ObjC really rubs me the wrong way so I'd probably go with Swift. Learning a programming language has never been a big deal anyway. I just pick up the basics as I use it over a few weeks and the details come as I need to do something and look up how.

Where I have trouble is trying to develop a program connected to its GUI, things like to storyboard, how it ties into my code, etc. All the things the books seems to gloss over by saying just click here, here, and here.

As far as direction, I really don't have anything in mind. I've never done game programming beyond the checkers in basic level. Now that I've found out how easy it is to get high quality royalty-free sprite, I do want to play around with some simple games, but that's just to see how works.

In that case, I'd skip that book until you find one that's for a newer version of Xcode. Xcode can take a bit to get a handle on. Getting the Stanford iTunesU videos would help and I understand they are in Swift.

One other issue to consider is are you going to write one main app or many apps. I see part of Xcode to be a layout or prototyping tool. If you are making just a few apps, laying out the screens would be a 1 time deal. It could depend on the app, but once your screens are setup, you might not need to change them for quite a while.

I'd also search YouTube and blogs for Xcode tutorials.

I've had great luck finding tutorials here: http://www.raywenderlich.com/ I bought one of his game books a while back.
 
Where I have trouble is trying to develop a program connected to its GUI, things like to storyboard, how it ties into my code, etc. All the things the books seems to gloss over by saying just click here, here, and here.

The magic (for Objective C iOS apps) happens in the Objective C runtime for object initialization, which is covered in several advanced books on Objective C. There currently seem to be no advanced books on the internals of Swift, but there are some blog posts deconstructing the magic. It's not something suitable for a beginning book, which is why the click, click, click gloss over descriptions.

According to multiple reports from experienced programmers, the bizarre syntax of Objective C looks bad for about 2 weeks of use, then suddenly starts reading as perfectly normal code, some even say more readable than C++ dots.

Also, this is extremely important, note that app development is not just programming. Programmers who try to just code iOS apps like they were just another program often end up with the ugliest near unusable apps that no normal human in their right mind would want to download and keep on their personal iOS device. So read up on UI and UX design, and if you are not artistic with a decent understanding of user psychology, hire a properly skilled or trained designer to help you with your icons and view layouts, colors, etc.
 
Great point on ObjC runtime. I'm reading "iOS 7 Pushing the Limits" right now and it's far, far beyond what's covered in BNR and any other books I've read so far.

The ObjC runtime is known as being very powerful. It takes a bit to understand, but IMO very important.

IMO, it's important to take the time to really understand the whole system.

One other argument for ObjC is the huge code base of proven routines to do so many things.
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.