Hi, I'm Sarun — an iOS developer.
On this blog I share my working processes, tip and tricks, tools,
and problems I found along the way.
On this blog I share my working processes, tip and tricks, tools,
and problems I found along the way.
Making SwiftUI views responsive usually involves a lot of GeometryReaders and if-else. In iOS 16, SwiftUI got a new view that makes it easier. Let's learn how to do it.
When you read SwiftUI tutorials, you might stumble on the fixedSize() modifier. Let's see what it is and why we need it.
A navigation bar is an essential part of iOS apps. It is a part where we usually apply color to match our branding. In iOS 16, we can customize a navigation bar purely in SwiftUI.
When you read SwiftUI tutorials, you might stumble on the fixedSize() modifier. Let's see what it is and why we need it.
A navigation bar is an essential part of iOS apps. It is a part where we usually apply color to match our branding. In iOS 16, we can customize a navigation bar purely in SwiftUI.
Variable Color is a new feature of SF Symbols that allows you to change the appearance of a symbol based on a percentage value. Let's learn what it is and how to use it.
In iOS, we have dedicated built-in ways to dismiss the keyboard in scrollable content. Let's learn how to set that in SwiftUI.
If you are not ready to make your app support dark mode, you can opt-out of that. You can do disable it for an entire app or partially. Learn different ways to disable dark mode in iOS.
By default, when you set an image to an UIButton, it will position on the leading edge of the text. Let's learn how to put it on the trailing edge instead.
When you convert HTML string to NSAttributedString, sometimes, you will get an extra unwanted bottom padding. Learn what is causing this and how to mitigate the problem.
In iOS 15, we finally have native UI for a bottom sheet. Let's explore its behavior and limitation.
Swift 5.7 introduced a new syntax for optional binding. Let's see what it is and how it can improve our code.
The available attribute (@available) is another tool that helps you cope with API changes. Let's see how this is different from the availability condition (#available).
Every year Apple introduces new features to the system, and sometimes they have to deprecate some old APIs to make room for the new ones. Change is an inevitable thing in programming. Let's learn how to handle the changes.
Type placeholders allow us to write a type placeholder (_) in a place where type is expected. A compiler will automatically infer the type of that placeholder. But what is the benefit of it? Let's find out.
This article will share seven Xcode shortcuts that will help you on a large iOS project. The tricks you are about to learn will help you find and navigate to a file/class/symbol in your large and small project.
There might be several reasons that cause this error. I will share the solution that works for me.
Each language has its own characteristic. Some are more verbose than others. Some have special characters that take up vertical spaces. Some even read and lay out from right to left. Let's see how to make sure your layout is ready for this.
A tip for creating multiple schemes to quickly run your app in different languages.
Turn your code into a snapshot.
A step by step guide to implement Sign in with Apple.
SwiftUI cheat sheet
A more work-friendly mirror for Fucking SwiftUI
A programming picture book covers a topic on many aspect of UITableView. This is a fun small project I did long time ago.
I got some apps in the App store, you can check it out.