Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.
For the new coders, my piece of advice:

Learn the code however you wish, but learn structure, and sometimes just thinking things out will help you greatly. When I realized I want my code to be as reusable as much as possible, things opened up quite a bit.

Learn at least 2 languages as well. Then you'll see common trends as well.

Swift by the way is going to actually help us write our Android code a lot faster. Proper planning pays off a lot of dividends rather than just bluntly going into programming/dev mode.
 
I would love to know the names of the online courses you purchased, if that's possible.
I have a subscription to the Team Treehouse website, their objective C videos are excellent. I also bought the "Complete iOS 7 Course" at Udemy as well. They are both excellent.

But I have to say, the BEST resource for Objective C I've found so far was completely free (and wasn't trying to sell something), the youtube videos by the youtube user mybringback for objective C. He stopped making them back in 2012, but because he mostly discusses the actual code/syntax of objective c which hasn't changed, every single video he made still applies just as well today. His videos were actually the most helpful objective C resource I've found. While I've learned a lot more from treehouse and udemy, the youtube videos were what got me started. I don't think I would have gotten as interested as I did without his videos. Can't say enough good things!
 
I think if Apple continues to tailor Swift to the needs of its developers then iOS and Mac platforms will only continue to gain ground as the most vibrant and popular ecosystems in the world.
 
A proprietary single platform new programming language?

What about all those developers who write for other platforms - they're not about to embrace this which will make providing apps for those platforms impossible.

As of 2013 iOS generated 74% of all revenue for developers on mobile platforms, with Android making up almost all of the rest.

Objective-C wasn't really useful outside of iOS either, so now, if Swift makes it easier and faster to develop for iOS I don't see that hurting development on other platforms. If anything it may bring some of those non-iOS developers over for the first time because it's faster.

iOS has always had a lead over the other platforms because it's where developers make money. Those developers will continue to build for iOS for that reason. Other platforms will remain secondary until they can find a way to get their users to open their wallets for apps.
 
Apple made a big deal about Swift eliminating certain programming errors, but coming from the C/C++ and Java worlds, it didn't eliminate the two of the biggest headaches for me.

First, variable type declarations are optional with the variable taking on the type of the first value assigned to it. While this is better than C since it eliminates the void type, it still can introduce some pretty big headaches if you're not careful. I can already imagine spending quite a bit of time trying to track down a bug where a variable ends up getting initialized as an integer when the code's original author thought it would always be a float. That's why any Swift code I write will always declare the variable type when I create the variable instead of waiting for initialization.

Second, Apple just created a nasty stew of legacy issues. I worked on a product that went back over 10 years, and it was a confusing mix of both C and C++ code. The two were mixed together in strange ways, and it made maintaining that code quite confusing. Apple has created a situation where C, Objective C, and Swift code can all be in the same project. That's going to create code maintenance issues.

Finally, so many of the features that I've read about just feel like Apple is playing catch-up. I'm not very familiar with Objective C, but the fact that Apple is plugging generics, maps, and advanced lists has me scratching my head. Where those things missing from Objective C? If so, just.... wow. Java has supported generics since 1.5 was released 10 years ago, and advanced lists and maps since 1.2 (released Dec. 1998).

To be fair, I've only skimmed Apple's Swift Programming Guide, but I saw very little to get me excited. Swift does not seem to break new ground in any way. At best it brings in some design patterns which were sorely lacking and finally brings Apple's language du jour into the 21st century. Given the fact that Apple's peers, such as Microsoft and Sun/Oracle have been giving their developers these tools for quite some time now, Apple's development of Swift doesn't seem all that praise worthy to me. Seems more like they deserve a slow golf clap for being the last runner to cross the finish line.

Edit to add: Don't get me wrong here though. There are things to be excited about. But it seems to me all the cool wiz-bang stuff we saw were features of XCode, not Swift. XCode has always offered many features that other IDEs lack. But there's a difference between an IDE and a programming language.
 
Last edited:
I have a subscription to the Team Treehouse website, their objective C videos are excellent. I also bought the "Complete iOS 7 Course" at Udemy as well. They are both excellent.

But I have to say, the BEST resource for Objective C I've found so far was completely free (and wasn't trying to sell something), the youtube videos by the youtube user mybringback for objective C. He stopped making them back in 2012, but because he mostly discusses the actual code/syntax of objective c which hasn't changed, every single video he made still applies just as well today. His videos were actually the most helpful objective C resource I've found. While I've learned a lot more from treehouse and udemy, the youtube videos were what got me started. I don't think I would have gotten as interested as I did without his videos. Can't say enough good things!

That's awesome! Thanks so much for the info, I'll be sure to check it all out!
 
That's awesome! Thanks so much for the info, I'll be sure to check it all out!

No problem! With the help of the YouTube videos and Udemy course I've actually started running self-made apps on my own iPhone which is so cool! They are extremely simple apps right now but I am learning a TON of new stuff every day. Here's a picture of a simple tip calculator app I made today, no tutorial or anything, just using knowledge I gained from YouTube and Udemy:

imagejpg1.jpg


imagejpg2.jpg


Of course it's a super simplistic app, but it's a fun start! It only took 5-10 minutes to make as well, Xcode makes things very easy.
 
A proprietary single platform new programming language?

What about all those developers who write for other platforms - they're not about to embrace this which will make providing apps for those platforms impossible.

If you know object-oriented programming, it's not hard to adapt to syntaxes in new languages, or languages you haven't used before.

I think if Apple continues to tailor Swift to the needs of its developers then iOS and Mac platforms will only continue to gain ground as the most vibrant and popular ecosystems in the world.

Heh heh
 
Native Objective-C can't be ported over anyways. Sure you could share a C++ library if you wanted to, but you can do the same with Swift.

Unfortunately Swift can't interact directly with C++ code the way ObjC can. You have to wrap your C++ code in ObjC or plain C first. This is going to be a significant amount of extra work for some people, myself included.
 
Objective-C was also a platform specific language for iOS and OS X in practice, so that's not what makes Swift different.

Swift won't have even the slightest effect in the number of developers who develop apps for the platform. Devs don't develop for a platform not because its programming language looks good. They develop because they can earn money from it. As long as iOS users pay more than Android users for apps, then majority of the devs will continue to see iOS as their primary platform even if they have to use Basic to develop apps.

With that said, Swift doesn't bring anything revolutionary. Yes, it has a shorter and better syntax, and some nice, modern features but that's it. People are talking as if Obj-C was the hardest language to learn and use on earth while Swift can be learned in 3 minutes and lets you write games with 5 lines of code.

Apps developed using Swift will be using the exact same APIs and design patterns, and the amount of code they contain will roughly be the same as one developed with Obj-C.

As cageface said, it will make things harder for people who use a lot of C++ in their code.
 
...
Finally, so many of the features that I've read about just feel like Apple is playing catch-up. I'm not very familiar with Objective C, but the fact that Apple is plugging generics, maps, and advanced lists has me scratching my head. Where those things missing from Objective C? If so, just.... wow. Java has supported generics since 1.5 was released 10 years ago
...
I agree with everything you said. They are just catching-up but talking as if they did something revolutionary.

As a side note: Obj-C doesn't have generics because it isn't a type safe language and hence doesn't really need them.
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.