It’s already the fifth and final week of the Five Languages in Five Weeks challenge. Here we are after four weeks spent covering TypeScript, Elixir, Haskell, and Go, just one more week to go. For the final week I will be learning Swift. Swift week will take place from December 29, 2017 to Thursday, January 4, 2018. I’m going to dive right in and write code in Swift everyday over the next week. I will also be reading articles and books covering the language, and taking courses over it on Pluralsight. It’s going to be a great time.

Swift Logo

Why Swift?

I orginally planned to cover Kotlin in week five but Swift’s appeal was too strong to pass up. I was thinking Kotlin because it runs on the JVM and recently became a first class language to build Android apps with. Swift is in the same boat as Kotlin, but targets iOS instead of Android and is unrelated to the JVM. I recently purchased an iPad Pro and I’m really loving the device. One of the apps I’ve been playing with is Swift Playgrounds. Swift Playgrounds is focused around teaching users how to program in Swift. It’s directed at people who haven’t written code before, but it’s been fun to play with. Since I’ve got that app and the iPad is currently my favorite device, I chose to learn Swift instead of Kotlin. The languages seem to be quite similar.

Planned Projects

I’ve planned out a few projects that I intend to complete using Swift. These projects are based primarily on those completed during the previous weeks of the challenge (week 1, week 2, week 3, week 4). None of these projects are too large, but they will serve well as an introduction to the language. I would like to complete a decent sized project using the language, but I don’t know how reasonable that would be at this point. I haven’t completed any big projects during the challenge yet, but maybe I will since Swift is specifically well suited to create iOS apps. I’ll just have to see how the week plays out and see how far I get.

Here are the projects that I’ve planned out so far.

HelloSwift - A hello world program written in Swift.
LanguageFeatures - This project exists to demonstrate essential features of the language.
RosettaCode - Code written to compare the styles of all languages. The goal is to implement the same code accross each language.
TestingSwift - Project created to get familiar with automated testing using Swift.

Repo

All of the code I write in the process of learning Go will be published on GitHub. The repository is called FiveInFive-Swift.

Installation Process

I installed Xcode from the App store. Swift came baked in.

Thoughts Coming Into the Language

I don’t know much about Swift. It looks kind of like a C-based language and pulls from languages like Objective C, C#, Python, and Ruby according to Wikipedia. I feel like it will be a more standard Object Oriented language than any of the languages learned as part of the challenge. Swift appears to be another statically typed language.

I’m really looking forward to getting to use Xcode. I haven’t used it in the past and I’m curious to see how Apple’s IDE compares to other IDEs I’ve used before. Another thing I’m excited about in learning Swift is the learning resources I have available to me. iOS 11 & Swift 4 - The Complete iOS App Development Bootcamp from Udemy and Swift 3 Fundamentals from Pluralsight look like great courses and I’m looking forward to them.