Updates and my upcoming iOS 9 course

Next week I will be publicly releasing my new iOS 9 developer course - it’s a complete overhaul (and re-record) of the previous course, and adds a bunch of new topics, including an Uber app clone, in-app purchases, iAds, version control, classes/objects and more.

I wanted to write here to answer questions about the new course, before they come up. If you have any questions that aren’t answered here, leave them in the comments and I’ll update the post.

Why didn’t you just update the iOS 8 course?

I struggled with this decision for a long time. I value hugely the community that exists around the iOS 8 course, and the answers to current and past discussions add a huge amount of value to the course (not to mention the reviews!). Losing all of this would be a major blow.

As long-term students will know, I’ve already updated/re-recorded most of the iOS 8 videos multiple times as Swift syntax has changed and developed, and haven’t charged for any of these updates (something very few course providers do).

When Swift 2/Xcode 7 was announced, however, it was clear that a whole new course would be needed - a bunch of basic commands and constructs had been changed, along with a number of processes and menu locations in Xcode.

While in theory it would have been possible to update the iOS 8 videos, I also wanted to take the opportunity to improve on some of the apps in the course, changing the way they were put together, adding and removing certain sections, and of course adding the extra content. This would have been difficult while keeping the current structure intact, and a lot of the discussions would become irrelevant (and many previously correct answers would now be wrong).

Finally, supporting and updating such a big course with almost 100,000 students to the extent that I want to takes a huge amount of work, and asking a small amount to keep this going seems both reasonable and the best way to keep me incentivised to keep producing, supporting and updating quality content!

What will happen to the iOS 8 course?

The course will continue to exist on Udemy and will be sold for a reduced price. A lot of the syntax does remain the same from Swift 1 to Swift 2, and the apps have already been updated to Xcode 6.4 (the last version with Swift 1). I hope this will provide a discounted way for students who can’t purchase the new course to get into iOS development.

However, I will switch my active support in the forums to the new iOS 9 course on its release. I want to avoid discussing how to fix apps using syntax and tools which are now outdated (soon Xcode 6 will likely become unavailable which will further confuse things). My support on the new course will be just as vigorous as on the old course (with every discussion getting a response within 48 hours, usually much quicker).

If anyone is unhappy with this for any reason, the usual Udemy refund policy applies, but I would ask you to carefully consider whether it is worth $10 to get a whole new set of videos, new apps and other content, a year’s support and a year’s web hosting. I’d love to keep you all in the great iOS development community we have created if at all possible!

I bought the iOS 8 course in the last 30 days - can I get a refund and still get the new course for $10?

Technically, yes, but again please consider if all the new features are worth the price. If you choose to get a refund on the iOS 8 course, I would ask you to wait for the full release of the iOS 9 course and purchase it in the usual way.

What about your other courses?

I will continue to update the content of my other courses in the way I have done in the past. At some point, each course will likely get to the point where a completely new course is required. This has happened particularly quickly with the iOS 8 course because of the rate of change of Swift. On the other hand, the Web Development course is still largely intact, so it makes sense to update it for now rather than re-record the whole thing. I don’t have a particular ‘new course’ schedule in mind, but will let you all know when I do.

As I say, I will add answers to more questions as they come in. I am phenomenally proud of the community of students we have built around this course, and I hope we can continue to grow it as iOS 8 gives way to iOS 9.

These are hugely exciting times to learn to code, and I look forward to continuing the journey with you all.

Happy coding,

Rob

Parse Working on Xcode 7/Swift 2

While updating my iOS course, I’ve been trying to get Parse working with Xcode 7 Beta and Swift 2. I’ve got everything up and running (with a couple of warnings - if you can fix those please do so and send me a copy so I can update the version here).

You can download it here:

ParseStarterProject (checked working in Xcode 7 Beta 6)

Just change the XXX in the ApplicationID and clientKey in AppDelegate.swift and you’re good to go!

Screen Shot 2015-06-27 at 11.42.09

Enjoy!

Rob

Tabbed application in Xcode

Storyboard with 2 view controllers.

Storyboard with 2 view controllers.

The first time a tabbed application / project is introduced in the iOS and Swift Developers Course is during the To Do List app and challenge. This is a fairly large app compared to the other apps in the earlier iOS and Swift video lectures and students can be forgiven for watching Rob provide the solution as it is certainly challenging.

By the time students have got as far as the To Do List app in Lecture 53 on the Complete iOS8 and Swift Developers Course, most would have a good understanding of the storyboard, view controller and related .swift files associated to the project to make an app work.

With a Single View Application there is one view controller swift file associated to the app. This is where you would have your outlets variables and action classes defined.

Xcode won’t let you create an outlet from a view controller the swift file to another. So if you Ctrl and left drag a label, outlet or action from the main storyboard to the swift code but no variable or action is declared, this is the reason by. Admittedly this had caught me out!

File shown at the top of the assistant editor.

File shown at the top of the assistant editor.

Option to choose 2nd view controller swift file.

Option to choose 2nd view controller swift file.

In the assistant editor you are shown which associated view controller swift file you are working with. So it’s very important to have the correct view controller selected to ensure you can add the corresponding outlets from the storyboard to it and have the correct code to handle the intended behaviour.

How did you get on with the To Do List app? I would be very interested to know what challenges were faced by other students.

Until next time - Tak.

 

Sales and marketing executive.
3rd degree black belt in Taekwon-Do.
Lives at the gym.
Enjoys burgers and cake.
Likes fast cars and lie-ins.

Upgrading Apps To Xcode 7: linker command failed with exit code 1

While updating my iOS Developer Course to Xcode 7, I’ve found that when opening Xcode 6 apps in Xcode 7, even when going through the upgrader, I’m left with the error ‘linker command failed with exit code 1‘.

Fortunately, there is an easy fix. Just go to the project settings (click on the File Structure icon and then the app name, and then the Tests target), click Build Settings and then scroll down until you see Test Host (or type ‘host’ in the search box).

Then clear the contents of both the Debug and Release hosts, circled below. The app should then compile without any issues.

Hope that helps!

Screen Shot 2015-06-16 at 16.44.48

 

 

 

 

Prime numbers and playgrounds

As coding gets more involved it is very important to get into good practice which will save you a lot of time from finding out what went wrong. I myself spent many hours going through code line by line with some basic school boy errors. In my last blog I wrote about how Swift as a forgiving language. This week I found there were a few things it was not so forgiving about.

In the third app Is it Prime a lot of the back end code is done in Playgrounds and most of my frustrations were from there.

Statement cannot begin with a closure expression

Statement cannot begin with a closure expression

“Statement cannot begin with a closure expression”. What?! When I get a problem I do what most people do. I use Google! But putting this error message into Google wasn’t too helpful, there were many results but nothing very helpful.

The cause? It’s to do with the operand. In C, PHP and Javascript it is perfectly fine to do something like “if number !=2 …” but Swift doesn’t like this! There needs to be a space between a number and the operand for very good reasons I’m sure which I will find out later on. So just not putting in the space was stopping my app from comping and altering to “if number != 2 …” ensured I could continue.

The second most frustrating problem I had was “Prefix/postfix ‘=’ is reserved”, again I thought I could Google the answer, again Google came up short but this problem was quicker to fix.

prefix postfix error

In most programming languages such condition would be valid but in Swift having an exclamation mark at the end of a variable name means you want to unwrap it (telling Xcode the variable definitely has a valid value). So while I had “if number!=2 &&…” it should have been “if number !=2 &&…” all from missing a space! Such simple mistakes which causes such long delays.

In Rob’s iOS and Swift video tutorials he encourages you to pause the video, have a go and come back to see how his solution. So although he may take 7 or 8 minutes in a video lecture and you maybe spending an hour or 2. I can assure you that this is not out of the ordinary. And it is part if the learning process. And remember, if you get stuck the forums are available!

Keep coding! - Tak.

Sales and marketing executive.
3rd degree black belt in Taekwon-Do.
Lives at the gym.
Enjoys burgers and cake.
Likes fast cars and lie-ins.