Mobile enhancements: Fixes and new features in Swift 2.2

Developers who are looking to integrate Swift into their existing infrastructure will find that the new release of Swift 2.2 comes with many core mobile enhancements. This update increases the usability of several of the mobile programming language’s major functions. One of the biggest impacts is that developers can generate new Swift code faster than previous versions, which allows them to increase their productivity significantly. Although the update does not have major enhancements, Swift 2.2 is billed as an intermediate step between Swift 2.1 and Swift 3.0. The latter is currently in the beta stage and does not yet have an announced release date.

Swift has quickly become popular with developers for making mobile enhancements because its interactivity and concise syntax give it a short learning curve. Additionally, the resulting apps are typically fast, which often increases user satisfaction, positive reviews and downloads. Using Swift to update an existing app is typically a seamless, painless process.

Here are five core enhancements for Swift 2.2:

Comparison handling

Previously, Swift did not support common comparison operators of tuples, which made it time-consuming and challenging to compare the values of these sets. Swift 2.2 now provides comparisons of tuple operators, which is especially beneficial for developers who are using Swift for existing apps that continue to use multiple tuples. Additionally, developers can compare tuples containing the struct properties when they’re creating comparison operators.

Argument label enhancements

According to GitHub, developers can now use almost any keyword for argument labels. They’re no longer prohibited from using a word that’s featured in the Swift development language, such as “in,” “repeat” or “defer.” In fact, update 2.2 allows developers to use any keyword except for “inout,” “var” and “let.” This results in clearer keywords, especially in cell expressions and function/subscript/initializer declarations. Additionally, as a result of this enhancement, developers do not need to retrofit apps that were created in other mobile languages, as Swift has updates that will remove these keywords.

Extra constraints for AnySequence.init

In prior versions of Swift, dynamic downcasts occurred when AnySequence needed to delegate calls to SequenceType protocol methods to the underlying base sequence. As GitHub points out, the update added new constraints to the Anysequence.init so that it wraps the base sequence and the associated Subsequence. This fix should eliminate bugs that previously occurred when creating new apps and updating existing apps in Swift.

New lazy flatMap

According to GitHub, version 2.2 now allows developers to use a lazy version of the Optional S flatMap. Previous versions of the mobile development language did not include this flatMap option. This addition allows the sequences to be generated on-demand, as opposed to in advance, thereby increasing the speed of the app and reducing the number of unnecessary allocate immediate arrays.

Added new associatedtype keyword

Instead of using the typealias keyword to declare both type aliases and associated types, developers can use the new associatedtype keyword for associated types in Swift 2.2. In the past, the typealias keyword caused confusion among developers because the same keyword meant two different things. This update is especially positive for beginner developers or those who are updating existing apps, because they can immediately learn about associatedtypes and are less likely to make errors when using this keyword within protocols.

Written By

Jennifer Goforth Gregory

B2B Content Marketing Writer

Jennifer Gregory has been writing professionally for over 20 years and specializes in big data analytics, cloud computing, personal finance, B2B, small business management, hospitality, Health IT, credit cards, marketing/social media, content marketing, retirement planning and insurance.…

Other Articles by Jennifer Goforth Gregory
See All Posts