Welcome to another issue!
Quick question! 🤔
Are there any readers who would like to help me with this newsletter?
Gather info, come up with new ideas, maybe even come up with something new? Like a new segment, etc. Whatever you have in mind. I'm happy to get someone on board.
Also, I might have a monthly budget for that. 😊 Feel free to contact me.
As always, I appreciate your support and reading.
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
Using Transactions Instead of Save in SwiftData and Core Data
SwiftData's transaction
method offers better control and performance towards data consistency. Group related data operations together into transactions, but avoid making them too large.
Consider SQLite's limitations to optimize performance. This approach improves data reliability and application performance.
Lazy vars in @Observable classes in Swift
Migrating to @Observable can introduce challenges, especially when working with lazy properties. This post delves into a common issue: the incompatibility of lazy properties with @Observable classes.
To overcome this limitation, you can use the @ObservationIgnored annotation. This allows you to effectively use lazy properties within @Observable classes, ensuring efficient initialization and optimized performance.
Coding
Copilot is now available in Xcode
Copilot is now available as an official Xcode extension, making it easier to use AI-powered code suggestions within your Swift projects.
While the tool can significantly boost productivity, it's important to remember that its suggestions may not always be perfect. Therefore, it's crucial to review and refine the generated code.
Mastering TextEditor in SwiftUI: Features, Limitations, and Tips
Learn how to effectively use TextEditor in SwiftUI. Explore essential features like focus management, character limits, and read-only mode with some advanced techniques to customize appearance and behavior, including font, color, and keyboard type.
Additionally, explore the integration of Apple's Writing Tools and alternative solutions for complex text editing needs.
Getting consistent temperature preferences on iOS
Learn how to ensure consistent temperature display in iOS apps, even when dealing with system preferences and simulator variations.
The post highlights the use of UnitTemperature(forLocale: Locale.current) to reliably fetch the user's preferred temperature unit, leading to a more consistent user experience across devices and simulators.
Understanding SwiftUI's View Update Mechanism: Starting from a TimelineView Update Issue
Another great article by Fatbobman on SwiftUI's view update mechanism. Focuses on a TimelineView
issue where one emoji updates while the other doesn't. It explains key concepts, response mechanisms, and re-evaluation conditions.
The article emphasizes optimization techniques like understanding view type construction, optimizing view declaration computation, and splitting view structures.
How to use a Connectable Publisher in Combine
Learn to use ConnectablePublisher in Combine to prevent data loss. The post demonstrates how to control the emission of values using the connect() method and how to automatically connect with the first subscriber using autoconnect(). This ensures all subscribers receive the emitted values, especially in asynchronous scenarios or delayed subscriptions.
Apple News
Enhancements to the App Store featuring process
Apple has introduced new features to App Store Connect to help developers showcase their apps and games. Developers can now submit nominations for featuring their apps, receive notifications for featured placements, and create marketing assets to promote their apps on social media.
Design
Exploring Interactive Bottom Sheets in SwiftUI
Discover how to create interactive sheets like some of the Apple apps like Maps, Find My, and Stocks. Customize sheet behavior with presentationDetents and related modifiers, to control height, drag indicators, and background interaction.
Other Cool Stuff
Contingent pricing for in-app subscriptions
Contingent pricing for in-app subscriptions is a new strategy to retain and attract users. It allows developers to offer discounted subscriptions to users who are already subscribed to another app.
This post explores how contingent pricing works, its benefits, and how it can be implemented. It also highlights a partnership between RocketSim and Helm as an example of this strategy.
Exploring Apple Intelligence: Talking with Siri
Siri, powered by Apple Intelligence, is evolving into a powerful tool that understands natural language, anticipates user needs, and performs tasks across different apps.
Developers can integrate their apps with Siri using App Intents and AssistantSchema. This makes Siri more accessible for visually impaired users and enhances the overall user experience.
Navigating Pitfalls: The Do's and Don'ts of Gestural Interfaces
Gestures can make apps more intuitive, but they need to be designed carefully. Keep gestures simple, avoid conflicts with system gestures, and test them with real users.
This will help you create a better user experience.