Deciding between Swift and Objective-C for a new iOS application is not a clear-cut decision, there are multiple factors to think on before building a new iOS application.
As the programming language upgrade goes, Apple has released three versions of Swift so far, and Swift 4 is at the launch this fall.
On the other side, Objective-C is widely favored by senior developers for its stability. Before you waive your Swift or Objective-C flag, think of these factors and decide accordingly.
Stability might be an issue
If you’re working on small applications, you have the flexibility to choose the language you’re most familiar with. And, it does make sense because it takes fewer overheads to make the codes compatible with the newer version, but with larger applications, you have to be very cautious to adopt Swift, as Swift lacks the stability and considered as an immature language.
Each version of Swift can entice the busy work of upgrading codes into new syntax and you would not like to see a broken version of the application on any minor updates.
However, Xcode provides the flexibility to change Swift codes to its +1 version, but it doesn’t compile everything, and you have to do it manually understanding the context behind the codes.
But, migration from Swift 3 to Swift 4 is expected to be less painful than migrating from Swift 2 to Swift 3.
- Ted Kremenek, Head of Swift, Apple
You can read the release process documentation here.
Working with APIs and libraries
Objective-C has been here for ages, so there are tons of third party APIs and libraries compatible with the language. The developers can import Swift files and libraries to objective-c, but importing Objective-C library files has to be done by building wrappers and classes on top of Swift. However, Swift is gradually making progress and we can expect more libraries and APIs to be compatible soon.
Some of widely used APIs and libraries are PoP(to create visual effects), G track(to integrate G-Analytics swiftly), BugLife(to report real-time bugs) and IngeoSDK(for geo-services) to name a few.
Operating system compatibility
Swift runs on iOS 7.0+, Mac OS 10.9+, and all versions of Tv Os and wearable OS. This is not a critical issue but if you’re building the application to support any version below that, Objective-C is the only way to go.
Swift 4 is arriving this fall, it’s believed to solve the biggest issue of migration. We can agree Swift is fast, secure and simple but Objective-C is not fading away anytime soon.