TypeScript in React: Lessons for Swift dev
Moving from Swift to TypeScript? Here are the key concepts I learned while diving into a React codebase, with the help of Claude Code.
Figuring out software, one rabbit hole at a time.
Moving from Swift to TypeScript? Here are the key concepts I learned while diving into a React codebase, with the help of Claude Code.
Claude Code is a powerful AI-powered coding assistant that can significantly boost your development productivity. Here are my top practical tips for getting the most out of this...
When ScrollView content is shorter than the screen height, you often end up with awkward empty space. Here’s how to make your content fill the available space.
In the new string catalog, you can easily right click > Vary by Plural > Edit it as you like.
When creating a custom view, it is common to init with a String, either with localization or not. This post will explore a few ways to init the custom view (largely depends on y...
For a simple view, we can use onTapGesture to handle taps easily. At times you want to handle simultaneous gestures.
These are helpful snippets when using TCA.
It is very easy to create swipe action for your rows. But there are SwiftUI nuances that might not show the buttons when you swipe. I hope this will save you some hours.
Periphery is one of my favorite tool. It works well to scan a project and provide warnings for those unused code. It’s a good chore to declutter your codes once in a while. You ...
There is a pitfall with initializing a State or a StateObject. I have provided a snippet on how to init, but it really needs to provide the following warning.
This is a common pitfall, because of an Apple bug, since forever.
To use for await item in streamOfItems {...}, you need an AsyncStream. It is very common that you already have an existing Combine publisher, and you want to use the nice Swift ...
Trying to achieve this might sound silly, as the goal of keypath is to eliminate string and be strict. But I do need it in a particular problem, where I need to keep a list of p...
One of the biggest announcement as Apple is forced to complied with Digital Markets Act (DMA) in the EU.
I seldom give talks, but I did it for iOS Conf SG 2024.
The introduction of Observation framework changed the way we use SwiftUI, yet again.
I’ve been plagued by this Safari bug for many months. Every time I restart my mac, Safari does not remember my login to Gmail, Facebook, Reddit, Stackoverflow etc..
In my previous post on when you should add final, there is a comment from Dmitry:
We all know what the final keyword to a class/property is for.
If you ever use removeArrangedSubview() yet the view still shows up, this is an everlasting bug with UIStackView (still there as of iOS 17).
In the latest Swift, you can create a Regex (iOS 16+) using slash syntax such as /(\d+)/ (to capture 1 or more digits).
OSLog is a unified logging framework available for a long time, but I haven’t adopted it much. But things are about to change with a new feature from WWDC 2023.
You can use GitHub CLI to clone all easily.
This is a developer guide on integrating Apple as an OAuth provider on Apple platform, as well as for other platforms such as Android/Web.
There are a number of ways to bump a build number.
This is how you can speed up your CI when using Github Action.
This is Part III of integrating Google ads. Previously:
In the previous post I covered the basic setup of Google Ad Manager display ads.
This website serves ads using Google Adsense. 🙇♂️ This is the simplest way to pay for my coffee.
Fastlane was great since the early days of iPhone development, but they are on the downhill, abandoned by Google daddy.