Welcome to another issue!
I have an announcement! π§¨
Starting February 2025, we will move from Curated to Substack.
Main reason for this is the price. Curated costs me $300 per month, which I think is a bit expensive for a side project. Nothing changes for this community - It's going to be a FREE weekly newsletter.
If you like what I do and are excited about 2025, please subscribe here -> SUBSTACK.
Thank you very much! π
New team member! π¨βπ»
Those Who Swift newsletter has a new team member - Anton
As a senior developer, he will contribute more insights and content to this newsletter. During the past decade, he has worked for companies all over the world as an iOS Engineer.
Aside from regular content, he will share his personal thoughts every week.
Welcome Anton! π€
Sponsored Link
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
Why Certain View Modifiers in Swift 6 Cannot Use the @State Property
This Swift 6 article explores the challenges of using @State
properties within certain SwiftUI view modifiers. Swift 6's stricter concurrency rules can limit how these properties are accessed.
The article provides solutions, such as accessing the underlying wrappedValue
or pre-fetching the @State
value, enabling developers to write robust SwiftUI code within the new concurrency model.
Coding
Getting started with UI Testing for SwiftUI
Learn how to write UI tests for SwiftUI applications using the XCTest framework. This post covers key concepts like setting up tests, finding and interacting with UI elements, and verifying expected behavior.
It also explains how to use tools like Accessibility Inspector to improve your testing process.
Reading and displaying Genmoji in non-rich text formatted data context
Explore how to handle Genmoji in non-rich text contexts. Genmoji requires special handling in plain text or custom formats. The solution involves decomposing the attributed string, representing text and images with an InlineComponent enum, and building a SwiftUI view to display them.
Finding unused code with Periphery
Periphery is a command-line tool that helps developers identify unused code in Swift projects. Periphery simplifies the process, saving developers time and effort, and offers easy setup and customization options.
visionOS
Whatβs new for enterprise in visionOS 2
visionOS 2 introduces new enterprise features, including support for Automated Device Enrollment and enhanced MDM capabilities.
New APIs provide developers with increased platform control, enabling the creation of powerful enterprise solutions and spatial experiences.
Design
Creating a SwiftUI text view with tappable links
Explore two approaches for creating text views with tappable links in SwiftUI: Markdown and a custom LinkText view.
- Markdown offers clean syntax and platform compatibility.
- The LinkText view provides more flexibility with styling and environment-based options.
Adjust the intensity of colors in SwiftUI views
Learn how to adjust the intensity of colors in SwiftUI views using the brightness(_:) modifier. By passing values between 0 and 1, you can lighten a color. Similarly, passing negative values between 0 and -1 darkens the color.
Other Cool Stuff
Essential xcodebuild Commands for iOS Developers
A compilation of essential xcodebuild
commands for iOS developers, crucial for CI/CD pipelines. It covers building source code, executing tests, creating archives and IPA files, and deleting simulators.
Exploring AI: Cosine Similarity for RAG using Accelerate and Swift
Explore cosine similarity, a method for comparing how similar two sets of numbers are, to build powerful AI systems called "Retrieval-Augmented Generation" (RAG) for iOS and macOS apps.
SwiftUI: Protect Private Information
Learn to protect sensitive information within a SwiftUI app. It covers obscuring inactive data using privacySensitive() and preventing screenshots/recordings using UITextField with isSecureTextEntry.
The post provides code examples and demonstrates how to combine these techniques to enhance the app's overall security of sensitive data.
Artificial intelligence (AI)
Reasoning with o1 course by OpenAI
DeepLearning.AIβs "Reasoning with o1" course, created in collaboration with OpenAI, teaches effective use of the o1 model for advanced reasoning tasks like planning, coding, and image analysis. With practical lessons on prompting techniques and meta-prompting, this free intermediate-level course is perfect for developers familiar with Python and LLM applications.
Tutorials
Learn Swift with Easy-to-Follow Code Examples
This guide provides a comprehensive knowledge of learning Swift using code examples and tutorials. It covers fundamental concepts, advanced topics like concurrency and generics, and best practices for testing and debugging.
Books
iOS Technical Interview Guide
This FREE book offers practice interview questions for iOS developers of all levels. There are 100 questions in total, divided by difficulty (Junior, Intermediate, Senior) and covering topics like Swift fundamentals, design patterns (MVC, MVVM), and general iOS knowledge (Git commands, networking).