Weekly note ✏️
This week, I’d like to highlight the growing mismatch between employer expectations and employee skills that has become increasingly apparent over the last few years. Many of us have probably seen those jokes and posts from 2020 claiming that all you needed to become a typical intern or junior developer was a notebook and the willingness to learn. Fast forward to today, and the bar has been raised significantly. What was once considered a junior role now demands mid-level skills, and mid-level roles are being treated as senior positions—unfortunately, without the corresponding salary adjustments.
I recently came across a job description from a security platform that perfectly illustrates this trend. Their “Junior” role required knowledge of Modern Concurrency, experience with CI/CD pipelines, and the ability to suggest architectural decisions. I wouldn’t be surprised if they also expected overtime and a strict no-pet-projects policy. While the market will likely recalibrate over time, the current situation is pushing people to either overstate their skills (which is unsustainable in the long term) or scramble to learn increasingly complex topics just to keep up.
That’s why don’t miss the issues and check our new section “Friends” at the bottom. 👇
Connect with the "Those Who Swift" team - Justas Markus & Anton Gubarenko 👋
Sponsor 🤝
Scale up your snapshot tests, without the friction
Spending too much time maintaining snapshot tests? Screenshotbot works with your existing snapshot tests and stores your images. Say goodbye to Git LFS. Screenshotbot notifies you on pull-requests when snapshots change.
Swift Around the Web 🌐
Protocol Extensions in Swift 6.0: New Tricks
This article explores the new capabilities of protocol extensions in Swift 6.0, highlighting how they can simplify code and enhance flexibility. It provides a practical examples and tips for leveraging these features to write cleaner, more reusable Swift code. Read more.📍
The Synchronisation Framework
Jacob explores the Synchronisation Framework, a tool for managing data consistency across distributed systems. The post covers its architecture, key features, and practical use cases, offering insights for developers working on scalable applications. Read more.📍
Coding 👨💻
Launch at Login Setting
This post explains how to implement a "Launch at Login" feature in macOS apps using Swift. It covers the use of ServiceManagement
framework and provides a step-by-step guide to enable this common user preference. Read more.📍
SwiftData CRUD Operations with ModelActor
This tutorial demonstrates how to perform CRUD (Create, Read, Update, Delete) operations using SwiftData and the ModelActor
pattern. It provides clear examples and code snippets to help developers manage data efficiently in Swift applications. Read more.📍
Apple News 🍏
Apps without trader status will be removed from the App Store in the EU
Starting February 17, 2025, apps without verified trader status will no longer be available on the App Store in the European Union, as required by the EU’s Digital Services Act. Developers must provide and verify their trader status to ensure their apps remain accessible in the region. Read more.📍
Design 🎨
SwiftUI Action Menu
This post demonstrates how to create a custom action menu in SwiftUI, similar to context menus in iOS. Peter Friese provides step-by-step instructions and code examples to help developers implement interactive and user-friendly menus in their apps. Read more.📍
Other cool stuff 🧰
Replacing EnvironmentKit with the new SwiftUI Entry macro
Daniel Saidi explains how to replace EnvironmentKit
with SwiftUI's new Entry
macro for managing environment values. The post highlights the macro's simplicity and efficiency, providing code examples and migration steps for developers. Read more.📍
iOS Modular Architecture: From Monolith to Hybrid Approaches
Explores different modularization strategies for iOS applications, emphasizing the importance of choosing the right approach based on project specifics.
This post covers monolithic architecture, feature vertical slicing, horizontal slicing, and hybrid approaches, each with its own strengths and weaknesses. The best architecture aligns with current needs and allows for future growth and refactoring. needs and allows for future growth and refactoring. Read more.📍
Tutorials 📒
Integrating Live Activity and Dynamic Island in iOS
This guide explains how to integrate Live Activities and Dynamic Island into iOS apps, showcasing their use for real-time updates and interactive notifications. It provides step-by-step instructions, code examples, and best practices to help developers enhance user engagement with these modern iOS features. Read more.📍
Video 🎥
Introduction to Non-Copyable types in Swift
Vincent Pradeilles introduces non-copyable types in Swift, a new feature that prevents instances of a type from being copied. The post explains their use cases, benefits for memory management, and how to implement them in your code. Read more.📍
Books/Freebies 📚
SwiftUI View Picture Book (FREE)
A free SwiftUI Picture Book by Mark Moeykens. It emphasizes visual learning by combining pictures with code, focusing on one topic per page for easy understanding. The book offers over 300 pages of content, emphasizing clarity and accessibility. It's a free download, encouraging developers to explore SwiftUI with this unique learning resource.
Friends
Donny Walls is offering 15% off his practical bundle of all three books to our community members.