Felipe Espinoza

Felipe Espinoza

@craftingswift.dev

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

83 followers59 following138 posts

I had a great experience in www.nextappcon.com both as an attendee and speaker. I'm looking forward to seeing the video of my talk about Snapshot Testing, but also all the other talks that I couldn't see due multiple tracks... lots of interesting things going on.

🎬 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.comSwiftData + CloudKit: Don't Break Syncing with V2This 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…

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.beWhy I Recommend This Book to Every iOS DeveloperToday 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…

Felipe Espinoza reposted

🧩 𝐷𝑒𝑓𝑎𝑢𝑙𝑡𝑠 𝑎𝑛𝑑 𝑜𝑣𝑒𝑟𝑟𝑖𝑑𝑒𝑠 𝑓𝑜𝑟 𝐹𝑎𝑐𝑡𝑜𝑟𝑦 𝑐𝑜𝑛𝑡𝑒𝑥𝑡𝑠 𝑤𝑖𝑡ℎ 𝐹𝑎𝑐𝑡𝑜𝑟𝑦𝐾𝑖𝑡 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.devDefaults and overrides for Factory contexts with FactoryKitThe tale of a surprising behavior I found while using FactoryKit.

Felipe Espinoza reposted

📢 𝗜𝘀𝘀𝘂𝗲 𝟴𝟵 𝗶𝘀 𝗼𝘂𝘁! Highlights: 🤖 𝑁𝑒𝑡𝑤𝑜𝑟𝑘 𝑂𝑝𝑡𝑖𝑚𝑖𝑧𝑎𝑡𝑖𝑜𝑛 𝑣𝑖𝑎 𝐴𝐼 𝐴𝑔𝑒𝑛𝑡𝑠 📷 𝑂𝐶𝑅 𝑤𝑖𝑡ℎ 𝑉𝑖𝑠𝑖𝑜𝑛 🧩 𝐹𝑎𝑐𝑡𝑜𝑟𝑦𝐾𝑖𝑡 𝐷𝑒𝑓𝑎𝑢𝑙𝑡𝑠 & 𝑂𝑣𝑒𝑟𝑟𝑖𝑑𝑒𝑠 📜 𝑆𝑐𝑟𝑜𝑙𝑙𝑉𝑖𝑒𝑤 𝑃𝑒𝑟𝑓𝑜𝑟𝑚𝑎𝑛𝑐𝑒 🌐 𝑆𝑡𝑎𝑡𝑖𝑐 𝑆𝑖𝑡𝑒 𝐵𝑢𝑖𝑙𝑑𝑒𝑟 𝑖𝑛 𝑆𝑤𝑖𝑓𝑡𝑈𝐼 ⚙️ 𝑚𝑎𝑐𝑂𝑆 𝑆𝑦𝑠𝑡𝑒𝑚-𝑊𝑖𝑑𝑒 𝑆𝑒𝑟𝑣𝑖𝑐𝑒𝑠 🔍 𝑀𝑒𝑚𝑜𝑟𝑦 𝐿𝑒𝑎𝑘𝑠 ♿ 𝐴𝑐𝑐𝑒𝑠𝑠𝑖𝑏𝑖𝑙𝑖𝑡𝑦 𝑁𝑢𝑡𝑟𝑖𝑡𝑖𝑜𝑛 𝐿𝑎𝑏𝑒𝑙𝑠 #iOSDev #Swift

ios-newsletter.snappmobile.ioiOS Newsletter Issue 89Hi folks,

⏲️ 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 ...

Felipe Espinoza reposted

“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.comThe 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.

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.devSyncing iOS and Android Tracking EventsHow to ensure your analytics events are equivalent across platforms, so you can evaluate features across the iOS and Android versions of your apps.

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.comAdvanced Dependency Injection for SwiftUI Apps - Part 1Dependencies 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…

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.**

View full thread

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.

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.

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.**

View full thread

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.

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.

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.**

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.

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

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

📣 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.comRecreate the slack navigation bar on iOS 26In 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…

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

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.comInitializing @Observable classes within the SwiftUI hierarchyLearn the recommended ways to initialize and store @Observable classes in SwiftUI views, and see what can go wrong when observable state is managed incorrectly.

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

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

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.comHow to modularize an iOS app with SPM packagesThis 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…

@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