Profile avatar
donnywals.bsky.social
iOS Engineer, blogger and author at https://donnywals.com. Loves learning and sharing knowledge. -- #swift #ios #swiftlang #iosdev #solopreneur (he/him)
483 posts 2,010 followers 462 following
Prolific Poster

My first workshop of the year is done and I’m quite happy with it 😊 we went deep on concurrency’s core features and the attendees got a lot out of it 😁 Looking forward to running this one again next month

Learn why Swift complains about non-Sendable types in Sendable closures (and what you can do to solve this) https://www.donnywals.com/solving-capture-of-non-sendable-type-in-sendable-closure-in-swift/

You have three more weeks to join the iOSKonf 2025 giveaway and get a chance at winning a ticket for this amazing conference in Skopje! https://www.donnywals.com/ioskonf-2025-giveaway/

Please welcome Bitrise as a sponsor for donnywals.com for the next month 😁 I'm doing a webinar with them on March 5th and I'd love to see you all there. More information and registration can be found right here: app.getcontrast.io/register/bit...

I've been using focus modes in @raycast.com for a few days now and I'm absolutely loving it 😎 especially the ability to quickly block categories of websites (block social media ftw) and apps is super convenient

Tomorrow is the day it's going down! Join me at 1PM CET for a deep dive into Swift Concurrency's key concepts: https://www.eventbrite.nl/e/getting-started-with-swift-concurrency-february-2025-tickets-1118701278639

In case you've missed last weeks video; it covers the different data persistence options that we have on iOS and macOS: https://youtu.be/dt9YTTCY16A Which ones do you tend to use most?

iOS 14 gave us multi-colored SF Symbols. In this post, we explore how you can use them https://www.donnywals.com/using-multi-colored-icons-in-ios14-with-sf-symbols-2/

And we’re back!! I just completed a 00:45:46 workout and burned 305 kcal (392 total). Workout tracked with Maxine: https://apps.apple.com/us/app/maxine-one-rep-max-tracker/id6615073254

A good morning and a happy Monday, folks!! Hope you’ve all had a nice weekend. Do you have any plans for the week? Maybe you’re learning something new, working on something cool, shipping that side project? Tell me all about it 😎

Glad to be back in the gym after almost two months of being unable to go due to health and travel…

Learn how you can opt into the Swift 6 language mode in Xcode and your SPM packages: https://www.youtube.com/watch?v=WJ5DBo0RLrg

Come learn some cool stuff with me next Tuesday 😄

If Bloc Party and Owl City did a collab… youtu.be/FAn6k36wglg?.... 🎶

New video alert!! https://youtu.be/dt9YTTCY16A On iOS and macOS we have lots of options when it comes to persisting our user's data. In this video I explore some of the available options, and when it makes sense to use them.

Learn how to make your Swift Data models Codable; the process isn't as trivial as you might hope 😅 https://www.donnywals.com/making-your-swift-data-models-codable/

There are a bunch of seats left for next week's concurrency workshop. Don't miss out on this chance to solidify your understanding of what makes Swift Concurrency tick! Feb 25, 1PM CET, tickets... https://www.eventbrite.nl/e/getting-started-with-swift-concurrency-february-2025-tickets-1118701278639

This week I wanted to share some thoughts on why it's important to keep an eye on your git history and how you commit... https://www.donnywals.com/why-you-should-keep-your-git-commits-small-and-meaningful/

How much architecture does a SwiftUI app really need? Should everything be in the view? Should MVVM be your default? Or do we need something more opinionated like TCA at all times? I wrote my thoughts in this week's newsletter: https://www.donnywals.com/newsletters/w9d40koOtJTfzLEl5Y6r7g/

When you start adopting Swift 6 you'll run into loads of pretty hard to decipher errors and warnings... For example: "passing closure as a sending parameter ..." Learn what this error means and how you can resolve it: https://www.youtube.com/watch?v=PJJkKJOEsFI

In case you've missed yesterday's post

It's easy to write code all day and consider git commit as the final step to push to GitHub. However, it's useful to keep an eye on how you structure commits because sometimes you'll want to retrace your steps... https://www.donnywals.com/why-you-should-keep-your-git-commits-small-and-meaningful/

The kind organizers from iOSKonf 2025 have given me one conference ticket to give away. iOSKonf will host its second edition this year, and if last year is a promise of what's to come... you'll want to join this one! https://www.donnywals.com/ioskonf-2025-giveaway/

Get a deeper understanding of type erasure in Swift! Discover its role in removing type information and the benefits it offers in coding: https://www.donnywals.com/understanding-type-erasure-in-swift/

Believe me when I say you don't want to miss this one. You'll surely learn something new even when you feel pretty comfortable with the basics already

Swift Testing is pretty neat! Learn how you can make use of the #expect macro now: https://www.youtube.com/watch?v=tlw28ah_85I

Next week it's time to take a good look at what makes Swift Concurrency so powerful... join me on Feb 25th at 1PM CET and expand your understanding of Swift Concurrency's core concepts https://www.eventbrite.nl/e/getting-started-with-swift-concurrency-february-2025-tickets-1118701278639

I released a new book 🎉 SwiftUI Fundamentals combines my knowledge and experience from using SwiftUI since its release and working on its source code at Apple to give you a solid understanding of the most important aspects of the framework: books.nilcoalescing.com/swiftui-fund... #SwiftUI #iOSDev

Wrapping up my first workday after spending over a week being sick and it's rough. Not nearly as productive as I hoped (need) to be. It will never cease to amaze me how an "off" week can destroy a productive routine for a while.

Learn how you can make use of the 'require' macro in Swift testing: https://www.donnywals.com/testing-requirements-with-require-in-swift-testing/

The more you dig into Swift Concurrency, the more it feels like you need a special degree to use it... I aim to solve that problem next week in my online workshop. Join me at 1PM CET, Feb 25 to solidify your understanding as a 1st step to understanding Swift 6... www.eventbrite.nl/e/getting-st...

A good morning and a happy Monday, folks! Hope you've had a nice weekend. Do you have any plans for the week? Maybe you're learning something new, or you're working on something cool? Tell me all about it 😁

Did @Spotify break/remove the “song radio” feature on iOS? For the past few days it started to just repeat whatever song I select from search instead of playing more of the same when the song ends… makes me want to cancel because my household runs on that feature 😂

Some APIs like UserDefaults or reading certain file properties on iOS require us to add a privacy manifest. Forgetting to do so will result in app store rejection... https://www.youtube.com/watch?v=_W0_lbKtp1k

Looking to write safer Swift code? Avoid force unwrapping to minimize potential crashes and to ensure a better coding pattern. Here's what I had to say about force unwrapping after the first couple of times I got bit by doi... https://www.donnywals.com/why-you-should-avoid-force-unwrapping-in-swift/

Some Swift features are made available to us before release through compiler flags. Learn how you can opt-in on these experimental features: https://www.youtube.com/watch?v=8xCGe2wOMbc

I was very optimistic about being able to do some work today, record videos, write a new blogpost but on top of my flu I've developed a sinus infection so ... yeah, more rest it is 🥲

ps. The workshop will take place online so no matter where you are in the world, you can join. And if you're looking to cover the fundamentals, check out this month's workshop: www.eventbrite.nl/e/getting-st...

How familiar are you with actors and sendability? Do you know what an isolation region is? Would you like to have a better understanding of the warnings strict concurrency throws your way? Join me on March 13 at 1PM CET: https://bit.ly/3DiqKbi

I was very optimistic about being able to do some work today, record videos, write a new blogpost but on top of my flu I've developed a sinus infection so ... yeah, more rest it is 🥲

Knowing how to mock a network connection is essential for streamlined testing. Discover how to control and alter responses of your network calls. https://www.donnywals.com/mocking-a-network-connection-in-your-swift-tests/

Just two more weeks until I"m hosting my Concurrency basics workshop! Join me and master Swift Concurrency's fundamental concepts :) https://www.eventbrite.nl/e/getting-started-with-swift-concurrency-february-2025-tickets-1118701278639