James retweeted
🔥 Day One Videos Are Live!
The wait is over! We've just released ALL the recordings from Day 1 of the SwiftLeeds Conference.
These talks showcase incredible insights from our amazing speakers, covering everything from cutting-edge Swift techniques to real-world development stories. Whether you attended or missed the conference, these sessions are packed with valuable knowledge for iOS developers at every level.
Watch now: youtube.com/@swiftleeds/vide…
If you find these talks helpful, please consider subscribing to our channel—your support means the world to us and helps us continue bringing you quality Swift content! 😌
James retweeted
Missed out on SwiftLeeds this year?
Don’t panic all our recordings will soon be available starting now with the opening keynote from Daniel Steinberg, that one!
youtu.be/xMThETWlSuM
Replying to @SamsungUK
@SamsungUK - can’t get answers regarding the registration of my Fold 7 Buy and Try promotion. Called promo team multiple times and not getting answers. They say Samsung has stopped all registrations at this time.
Need answers urgently as 14-day return about to expire. Not happy
Pre-ordered the Jet Black phone, went to register now the site is up and that SKU doesn’t show in the list on the form. I very closely checked the terms multiple times before purchasing as I would not have ordered one without this promotion as I’ve been on iPhones forever.
James retweeted
📸 Detect barcodes like QR in Xcode's Simulator ✨
The next version of @rocketsim_app Camera Simulation supports capturing metadata like barcodes 🚀
CarPlay on iOS 26 needs a lot of work. Very buggy and the UI, especially maps, isn’t as clear as last gen when it comes to showing what’s highlighted
James retweeted
Stretchy headers are a common pattern in iOS apps where the image expands as the user pulls down. We can create this effect in SwiftUI using the visualEffect() modifier without changing the image frame. I've just published a post about it: nilcoalescing.com/blog/Stret…
James retweeted
App Intents can now show gorgeous little mini apps when run 😍 #WWDC25
James retweeted
A little bit of fun to end the #WWDC25 week on: I went on the first 30 minutes of the Code Crawl event, and used my time to remake an effect from the early iPhone days!
James retweeted
no more private api to get device corner radius ( or giant hard coded files ), get the perfect corner radius for free with `containerConcentric` 😍
unavailable in beta 1, but fingers crossed we get it soon!
#WWDC25
James retweeted
Notes from the SwiftUI Lab:
- Avoid glass overlapping glass
- Avoid glass in anything that scrolls
- Use glass when you want to grab attention
- Remember to put glass in appropriate GlassEffectContainers
- Move tinting away from NavBar into the content that scrolls behind the NavBar glass
- LazyVStack in ScrollView: ForEach should return a static number of Views so the system knows what a "row" is
- Use new performance instrument to find scrolling issues
- "New design is still in beta"; issues like dark background behind glass being unreadable should be filed as feedback
- Generally embrace SwiftUI for the app lifecycle even when using UIKit/AppKit for core navigation/structure
- MatchedTransitionSource: Use to connect different Views and presentations
- Singleton or EnvObject? Prefer Environment in SwiftUI (also helpful for Preview context)
- System uses less colors now; avoid arbitrary tinting - use to draw attention or indicate states
- Use ContainerValues to pass data up the hierarchy (not Bindings) or PreferenceKeys or Closures (for actions/UIKit)
- Animations are available for widgets on visionOS (same as since iOS 17)
- Known issue in beta where link gestures don't work
- Use standard system controls
- SafeAreaBar API for custom TabBar
- NavLink uses trailing chevron SF Symbol (useful for custom buttons)
- Fluidly draggable component like TabBar: Currently no API for that, file feedback if interested in this
- Unit test SwiftUI Views: Bugs are mostly in business logic -> catch them there instead of testing SwiftUI Views, e.g. test that the NavPath of a NavModel contains .home instead of a snapshot test for login
- Keep Views as small as possible and use Models
- "Whatever architecture you pick, have a testable architecture"
- Consider what work can be done outside the main thread (for performance optimization)
- Consider scaling high-res images down to display size before showing them
- Watch out for View inits & bodies being too expensive -> break up the body into multiple Views
- Color.random in the background of list rows -> if its flicking during scrolling, your Views are invalidating
- DatePicker disrespecting dynamic size is a known issue
- Common SwiftUI antipatterns: conditional modifiers using if statements; public static let shared; if statements for NavStack in NavSplitView detail column (instead: ContentUnvailableView inside NavStack); Not using a11y representations instead of label & value; if statements "loose state" on change
- Architecture depends on the app/developer preference -> SwiftUI is architecture-agnostic; lean into Observable (also compatible with UIKit)
- ObservableObject led to needlessly invalidated Views, which is "fixed" with Observable
- Debug SwiftUI: Knowing why the View updated/was invalidated -> let _ = Self._printChanges(); conditional breakpoints; even they use print debugging :) ; comment-out-debugging to narrow down on issues
😂
This dubdub gets 6 out of 5 stars from me 🥹🌟 crying a lil with @sofiaromorales
James retweeted
Testing the camera in Xcode's Simulator used to be impossible.
I'm working on a major update of RocketSim, which allows you to use the Mac camera inside Xcode's Simulator.
Here's a demo of Looki, which we always had to test on a real device.
Game-changing for productivity! 🚀
James retweeted
SwiftUI Tip 💡
Let users autofill one-time codes from Messages or Mail using .textContentType(.oneTimeCode).
→ learnandcodewithenid.com




















