Alex Ozun
banner
alexozun.com
Alex Ozun
@alexozun.com
Staff iOS Engineer | https://swiftology.io

Based in 🇬🇧 Born in 🇺🇦
All opinions are my own
How smooth is your learning curve?
May 20, 2025 at 1:45 PM
Doug Gregor takes the stage of @swiftcraft.bsky.social with a keynote talk On Progressive Disclosure in #swiftlang
May 20, 2025 at 1:45 PM
I had a blast presenting at #iOSKonf25 this week! I heard great things about this conference and I now can say that the praise was well-deserved!
It was pretty scary to be on the lineup with so many accomplished engineers and speakers, but the vibe was really good and everyone was easy to be around.
May 16, 2025 at 12:26 PM
I think I managed to successfully trick the audience into thinking we were simply describing effects with enums, until finally revealing that we’d actually learned something that *supposedly* requires a PhD in Computer Science to understand (spoiler: it really doesn’t!).
April 10, 2025 at 6:09 AM
The secret to introducing people to scary-sounding concepts like Free Monads in #swiftlang is in never mentioning these two words until the very end of the presentation.
April 10, 2025 at 6:07 AM
Tiers of Swift development sins by Pietro Messineo at @swiftheroes.bsky.social
April 8, 2025 at 3:57 PM
Caffeinated and ready to learn how to build fast and efficient apps from #Apple engineers at the new Dev Center in Battersea Power Plant.
February 12, 2025 at 9:35 AM
It's great to see #Apple bringing these in-person sessions to local dev centers around the world.
I look forward to hearing about "Building faster and more efficient apps" in two weeks.
January 29, 2025 at 1:00 PM
It was nice visiting #apple developer center in Singapore the other day
January 21, 2025 at 12:11 PM
Yes, they really flew me all the way from London to Singapore just so I could show a photo of an elephant to #iosconfsg audience.
January 16, 2025 at 5:15 AM
January 15, 2025 at 6:10 AM
Heading out to my first conference of the year at #iOSConfSG
If you happen to be around, drop me a message and let's have a coffee ☕️

P.S. I prefer to travel light and only pack essentials.
January 13, 2025 at 11:12 AM
Holy smokes🤯! I think I was just able to create a proof-of-concept of #swiftlang effect system that allows to write direct style imperative code and then test it WITHOUT mocks by stepping through each suspension point and directly feeding input arguments to effects (e.g. readline).
December 22, 2024 at 11:43 PM
To clarify why Swift generics must be invariant. If they weren't we could create containers that allow to indirectly assign Cat value to Dog variable. See the left pic that shows this. And the right pic shows a pseudo-Kotlin syntax with "out" keyword that forbids generic types as input params.
December 22, 2024 at 7:00 PM
I'm having a "do I even know Swift?" moment. I understand that #swiftlang generics are invariant, i.e. F is not a subtype of F, even though Dog is a subtype of Animal. But some stdlib generic types like Optional and Array do track subtyping (see pic), while others, like Result, don't.
December 22, 2024 at 4:16 PM
I like this Onboarding UX from Mozi where each step reveals a new tab on the tab bar

#ios #ux
December 19, 2024 at 9:03 AM
A procrastinating conference speaker's equivalent of an indie dev "spending an entire day designing the app icon before writing a single line of code" is "spending an entire day designing the title slide before adding any content."

And I'll redo the title slide 15 mins before the talk anyhow. Twice
December 13, 2024 at 10:32 PM
Yes, when passing references to class methods in a point-free style. There's a risk of accidentally capturing self which could lead to retain cycles in some cases.
December 11, 2024 at 9:52 PM
That said, Typed Throws are not fully released with Swift 6, and part of functionality is still behind FullTypedThrows feature flag. Specifically, the compiler can't infer error types inside code blocks that aren't explicitly annotated with error types (see pic) 3/4
December 11, 2024 at 1:44 PM
Loving this "unlock, generously" paywall option 😁
December 7, 2024 at 8:17 PM
Honestly, craftinginterpreters.com is the funniest technical book I read in a while. @munificent.bsky.social writing style is 😙🤌
December 7, 2024 at 2:12 PM
But wait, there's more! For Optional Noncopyable types, the "unwrap-then-nullify" requires more ceremony b/c if-let consumes the optional var, and you must prove to the compiler that you've reassigned the optional var in all branches. This isn't needed with take() which reassigns to nil internally.
December 6, 2024 at 1:22 PM
A problematic little #swiftlang pattern I often see is "unwrap-then-nullify" for optional values that hold some temp state. This oft comes up when dealing with local caches or scrollOffsets or in-flight tasks, etc. Forgetting to nullify a value to "reset" state is a common mistake. Use take method.
December 6, 2024 at 12:28 PM
This might be my favorite new warning in #Xcode 16! I totally missed SE-0364, so it was a pleasant surprise to see that #swiftlang compiler nows warn about potentially conflicting protocol conformances. This is super helpful for any highly-modularized project (aka freaking all of them these days!).
December 5, 2024 at 6:55 PM
Coincidentally (or not?) it's a #️⃣2️⃣ most gifted book on Amazon in its category 😀
December 3, 2024 at 10:27 PM