• Processing of Unrecoverable Errors in Swift. The Research Approach

    • Tutorial

    Preface: it's all about the research approach

    This article is an example of how we can do a research of the Swift Standard Library functions behavior building our knowledge not only on the Library documentation but also on its source code.

    Unrecoverable Errors

    All events which programmers call "errors" can be separated into two types.

    • Events caused by external factors. Like network connection failure.
    • Events caused by programmer's mistake. Like reaching a switch operator case which should be unreachable.
    Read more →
  • Xcode 10.2, macOS Mojave 10.14.4, iOS 12.1 and other betas

      New betas are here and these are some of the most important things that I have learned about them.

      Swift 5 for Xcode 10.2 beta


      Firstly, the latest Xcode beta is bundled with the following Swift version:

      Apple Swift version 5.0 (swiftlang-1001.0.45.7 clang-1001.0.37.7)
      Target: x86_64-apple-darwin18.2.0
      ABI version: 0.6

      Let’s start with the most exciting news:
      Swift apps no longer include dynamically linked libraries for the Swift standard library and Swift SDK overlays in build variants for devices running iOS 12.2, watchOS 5.2, and tvOS 12.2. As a result, Swift apps can be smaller when deployed for testing using TestFlight, or when thinning an app archive for local development distribution.
      Application Binary Interface stability is coming! And this is excellent news. I think this is the one of the most significant issues at the moment with Swift. Not because of side-effects but because of Swift’s failure to deliver on previous promises. Anyway, I even know people who rewrite their Apple Watch extensions to Objective C to reduce the size of binary (something like 15MB vs ~1MB in Objective C). If you want to know more about the state of ABI, follow the links: Swift — ABI Dashboard and Swift ABI Stability Manifesto.
      Read more →