Although a decrease in Apple’s market share has been observed since 2018, a huge number of people still use the devices of this company.

Traditionally, software for Apple devices was developed in Objective-C. That was until 2014, when Apple introduced the new Swift programming language at WWDC on June 2.

What is Swift?

Swift is used to create applications for iOS and OS X. It is built on the basis of C and Objective-C but is more simple and flexible. In addition, the creators of Swift borrowed the best elements of the Javascript and Python programming languages.

In April 2020, Swift ranked 11th in the Tiobe “Top 20 Programming Languages” index. The TIOBE Programming Community index is an indicator of the popularity of programming languages. Compared with April 2019, the language popularity rose by 8 positions.

 

Source: Tiobe

The Hubspot app, Lyft, Pandora, OpenTable, Airbnb, LinkedIn, Yahoo Weather, and Khan Academy are examples of apps written in Swift.

SWIFT evolution

How it all started

The development of a new language began back in 2010. At the first stage, it was unclear how the proven Objective-C and the new-found Swift would coexist. At first, Apple strategy was based on continued investment in the development of both Objective-C and Swift.

How it all developed

“We try to continually push ourselves to do more and more, not just on the hardware side but also in terms of developers’ tools so they can take advantage of the hardware that’s there, in the best way,” Tim Cook said in an early 2017 interview with the Independent about the 2014 introduction of SWIFT. This emphasis on coding helped Apple grow.

In 2015, there was a real revolution for developers on Apple platforms. The new version of Swift included an open-source Apache 2.0 license with a Runtime Library Exception. Now free and open-source, Swift showed rapid growth. According to the GitHub Octoverse 2017, Swift was the 13th most popular language for open source projects, and in the Stack Overflow 2017, Swift was the fourth favorite language among developers, leaving behind Go, Python, and C#.

How things are now

In March 2020, Swift 5.2 was released. Many new features appeared, which undoubtedly contributed to the growing popularity of this language. Apple developers tried to create a modern language, so they made Swift quick and concise. The latest update is aimed at improving developer experience. Better compiler diagnostics and code completion, more reliable debugging, and performance optimizations (e.i., name lookup).

It is important to mention that you can experience these changes using Swift Playgrounds. Just write code and see results in real time. Earlier, for a long time, the process of creating the product and the product itself were separated, and because of this, programmers had to spend a lot of time checking and optimizing the code. In Swift, developers can quickly check their concepts in action and, in general, create applications faster. 

Advantages of Swift

1. Easy

Apple loves minimalism. Therefore, Swift has a concise syntax, it is easy to read and easy to write in. Writing an application requires less code because it implements a simplified principle of working with repeated lines and statements.

Swift is easily understood by developers who know other languages. This fact is crucial when developing an application on several platforms.

2. Team scaling in no time

Swift is actively updated and supplemented with the necessary functions along the way. Apple more willingly supports Swift than Objective-C; hence, it is much safer to invest in software powered by Swift, as it definitely has the future. The simplicity of code and its similarity with the English language makes it easier for developers to adapt to it, read it, and join the team. So, you will scale your development team without trouble.

3. Safe and productive

Swift is supposed to be swift. The language developers strive for making it faster than C ++, which is often recognized as the fastest programming language.

Another strength of Swift is its safety. The ideology of the language is like this: fewer vulnerabilities and more security for the code itself and the system. Developers proceeded from the fact that the programmer should not keep everything in mind and foresee every emergency situation. Let the computer do it for him or her. For example, you do not need to specifically monitor access and memory leaks, because Swift takes care of it.

4. Automatic memory management

Being a modern high-level language, Swift basically deals with memory management in your applications, allocating, and freeing memory. This is due to a mechanism called Automatic Reference Counting, or ARC for short. Now, developers don’t have to spend time on it. As a result, the time to create an application is reduced.

5. Interoperability

Thanks to the integration with the Objective-C runtime library, you can write in Swift, C, Objective-C, and C ++ programs at the same time.

6. Open-source, free, and easy to learn

Swift became open source in 2015. This event greatly influenced its popularity. In 2015, it became the favorite language of Github users and took second place in 2016. 

For Swift, there is a special Playground tool, a kind of interactive sandbox where the programmer immediately sees the results of the program. Sometimes this increases the development speed several times and helps to quickly deal with code issues.

Disadvantages of Swift

1. Freshman

  • Due to the youth of the language and absence of translation of OS X and iOS code into Swift, at least a minimum knowledge of Objective-C is required.
  • Swift is bound to work with only native libraries and tools.
  • It is susceptible to issues with every new update released.

2. Lack of experts

Swift is a newcomer among programming languages, so there are not so many experienced developers. But this flaw is easy to turn into a virtue for those who want to become Swift developers. The demand for them is only increasing, and the competition is still not tough.

3. Compatibility with IDEs needs improvement

Frequent updates and lack of backward compatibility are sometimes an obstacle to smooth code development. Xcode – the official Apple IDE – sometimes does not keep up with the whole stream of updates.

4. Earlier iOS versions are not supported

Swift support is not provided by all versions of iOS, which, of course, creates some obstacles for developers. However, according to some data, less than 5% of devices in use are running on early iOS versions.

Swift vs. Objective-C

Why do developers still use Objective-C if Swift is here? There are three key obstacles.

  • Versions compatibility. Objective-C is used to support older software versions, and the new ones are usually written in Swift. If you are working with legacy software developed in Objective-C, you will still have to use it to deliver updates.
  • Language compatibility. Yes, Swift works great with Objective-C, but you can have issues with other languages, say, C ++.
  • Project size. Swift makes it easier to work with small projects that do not require drastic changes with every new update of the programming language. Yet, the case is much more difficult when it comes to large projects.

How to learn Swift Programming Language

There is a huge number of resources where you can learn Swift for free. These are tutorials, videos, podcasts, and entire sites. Yet, first of all, you should pay attention to the resources that Apple offers.

  • App Development with Swift. This book describes in detail the process of developing iOS applications using Swift. The book includes a step-by-step training program with practical exercises for creating applications from scratch.
  • Intro to App Development with Swift. This book will help you understand the basic principles of programming using Swift. It is about the tools, methods, and concepts needed to create a basic iOS application from scratch. The book also presents the principles of user interface design, which are fundamental to programming and creating applications. 
  • Swift Playgrounds app is ideal for anyone who is starting to learn Swift programming. This application is installed on the iPad and is available for free in English, Simplified Chinese, Japanese, French, German, and Latin American Spanish.

IDEs and Swift

IDE (Integrated Development Environment) is a software package used by programmers to develop software. Let’s talk about IDEs for Swift.

Xcode

Xcode is the Apple IDE that you use to create applications for Apple products such as iPad, iPhone, and Mac. Xcode provides tools for managing the entire workflow of development – from creating an application to testing, optimizing, and submitting it to the App Store. Nevertheless, if you work using HTML or JavaScript, you will lack some tools available for Swift.

Atom

Atom is a free open source text editor for Linux, macOS, Windows with support for plugins written in Node.js and embedded in Git.

AppCode

AppCode is an IDE for development in Swift, Objective-C, C, C ++, and JavaScript, built on the IntelliJ IDEA JetBrains platform. Unfortunately, you will access limited functionality when it comes to Swift.

Toward the Future of iOS Development with Swift

The future of Swift looks pretty promising. Swift is a fast, modern, secure, and convenient programming language. With its help, the process of creating programs becomes flexible and productive, since Swift has incorporated the best of such languages as C, Objective-C, and Java. It is convenient for learning, perceiving, and reading code. Being a young language, it is far from ideal, but it has all chances to become one.