For those interested in 3D rendering techniques and frameworks, I'm very proud to inherit the reigns of Satin from the incredible Reza Ali.
I found out about Satin too late, as Reza had sunset the public repo after i had learned about it. Sadly it didnt get much traction for reasons I simply don't understand. Its incredibly well put together.
But due to some new opportunities, Reza kindly shared his internal updates - Satin Pro - and I want to help give it the community it deserves.
I'm trying to document Satin, and an ecosystem of examples, sample apps, and community at the Fabric project:
https://fabric-project.github.io
If you've seen my in progress node based VJ app 'v' - its built with Satin under the hood.
The first new addition to Satin is an attempt at a live coding environment, Velvet, allowing you to experiment with Satin rendering interactively.
I realize I may be jinxing myself here, but after upgrading our devcontainer + other dev infrastructure to #Swift 6.1, my local language server ("LSP") in vscode + Swift + devcontainer is much *MUCH* more stable this week.
If you or someone you know worked on this, please pass on my thanks. What a relief; I was going nuts with the stalls, crashes, restarts, reloads, and other babysitting in Swift 6.0.
Did you know Swift's Error protocol has been lying to you since day one?
Your carefully crafted error messages may be getting ignored by design—and it's all because of an Objective-C ghost.
Here's how to fix it:
#iOSDev #Swift #ErrorHandling #BestPractices
https://www.fline.dev/swift-error-handling-done-right-overcoming-the-objective-c-error-legacy/
(Next step: Enable #Swift 6 strict concurrency and cry. )
Did you know generated projects are a loose requirement to access @tuist features? For example, you can run test selectively by prefixing “xcodebuild test” with “tuist” and cut your project’s CI time significantly:
https://docs.tuist.dev/en/guides/develop/selective-testing
#Swift #Xcode
Good grief! I find bugs! That’s what I do! Was using the #1Password app on iOS, had the #estate bank account detail handy and slept the screen. Woke the phone, Face ID, I tapped a glyph that had a purple badge on it, I tapped that and got this… hahahaahah. I have a knack for finding edge cases. #swift #bug #iPhone
The AsyncCurrentValueSubject from AsyncExtensions (https://github.com/sideeffect-io/AsyncExtensions) seems the only async broadcast/multicast implementation for #Swift AsyncSequence-like.
Anything from swift-async-algorithms seems to stuck in review, like this https://forums.swift.org/t/swift-async-algorithms-proposal-broadcast-previously-shared/61210
I need it
The following article introduces the MainActor Swift macro:
Okay, this idea by @chrismiles for swift playgrounds is rather nice. I can see a lot of benefit for this type of approach when wanting to iterate over an approach and see it's output in the command line. Personally I tend to use unit tests for this approach, but there's benefit to a command line (or hypothetically an Xcode) output for this approach. https://forums.swift.org/t/playground-macro-and-swift-play-idea-for-code-exploration-in-swift/79435 #swift #iOSDev #macOSDev
New article: Why your #Swift error messages look like gibberish—and how to fix them once and for all!
"The operation couldn't be completed. (YourApp.YourError error 0.)"
Sound familiar? This article shows you how to escape the Objective-C error legacy.
#iOSDev #ErrorHandling #BestPractices
https://www.fline.dev/swift-error-handling-done-right-overcoming-the-objective-c-error-legacy/
Amalfi coast in spring is the real indie dev dream
Happy Easter from Salerno
Discover how to effectively use lazy vars in Swift! This video guide covers their purpose, necessity, and usage: https://www.youtube.com/watch?v=9aAGoo3PBpM #Swift #Programming #CodingTips
Ok, heres a weird little project:
Dynamically compiled, runtime loaded Swift for live coding prototype.
This leverages a every so slighly modified Satin (a metal rendering engine) as a set of dylib libraries for the app, which also includes the modulemap and swiftmodule linker requirements.
We call swiftc on demand in a background process, compile, link, and hot load a renderer dylib, make an instance, and let Satin handle the rest.
I.. think this could be kind of awesome?
It's wild that NSPersistentCloudKitContainer, or CloudKit in general for that matter, still does not support unique constraints in 2025. Wonky deduplication code is my biggest issue with sync. This is a feature which nearly every app needs and is so hard to get right. #SwiftUI #Swift #CoreData #iCloud #UIKit
I love lil swift packages like this that do one thing really well. I can think of a few use cases in some of my apps.
From: @y2mango
https://mastodon.social/@y2mango/114364990186621776
Introducing a new open-source #Swift package that I've been working on for 8 months! Say hello to #ErrorKit – a set of APIs that simplify #ErrorHandling in Swift 6. Built to be actually helpful, not only for large teams but also for #IndieDev's like myself. And boy have I documented it!
Please check it out & give it a ️ on GitHub: #iOSDev #SwiftLang
https://github.com/FlineDev/ErrorKit
I really shouldn’t be this excited about #swift key paths at my age.
It’s my birthday weekend and I’m running a special sale on my #Swift and #SwiftUI books - just for my followers, and just for the next 48 hours!
Use the code BDWK25 at checkout to get 20% off any book or bundle:
https://books.nilcoalescing.com/