Let's learn how to make a simple menu bar app in this article. | Continue reading
By learning about the key path, you open up yourself to an opportunity to improve your existing API or even create a new one that you don't aware you can do it. | Continue reading
There are many ways we can satisfy a closure argument. Some of them do not even look like closure. Let's learn all of them in this article. | Continue reading
We have a new way to format data into a localized string in iOS 15. Why do we need another formatter? How does it differ from the old one? Let's find out. | Continue reading
Learn different ways of using for loop for each scenario. | Continue reading
If you are working on iOS for long enough, there is a chance that you might have known that DateFormatter is expensive, but what is costly about DateFormatter? Let's find out in this article. | Continue reading
Learn how to add padding to your stack view's content. | Continue reading
It is a hidden gem in Xcode that can save up your coding time. Learn what it is, how to use it, and some use cases. | Continue reading
There are a few variations when dealing with counting days. You need to ask yourself some questions beforehand. | Continue reading
Date and time might be among your list of the hardest things in programming (It is for me). Today, I'm going to talk about a basic concept of a Date and its companion DateComponents. | Continue reading
Print debugging is the simplest form of debugging technique, but it possesses some drawbacks. Let's see how we can make it better by using Xcode breakpoints. | Continue reading
Equatable and Hashable are two essential protocols in the Swift world. Let's learn an old Swift feature that you might forget. | Continue reading
Learn how to lets users save an image outside of your app’s sandbox. | Continue reading
Three language features around Swift enumeration that you might not aware of. | Continue reading
SwiftUI provides an easy way to convert to render any view into a placeholder style by redacting its content. | Continue reading
In the past, the way I test a custom URL scheme is to go to Safari and open up any of my custom URLs. If you are still doing that, there is a better alternative. | Continue reading
Learn how to create protocols that constrain their conforming types to a given class. | Continue reading
We finally get SVG supported and the best thing is it is backward compatibility with some limitations. | Continue reading
Learn how to set a navigation bar title view in SwiftUI. | Continue reading
The most popular question since the introduction of SwiftUI. Here is my thought after WWDC20. | Continue reading
A new way to create a reusable view. | Continue reading
To set a custom image for the back button, we need to set an image to both backIndicatorImage and backIndicatorTransitionMaskImage, but what does backIndicatorTransitionMaskImage really mean? | Continue reading
Learn how to change a UINavigationBar back button indicator. | Continue reading
Learn how to get a suffix from a Swift string. | Continue reading
When working with an unstable, legacy, or third party API, you might get a malformed object in an array. Learn how to decode a JSON array with corrupted data in Codable safely. | Continue reading
Learn to round specific corners, e.g., top-left and top-right. | Continue reading
Learn how to get a prefix from a Swift string. | Continue reading
Learn different ways to split a string into an array of substrings. | Continue reading
The default appearance of UIButton is a single line text, but it also supports a multi-line text with some minor tweak. | Continue reading
Learn different ways to define Auto Layout constraints programmatically. | Continue reading
Testing is a process we do along with our development. Knowing shortcuts would help you save some time, which will add up in the long run. | Continue reading
How to create a reusable button style in SwiftUI. | Continue reading
Introduction of SF Symbols, learn the basics, and how to use them. | Continue reading
Create a reusable boilerplate snippet that you can use in the project. | Continue reading
If you are still declaring class-only protocols by inheriting them from class, you might need to revise your knowledge. | Continue reading
Swift Package Manager is getting better every day. It is a matter of time before everyone supports it. When the time comes, make sure you know how to say goodbye to this old friend. | Continue reading
When I want to keep some information or configuration out of a code base and don't want something fancy, I usually save it as Property List file. Let's see how to do it. | Continue reading
A guide to creating an activity-ring-like circular progress bar in SwiftUI. An in-depth tutorial of what I think when making a custom view. At the end of this article, you will be able to create the Activity ring used in the Activity app on Apple Watch. | Continue reading
Part 2 in a series on understanding data in SwiftUI. We will talk about the key that makes principles in part 1 possible in SwiftUI. And how this resulting in a reduction of the complexity of UI development. | Continue reading
A new and easier way to test Apple push notification on iOS simulator. | Continue reading
Most complex custom views can be made by composing many basic shapes together. Today we will learn basic operations that we can do with them. It may seem trivial, but knowing these basics will benefit you in the future. | Continue reading
Part forth in a series Sign in with Apple. Use Sign in with Apple JS to let users set up accounts and sign in to your website and apps on other platforms. | Continue reading
How to print object (po) in a debugger (lldb) without escape special characters. | Continue reading
How to make .insetGrouped UITableView style in SwiftUI List | Continue reading
Learn about this Swift attribute and its purpose. | Continue reading
Part 2 in a series on an introduction to Sign in with Apple. In this part, we will talk about the anonymous email address. How to make it work and its limitation. | Continue reading
A guide to decode a gibberish crash report to a human readable format. | Continue reading
If this is just a comment for you, this article might benefit you. | Continue reading