Welcome to another issue!
Happy halloween! 👻
One of the scariest things about Halloween is that right under the corner Mariah Carey is hiding. And "All I Want for Christmas Is You" is coming for all of us! 💀
Now let's get serious.
There is one thing I think I shared a few months ago and will share it again. There are times when people unsubscribe from this newsletter (which is totally normal) and say that the texts are generated by AI or similar.
Since I am not a native speaker, some of the texts might sound strange, generic, stupid, etc. I'm sorry but I'm doing my best.
I write and collect everything myself - manual work. So no AI, no automation, etc. 👨🌾
I just wanted to let you know once again.
I appreciate your support and let's check what I found for you today! 🚀
Sponsored Link
Forget about Ruby and Fastlane installation issues!
Discover Codemagic CLI tools — the free, open-source Fastlane alternative for automating iOS builds, code signing and publishing.
Swift Around the Web
Problematic Swift Concurrency Patterns
Article about pitfalls in Swift concurrency, such as misusing Task.detached
, explicit priorities, and MainActor.run
. It also covers challenges with actors, synchronous protocols, and AsyncSequence
.
Coding
Introducing Swift Testing. Lifecycle
The Swift Testing framework simplifies the creation and organization of tests. By using @Test
, you can define test functions. Test suites can be created using structs or classes, allowing for setup and teardown logic.
The @Suite
macro enables serial execution of tests.
Understanding actors in Swift
Swift actors offer a powerful solution to prevent data races in concurrent programming. By isolating mutable states and enforcing asynchronous access, actors ensure that only one task can modify shared data at a time.
This article delves into the core concepts of actors, including their definition, interaction with async/await, and the importance of Sendable types.
Using the #require macro for Swift Testing
The Swift Testing framework provides a powerful tool for writing clear and concise tests. The #require
macro allows you to set prerequisites for a test to proceed, making your tests more reliable and easier to understand.
By using #require
to unwrap optionals, you can write more concise and expressive tests. This enhances the overall quality and maintainability of your Swift code.
visionOS
Recognizing text with the Vision framework
Discover how to integrate text recognition into your SwiftUI apps using Apple's Vision framework. Learn to set up camera feeds, craft Vision requests, and process recognized text.
Explore advanced techniques like language customization, size filtering, and combining text recognition with other Vision tasks to create powerful and innovative apps.
Apple News
New requirement for app updates in the European Union
Starting October 17, 2024, EU-based App Store Account Holders and Admins must provide trader status information in App Store Connect to submit app updates. Failure to comply by February 17, 2025, may result in app removal from the EU App Store.
Design
Creating view transitions in SwiftUI
Transform your SwiftUI app with stunning transitions. Learn how to use move, slide, and scale effects, and explore advanced techniques to customize animations.
This guide covers both built-in transitions and custom transitions, empowering you to create captivating user experiences.
Other Cool Stuff
How to automatically update build and version numbers in your app using Fastlane
Simplify your app deployment process with Fastlane. By automating version and build number updates, you can avoid common errors and ensure smooth releases.
This guide demonstrates how to extract version information from release branches, update Xcode project settings, and increment build numbers.
Starting with Project Refactoring: Sharing Five Swift Modules
Fatbobman has revamped his Health Notes app and open-sourced key modules to enhance code quality and promote community collaboration.
These modules include:
- SimpleLogger: A lightweight logging solution.
- iCloudSyncStatusKit: Manages iCloud sync status and errors.
- ObservableDefaults: Simplifies UserDefaults management.
- CoreDataEvolution: Provides an elegant Core Data concurrency approach.
- ModelActorX: Enhances ModelActor with additional features.
In Case You Missed It
SwiftUI Performance
SwiftUI's declarative approach simplifies UI development, but optimizing performance is crucial for a seamless user experience.
By understanding key concepts like identity, lifetime, and dependencies, and applying techniques like simplifying view hierarchies, using lazy containers, and moving heavy computations off the main thread, you can significantly enhance the performance of your SwiftUI apps.
Tutorials
SwiftUI: Bring App to Siri/Shortcuts with App Intent Domain
A step-by-step guide for integrating Siri functionality into your SwiftUI app using the App Intent Domain.
Learn how to define intents, entities, and schemas, and how to integrate them into your app's navigation and data management.
Videos
SwiftUI & Supabas: Build a To-Do List App with Seamless CRUD Integration
Learn how to create a powerful, user-friendly To-Do List app using SwiftUI and Supabase.
This video tutorial covers setting up a SwiftUI project, integrating Supabase for efficient data management, designing a modern UI, and implementing CRUD operations.