Weekly note ✏️
AI, vibe-coding, WWDC—there’s no shortage of trends in tech. But at the end of the day, if you want to build solid software, you either go Indie (a whole different world, which we’ll cover later) or work for a company.
And when you work for a company, beyond your hard skills, you need to keep an eye out for red flags that should make you reconsider your choices early on. Some common ones include:
🚩 Unrealistic goals – “We’re going to disrupt the market!” (without a clear plan).
🚩 Non-standard working schemes – No fixed salary date, accountants ignoring you while your bank waits for payment details.
🚩 Lies about financial and legal matters – No signed contracts with investor and partners, missing licenses for required work.
🚩 Non-professional leadership – Jokes about “getting fit without a salary” instead of solving actual problems.
Value yourself. Don’t let a company take advantage of you beyond what’s outlined in your contract.
Honestly, I’ve been wondering—companies can fire employees if they fail to do their job. Wouldn’t it be fair if the reverse applied? If a company consistently fails to meet its promises, shouldn’t the leadership step down for mismanagement? Food for thought.
Connect with the "Those Who Swift" team - Justas Markus & Anton Gubarenko 👋
Sponsor 🤝
The first newsletter for product engineers
Product for Engineers is PostHog’s newsletter dedicated to helping engineers get better at product. It includes what they’ve learned from building PostHog, research into top startups, and curated advice on building great products.
Swift Around the Web 🌐
Modern URL Construction in Swift
After a two-year hiatus, John Sundell returns with an insightful article on constructing URLs in Swift. He explores leveraging Foundation's latest URL APIs alongside Swift features like macros to streamline working with both static and dynamic URLs. Sundell introduces a custom initializer for static strings and demonstrates creating a compile-time validated macro to ensure URL integrity, enhancing code safety and clarity. What a return!
Read more.📍
Introducing swiftly 1.0
Chris McGee (from Swift Foundation) introduces swiftly 1.0, a Swift version manager designed to simplify the installation, management, and updating of Swift toolchains across various platforms, including macOS and Linux. This tool allows developers to effortlessly install new versions, switch between multiple installed toolchains, and experiment with nightly snapshots or older releases.
Read more.📍
Swift 6.1 Release
Swift 6.1 brings improved concurrency support, better Objective-C interoperability, and productivity enhancements like trailing commas in various list types. The nonisolated
keyword now applies to entire types, and @implementation
allows Swift extensions to implement Objective-C declarations. These updates make Swift more efficient and developer-friendly.
Read more.📍
Coding 👨💻
SwiftUI Craftsmanship: State Management
Danny Bolella delves into effective state management in SwiftUI, emphasizing the importance of understanding and utilizing tools like @State
, @Binding
, and @ObservedObject
. He highlights common pitfalls developers encounter and offers strategies to maintain a clean and efficient state architecture. Boe also discusses best practices for structuring SwiftUI applications to ensure scalability and maintainability.
Read more.📍
Does AsyncStream Replace Combine? No.
Michael Long examines the roles of AsyncStream
and Combine in Swift, concluding that while AsyncStream
offers a modern syntax for handling asynchronous sequences, it doesn't fully replace Combine. He highlights that Combine remains more efficient for modeling ongoing streams of values, especially in complex scenarios requiring advanced operators and backpressure handling.
Read more.📍
Other cool stuff 🧰
SwiftData Uncovered: My Learnings and Insights
In this article, Naren Krishnaa explores SwiftData, highlighting its streamlined approach to data persistence compared to Core Data. He delves into three core components: ModelContainer
, which manages data storage and access across views; ModelContext
, facilitating data interactions like insertion, updates, and deletions; and model attributes such as @Attribute(.unique)
, @Transient
, and @Relationship
, which define data properties and relationships.
Read more.📍
SwiftUI Grid, LazyVGrid, LazyHGrid Explained with Code Examples
Antoine van der Lee explores SwiftUI's grid layouts, focusing on Grid
, LazyVGrid
, and LazyHGrid
. He explains how to create structured, two-dimensional layouts with precise control over rows and columns.
Read more.📍
Building a Dependency Injection Framework
Natascha Fadeeva introduces a lightweight dependency injection container for Swift. She covers service registration, resolution, and managing object lifetimes, showing how DI improves modularity and testability. A great guide for structuring Swift apps efficiently
Read more.📍
There is no Vibe Engineering
Sergey Tselovalnikov challenges the idea of "vibe coding," where developers rely on AI agents to generate code. While useful for prototyping, he argues it lacks the depth of real software engineering, which involves scalability, security, and maintainability. AI can assist coding, but it doesn’t replace true engineering.
Read more.📍
Apple News 🍏
WWDC 2025
Apple has announced that the Worldwide Developers Conference (WWDC) 2025 will take place online from June 9 to 13, 2025. The event will unveil the latest Apple tools, frameworks, and features, offering developers opportunities to enhance their apps and games through video sessions hosted by Apple engineers and designers. Attendees can engage with Apple experts in labs and connect with the global developer community, all at no cost.
Read more.📍
Instruments Tutorials
Apple’s Instruments is a powerful tool for analyzing app performance, identifying memory leaks, and optimizing CPU and resource usage. The tutorial walks through key profiling techniques, such as detecting slow code paths, monitoring memory allocation, and analyzing thread activity. It also covers best practices for improving responsiveness and efficiency in iOS and macOS apps. By mastering Instruments, developers can fine-tune their apps for a smoother user experience.
Read more.📍
AI 🤖
Krea.AI 3D-models Generation
Krea.ai has introduced a new 3D tool that leverages advanced AI models like Hunyuan 3D and Trellis to generate high-quality, textured 3D objects in seconds from text or image prompts. This tool simplifies the creation of 3D assets, making it accessible for designers and developers to produce detailed models without extensive manual effort.
Read more.📍
Tutorials 📒
Detecting Barcodes on an Image with the Vision Framework
Matteo Altobello demonstrates how to utilize iOS 18's DetectBarcodesRequest
API within the Vision framework to identify barcodes in images. The article provides a step-by-step guide to transitioning from the older VNDetectBarcodeRequest
to the new asynchronous DetectBarcodesRequest
, highlighting its integration with Swift concurrency for improved performance. This approach simplifies barcode detection in SwiftUI applications, enhancing efficiency and responsiveness.
Read more.📍
Video 🎥
Swift vs. Objective-C Protocols: Friends or Foes?
Yakov Manshin explores the interoperability between Swift and Objective-C protocols, focusing on their compatibility and challenges. He discusses how Swift's protocol-oriented programming aligns with Objective-C's dynamic nature, highlighting potential pitfalls and best practices for integrating protocols across both languages.
Watch here.📍
Friends
Donny Walls is offering 15% off his practical bundle of all three books to our community members.
Yet, another thing…🎮
Learn Terminal the fun way
For those looking to master the command line in an interactive way, Terminus and GameShell offer unique, engaging experiences. Terminus is made by MIT and looks amazing!
Thanks for reading Those Who Swift! Subscribe for free to receive new posts.