Blog

Development

Library Evolution in Swift

Swift's library evolution support, enabled via BUILD_LIBRARY_FOR_DISTRIBUTION in Xcode or -enable-library-evolution in swiftc, allows framework authors to make additive API changes while maintaining binary compatibility, ensuring clients don't need recompilation.

Development

Introducing Swift Crypto

Swift Crypto is a new open-source Swift package that extends Apple CryptoKit's APIs to non-Apple platforms by using BoringSSL for cryptographic primitives, while deferring to CryptoKit on Apple systems for seamless cross-platform development.

Monthly Updates

Monthly update #0357 • January 2020

Monthly update 357 • January 2020 • 2020-01-01 - 2020-01-31

    Books

    The 5 AM Club by Robin Sharma

    In “The 5 AM Club,” renowned leadership expert Robin Sharma elucidates the transformative potential of early morning wake-up and purposeful daily commencement.

    Monthly Updates

    Monthly update #0356 • December 2019

    Monthly update 356 • December 2019 • 2019-12-01 - 2019-12-31

      Gems

      Tesseract

      The day-night cycle and the cycle of the seasons have been an important part of human civilization for millennia.

      Development

      AVSpeechSynthesizer

      The article highlights the role of Swift’s AVSpeechSynthesizer, introduced in iOS 7 and macOS 10.14, in enabling speech synthesis for computer-assisted communication across languages, supporting over 30 languages with voices selected via IETF Language Tags.

      Monthly Updates

      Monthly update #0355 • November 2019

      Monthly update 355 • November 2019 • 2019-11-01 - 2019-11-30

        Books

        Blue Moon by Lee Child

        Blue Moon pits Reacher against rival Albanian and Ukrainian gangs in a city turf war after he helps an elderly man robbed for loan shark debts.

        Development

        Swift Numerics

        The Swift Numerics open-source project introduces a modular Swift package for numerical computing, filling gaps in the Standard Library with modules like Real and Complex.

        Monthly Updates

        Monthly update #0354 • October 2019

        Monthly update 354 • October 2019 • 2019-10-01 - 2019-10-31

          Development

          SSWG Annual Update '19

          The Swift Server Work Group (SSWG) has made significant progress in its first year, establishing an incubation process for defining high-quality Swift packages through community pitches, reviews, and acceptance.

          Gems

          Earth and Sun

          The day-night cycle and the cycle of the seasons have been an important part of human civilization for millennia.

          Development

          New Diagnostic Architecture Overview

          Swift 5.2 enhances compiler diagnostics through a new infrastructure that uses 'constraint fixes' to pinpoint type errors more accurately, allowing the type checker to continue solving and report multiple issues with actionable guidance, unlike the old system's vague guesses.

          Monthly Updates

          Monthly update #0353 • September 2019

          Monthly update 353 • September 2019 • 2019-09-01 - 2019-09-30

            Development

            Swift 5.2 Release Process

            Swift 5.2 focuses on delivering significant improvements in quality and performance.

            Development

            Swift 5.1 Released!

            Swift 5.1 advances Swift 5 by introducing module stability, enabling binary frameworks that work across compiler versions, alongside library evolution support for resilient APIs.

            Development

            Apple Push Notification Device Tokens

            In iOS 13 where a change in NSData’s description format—from a full hexadecimal string to a summarised form—breaks push notification workflows that relied on string manipulation of deviceToken in application(_:didRegisterForRemoteNotificationsWithDeviceToken:).

            Monthly Updates

            Monthly update #0352 • August 2019

            Monthly update 352 • August 2019 • 2019-08-01 - 2019-08-31

              Development

              Thread Sanitizer for Swift on Linux

              Swift 5.1 introduces Thread Sanitizer on Linux, enabling runtime detection of data races in multithreaded code, which can cause unexpected behaviour or memory corruption despite Swift's single-threaded safety guarantees.

              Monthly Updates

              Monthly update #0351 • July 2019

              Monthly update 351 • July 2019 • 2019-07-01 - 2019-07-31

                Gems

                Alpha Compositing

                Transparency may not seem particularly exciting. The GIF image format which allowed some pixels to show through the background was published over 30 years ago.

                Development

                Formatter

                The article explores the Formatter class in Swift’s Foundation framework, essential for transforming data into human-readable formats, addressing complexities like user language, calendar, and currency preferences.

                Development

                CAEmitterLayer

                The article introduces CAEmitterLayer for creating a confetti effect on iOS, explaining its role as a high-performance particle system within the Quartz Core framework for rendering effects like confetti, fire, or rain.

                Monthly Updates

                Monthly update #0350 • June 2019

                Monthly update 350 • June 2019 • 2019-06-01 - 2019-06-30