Sign in

Felipe Espinoza

@craftingswift.dev
82 followers 59 following 134 posts

iOS and macOS developer. 🇨🇱🇳🇴. Youtuber (youtube.com/@craftingswift). Hobby designer, photographer and illustrator.

PostsRepliesMedia
Felipe Espinoza @craftingswift.dev · 14/09/2026
I will answer - How to change your SwiftData models safely? - How does this work with CloudKit? - How to fix your development setup so you don't mess your syncing? (👈 this one took me a while to understand) www.youtube.com/watch?v=87i0...
youtube.com
SwiftData + CloudKit: Don't Break Syncing with V2
This is part 2 of my SwiftData series. In this one, we will take a look on how to version SwiftData models, and how that translate to CloudKit. I will show and solve one of the most common issues…
000
Felipe Espinoza @craftingswift.dev · 14/09/2026
🎬 The next part of my SwiftData + CloudKit series is out! This time, I cover the common issues you may have after deploying your app to the App Store when want to make changes. #appledeveloper #iOS #swiftdata #cloudkit
youtube.com
SwiftData + CloudKit: Don't Break Syncing with V2
This is part 2 of my SwiftData series. In this one, we will take a look on how to version SwiftData models, and how that translate to CloudKit. I will show and solve one of the most common issues…
100
Felipe Espinoza @craftingswift.dev · 31/08/2026
P.S. I didn't post for a while, but I've been working for a long time to sort my material for this series
010
Felipe Espinoza @craftingswift.dev · 31/08/2026
This is the first video of my new series, covering all practical aspects of the SwiftData + CloudKit combination. This one is about basics + when they are a good fit #swiftdata #cloudkit #appledeveloper www.youtube.com/watch?v=fpKB...
youtube.com
SwiftData + CloudKit: When You Should (and Shouldn't) Use It
This is the first part of a new series covering SwiftData + CloudKit in real wolrd apps. This first video is all about the basics of how SwiftData + CloudKit work, giving you the right mental model…
131
Felipe Espinoza @craftingswift.dev · 13/07/2026
Tin can man of wizard of oz
000
Felipe Espinoza @craftingswift.dev · 11/06/2026
Everything but the code is an amazing book, which is on sale until tomorrow. It's a great time to get it, if you wanna know why is so cool, you can check my video about it link to the sale: www.hackingwithswift.com/offers youtu.be/DdSEMSlh2ko
youtu.be
Why I Recommend This Book to Every iOS Developer
YouTube video by Crafting Swift
000
Felipe Espinoza @craftingswift.dev · 05/06/2026
With WWDC26 coming and a lot of sessions to watch, I will keep track of them in Notion again. It has been great to manage my learning. It can help you as well youtu.be/tEAS5rUfMLE?... #wwdc #wwdc26 #developer #iOS
youtu.be
Keeping track of WWDC Sessions with Notion
In this video I go through how I organize my queue and watch history of WWDC sessions using notion. I share how I take notes and summarize the sessions too with Freeform. The script I created to…
010
Felipe Espinoza @craftingswift.dev · 03/06/2026
Paul's sale can be found in www.hackingwithswift.com/offers
hackingwithswift.com
000
Felipe Espinoza @craftingswift.dev · 03/06/2026
Today I talk about @twostraws.bsky.social's book: "Everything but the Code" It's a really impactful book for iOS developers. It just happen to be 50% of right now I think it's simply a MUST for iOS devs #bookRecommendation #iOS #appleDevelopment youtu.be/DdSEMSlh2ko
youtu.be
Why I Recommend This Book to Every iOS Developer
Today I want to share one of the most impacting books I've read for iOS develoment: Everything But The Code by Paul Hudson. It's a book that teaches you from an Apple Developers perspective about…
121
Felipe Espinoza @craftingswift.dev · 28/04/2026
Today I share a small tip to use SwiftTesting: `CustomTestStringConvertible`. It’s a neat protocol to improve the output of your parameterized tests. craftingswift.dev/articles/imp... #swiftTesting #quickTip
craftingswift.dev
Improve SwiftTesting Parameterized Tests with `CustomTestStringConvertible`
A small protocol conformance helps improve your test output.
120
Reposted by Felipe Espinoza
Snapp iOS Weekly @snappiosweekly.bsky.social · 28/04/2026
🧩 𝐷𝑒𝑓𝑎𝑢𝑙𝑡𝑠 𝑎𝑛𝑑 𝑜𝑣𝑒𝑟𝑟𝑖𝑑𝑒𝑠 𝑓𝑜𝑟 𝐹𝑎𝑐𝑡𝑜𝑟𝑦 𝑐𝑜𝑛𝑡𝑒𝑥𝑡𝑠 𝑤𝑖𝑡ℎ 𝐹𝑎𝑐𝑡𝑜𝑟𝑦𝐾𝑖𝑡 by Felipe Espinoza (@fespinozacast.bsky.social) FactoryKit's global state can silently bypass test overrides. Use .𝑜𝑛𝑐𝑒() and 𝐴𝑢𝑡𝑜𝑅𝑒𝑔𝑖𝑠𝑡𝑒𝑟𝑖𝑛𝑔 to make mocks resolve correctly every time. #Swift #SwiftUI craftingswift.dev/articles/def...
craftingswift.dev
Defaults and overrides for Factory contexts with FactoryKit
The tale of a surprising behavior I found while using FactoryKit.
011
Felipe Espinoza @craftingswift.dev · 25/04/2026
Thanks for the mention!
110
Reposted by Felipe Espinoza
Snapp iOS Weekly @snappiosweekly.bsky.social · 24/04/2026
📢 𝗜𝘀𝘀𝘂𝗲 𝟴𝟵 𝗶𝘀 𝗼𝘂𝘁! Highlights: 🤖 𝑁𝑒𝑡𝑤𝑜𝑟𝑘 𝑂𝑝𝑡𝑖𝑚𝑖𝑧𝑎𝑡𝑖𝑜𝑛 𝑣𝑖𝑎 𝐴𝐼 𝐴𝑔𝑒𝑛𝑡𝑠 📷 𝑂𝐶𝑅 𝑤𝑖𝑡ℎ 𝑉𝑖𝑠𝑖𝑜𝑛 🧩 𝐹𝑎𝑐𝑡𝑜𝑟𝑦𝐾𝑖𝑡 𝐷𝑒𝑓𝑎𝑢𝑙𝑡𝑠 & 𝑂𝑣𝑒𝑟𝑟𝑖𝑑𝑒𝑠 📜 𝑆𝑐𝑟𝑜𝑙𝑙𝑉𝑖𝑒𝑤 𝑃𝑒𝑟𝑓𝑜𝑟𝑚𝑎𝑛𝑐𝑒 🌐 𝑆𝑡𝑎𝑡𝑖𝑐 𝑆𝑖𝑡𝑒 𝐵𝑢𝑖𝑙𝑑𝑒𝑟 𝑖𝑛 𝑆𝑤𝑖𝑓𝑡𝑈𝐼 ⚙️ 𝑚𝑎𝑐𝑂𝑆 𝑆𝑦𝑠𝑡𝑒𝑚-𝑊𝑖𝑑𝑒 𝑆𝑒𝑟𝑣𝑖𝑐𝑒𝑠 🔍 𝑀𝑒𝑚𝑜𝑟𝑦 𝐿𝑒𝑎𝑘𝑠 ♿ 𝐴𝑐𝑐𝑒𝑠𝑠𝑖𝑏𝑖𝑙𝑖𝑡𝑦 𝑁𝑢𝑡𝑟𝑖𝑡𝑖𝑜𝑛 𝐿𝑎𝑏𝑒𝑙𝑠 #iOSDev #Swift
ios-newsletter.snappmobile.io
iOS Newsletter Issue 89
Hi folks,
233
Felipe Espinoza @craftingswift.dev · 21/04/2026
✍️ new blog post! I wrote my experience understanding the internals of FactoryKit, a dependency injection library for SwiftUI craftingswift.dev/articles/def... #iOS #development #dependencyInjection
craftingswift.dev
Defaults and overrides for Factory contexts with FactoryKit
The tale of a surprising behavior I found while using FactoryKit.
040
Felipe Espinoza @craftingswift.dev · 20/04/2026
I am working in two CFP for swift / iOS conferences. Let me know if you can give me honest feedback in my CFP and I will send them to you. Thanks!
110
Felipe Espinoza @craftingswift.dev · 15/04/2026
- Copy Tags from a Task to another - Add Task Categories for Organization, no more name prefix needed - Bugfixes and more Check it out! apps.apple.com/no/app/chron... #macOS #timetracking #chronia
apps.apple.com
Chronia - Time Tracker App - App Store
Download Chronia - Time Tracker by Felipe Espinoza on the App Store. See screenshots, ratings and reviews, user tips and more games like Chronia - Time Tracker.
000
Felipe Espinoza @craftingswift.dev · 15/04/2026
⏲️ Version 1.2.0 of Chronia is out on the Mac App Store! This release introduces the following improvements: - Rename or Delete Tags - Drag & Drop Tags to reorder them - Inspector re-design - Export a task as a markdown summary ...
100
Felipe Espinoza @craftingswift.dev · 15/04/2026
@twostraws.bsky.social I would love a physical copy of "Everything but the code"! Hopefully you can make it happen
000
Felipe Espinoza @craftingswift.dev · 14/04/2026
If you skipped the original (or struggled through the audio), this is the one to watch #ios #apple #liveActivity #activityKit #tutorial
youtube.com
000
Felipe Espinoza @craftingswift.dev · 14/04/2026
It's the missing walkthrough to understand how Live Activities and ActivityKit works, How to start/update/end activities via push notifications, and my debugging tricks for when things don't go according to plan.
youtube.com
100
Felipe Espinoza @craftingswift.dev · 14/04/2026
🎬 New video: Design and Develop Live Activities for iOS 26 (Remastered) I originally published this in 2024 and it was quite popular, but the audio? Not so much 😅 So I went back, cleaned it up, and updated the content. www.youtube.com/watch?v=E63k...
youtube.com
110
Felipe Espinoza @craftingswift.dev · 07/04/2026
A new blog post is out, this time is about how to migrate view model observations from `ObservableObject` to `@Observable` I show three different alternatives and their tradeoffs craftingswift.dev/articles/mig... #ios #swiftui
craftingswift.dev
Migrating to @Observable. Combine Observations outside SwiftUI
Exploring options of migrating combine observations on view models when dealing with @Observable objects.
031
Felipe Espinoza @craftingswift.dev · 31/03/2026
And I include sample code in the video's description. #iOSDev #Swift #PassKit #AppleWallet
010
Felipe Espinoza @craftingswift.dev · 31/03/2026
Implementing Apple Wallet Passes are not that easy to do. In new video I will break down the process to build them, to sign them, debug and also cover NFC passes. It's a practical, end-to-end guide based on real experience www.youtube.com/watch?v=7no0...
youtube.com
PassKit Explained: Build Your First Apple Wallet Pass
Build Apple Wallet passes from scratch with PassKit 🚀 In this video, I walk through the full process: pass structure, signing, debugging, and how to integrate passes into your iOS app. I also cover…
100
Reposted by Felipe Espinoza
Nil Coalescing @nilcoalescing.com · 26/03/2026
“The SwiftUI Way” is a new book by @natpanferova.bsky.social written for SwiftUI developers who want to develop a deeper intuition for working with the framework, recognize potentially harmful anti-patterns, and build more maintainable and performant SwiftUI apps: nilcoalescing.com/blog/TheSwif...
nilcoalescing.com
The SwiftUI Way: patterns and anti-patterns for production apps
'The SwiftUI Way' is a new book by Natalia Panferova that shows experienced SwiftUI developers how to align with the framework's internal expectations.
0167
Felipe Espinoza @craftingswift.dev · 17/03/2026
My first blog post after quite a while: Syncing iOS and Android Tracking Events. Where I explain how we have a single source of truth at work for tracking events, so we can evaluate features across the apps. craftingswift.dev/articles/syn... #iOS #analytics #iOSdev
craftingswift.dev
Syncing iOS and Android Tracking Events
How to ensure your analytics events are equivalent across platforms, so you can evaluate features across the iOS and Android versions of your apps.
000
Felipe Espinoza @craftingswift.dev · 16/03/2026
I just read your post, it was great! and inspiring. I've had the goal to speak at a bigger conference for quite a while. Right now my biggest challenge is that I am not sure what to talk about. What would be interesting enough for the audience and CFP. Any recommendations?
111
Felipe Espinoza @craftingswift.dev · 16/03/2026
Dependency Injection is a common problem to solve in SwiftUI app. In this video I explore different approaches with their pros and cons to solve common situations where Dependency Injection is needed. www.youtube.com/watch?v=RlJW... #swiftui #dependencyinjection #iosarchitecture
youtube.com
Advanced Dependency Injection for SwiftUI Apps - Part 1
Dependencies are an unavoidable aspect of app development. We want to control them and Dependency Injection is the most common technique to do that. In this video we explore different ways to achieve…
011
Felipe Espinoza @craftingswift.dev · 08/03/2026
In any case, for making quick apps to solve some small pain points for you or to make quick prototypes to test an idea, I think AI coding is great for that.
000
Felipe Espinoza @craftingswift.dev · 08/03/2026
I'm still finding the balance on how to use AI responsibly, how much should I care of the quality of code (is it necessary to obsess as much on it anymore?) and make it a tool that enhances my skills, rather than just a crutch.
100
Felipe Espinoza @craftingswift.dev · 08/03/2026
I vibe coded a HealthKit app that uses SwiftCharts to present the data and it even exports a bigger version of the data on a report image. This took me 30 min, and I did a lot of refinements as I was testing the app.
200
Felipe Espinoza @craftingswift.dev · 08/03/2026
I've been doing that manually. Of course as a developer I created a note of making an app that helps me do that, but as a random side project idea, it never gets built. Well, it was a perfect use case of AI for me.
110
Felipe Espinoza @craftingswift.dev · 08/03/2026
Every week, I want to keep track of my efforts to lose weight. Then I tend to take screenshots of the health app, crop them an unite them to put in a notion document where I do my weekly retrospective.
100
Felipe Espinoza @craftingswift.dev · 08/03/2026
In many ways I feel "I'm behind" when it comes to AI development. Building apps with AI and crafting apps feel like opposites approach to app development. Now, I've been starting learning more about AI and trying it out and **one use case I like very much: prototyping and building personal apps.**
100
Felipe Espinoza @craftingswift.dev · 05/03/2026
It's been a while in my head, but now it's finally out! craftingswift.dev This will be my portfolio website + blog The site is currently being built, but I will share more content besides only using video form. #developer #apple #iOS #macOS #youtuber
craftingswift.dev
Felipe Espinoza | CraftingSwift
Portfolio of Felipe Espinoza (CraftingSwift), including YouTube content and the Chronia app.
010
Felipe Espinoza @craftingswift.dev · 04/03/2026
📣 Chronia 1.1 is out! In this release, I’ve added the ability to pause and resume work sessions. You can also create and add tags to your sessions, which will help you map your process and identify areas for optimization in your projects. Check it out! apps.apple.com/app/chronia-... #macOS
000
Felipe Espinoza @craftingswift.dev · 24/02/2026
Xcode has something similar in the device selector. It's a great UI pattern IMO. I wish to see it more often in macOS app
000
Felipe Espinoza @craftingswift.dev · 24/02/2026
I'm surprised this is not a native control on macOS, but for the new Tag feature of Chronia, I wanted to quickly filter/select a tag for a work session, then if the tag is not found, offer to create it in the same UI. #macOS #ui #ux
110
Felipe Espinoza @craftingswift.dev · 22/02/2026
If you haven't check the video yet, here is the link www.youtube.com/watch?v=I7lU... Soon I will announce the update to Chronia, together with something else 😏
youtube.com
Recreating Slack’s iOS Navigation Bar in SwiftUI
In this video, I break down the Slack navigation bar styling and rebuild the effect step by step in pure SwiftUI — no UIKit, no private APIs, no custom nav bar implementation. You’ll learn: - How to…
000
Felipe Espinoza @craftingswift.dev · 22/02/2026
In my latest video: Recreating Slack’s iOS Navigation Bar in SwiftUI. I was testing a new feature coming to soon to Chronia. Tags. Simple, but allows me to summarize the work on my videos to get a better breakdown of the work I put on a video #macOS #app #timeTracking
100
Felipe Espinoza @craftingswift.dev · 17/02/2026
📣 New video out! This time, I replicate the navigation bar styling in Slack for iOS using only SwiftUI APIs. I break down the problem and solve it step by step. The code is in the video description. Check it out! www.youtube.com/watch?v=I7lU... #swift #swiftui #navigationbar #ios26
youtube.com
Recreate the slack navigation bar on iOS 26
In this video, I break down the Slack navigation bar styling and rebuild the effect step by step in pure SwiftUI — no UIKit, no private APIs, no custom nav bar implementation. You’ll learn: - How to…
010
Felipe Espinoza @craftingswift.dev · 11/02/2026
It's been many years since I set aside time to tweak my terminal. I keep using zsh / tmux / neovim and my dot files have been the same for quite a while. What are the newest popular tools used for this? #cli #developer
110
Felipe Espinoza @craftingswift.dev · 03/02/2026
Using @Observable is great, but it has one small caveat. The initializer of the @Observable objects will be called multiple times, even with @State @nilcoalescing.com's excellent article covers that topic in more detail. #iOS #swiftUi nilcoalescing.com/blog/Initial...
nilcoalescing.com
Initializing @Observable classes within the SwiftUI hierarchy
Learn the recommended ways to initialize and store @Observable classes in SwiftUI views, and see what can go wrong when observable state is managed incorrectly.
0104
Felipe Espinoza @craftingswift.dev · 02/02/2026
I try to always be productive on my side projects, YouTube and my apps. For that my approach is to work each day a bit. I use my Mac App Chronia to keep tract of that work and see how it builds up in time. These are the things I worked on last week. #sideprojects #productivity #timetracking
000
Felipe Espinoza @craftingswift.dev · 31/01/2026
I recently watched 🚀 Antoine van der Lee 's talk about going indie at SwiftLeeds Good work habits, using different hats and persistence are great traits for any developer, check it out! #developer #carrer #indie www.youtube.com/watch?v=Teas...
youtube.com
From Side Project to Going Indie - Antoine van der Lee | SwiftLeeds 2024
Journey to Indie Development: Lessons from Success and Failure by Antoine van der Lee In this inspiring talk, Antoine shares his journey and lessons learned from transitioning a side project to a…
010
Felipe Espinoza @craftingswift.dev · 30/01/2026
In the SATS app we were struggling with that. We have started moving towards SPM packages for modules, that helps a lot. I share our learnings on the topic on my YouTube video, where I apply the same principles on how to break down a big app into SPM packages. www.youtube.com/watch?v=IjoX...
youtube.com
How to modularize an iOS app with SPM packages
This is the third part of a mini series where I share lessons from my day job. This time it's all about how I take a repo where all its code is in the main iOS target and modularize it using local…
000
Felipe Espinoza @craftingswift.dev · 30/01/2026
One of the most frustrating things of iOS development are compilation times for big projects. Previews take forever to update, recompiling the app for the simulator too. #spm #ios
110
Felipe Espinoza @craftingswift.dev · 30/01/2026
@danijelavrzan.com hi, when it comes to CFP for conferences, how much weights the fact that you ask for plane tickets and hotel, vs saying that your company pays for them? I've seen that question in a bunch of CFP. I'm not sure how much of an impact is for getting selected into a conference
000
Felipe Espinoza @craftingswift.dev · 26/01/2026
It’s great that is focused on Apple Development. I totally recommend it! #BuildInPublic #AppleDevelopment #iosdevelopment #productdesign #appmarketing #bookrecommendation P.S. as reference, I got 247 highlights from this book, way higher than normal.
030
Felipe Espinoza @craftingswift.dev · 26/01/2026
As developers we tend to focus mostly on Code, so it’s useful to look at the other aspects of app development. The book touches on gathering ideas, evaluating the most likely to succeed, make a plan for validation and development and how to successfully ship an app.
twostraws.gumroad.com
Everything but the Code
You don’t need more coding tutorials. You need a plan, and that's where my new book comes in. It's called Everything but the Code, and it's designed to provide everything you need to go from Xcode to…
110