It’s been two years this month since I’ve touched iOS App development. When I last was working on mobile apps, Objective-C was the native language, and a very unforgiving language at that. Don’t get me wrong, it isn’t an impossible language, but it has been around since the early 80’s, and a lot of explanations as to “why” something is done a certain way boils down to legacy issues. It makes perfect sense that Apple would create a new language solely targeted at Mobile and iOS development.
This weekend, I focused on taking a 7-hour course from Lynda.com called iOS App Development with Swift Essential Training with Simon Allardice. It is a beginner’s course, which ties the new Swift language into familiar concepts. There are approximately 10 chapters, and each has an accompanying exercise to help reinforce the lessons. The course also goes over the basics of using Xcode 6, the development environment for Apple. A lot can change in two years, and even Xcode has undergone a number of improvements. For example, you no longer need to keep track of a splash screen for each iOS device resolution. After all, that was only going to continue to get more and more ridiculous as the iPhone 6 and iPhone 6 plus were released. Likewise, autoformatting is finally a thing! You can configure constraints on the layout of your app (such as this button is 50% of the screen width) and the device will handle the layout depending on screen size.
For anyone looking to get started with iOS development, or if you’re like me and looking for a good refresher to “catch you up”, this course is fantastic. It only touches on Swift 1.2, instead of the new Swift 2.0, but that is okay as the basics are very much the same. If we are being honest, I’m not even sure the differences yet, but I’m sure there are plenty.
Compared to Objective-C, Swift is a breath of fresh air. It really takes very little to get up and running with a basic single view app, and the documentation is very detailed, so if you get stuck, you merely need to do some reading to figure out as to why. Well, I take that back. The documentation is actually quite good for Swift 1.2, which is what is being used in iOS 8. However, I’m now coding for iOS 9 beta 1, and of course some things are different.
For example, Apple is trying to improve web and app security by requiring HTTPS connections when browsing a website in an app. This is new in iOS 9 and undocumented as of today. All of my Apps have an “About” link somewhere on them that links to my About Page. The idea here is that as I add or remove apps for whatever reason, I can adjust this one page online, and all of my apps are updated. Likewise, if for some reason this page goes down, my apps will still function, but the About page would return a 404 not found error. The Apple Development forums are abuzz with programmers having issues with opening HTTP connections. The solutions turns out to be that you must whitelist each domain you wish to connect to, and relax the security on your program by editing the info.plist file (your default settings). However, with no documentation yet available, it took a few hours to stumble across the right post with the right solution.
With my first iOS Swift course completed, this week, it is time to dive in and attempt to recreate my infamous Whipped App in Swift. Wish me luck and stay tuned for more.