Development

See all categories

255 posts

Development

Evolving Swift On Apple Platforms After ABI Stability

Swift 5.0 achieves ABI stability on Apple platforms, allowing apps to use the OS-provided Swift runtime instead of bundling it, which reduces download sizes and enables better performance through deeper integration.

Development

ABI Stability and More

Swift 5 achieves ABI stability on Apple platforms, ensuring binary compatibility for apps and libraries across future Swift versions without needing to embed the Swift runtime in app bundles.

Development

Introducing the sourcekitd Stress Tester

Sourcekitd powers essential editor features like code completion and refactoring in Xcode and SourceKit-LSP, handling both syntactic and semantic requests for Swift files.

Development

Swift 5 Exclusivity Enforcement

Swift 5 turns on runtime checks for exclusive access to memory by default in release builds.

Development

Dictionary Services

The article explores dictionary-related APIs in Swift across Unix, macOS, and iOS, highlighting their role in features like spell check and semantic analysis.

Development

Bundles and Packages

The article clarifies the distinction between bundles and packages on Apple platforms, often confused due to overlapping use cases.

Development

CharacterSet

The article introduces CharacterSet, a Foundation type in Swift for manipulating Unicode scalar values, distinct from Set<Character> despite its name, as it conforms to the SetAlgebra protocol rather than storing Character values directly.

Development

Locale

Internationalisation (i18n) means building your app so it can support many regions and languages. Localisation (l10n) means actually translating and adapting it for a specific market.

Development

The User Experience of Chatbots

I absolutely hate chatbots! So much that I added a rule to Quiet to hide/block chatbots from websites.

Development

FileManager

On Apple platforms, the FileManager class in the Foundation framework provides a robust abstraction for file system operations like creating, reading, moving, copying, and deleting files and directories, using paths or file URLs.

Development

DateComponents

The article introduces DateComponents, a versatile Foundation type in Swift for representing either a specific calendar date or a duration of time, emphasising its use over hardcoded time intervals like 60 * 60 * 24 for a day.

Development

REPL Support for Swift Packages

The swift run command now includes a --repl option. This lets you start the Swift REPL and import library targets from a package.

Development

How Mirror Works

Swift provides runtime type inspection through the Mirror API. This allows developers to examine arbitrary values and traverse object graphs without prior knowledge of types at compile time.

Development

Swift 5.0 Release Process

Swift 5.0 aims to achieve ABI stability to enable a stable runtime for operating systems, with module stability as a key focus that may land in this release or a later 5.x update.

Development

Swift 4.2 Released!

Swift 4.2 is a major update that enhances compile times, debugging, the standard library, and moves closer to binary compatibility, while maintaining source compatibility with Swift 4 and 4.1 but marking the last release to support Swift 3 compatibility.

Development

CMDeviceMotion

The Core Motion framework in Swift simplifies access to iOS and watchOS device sensors, enabling innovative user interactions beyond touch by leveraging a dedicated motion coprocessor for efficient accelerometer, gyroscope, and magnetometer data processing.

Development

CMMotionActivity

The Core Motion framework’s CMMotionActivityManager on iOS and watchOS uses a device’s motion coprocessor to process sensor data from accelerometers, gyroscopes, and magnetometers, determining user activities like walking, running, cycling, automotive travel, or being stationary with varying confidence levels.

Development

NSDataDetector

NSDataDetector finds dates, links, phone numbers, addresses, and transit details in natural language text. It is a subclass of NSRegularExpression.

Development

NSDataAsset

Asset catalogs in Xcode let you store not just images but also data files like JSON. This helps apps load faster on first launch by avoiding network calls.

Development

Experience Rot

Steve Jobs once said, “You have to pick carefully. I’m actually as proud of the things we haven’t done as the things I have done. Innovation is saying ‘no’ to 1,000 things.”

Development

NLLanguageRecognizer

Apple’s Natural Language framework (iOS 12+) finally lets developers use the same powerful language-detection technology that powers Siri and system features.

Development

UITextInputPasswordRules

Automatic Strong Passwords (iOS 12 / macOS Mojave) let Safari and your app generate truly random, high-entropy passwords that actually satisfy the site’s rules, no more “password too weak” after AutoFill.

Development

Introducing Related Projects to Swift Forums

The Swift community continues to expand, with developers increasingly relying on ecosystem projects to streamline app development for specific tasks. To foster better interaction, Swift Forums has introduced a new top-level category called Related Projects.

Development

Swift Community-Hosted Continuous Integration

Swift.org has expanded its continuous integration testing system to include community-hosted nodes for additional platforms.

Development

Reimplementation of Implicitly Unwrapped Optionals

Swift 4.1 reimplements implicitly unwrapped optionals (IUOs) so they act as regular optionals with a flag that allows automatic unwrapping when needed, rather than as a distinct type.