Advantages Of Using Swift Over Objective-C

An article aimed to highlight the main beauties that programming language Swift has.

Here I would love to start from a quick quiz.
Question: What is the programming language the iOS apps are written on?

a)C#

b)Objective-C

c)Swift

Apparently if you have chosen all of the above - you are 100% correct, all of the mentioned languages are of use when it comes to iOS development. Though, it would not be odd to mention all of them are different due to a huge “generation gap” that separates them.

...Wikipedia states it all has started from an Objective-C, when the granddad of programming languages was launched by Brad Cox and Tom Love back in the early 1980s. Firstly acquired by NeXT, and then, eventually by Apple, when in 1996 they used OpenStep in OS X. Since that time, a huge part of Apple operation system has been developed on Objective-C, and this has been it’s highest rise.

However, as it is well-known, everything good one day makes a great memory, and that’s exactly what is happening to Objective these days. I am 100% sure you have heard of the applications like 2048 game, Wordpress iOS or FireFox iOS browser. Surprisingly enough, the iOS coding language this apps are written on is not Objective - but it is Swift.

Swift. iOS App Programming Language.

(this info was due at the time the article was posted - February, 2017; some changes may apply later on)

In it’s willingness to astonish customers Apple managed to exceed everyone's expectations - particularly developers were more than surprised when in early June, 2014 the new ios app programming language was brought to this world. After 3 years of Swift development, programmers yet haven’t stopped working on it - there have already been several updates, with a latest version of Swift 4.0 released in September 2016. The code written on this open-source language could be applied for macOS, iOS, watchOS, tvOS and (!) Linux.
2 years later now, and Swift has taken a solid position among all the existing mobile development languages. Stack Overflow Developer Survey Results claim Swift to occupy the top places on Most Loved and Wanted Languages, and Objective-C rank as the most dreaded languages this year (2019).

All points considered, are there any advantages that make Swift stand out of crowd? Is there a chance it stands the Swift vs Objective contest?

Read also: 6 differences between iOS and Android development: myths vs reality

Swift versus Objective-C

Horses for courses as they say, but there are a few undeniable beauties that Swift-programming-language-from-Apple has. Here’s a bunch of graphically-introduced pros and cons to study.

Swift versus Objective-C

Even if coding process with all of its hi-tech features seems to be a rocket science to you, the more simple and progressive approach Swift has brought can’t go unnoticed. On the flip side though, there are a few things about Swift that some might call disadvantages, e. g. must use of Xcode as a primary integrated development environment; some developers complain they would better use third-party IDEs that have surpassed Xcode in stability and features.

Reasons For Using Swift

In spite of everything listed before, many development companies worldwide choose to stick to Swift language option, and Mind Studios are not an exception here. Why do we prefer Swift in Objective-C comparison? There are a few easy to consider factors.

Swift is...

1)...newer.

Objective-C is already 33 years old and was originally a C-language continuance. In striking contrast, Swift came as a separate language from Apple because it became hard for the company to support and develop Objective. During the 3 years of existence Swift has been actively developed, and the new version 4 will soon be delivered.

2)...cleaner.

With a new syntax added up to Swift, it seems way easier to read, compile and inspect the code than it used to be on Objective-C.

3)...less time-consuming.

As Swift requires less lines of code to be written, then, appropriately, it takes the minimum amount of time to finish the scope of code-creating work.

4)...less memory-consuming.

Earlier in Objective-C, if there was an object-link - it would take some of the random-access memory; when Swift was implemented - Apple left alone object-oriented programming, and switched to structures. As a consequence, the amount of reference type data and SDK classes has reduced, changed for the value type now. This has lead to a more efficient memory usage in Swift.

5)...faster.

Swift is faster than Obj-C

Swift manages to comply data quicker than Obj-C does; same as Objective-C, It uses the LLVM compiler for optimised native code generation for the platform that it’s running on. In Swift, plenty of arrays are re-written as structures; a few classes used to be objects earlier in Objective-C, which resulted in the slower code working process; although it takes longer for code to compile in Xcode IDE, the code works faster on Swift after all.

6)...not only iOS-oriented.

As was previously mentioned, Swift has already been adapted for Linux, and some programmers have already given it a shot on Android too. In our experience, server part can be Swift-written too.

7)...an open-source language.

Apparently all the technical documentation could be read - which basically means it could be used for the benefit of your future application products. And even more than that - all the willing devs can suggest their resolutions, as Apple has created Jira for Swift bug tracking.

8)… a type-safe language.

In contrast to Objective-C, which never was. Accroding to Stack Overflow’s data, type-safety is not only helpful for run-time, but also for compile-time. Swift does still not check for types at run-time, but does during a check at compile-time which already helps eliminating a lot of errors.

9)...a language with enums, optional types and handy switches.

...which basically means it is a bit safer to use. Objective-C has always been an object-oriented language, but with some structures written for Swift it has eventually led to less crashes and increased safety. Again, Apple have firstly added optional types and then, secondly, enumerations instead of integer values. Optional types help to check the object’s existence within the code, allowing to avoid additional crashes. With the help of enumerations and switches for objects Apple hopes to make coding experience even more mesmerising.
An example of Swift enums:

An example of enums:
An example of Swift enumsHowever, in Obj-C it would be
enum CompassPoint {
    case north
    case south
    case east
    case west
}
typedef NS_ENUM(NSInteger, CompassPoint) {
    north,
    south,
    east,
    west
};

Switches:
in Swift code they look likeIn contrast, here are Obj-C switches
switch character {
case "a", "A":
    print("The letter A")
case "b":
    print("The letter B”)
default:
    print("Other letter")
}
switch (compassPoint) {
    case north:
        NSLog(@"North");
        break;
        
    case south:
        NSLog(@"South");
        break;
        
    case east:
        NSLog(@"East");
        break;
        
    case west:
        NSLog(@"West");
        break;
        
    default:
        break;
}

An example of optional type, present only in Swift
unwrap optional:
var test: String?
if let test = test {
      print(“\(test) is unwrapped now ??”)
}
guard let test = test else {
     print(“test is nil ??”)
     return
}
print(“\(test) is unwrapped!”)
####9)...unstoppably upgrading. As it was already mentioned, 4 versions of fresh Swift have already seen the world, and these days we are awaiting on Swift 3.1 to be delivered asap. In addition, rumor has it that the forthcoming [Swift 4.0](https://themindstudios.com/blog/swift-4-vs-swift-3-differences/) will have backward compatibility - meaning that integration from the older language versions of 3.1, 3.0, etc. will become easier in the future.

Read also: Architecture Patterns for iOS Development

It is all Swift-good.

Pros of using Swift over Objective-C

It would be an unsupported claim if one tried to speak about technology before actually giving it a shot. So judging out of the experience we in Mind Studios already posses - Swift is pretty convenient to work with.
Several of our most recent applications are Swift-written, including:

  • Gadh iOS - an app proving online phone and video consultations with your lawyer
  • Stern Fit - a social network for passionate athletes
  • TapToTrip - a handy route and travel planner
  • LIT - premium EPUB eReader
  • Unagrande YogaClub - yoga video-lessons for passionate individuals
    All of the previously mentioned applications involve various technologies, which could be easily implemented on Swift.

Would you like to discover more about augmented reality development kit.

Summing it up - which language should you stick to?

This question does not have a universal answer itself. On the one hand, as it frequently happens in IT - the freshest technology is often a solution; on the other, changing your horses in midstream might not be the best-working policy as each project is different. So whatever you decide to go with, just ensure it is a good fit for the business model for this specific market industry and features you have picked out for your future product.

Written by Max Mashkov, Yurii Smirnov and Elina Bessarabova.

Require a consultation which tech to use for your project? Drop us a line!