It has taken some time to happen – but Apple finally made its Swift programming language open-source earlier this month. With this, Swift has joined the likes of Go (Google), Rust (Mozilla) and .NET (Microsoft) open source languages. The announcement had been made at this year’s WWDC in June, and since then, the iOS app development community had been abuzz with anticipation with when (and even whether!) Apple would fulfill its promise, and what the implications of an open source version of Swift would be for app makers. Over here, we take up that topic and examine it in detail:
- Scope to improve the language – For all the hype and curiosity around it, Chris Lattner’s Swift project is still new – and there is a lot of room for refining the language. The Cupertino tech giant very well understands that professional third-party mobile app developers can contribute towards this – and build the ‘small incremental improvements’ that the company is looking for. An open-source Swift paves the way for the betterment of the language, thanks to the efforts of developers.
- No longer an iOS-only language – The new version of Swift allows developers to work with Swift even outside the Apple ecosystem. It has been officially announced that Swift will be available for coding on the Linux platform. Windows and Android app developers would get it as well. With more than 78% developers actively using it, Swift has fast emerged as the most popular programming language. Apple is pushing it out to more and more developers – even the ones who are not into making apps for iOS/watchOS.
- Access to the source codes – One of the biggest advantages of the open-source Swift is that, developers can now access and modify (as required) the source codes of the language. For those involved in cross-platform app development, this is a great opportunity to customize their codes – without having to bother about other languages (a prior knowledge of Obj-C and Java is, of course, an advantage). Depending on the environment a software developer is working in, (s)he will be able to tweak the available tools, resources and source codes.
- Where has Apple stored the open-source version of Swift? – A new web portal – Swift.org – has been launched by Apple, for storing and running the ‘new’ Swift project. The popular Github repository has been selected for code-sharing purposes among developers worldwide. An array of additional tools have also been added to the language – to make the entire process of transforming raw Swift codes into full-blown, workable mobile applications.
- Open-source Swift apps in the App Store – Well, that is not going to happen. The open-source version of Swift is different from its official counterpart – and applications built with the former won’t find a place in the Apple App Store (at least, not yet). The new version is focused on widening the user-base of Swift and boosting its online support community. For all its open-source announcements, iOS developers will still have to use the official version of Swift (and cough up the developer fee) for making Apple apps.
- The controls remain with Apple – A follow-up of the earlier point. Swift has been made open-source, but has NOT BEEN PORTED to Android or Linux or any other platform. The UIKit and the AppKit tools can still be used only for Mac OS X and iOS app development (the open-source Swift does have ‘core libraries’…more on that later). For its own ecosystem, Apple is still going to lead the way, and it is not likely to relinquish that position any time soon. The ‘new’ Swift is much like an invitation for people making apps for other platforms – but it does not give up full control to them.
- Not an unexpected move – For those following news related to Apple Inc closely for the last few quarters, the move towards making Swift open-source has hardly been a surprise. WebKit, the built-in search engine for the Safari browser had been opened up for software developers quite some time back. Earlier in 2015, ResearchKit (iOS) was also made open-source. What’s more, Apple has been venturing into new things – from HomeKit and Apple Watch, to HealthKit and even the Swift language (which debuted only 18 months back; version 2.1.1 was launched on the 8th of this month). Releasing an open-source version of Swift is in keeping with Apple’s recent trend of activities and product/software launches. Well, the Apple Watch did not exist before Spring 2015!
- Core Libraries for the open-source language – The ‘new’ version of Swift comes with ‘core libraries’ that are: a) native to the language, and b) an improvement over the previously existing standard libraries. Some key features of both AppKit and UIKit have been included in these ‘core libraries’, and fresh codes for the Foundation, XCTest and libdispatch frameworks have also been published. What’s more – a ‘Packet Manager’ project has also been provided to mobile app development experts, for code-building and sharing purposes. Swift was already a fast language, and Apple is attempting to make it ‘swift-er’.
- A buffer in case Apple ditches the language – Oh well, that is not likely to happen anytime in the foreseeable future. But even in theory, if Apple ever decides to move away from the Swift language – the presence of an open-source version ensures that developers would still be able to use the open-source version to build apps and games and other software. All the codebases, resources, and of course the online support community will remain – providing programmers an added assurance.
- Getting started with the open-source Swift – Apple has made it as simple as possible for third-party mobile app companies to get their feet wet with the ‘new’ version of Swift. There is an in-built alternate toolchain in the new Xcode IDE. Command line tools as well as binaries have all the required downloads present on the Swift.org website. There are also detailed instructions and guidelines available – both on the site and on other app development forums. For even newbies, setting up the environment for Swift programming should be a matter of minutes.
- Better security features – Apple is making a conscious effort to get into more and more aspects of everyday life (from m-payments via Apple Pay, to smart home systems and automation (CarPlay should arrive in 2019)). For making apps for all of these platforms, a language with complete security assurance is required – and Apple intends to make Swift exactly that ‘core programming language’. Since developers from all over will be able to pool their knowledge and expertise for improving Swift codes, it is only natural to expect that due attention will be paid to the security and stability aspects. Any possible existing glitches will be ironed out over time.
- Extensive documentation and bug reporting – Those who have started to make apps with the open-source edition of Swift can find all the support they need – right on the Swift.org portal. There is a dedicated blog on Swift engineering, along with detailed documentation, a mailing list, and even pointers on API designs. A real-time system of bug monitoring and reporting makes coding for apps faster and easier too. There is now a single language to worry about, error handling is smarter and speedy, and the learning curve for cross-platform developers is a lot less steep.
- A chance for Windows to become competitive again – For any platform – desktop or mobile – the presence of an well-stacked app store is an absolute must. In this regard, the Windows App Store lags well behind its Mac counterpart. With the fairly well-received Windows 10, Microsoft is endeavouring to get into Internet of Things (IoT) in a big way – and the arrival of an open-source version of Swift would enable developers to create more, and better, apps for the Windows platform. If Windows indeed picks up, the annual sales of Mac systems might witness a dip – but Apple is prepared to take the risk, in its bid to lure more developers into the world of Swift.
- The license issue – As most mobile app and game developers had predicted, the open-source Swift has been released under an Apache 2.0 license. The license covers all the package managers, compilers, software (core) libraries and tutorials. The new Swift Package Manager is, understandably, rather thin at the moment – but with the contribution from developers working on multiple platforms, it is expected to become more resourceful and intuitive within a relatively short time-frame.
With the new open-source Swift, developers can make apps for (apart from OS X and iOS) the tvOS, the watchOS 2 and the Linux platforms. ‘Swift is growing faster than anything else we track’, opines the RedMonk analysts – a statement that is backed up by the results thrown up from a recent Stack Overflow survey (over 26000 developers from nearly 160 different countries code with Swift). Apple has made the language open-source in a bid to expand the user-base of the language further. The stable Swift 2.2 version will be launched in early-2016, with the release of the full Swift 3.0 update being expected later in the year. The stage is all set for the worldwide Swift developers community to grow at an exponential rate.