Why should Businesses develop their next iOS app using Swift 5

By Shrikant Srivastava
December 26, 2019 5. min read
Last update on: December 26, 2019

Swift, today, is where Java was in its early days. 

There was a time when Java was going through frequent updates to develop into a language which could introduce performance and stability in the Android domain. 

Swift too, has been going through changes to become a robust language on which high-end, complex applications can be built. 

After going through four massive version updates, Swift this year launched two versions: Swift 5.0 and Swift 5.1. 

Both versions have introduced some notable features that play a role in strengthening the language. 

Let us first look into what both the versions have to offer. Then, we’ll head on to the part where we look into the Swift 5 features that make the updates an ideal companion of iOS app development company

What was introduced with Swift 5 Update?

Swift 5 update is one of the biggest milestones to have contributed to the evolution of the evolution. Apart from the revolutionary ABI stability, the Swift runtime is also now added in the present and future Apple platform’s OS versions: iOS, macOS, watchOS, and tvOS. 

Swift 5 features also come with a plethora of new capabilities* that act as the building blocks of Apple’s vision and help giving a new direction to the advantage of swift programming language.

*For details, head on to the Swift 5 release notes

Language Updates  

1. Binary Compatibility and Stable ABI 

ABI was declared stable for Swift 5 app development. As a result, Swift libraries have been incorporated in every iOS, tvOS, watchOS, and macOS, which earlier was a problematic element whenever engineers had to develop apps for iOS. The applications will now be easier to develop and much smaller in size since they will not include any libraries. 

2. Standard Library Updates 

The Swift 5’s standard library comes with following new features set:

  • The string has been reimplemented with the UTF-8 encoding that results in faster code. 
  • Better support for raw texts in the string literals. 
  • The SIMD vector and Result types have been added.
  • Performance improvements in Set and Directory.
  • Enhancements in String implementation, giving flexibility for constructing text from data. 

3. Additional Compiler and Language Updates 

Swift 5 app development enforces exclusive access to the memory, both for debugging and releasing builds. It supports dynamically callable types which helps in improving interoperability with the dynamic languages like JavaScript, Python, and Ruby. 

It also implements these language proposals:

  • Handling future enum cases
  • Literal initialization through coercion
  • Introduce user-defined dynamic “callable” types
  • Supports ‘less than’ operator in the compilation conditions
  • Identity key path 
  • Flatten nested optionals emerging from ‘try?’

Package Manager Updates

The Swift Package Manager comes with a series of new features in the Swift 5 app development version, which includes: Dependency mirroring, customized deployment targets, target-specific build settings, and the capability to generate the code coverage data. In addition to this, the swift run command includes a capability to import libraries in REPL with building an executable. 

Swift 5 also implements these Package Manager proposals from Swift evolution process:

  • Dependency Mirroring 
  • Platform deployment settings
  • Target specific build settings

What was introduced with Swift 5.1? 

Swift 5.1 grows on the strength of Swift 5 with features like module stability, new features that extend the ability of language and standard library like: opaque result types, property wrappers, new APIs for String, diffing for appropriate collection types, etc. 

Together, Swift 5.1 makes it easy to design APIs and lower the common boilerplate code. 

Here are the features that Swift 5.1 comes with*:

*For details, head on to the Swift 5.1 release notes.

Module Stability 

Swift 5.1 makes it possible to create binary frameworks which can be shared with others who leverage language’s added support for module stability. This, in turn, makes it extremely convenient and speedy for developers to develop apps for iOS. 

It defines a new text based module interface file which describes the binary framework API, enabling it to get compiled with codes with the help of different compiler versions. 

Standard Library Updates 

The Swift 5.1 standard library comes with following new features, making it extremely easy to understand how to make apps with Swift 5:

  • Support for updating and handling diffs on the collection of appropriate types 
  • Greater flexibility for initialization of an array 
  • APIs for working with Strings – developing and handling contiguous strings, helper for working with Unicode text, and general initializers for Range and String.index. 
  • Identifiable protocol for extending reductions, vector swizzles, and vectors. 

Language Server Protocol 

The Swift 5.1 OSS toolchain packages for Ubuntu and macOS include binaries for the SourceKit-LSP, which is an implementation of LSP for C based languages and Swift. 

SwiftSyntax Updates 

It has been re-architecture with a separate focus on improving the performance by using parser from Swift compiler. Additionally, performance of the syntax tree visitation and its related operations have been improved through re-architecturing of internal data structures. 

Additional Language and Compiler Updates 

Swift 5.1 comes with these new language features:

  • Property wrappers introducing consistent context for defining the custom access patterns for property values like – delayed initializers, thread specific storage, atomic operations, etc. 
  • The return keyword is not needed for a single expression getters or functions. 
  • Self can be used for value types and classes. 
  • The compiler synthesizes default values for the properties with default initializers. 

How do businesses benefit from it? 

Although the majority of the features introduced with Swift 5 and Swift 5.1 are related to the Swift app developers, some of them can be translated to business benefits as well. 

One of the key features that directly impact businesses – the one that the Apple industry had been waiting since Swift 1.0 – is ABI (Application Binary Interface) stability.   

swift 5 abi stability

While sounding much like a developer’s problem, what this means in practicality is that Apple couldn’t include Swift programming language support in the operating systems, because an app written in Swift 2 couldn’t run with Swift 3. Simply because, it wouldn’t work with the language support binaries of Swift 3.

The solution that was available to the developers was to include the Swift libraries in app bundle which would get downloaded from App store. This, in turn, increased the size and the storage requirement of the application. And became one of the biggest disadvantages of swift programming language.

But with Swift 5 making ABI stable, the industry has now received a permanent solution to these user side issues. It would enable the developers to run the application in all the upcoming Swift versions. Meaning, the code written in the Swift 5 app development process will run on Swift 6, 7, and so on. An event that makes Swift a preferred language for both Enterprises and Startups

This move is speculated to be the one that would bring language several strides ahead in the Swift vs Objective-C comparison. 

Here are the business benefits that the Swift 5 feature brings with it:

  • Smaller app size: Swift 5 makes the language binary compatible. Meaning, the end result of Swift 5 app development would be significantly smaller for the users to run on their new operating system – iOS 12.2, watchOS 5.2, macOS 10.14.4, and tvOS 12.2. 
  • Faster Launch: Another advantage of this is the faster launch time. Because every dynamic library which is used by an application (which increases the launch time) will be cached in the memory and shared among the apps.  
  • Greater Performance: Users do not want to work in a broken application. And with app freeze and glitches being the biggest reason behind app uninstallation rate, it is imperative for a business to avoid it. The Swift 5’s ABI stability helps apps in behaving better and offering enhanced performance.

But. 

How small is too small? Let’s answer through the help of some live cases of Swift app development for iOS –  

  1. Apollo for Reddit comes with an app size of 35.7 MB. Here, the 7.5 MB is made up of Swift libraries. Now when the app gets updated to Swift 5, the size will be reduced by over 20% and come around at 30 MB.  
  2. The size of PCalc 86.8 MB, which includes the 7.5 MB of Swift libraries. This, when updated to Swift 5, the size reduces by 9%, bringing the size down to 80 MB.  
  3.  Chirp, an app that brought Twitter to Apple Watch comes with a size of 28.8 MB, which is inclusive of 11.6 MB made of Swift libraries. This, when updated to Swift 5, gets reduced by over 30%, bringing the size down 20 MB. 

In a blog post talking about the future of Swift language, Donny Wals said, “Now that we have Module Stability and ABI Stability in Swift, the language is likely to change at a slower rate than we’re used to. We should see less radical, source breaking changes and the language should slowly mature into a beautiful, fast and stable language that will be a great basis for your applications for years to come.”

Is it good to build an app in swift 5? Yes. The time is right for businesses with iOS apps to get the code re-written in Swift 5 and for new businesses to build apps on Swift 5 and benefit from the impeccable user experience. 

Shrikant Srivastava
Shrikant Srivastava
VP Technology
In search for strategic sessions?.
Let us understand your business thoroughly and help you
strategies your digital product..

Recent Articles: