• Signpost: When Breakpoints are not Enough

    • Tutorial

    Instruments for Apple's Xcode is a tool for performance analysis of an iOS application. In 2018 Apple introduced Custom Instruments — an opportunity to expand the standard set of instruments for application profiling. When existing tools are not enough, you can create new ones yourself — it will collect, analyze and display the data the way you need.

    Read more →
  • The Processing of Unrecoverable Errors in Swift

    • Tutorial


    This article is an example of how we can do research into 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 such as a network connection failure.
    • Events caused by a programmer's mistake such as 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 →