SwiftRocks - All Posts

All Posts

2024

Focus not on the task, but on the problem behind the task

Working at startups vs large companies

My process for learning new languages

What are mobile release engineering teams and when do you need one? (Runway)

Recommended WWDC24 Sessions

Using @_silgen_name to forward declare functions in Swift and improve build times

Software engineering book recommendations

What the hell are passkeys? (Runway)

2023

There is no right or wrong in software engineering

What even is code signing in iOS? (Runway)

How I'm using ChatGPT for software engineering

How necessary are the programming fundamentals?

How async/await works internally in Swift

Faster iOS performance debugging with ETTrace

Performance Trace Profiles in iOS: Debugging performance issues you can't reproduce

2022

Thoughts on SwiftUI vs UIKit

What's the "any" keyword? Understanding Type Erasure in Swift

Architecting iOS apps for fast build times (Runway)

Are your frameworks bulletproof?

Mobile Platform Teams (Runway)

Using a Macbook Pro as a gaming console

Sentiment Analysis with NSTagger: Ranking popular subreddits by the negativity/hostility of its comments

Managing Provisioning Profiles as your team grows (Runway)

Understanding Certificates and iOS Provisioning Profiles

How — and why — to think about mobile app versioning (Runway)

Avoiding release anxiety, part II (Runway)

Avoiding release anxiety, part I (Runway)

Merge queues: An intro for mobile engineers (Runway)

How successful mobile teams release apps at scale (Runway)

Focus on concepts, not approaches

2021

Detecting Broken Constraints in Swift

How To Solve Any iOS Crash Ever

Enabling Module Stability in Swift Package Manager Projects

Unit Testing Weak References / Retain Cycles in Swift

Solving CPU Usage Crashes with Xcode's Energy Organizer

How AsyncSequence works internally in Swift

Reverse engineering a 5 year old Xcode issue

Swift's Documentation Markup

Adding Intelligent Code Generation to Swift Projects with SourceKit

StaticString, and how it works internally in Swift

Extending / Creating Combine Publishers the Right Way

Benchmarking Swift Code Properly with Attabench

How Actors Work Internally in Swift

Creating 3D Models from Photographs with RealityKit in Swift

Thread Safety in Swift

Creating a licensing system for paid apps in Swift

Be careful with Obj-C bridging in Swift

2020

Understanding @inlinable in Swift

DispatchSource: Detecting changes in files and folders in Swift

How Swift API Availability Works Internally

UI Testing Deeplinks and Universal Links in iOS

Improving Observer Pattern APIs in Swift With Weak Collections

App Attest: How to prevent an iOS app's APIs from being abused

Entry Points in Swift: How @main and @UIApplicationMain work internally

Adapting Objective-C APIs to Swift with NS_REFINED_FOR_SWIFT

Creating Debug Menus in Swift with UIContextMenuInteraction

How to create Widgets in iOS 14 in Swift

Benefits of using throwing functions (try) - Swift's most underrated feature?

How Random Numbers Work In Swift

Unit Testing Preprocessor Macros in Swift

Weak Dictionary Values in Swift

Understanding Swift's ObjectIdentifier

Useful Global Swift Functions

How Collection Diffing works in Swift

Swift Codable: Decoding / Encoding With Context

Reducing iOS Build Times by using Interface Modules

How Hashable works in Swift

Using Type Erasure to Build a Dependency Injecting Routing Framework in Swift

2019

Faster Array Operations With CollectionOfOne in Swift

How OptionSet works inside the Swift Compiler

NSCopying uses in Swift

Swift's Sequence Inside The Compiler: How for loops work internally

Building a Face Detecting Robot with URLSessionWebSocketTask, CoreML, SwiftUI and an Arduino

Using SIMD Vector Types in Swift

Timsort and Introsort: Swift's Sorting Algorithms

Advanced lldb tricks for Swift - Injecting and changing code on the fly

Swift ExpressibleBy protocols: What they are and how they work internally in the compiler

Useful (and obscure!) Foundation types in Swift

Understanding Opaque Return Types in Swift

Inside SwiftUI's Declarative Syntax's Compiler Magic

autoreleasepool uses in Swift

Avoiding Release Anxiety 2: On the importance of creating a code Style Guide

Avoiding Release Anxiety 1: Block-based UI Testing in Swift

iOS Responder Chain: UIResponder, UIEvent, UIControl and uses

Adding iOS Home Shortcuts to Specific Parts of An App in Swift

2018

Avoiding Callback Hell in Swift

How @dynamicMemberLookup Works Internally in Swift (+ Creating Custom Swift Attributes)

How Never Works Internally in Swift

What's .self, .Type and .Protocol? Understanding Swift Metatypes

Running Other Apps' Siri Shortcuts Through Deeplinks in Swift

How CaseIterable Works Internally in Swift

Swift Associated Types With Default Values

Lazy Sequences in Swift And How They Work

Writing Custom Pattern Matching in Swift

Writing Cleaner View Code in Swift By Overriding loadView()

The Forbidden @inline Attribute in Swift

Competitive Programming With Swift

Unowned Properties in Swift

Memory Management and Performance of Value Types

Understanding DispatchQueues

Detecting TouchID fingerprint/FaceID face changes

2016

iOS Security: Reverse Engineering Messenger's Chat Bubbles