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.
Swift 5.7 introduced a new syntax for optional binding. Let's see what it is and how it can improve our code.
In SwiftUI, we have no direct way to change a status bar style. But we can indirectly control it through two view modifiers.
If your Apple account belongs to multiple teams, this can cause Fastlane confusion. Learn how to fix it.
In iOS 16, we have a new view to select multiple dates. Let's explore its capabilities.
In iOS 16, we can create a multiple text field with new initializers and a little help from the .lineLimit(_:) modifier.
iOS 16 add a new Grid view to SwiftUI. A Grid view arranges child views in rows and columns. This table-like structure makes a layout that is hard to do in vertical and horizontal stacks become easier.
iOS 16 add the ability to integrate a text field in an alert.
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.
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.
A type alias declaration introduces a named alias of an existing type into your app. You can think of it as defining a nickname for an existing type. Let's learn the benefit and when to use them.
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.