Tech Review Series: Swift

We continue discussing mobile development and today, we’ll talk about Swift. In the last few years, Swift has become a staple for iOS development though some developers still prefer Objective-C over Swift. Whether you are a Swift evangelist or like to do things the old way, our article will be an interesting read for you.

Tech Review Series: Swift

Swift: a brief history and the current state

The development of Swift began in 2010 and was initiated by Chris Lattner, who is known for creating Clang and LLVM. The reason for starting work on a new language was that Lattner was not satisfied with the C performance and decided to try and create a language of his own that would outperform Objective-C. The main issue with Objective-C at that time was that the language remained unchanged for a very long time and did not correspond to developers’ expectations. So Swift was intended to bring in new features alongside well-tried ones.

The first official introduction of Swift happened in 2014 at Apple’s WWDC (Worldwide Developers’ Conference). Note that at first, Swift was a proprietary language but became open-source in 2015.

The development of Swift happened at a really fast pace. The 1.2 version was released in 2014 and Swift 2 was announced in 2015. It was version 2.2 that became open-source in 2015 and then versions 3.0 (2016) and 4.0 (2017) followed. In 2019, the latest Swift version was released and it was Swift 5.0. And considering the language’s popularity, it comes as no surprise that every new version of Swift has some major updates or changes such as official downloads for the Ubuntu distributions in the 2.2 version.

The entrance of Swift in a market was quite grande if we talk about its popularity and reception. In 2015 Swift was in the first place as the most loved programming language in Stack Overflow’s Developer Survey. And in 2016, Apple released a famous app “Swift Playgrounds” available on iPads only. The app was intended to teach users how to code in Swift and was quite popular with the users. 

As for today, Swift remains one of the most loved and popular languages according to the survey by Stack Overflow as of 2020. It helped build apps for such brands as Pandora, Kickstarter, Twitter, VSCO, Medium, and LinkedIn, and is widely used by mobile developers worldwide.

Swift: technology type

Swift is a general-purpose, multi-paradigm programming language used for iOS development. As the name implies, Swift is very swift due to simple syntax and hand-holding and its speed is one of its distinctive features. Swift is also known for being very safe by having a shorter feedback loop and by using safe programming patterns. In this way, developers are able to instantly see any errors in the code and quickly fix them.

Some of the most interesting features of Swift are:
  • It doesn’t use expose pointers or unsafe accessors (unlike Objective-C);
  • Support of closures (lambdas in other languages);
  • Support of five access control levels;
  • Option types;
  • High scalability and great speed of performance.

A great thing about Swift is how concise and clear its code is. Not only does it contribute to code safety but it allows you to write much less code than you’d do with other languages. As well, Swift has an Automatic Reference Counting feature that automatically tracks all work done (plus takes care of memory usage!) so developers don’t have to spend time on doing that manually. And one more thing to know about Swift – it’s very scalable so your apps can be easily extended in the future by adding new shining features to them.

Interoperability with Objective-C

The thing about Swift is that it’s relatively new, meaning, there are a lot of iOS apps that were built with Objective-C some time back and are still being used today. Hence, one of the primary tasks for Swift was to be interoperable with Objective-C so developers can use the new language in conjunction with the old one.

What we have now is a programming language fully interoperable with Objective-C. That means that if you have an Objective-C codebase on your existing project, you can use Swift to add new features and it won’t cause any problems. 

The use of Swift: most common cases

While Swift is most commonly used for iOS apps development, it can also be used for other projects, such as Android development. And if you didn’t know that, scroll down and learn the use cases for Swift other than the development of iOS apps.

Development of Android apps

Similar to Kotlin and its multiplatform development feature, Swift can also be used for Android development thanks to the Scade SDK. In order to deliver a native-like experience to Android with the help of Swift, developers will need to first code the app in Swift and then the code will be compiled to the native machine code with the Apple compiler. 

The Scade SDK provides access to the native controls of an app, such as camera, map, text fields, and developers can use these controls through a single code base. The Scade SDK was introduced in 2019 and has certain limitations but overall, it’s quite a promising feature.

Web development

Since Swift is an open-source programming language and has support for Linux, no wonder it can be used for other tasks in addition to mobile app development. Hence, Swift is also used for web development and developers claim that it’s quite efficient in the role of a backend tool.

The recommended frameworks to use alongside Swift are Kitura and Vapor (though there are other options available). And if you are curious about why exactly developers choose to work with Swift, here are a few reasons: it has a really expressive static type system, great data modeling features, and it was designed with progress and innovation in mind. All its features result in a good performance and allow to create a robust and efficient backend of your app.

Swift Pros and Cons

Swift is loved by developers around the world – but don’t forget the fact that it’s still quite young. And that means this language has a number of cons and limitations that one should keep in mind in order to avoid errors and bugs.

Pros

Open-source: developers can go to Swift.org and review/leave/contribute their proposals, thus improving the language and helping it grow; 
Easy to learn: the syntax is similar to C-like languages, which reduces their entry threshold for developers who are already familiar with Objective-C;
Cross-platform: since the language is open sourced, it can be used for other platforms in addition to mobile. For example, there are frameworks for using Swift on the server-side of apps;
Functional-ready: many new features are implemented in the language and it allows to write code in a very functional style.

Cons

Compatibility issues: because Swift is developing very quickly, not all of its implemented changes have backward compatibility. However, starting with version 5, the community now works on ABI stability;
Static typing: it reduces the flexibility of the large frameworks that are still written on Objective-C.

Expert Opinion

Swift is a modern, secure, and high-performing programming language. It implements many modern concepts, including the ones focused on functional programming. And despite its young age, there is already a large community around Swift, which contributes to the fast development of the language.

As for working with Swift, first of all, it’s very interesting for those who want to create applications for the Apple ecosystem. Swift has rich tools and frameworks, with SwiftUI and Combine being the most popular ones. These frameworks allow you to implement declarative and reactive approaches and are overall very convenient to use.

Second, Swift now actively goes to other platforms due to its open-source nature. There are already frameworks that allow you to develop a robust backend running on Linux, including the use of Docker. And don’t forget that Swift allows creating apps for Android too. With this said, I believe Swift has a really big potential and I recommend it to anyone who wants to create a beautiful and rich application.

iOS Developer

p.wilbik@gmail.com

Conclusion

At SoftTeco, we acknowledge the power of Swift and widely use it in most of our iOS projects. While Objective-C has its advantages too and still remains relevant, Swift brings in certain innovations that cannot be found in Objective-C or other languages.

And with that, we end our tech series! We hope you enjoyed our reviews of backend, frontend, cross-platform, and mobile development tools. Do you still have any questions left? Feel free to leave a comment and sign up for our newsletter – we have many more interesting articles coming.

Want to stay updated on the latest tech news?

Sign up for our monthly blog newsletter in the form below.

Softteco Logo Footer