Learning iOS and Swift

With an average iOS developer salary at 98k a year an early career engineer with a MacBook could definitely be drawn to the world of mobile development.

Learning iOS and Swift
Photo by AltumCode / Unsplash

With an average iOS developer salary at 98k a year an early career engineer with a MacBook could definitely be drawn to the world of mobile development. (though Glassdoor reports the average Android developer makes roughly the same at 99k per year).

Why iOS?

Why should I be learning iOS itself instead of learning a technology for cross platform development like React Native or Xamarin. I work full time right now as a full stack developer using C#, don't I want to keep down that path? The main advantage of learning native iOS development is two fold for me. 1) Using Swift and Swift UI enables the development of iOS, iPad OS, and MacOS applications with a more unified code base, and 2) the common perception is that native applications perform better. While I don't have specifics, and I think for most applications, a shared code base for android and iOS would perform adequately for a lot of applications. A large amount of people like to point to the AirBnB medium post for stopping development with React Native as to why native mobile development is the best way to make mobile applications. Personally, I am not as sold on point 2 as I am on point 1.

Ok, fine, but why learn Swift?

Swift is a language developed by Apple for interoperability with Objective C originally announced in 2014 aside for a small period when Swift was being pushed for use with TensorFlow no organization outside of Apple is using Swift right now. I am choosing to learn Swift purely because it is the more modern language and then hopefully bright future of SwiftUI.

How to Learn a language?

Learning a new programming language is a constant within Software Engineering. To be an efficient engineer today requires the ability to efficiently learn new languages there are many approaches:

  1. Leetcode problems
  2. Small projects
  3. Courses/tutorials

I tend to work best with option 2 or 3 so that’s what I’m going with.

My First steps

I'm sure a lot of people are like me, I learn by doing. So the best way to begin my journey into iOS development was through the The AppBrewery and their Complete iOS and Swift  Boot Camp. Not only does this program give an intro to mobile development, it also covers basics of the Swift language, and the Model View Controller (MVC) design pattern (the version I purchased also includes app design and app marketing courses).

One of the major advantages to a course like this for me is that I learn the best when developing actual projects, but I am too much of a perfectionist to make half-formed applications for the sheer purpose of learning individual pieces of the whole that is iOS development. I purchased the course the Udemy, it was on sale so thankfully I was able to get it all for only $20.

Once I am done with the course I can move on to creating large scale projects for my own use and hopefully create something that could generate revenue.