Localization troubles with Swift PM
Explains a Swift Package Manager bug where moving localization files to an SPM package breaks app translations, detailing the cause and a workaround.
Scott Berrevoets is an iOS-focused software engineer with over a decade of experience building and scaling mobile platforms. Currently at Speak and formerly a long-time iOS tech lead at Lyft, he writes about iOS development, architecture, and mobile engineering.
26 articles from this blog
Explains a Swift Package Manager bug where moving localization files to an SPM package breaks app translations, detailing the cause and a workaround.
Explores the challenges of managing code deprecations on iOS, covering both vendor and internal deprecations, and discusses the limitations of Apple's tooling.
Explores how tech debt in infrastructure code creates a self-perpetuating 'flywheel' effect, making it extremely costly and difficult to fix.
Explores best practices for modeling state in SwiftUI apps, emphasizing value types and avoiding common pitfalls like singletons.
A developer explains how to create and manage a resume using Markdown, source control, and tools like pandoc and wkhtmltopdf for PDF conversion.
An iOS developer reflects on the massive growth in complexity and specialization within the iOS ecosystem over the past decade, from frameworks to Swift language features.
A guide to extending Neovim's 'K' key to look up word definitions using a custom Python script and dictionary API.
Explores code coverage as a metric for untested code, its limitations, and practical tools for tracking and improving test quality in software development.
A technical article on building a robust testing infrastructure for iOS development, covering modularization, test types, and strategies to reduce flakiness.
A software engineer details the multi-year journey to establish a strong automated testing culture at Lyft, focusing on motivation, infrastructure, and measurement.
Strategies for managing complex, semantic code migrations in large, multi-team mobile codebases, focusing on coordination and tooling.
Discusses the importance of human factors like team onboarding, reversibility, and support when choosing software architectures and technologies.
A senior engineer at Lyft outlines the risks of using third-party libraries in production apps and proposes a framework for consistent risk assessment.
Lyft's iOS team details their journey from a monolithic Objective-C app to a modern, modular architecture to improve scalability and maintainability.
Explores a Swift compiler bug where re-binding 'self' in a weak closure breaks Xcode debugging, with historical context on weak/strong self patterns.
Lyft's iOS team shares their experience using Interface Builder at scale, addressing common criticisms and sharing custom tools for a better workflow.
Lyft engineers detail their approach to making the iOS app accessible, focusing on VoiceOver integration and UI improvements.
A guide to disabling NSLog in iOS/macOS apps to reduce console noise from third-party libraries, with code examples in Swift and Objective-C.
Explains when to use strong vs. weak and optional vs. implicitly unwrapped IBOutlets in Swift/iOS development, with practical rules.
Xcode 7 beta 4 fixes @objc class prefixes, allowing proper namespacing for Swift classes used in Objective-C.