Getting started with Swift development

Swift logo

Here’s a guide to getting started with Swift development and first steps to take as you navigate Apple’s programming language.

If you’ve ever thought of building an iOS or Mac app, then you need to get familiar with Swift. It’s the new programming language and platform behind everything Apple.

What is it happening in this blog? I know, I am usually talking about .NET, Xamarin/MAUI and other Microsoft technologies. In particularly now, that Microsoft announced Windows 11, the new Windows 365 and a lot of excitement for MAUI.

As a developer, I think I have to know every programming languages to compare and decide. For example, I studied R and how to deploy ShinyApps with Azure DevOps. We have to study and keep us updated all the time!

What is Swift?

Before getting started with Swift development, we have to know what Swift is. Swift is a general-purpose programming language built using a modern approach to safety, performance, and software design patterns.

The goal of the Swift project is to create the best available language for uses ranging from systems programming, to mobile and desktop apps, scaling up to cloud services. Most importantly, Swift is designed to make writing and maintaining correct programs easier for the developer. To achieve this goal, we believe that the most obvious way to write Swift code must also be:

Safe. The most obvious way to write code should also behave in a safe manner. Undefined behavior is the enemy of safety, and developer mistakes should be caught before software is in production. Opting for safety sometimes means Swift will feel strict, but we believe that clarity saves time in the long run.

Fast. Swift is intended as a replacement for C-based languages (C, C++, and Objective-C). As such, Swift must be comparable to those languages in performance for most tasks. Performance must also be predictable and consistent, not just fast in short bursts that require clean-up later. There are lots of languages with novel features — being fast is rare.

Expressive. Swift benefits from decades of advancement in computer science to offer syntax that is a joy to use, with modern features developers expect. We will monitor language advancements and embrace what works, continually evolving to make Swift even better.

Tools are a critical part of the Swift ecosystem. We strive to integrate well within a developer’s toolset, to build quickly, to present excellent diagnostics, and to enable interactive development experiences. Tools can make programming so much more powerful, like Swift-based playgrounds do in Xcode, or a web-based REPL can when working with Linux server-side code.


Swift includes features that make code easier to read and write, while giving the developer the control needed in a true systems programming language. Swift supports inferred types to make code cleaner and less prone to mistakes, and modules eliminate headers and provide namespaces. Memory is managed automatically, and you don’t even need to type semi-colons.

Some additional features of Swift include:

  • Closures unified with function pointers
  • Tuples and multiple return values
  • Generics
  • Fast and concise iteration over a range or collection
  • Structs that support methods, extensions, and protocols
  • Functional programming patterns, e.g., map and filter
  • Powerful error handling built-in
  • Advanced control flow with doguarddefer, and repeat keywords


So, Swift was designed from the outset to be safer than C-based languages, and eliminates entire classes of unsafe code. Variables are always initialized before use, arrays and integers are checked for overflow, and memory is managed automatically. Syntax is tuned to make it easy to define your intent — for example, simple three-character keywords define a variable (var) or constant (let).

Another safety feature is that by default Swift objects can never be nil, and trying to make or use a nil object results in a compile-time error. This makes writing code much cleaner and safer, and prevents a common cause of runtime crashes. However, there are cases where nilis appropriate, and for these situations Swift has an innovative feature known as optionals. An optional may contain nil, but Swift syntax forces you to safely deal with it using ? to indicate to the compiler you understand the behavior and will handle it safely.

Get your dev platform set up

So, making iOS apps has practical application for almost any business. It goes well beyond games such as Candy Crush or Two Dots. Apps can serve external and internal business functions. For example, you can create a sales tool to keep track of clients and meetings to increase productivity. Apps can run on anything from an iPhone or iPad to an Apple Watch or TV.

An iOS app can do almost anything or meet any business need you can imagine. And if you can’t find that app on the open market, you can develop it with Swift.

There are a few things you’ll need to do before just publishing an app. First, you have to create an Apple ID (if you don’t already have one). The next important thing is to own a Mac! Yes, you understand correctly. You must have a Mac to build application for iOS and macOS.

You’ll also need to become a member of the Apple Developer Program. There are different levels of membership, based on your business type. Membership comes with the software and latest OS releases so you can develop and distribute on iOS.

Finally, you will need to install Xcode, Apple’s IDE. Xcode is that it looks and works in a way that seems familiar to anyone who’s ever used Apple software. Now, you are one step closer to thinking about Swift development and building your first iOS app.

What is Xcode?

Xcode is an Integrated Development Environment, which means it pulls all the tools needed to produce an application (particularly a text editor, a compiler, and a build system) into one software package rather than leaving them as a set of individual tools connected by scripts.

Xcode is Apple’s official IDE for Mac and iOS developers; at the beginning, NeXT (the company Steve Jobs created when he left Apple) created Project Builder to build applications. When he joined Apple again, he renamed Project Builder to Xcode. By version 4, Apple had folded in the companion Interface Builder program so there was only one app bundle; the design of the program hasn’t changed a whole lot since then, although obviously Apple is releasing regular update for it.

Why do you need Xcode?

So, you need the source code and a cryptographic signature to do this, so you can’t just arbitrarily upload any iOS program like you could with a jailbreak, but it’s possible, if a little complicated.

OS X is Unix, which means that quite a lot of code from other Unix-like systems (particularly Linux). So, you can compile and run Unix code with little modification. This process is made quite a bit easier with package managers, which are clients to servers similar to the App Store; the ones you’ll see the most are Homebrew, Fink, and MacPorts.

Some of these software packages are distributed in source code form (particularly through MacPorts), and this is where Xcode comes in for the nonprogrammer.

When you download a package that comes as source code, the package manager looks for a build environment to turn it into a binary application file, and Mac package managers, for obvious reasons, use the tools provided by Xcode. As it happens, Xcode is a rather complex but the package manager takes care of all the details so you needn’t do anything with it but download and install it according to the package manager’s directions.

Install Xcode

So, in order to getting started with Swift development, we have to install Xcode. The easy way to install it is via the Apple Store. Then, open it in your Mac, search for Xcode and then install it.

Xcode on Apple Store - Getting started with Swift development
Xcode on Apple Store

macOs could take a while to install Xcode in your machine. Often, you can see that Xcode has downloaded in your machine but is still in Installing… mode for a while. You can see something like the following image.

macOS is installing Xcode - Getting started with Swift development
macOS is installing Xcode

or in the launchpad you can see homelike like that:

macOS is installing Xcode - Getting started with Swift development
macOS is installing Xcode

I was in this situation and the only thing you have to do is waiting. macOS takes a while but it is working.

First start

Finally, we can open Xcode. The first screen is the Welcome screen.

Welcome to Xcode
Welcome to Xcode

When you create your first project, Xcode will ask you to create a team and for that you have to use the Apple account. It is not necessary to buy the developer licence but you can’t deploy applications to real devices. You can test your apps in the simulators.

Other way to install Xcode

Although to install Xcode from the Apple Store is the easy way, there are other ways to install it. First, if you want to download a specific version of Xcode, you have to refer to the Apple Developer site. The other way is to use the Command Line Tool (CLT).

Download via the Developer site for a specific version

First, getting started with Swift development is not always easy. As a developer, you can download directly from the Apple Developer Site the version of the application you need.

Apple Developer Site for downloading specific version of an Apple Software
Apple Developer Site for downloading specific version of an Apple Software

Then, you have to follow those steps:

  1. Head to the “more” section of the Apple developer website
  2. Sign in with your iTunes account id
  3. Type in the version that you’d like, and download the Xcode_x_x_x.xip file. Keep in mind that Xcode 12.5.1 is 11 gigabytes, so this will take awhile depending on your internet connection.
  4. Once the file is downloaded, click on .xip to extract it. Your laptop will extract it to the same folder you downloaded it to. This extraction process is automatic. You don’t need to do anything more after you click on the .xip file. This step will take a few minutes.
  5. [Optional] Once extracted, rename the application to “Xcode12.x.x” if you are using multiple versions.
  6. Drag application to the Applications folder
  7. [Optional] Set the new Xcode version as the default. Open Terminal and type sudo xcode-select -switch /Applications/ . Replace x.x.x with the version number. For example: You will need to enter in your computer admin password. I’m pretty sure this will update the default Xcode version for all users on your computer, so best to check with other users first

Install the command line tool (CLT)

If you have multiple users on your computer, you will need to update the CLT for each user. To update the CLT, go to app developer website and download the command line tool .dmg.

If you have never installed Xcode before, you may be able to update with your Terminal by typing in xcode-select --install instead of visiting the developer website.

But if you have an existing version of Xcode installed on your machine, you’ll probably see this error:

xcode-select: error: command line tools are already installed, use “Software Update” to install updates

This means you’ll need to go to the developer website instead.

Installing the CLT

When the .dmg has finished downloaded, double click the file to open it. This will open a little window that looks like this:

Command Line Developer Tools - Getting started with Swift development
Command Line Developer Tools

Double click the box and follow the prompts to install the CLT. It will take a few minutes to complete.

It may ask you at the end of the installation whether you want to move this to the trash bin. When it does this, it’s talking about moving the .dmg file to the trash bin. Since you should no longer need this file. I always say yes to this.


Definitely, we are getting started with Swift development and the first step is to have the right environment. Next step is to create how first “Hello World!” application. But first, we have to familiarise with the Swift language a little bit.

4 thoughts on “Getting started with Swift development

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.