By Kevin McNeish updated on 07/09/2015
So the word is out. iOS 8, Xcode 6 and the new Swift programming language are headed your way. What should you do? Should you continue to learn iOS 7 and Objective-C or should you make the switch to iOS 8 and Swift programming? I've already had several emails and tweets asking about this as iOS developers ponder this important question.
Right now, at this moment, there are 9 million Objective-C iOS developers and there are zero Swift programmers.
I recommend that you see this as a huge opportunity. Talk about a level playing field!
Some developers will spend the upcoming weeks and months wringing their hands in dismay at all of the big changes—especially the new Swift programming language (these are the same developers you see pontificating on the forums, refusing to use newer Objective-C language features because the original features are somehow "better".)
However, I recommend that you spend this time with your nose to the grindstone learning Xcode 6 and Swift. You will end up with a set of very marketable skills (if you're looking to be a hired gun) as well as the ability to create apps that take full advantage of all the new features available in iOS 8.
The Eighty-Nine Percent
According to statistics announced by Apple in the WWDC 2014 keynote, 89 percent of iOS devices are running iOS 7. What does this tell you? It's a strong statement that your users are interested in having the latest technology and features on their devices. This means that to be a successful app developer you need to keep up with the latest changes in the SDK, languages, and tools in order to integrate these new technologies in your apps.
Moving Projects to iOS 8 and Swift
There's nothing like working on a real project to teach you new technologies. I recommend that you select one of your smaller projects first and move it forward to Xcode 6 and Swift. This allows you to learn the new languages and tools in the context of the real world which is far more meaningful than just reading through a book or documentation.
Getting Set up for iOS 8 and Xcode 6 and Swift
Fortunately, Xcode 5 and the Xcode 6 beta coexist peacefully so you can install them on the same development machine. To install the Xcode 6 Beta on your Mac, you first need to install OS X version 10.9.3, which Apple released last month (May 2014). You can download the Xcode 6 beta as well as the iOS 8 beta from the iOS Dev Center. Before you can download these betas from the Dev Center, you will be prompted to sign a new iOS Developer Program License Agreement.
To install the iOS 8 beta on an iOS device, follow these steps:
- Choose a device other than your primary iOS device on which to install the beta. These early betas are notoriously buggy and it can be extremely frustrating to rely on them to perform properly when you need them.
- Download the appropriate iOS 8 beta file from the iOS Dev Center
- Connect the iOS device on which you are installing iOS 8 to your Mac.
- If iTunes doesn't automatically launch, then launch it manually.
- Back up your iOS device!
- In iTunes, click on your device in the top-right corner.
- Hold down the Option key and click Check for update.
- Locate the iOS 8 beta file you downloaded in step 3. By default it will be in your Downloads folder inside a subfolder that begins with iOS 8 beta. Select the .ipsw file that's in this folder.
- Next, you'll see a dialog that tells you that iTunes will update your device to iOS 8. Click the Update button and the installation will begin!
You can download Apple's free 858-page iBook, The Swift Programming Language from the iBooks Store.
Stay Tuned to Learn More About Swift!
Normally, I have to wait three months to talk about the new iOS technologies because of Apple's non-disclosure agreements. However, this time around, the cat is out of the bag, or in the case of Swift, the bird has flown the coop. Apple has already published a book about Swift, so I can discuss it freely in this column. So stay tuned as we dive into Swift and learn how to build powerful apps with this new language.