The Semester of #SwiftUI final project apps are done!
https://youtu.be/TeBNWVCcMdw
Here is a recap video of presentations as students have gone zero-to-full-stack in a semester. Do feel free to forward links / job calls & I'll send them on to the class. Drop a comment of encouragement. Everyone worked quite hard this semester & clearly learned a lot. Stay Swifty! And for those who want to get in on the learning, the entire course is online & free at bit.ly/prof-g-swiftui
I'm adding a new chart and hit a strange Swift Charts issue.
If the Y-axis data is all zeros then the Y-axis gets flipped!
Specifying a chartYScale seems to be the solution.
.chartYScale(domain: 0...(yValues.last ?? 1), type: .linear)

YES!!! I finally did it 🙌
Approved on the first try 🎉
Bullet Invoices is now live on the App Store.
Create invoices fast. No clutter. Just get paid.
👉 https://apps.apple.com/us/app/bullet-invoices/id6756518951
#Finance #Invoicing #IndieDev #SwiftUI

One tip to speed up your #SwiftUI previews 🤩
I wanted to centralize constants like opacity, spacing, or sizes used by my View to speed up prototyping.
Stored properties: slow 🐌 as Xcode recompiles the file every time I tweak a value.
Computed properties: instant updates 🏎️
The implementation is still in its early development stages, so I plan to test it for #SwiftUI performance. 🚀
Many people still use navigation in #UIKit, and when we need to support legacy code, it makes sense. However, this time I want to approach it using pure SwiftUI. ✨

The #Coordinator will be responsible solely for the navigation layer. 🧭
Think of it like our old #UIKit friend, UINavigationController! 🚶♂️
I'm experimenting with different #ViewModifiers to enhance the code's readability. ✨

At first glance, #SwiftUI lacks a unified approach to navigation. Various solutions can achieve the desired effect, but they differ from one another. 🤔
To maintain consistency in my code, I have incorporated #Coordinators into my #architecture. 💻

An hour of debugging later, I think I found the issue, but not the cause 😅 Tomorrow night, let's see if we can re-write the test harness to properly execute list tasks _after_ the interrupt finishes. See you then!
🔜 Tomorrow’s stream: https://youtube.com/live/Xm6TiS7jRUI
⏮️ Playlist so far: https://www.youtube.com/playlist?list=PLRxjf93xotuofCtaxtGOcWeuxVZYJyY-m
📲 Download Jiiiii: https://apps.apple.com/app/apple-store/id6472801548?pt=14724&ct=MastodonCCStreams&mt=8
#Jiiiii #DevStream #tvOS #visionOS #macOS #iOS #iPadOS #Anime #Swift #SwiftUI #Vapor #WebAuthn #BuildInPublic #TestFlight #PWA #WebPush
I'm making a seasonal anime guide app, in the open for all to experience and learn from.
Let’s continue yesterday's debugging session and try to find out why changes are not persisted by the time we read them in tests!
#Jiiiii #DevStream #tvOS #visionOS #macOS #iOS #iPadOS #Anime #SwiftLang #SwiftUI #Vapor #WebAuthn #BuildInPublic #TestFlight #PWA #WebPush
Come chill with me: https://youtube.com/live/byeXN8WyvJ8
This is interesting, all the perks of Flutter but in Swift https://github.com/ShaftUI/Shaft
#Swift #SwiftUI #CrossPlatform
Ruler has evolved into Rulers!
#PencilKit #BuildInPublic #LetterSet #swiftui #metalshaders

Claude Code is amazing. I got so much done yesterday, it’s mind-boggling. It even rewrote a feature I was prototyping in #SwiftUI flawlessly in UIKit for production, and with that obstacle out of the way, the feature is looking great!