First of all, I've been an Objective C
developer for years, and around the time that Swift was announced I was mostly maintaining existing Obj C
projects. The chance never came to be fully invested in a Swift
app, whether from scratch or to maintain. My efforts where directed mostly towards .Net and React Native at that time.
I've done research on what ABI is. It's all fine and dandy. From that answer, I can only assume how that comes into play for Swift
, since I do not have much heavy involvement with Swift
.
So, from simply guessing, is all the ruckus, racket, and fracas in Swift ABI
talk to do with the 'assumed' fact that when a library is written/compiled with version 1.0
of Swift
(before Swift 5), it will work fine with an app written in 1.0
. When the next version of that library is written in Swift 2.0
, that aforementioned app written in Swift 1.0
will not be able to use it, unless compiled for Swift 2.0
? Assuming that I am correct on that one, what if I have an app written in Swift 4
, and the library I wish to use was written in Swift 1.0
Can I use it? With Swift 5
now released, are ABI
issues now resolved for Swift
libraries and apps 5+
, and not 5+
interacting with 5-
?
If I had experienced these issues first hand I might have had a better understanding of Swift ABI issues.
Please explain with actual examples that cover the full range of cases (if possible).
Update: please include if there are any issues with ABI for small version increases eg from swift 4.0 to 4.1