Naoufal Medouri

@nmedou
13 Followers
107 Following
63 Posts
iOS Engineer
I wrote another post! https://chris.eidhof.nl/post/learning-in-the-age-of-llms/ . It's a short story about going back to typing code by hand without assistance.
Learning in the age of LLMs — Chris Eidhof

After nearly six months of work, I'm thrilled to introduce Shortcuts Playground:

A plugin for Claude Code and Codex to create native Apple shortcuts with natural language.

Type a sentence in, get a shortcut back. It can one-shot complex shortcuts, make changes, and remix old shortcuts. Full Shortcuts action library supported.

Free and open source. Install it in your favorite agent here: https://github.com/viticci/shortcuts-playground-plugin

My story on how and why I made this: https://www.macstories.net/stories/introducing-shortcuts-playground/

Are these two SwiftUI snippets equivalent?
Text("Hello, world!")
.kerning(10.0)

Text("Hello, world!")
.kerning(4.0)
.kerning(6.0)

The answer is: it depends.
See more details here: https://kyleye.top/posts/swiftui-text-kerning-semantics/

Two Semantics of SwiftUI Text kerning Modifier | 知阅百微 见微知著

Why chained Text.kerning modifiers may or may not be equivalent across SDK semantics

知阅百微 见微知著
This is probably something that iOS people knew all along, more likely never even realized was an issue. But I *just* figured out a better way to do multi-platform imports, after years of doing it the wrong way.
I want to get better at using the LLMs. I made this thing that I always wanted to have: a page that quickly lets you find the right FormatStyle. The whole thing runs in wasm (warning: large binary) so it doesn't need a server component. Happy to take feedback. http://formatstyle.guide
FormatStyle Guide

Interactive guide to Swift Foundation FormatStyle APIs, with runnable browser examples, SwiftUI notes, and copyable code.

FormatStyle Guide

📸 Snapshot testing in iOS is powerful…
…but the experience around it is still painful.

You run tests.
You get failures.
And then you’re left digging through files trying to understand what changed.

I built NSAssets to fix that.

Check the small demo, running snapshot tests on Kickstarter’s open source app

👉 This is the experience I always wanted when working with snapshot tests.

👉 check all available features:
https://apps.apple.com/app/nsassets/id6760512142

#swift #iosdev #swiftui #uikit

Today was an amazing day at #tryswift conference where I attended two great workshops: a mind-blowing 🤯 workshop about High-performance Swift by @twostraws, and a fantastic walkthrough workshop about App Intents by @dimsumthinking. Looking forward to all the talks the next two days!

Really quickly this morning, I pulled out some swift async helpers I've been using in some personal apps into a separate repo, mostly to make it easier to keep them all in sync. I published it at https://forge.younata.com/you/AsyncExtensions

Probably the most interesting thing there is AsyncMultiChannel. Which is like https://github.com/apple/swift-async-algorithms/blob/main/Sources/AsyncAlgorithms/AsyncAlgorithms.docc/Guides/Channel.md, but it supports multiple subscribers. I should rename it, because it's intended to be used in more of a pub-sub architecture than as 1-1 communication.

#SwiftLang #SwiftConcurrency

AsyncExtensions

Async Extensions for Swift

forge.younata.com

Are you struggling to track the size of your .xcassets?  
Or wishing there was something like Storybook for iOS/macOS UI?

Xcode doesn’t really give you a great way to explore your assets.

I was facing the same problems.

So I built NSAssets — now live on the App Store 🚀

Would love your feedback 🙌

🔗 [https://apps.apple.com/us/app/nsassets/id6760512142
NSAssets]

👇 I’ve added a small demo in the comments

#swift #swiftui #iosdevelopment #snapshot_testing #macosdevelopment

NSAssets App - App Store

Download NSAssets by michael jr. karag on the App Store. See screenshots, ratings and reviews, user tips, and more apps like NSAssets.

App Store

After a thoughtful nudge, I have renamed my "Lock" package to use the term "Gate". And while I was in there, I updated a bunch of things, including finally getting a recursive gate working!

I have found this kind of tool incredibly useful for managing actor reentrancy with Swift Concurrency.

https://github.com/mattmassicotte/TaskGate