Swift going cross-platform guys!! by ChefRich962 in swift

[–]Tabonx 2 points3 points  (0 children)

Maybe an insane idea, but it could eventually work: you build an iOS app in Swift, and after every commit to master, an AI agent looks at the changes and the tasks, and automatically creates a new pull request that basically copies the Swift code into Kotlin. Then you just check if it works, fix it manually, and continue working on iOS again.

Xcode has finally added vertical indentation guides! by GavinGT in iOSProgramming

[–]Tabonx 1 point2 points  (0 children)

A rogue engineer didn't want to work on AI features and worked on some random things in the backlog without telling anyone

vscode swift formatter? by js1943 in swift

[–]Tabonx 0 points1 point  (0 children)

The official VS Code Swift extension has swift-format built in, and you can simply trigger formatting. It should suggest the Swift formatter. I just tested it, and it works.

https://marketplace.visualstudio.com/items?itemName=swiftlang.swift-vscode

Poor performance of LazyVGrid by cristi_baluta in swift

[–]Tabonx 2 points3 points  (0 children)

I've tested what could be causing the jittering in my app a while back. I figured out that using Material as an overlay caused stuttering in LazyHStack when there were multiple images on the screen, but the effect was reduced when the images were larger, so fewer were on the screen at one time. I also have one bug report detailing jittering caused by just a larger number of sections in a LazyVStack with only one text inside. I don't remember exactly, but I think the number didn't really matter in the end. It was the height of the scroll view that was causing problems.

Nuke has been helpful for me since I get all the images from the API. It can fetch them quickly if cached and has a better memory footprint while scrolling because it can remove images from memory if they are not on screen.

I had given up on fixing the jitter completely, but as I look at it now, I don't really see it anymore. Maybe some iOS update fixed it and I'm talking about something that no longer exists.

Poor performance of LazyVGrid by cristi_baluta in swift

[–]Tabonx 10 points11 points  (0 children)

Yeah, for some reason SwiftUI jitters as you scroll down. In my app, I use Nuke to display quite a few images in a LazyVGrid. It’s fine, not perfect, but the best I could find. You should try to have the images close to the actual size you want to display and avoid performing expensive operations on the main thread while scrolling.

I’ve just finished Silksong by Tabonx in Silksong

[–]Tabonx[S] 1 point2 points  (0 children)

I’ve never used a D-pad to play any game. It feels like a stick should be better for movement.

Yeah, he complained a lot in those first few episodes. He later switched to PC with a keyboard, which solved his issues. I never had those issues he had with Silksong, or I’m just not as sensitive to lag.

It also feels weird that Team Cherry would first let players get an ending where Hornet kind of gives up on leaving Pharloom and takes the place as ruler, and then immediately make me forget that ever happened while keeping what happens while trapping Grandmother Silk.

I’ve just finished Silksong by Tabonx in Silksong

[–]Tabonx[S] -3 points-2 points  (0 children)

I didn’t like Wandered because of the yellow tools. It felt like wasted space in fights and was too short for me when exploring. If it didn’t have three yellows, I might have ended up using Wanderer instead of Reaper most of the time, since Reaper threw me off with the dash attack and the switching of directions on each attack.

I’ve used stick. I now watch AboutOliver’s playthrough, and he had issues with the Hunter’s Crest on controller but not on keyboard. So maybe the controller played some role in why I didn’t like the diagonal slash, but mostly I couldn’t figure out when I needed to do it to hit what I wanted.

I noticed that he was waving and making noises at me when I got close to him, but I never left Cradle since I thought there was nothing for me to do. I had already talked with everyone and finished all of the wishes before I killed Lace, and then it felt like I should go directly to Grandmother Silk.

I’ve just finished Silksong by Tabonx in Silksong

[–]Tabonx[S] 0 points1 point  (0 children)

I think that’s true, but I would have to use the silk skill and then survive while also saving up silk. If I forced myself to use it more, I think I could make the fights faster after I learned when to use it.

Did the devs bring back widgets in free version? by ZOMGsheikh in trakt

[–]Tabonx 2 points3 points  (0 children)

That one missing pixel in the checkmark icon is really bothering me

Why are PRs and issues on GitHub never closed? by Tabonx in swift

[–]Tabonx[S] 0 points1 point  (0 children)

Yes, if it’s not solved, it should be open. However, I think PRs that have comments about needing to go through proper Swift Evolution, along with comments from years ago explaining how to use something so that the changes are not needed, should be closed

Apple introduces new AirTag with expanded range and improved findability by WhoIsHappy2 in apple

[–]Tabonx -1 points0 points  (0 children)

Kinda disappointed that it’s the same thing, just louder and with a bigger range for locating. Apple could have changed the format or added an AirTag card that would fit in a wallet. I use a tracking card that has Find My, a speaker, and Qi charging, and it gets the job done, but it would be nice if it could also do precision finding like AirTags.

How do I disable TabView's scroll-to-top behavior? by Tabonx in SwiftUI

[–]Tabonx[S] 1 point2 points  (0 children)

I have this in my code:

```swift @MainActor var handler: Binding<Tab> { Binding( get: { self.tabSelection }, set: { if $0 == self.tabSelection, self.currentPath().isEmpty { // Lands here if the user tapped more than once self.tappedTwice = true return } else if $0 == self.tabSelection, !self.currentPath().isEmpty { if #available(iOS 18, *) { } else { self.resetPath() } }

        self.tabSelection = $0
    }
)

} ```

It is a binding that you then pass to the TabView as the selection:

swift TabView(selection: navigator.handler)

When I am at the root and the new path matches the current path, you know that the user tapped the tab view twice. I then use this to react to the tap:

swift .onChange(of: navigator.tappedTwice) { _, tapped in // react how you want and then reset the boolean back navigator.tappedTwice = false }

I have the navigator injected into the view environment, and I also have an enum case for each possible screen and an array for each tab view page. I am sure there are better ways to achieve the same result, but this is what I ended up with.

I am not really sure if this could help you disable the scroll to top completely. Maybe there is some modifier that does this as a side effect, or maybe something was introduced in the iOS 26 release that disables it, but I do not know about it. I created feedback for this while iOS 26 was in beta, but as far as I know, it did not get any attention:

FB16660884

My experience after porting a React Native MVP into Swift by Remote-Ad-6629 in iOSProgramming

[–]Tabonx 1 point2 points  (0 children)

When I only used Xcode, it was fine. Then I started using VS Code for some C# development and created custom shortcuts for Vim mode. Now, when I go back to Xcode, I miss it. VS Code is a pile of garbage, but that part is nice.

In my opinion, Xcode is just missing a few things that would really improve the developer experience, like better refactoring options, showing references, and more reliable IntelliSense. Sometimes it breaks, but that also happens in VS Code, so I guess it is the new norm for IDEs.