RSSAmplifier

Blog

OhMySwift

Swift is easy to learn, but difficult to master. I will be writing interesting articles about Swift and iOS development here.

ohmyswift.comRSS feed ↗20 posts

Latest posts

Stop Burning Tokens on “Fix my iOS app performance”

I have been vibe coding a lot lately. And if I am honest, writing performant code with these tools is still a struggle. We are in 2026 and somehow most of them are still pretty bad at this part.

WWDC26 Platforms State of the Union: A Developer Recap

The 2026 Platforms State of the Union outlines major advancements for developers across Apple’s ecosystem, focusing on three core pillars: Apple Intelligence, platform refinements, and developer productivity. Here’s what stood out.

How to access SFSymbols directly in Xcode

Every day brings a new learning opportunity in Apple platform development, especially with Xcode. In the latest Xcode 26, Apple quietly removed the “Show Library” button, which used to be accessible by clicking the “+” icon on the right side of the navigation bar. I found myself wondering: How do I access the Library now? Has it been removed entirely? No, Apple wouldn’t make such a blunder.…

The Beautiful Chaos of Building Something Bigger Than Yourself

It all started as an idea. When I asked my friends Adithya and Raghav, “Why don’t we organize a nationwide hackathon for Apple platform developers in India after the announcement of WWDC25?” I thought I was being crazy and that it might not gain traction. Come on, it’s a nationwide hackathon—how would we even pull it off? It seemed impossible, but we didn’t give up.

Why Liquid Glass Is Making Developers Rethink Flutter

Hey Swift folks! If you’ve been scrolling X or LinkedIn, you have probably caught wind of the buzz: Apple’s Liquid Glass design is supposedly “killing” Flutter. I have been diving into Meet Liquid Glass video and Apple’s official Adopting Liquid Glass documentation to figure out what is driving this talk and what it means for us. Is it time to ditch Flutter for native iOS with SwiftUI? Let’s…

Debug crashes in iOS using MetricKit

“Production only” crashes in iOS apps are notoriously difficult to debug. Traditional in-process crash reporting tools install handlers within your app to capture failure data, but if the app crashes hard enough, these reporters themselves may fail.

Send data Between iOS Apps and Extensions Using Darwin Notifications

In iOS development, app extensions run in separate processes from their containing apps. This separation poses a challenge when you need to communicate between the main app and its extensions. While NSNotificationCenter is a common choice for passing data between view controllers within the same app, it falls short when it comes to inter-process communication. Have you ever thought about how to…

SwiftUI in 2024: Bridging Perception and Reality

I recently spoke at iOSKetchup2024 hosted by Zomato x Blinkit about the challenges and opportunities of using SwiftUI. The audience seemed to enjoy the session as much as I did! Here, I’m excited to share my experience and provide a detailed write-up of my talk.

From viewWillAppear to viewIsAppearing - Perfecting Your iOS View Transitions

In WWDC23, Apple introduced a nuanced addition to the UIViewController lifecycle: viewIsAppearing. This instance method is a game-changer for developers looking to fine-tune the presentation and layout of their views. Let’s explore how this method enhances the way we build responsive and dynamic interfaces.

Exploring the New Push Notifications Console from Apple

Apple has recently unveiled a powerful new tool for developers: the Apple Push Notifications Console. This innovative console simplifies the task of sending test notifications to Apple devices using the Apple Push Notification service (APNs).

How to send Remote Push Notifications to an iOS Simulator with Xcode 14

In the past, testing push notifications on iOS simulators was quite challenging due to certain limitations. Prior to Xcode 14, receiving push notifications in a simulator was not possible and developers had to rely on local simulations using .apns payload files and the simctl push command. We have already seen how to simulate push notifications in a simulator in the article, Simulating remote push…

How to Instantly Track a Variable’s Value Changes with Xcode Watchpoints

In the world of programming, tracking variable changes can often turn into a debugging nightmare. In Xcode, you might find yourself frequently relying on breakpoints and manually tracing the changes in your variables’ values. At times, you might also utilize property observers such as didSet and willSet for this purpose. But what if I tell you, there’s a powerful tool waiting for you to harness…

How to add a loader to an UIButton

Sometimes, we would require a button to show a loader with appropriate text when a long-duration task is done, such as downloading an image. Before iOS 15, we had to write a custom button or do some hacks to show a simple loader or an UIActivityIndicator inside an UIButton. Now, it is not the case anymore. UIButtonConfiguration provides showsActivityIndicator, a simple property using which we can…

How to filter screenshots, cinematic videos, and depth-effect photos in PHPickerViewController

In iOS 14.0, Apple introduced a new way to pick images from the device’s photo library using PHPickerViewController. (If you are not aware of PHPickerViewController, I strongly recommend you to read about PHPickerViewController first.)

Implementing a custom native calendar using UICalendarView in iOS16 and Swift

It was WWDC22 week, and I was browsing through my Twitter feed to get some updates about the latest Apple APIs. A person tweeted, “No matter how experienced you are as an iOS developer, you’ll always look it up how to set up a date formatter.” So I humorously replied to the tweet by saying, “Dates are hard 😜 .”

Different methods to remove the last item from an array in Swift

Arrays are one of the most widely used data structures in Swift, and we deal with a lot of array manipulations. One such manipulation is the removal of the last element from an array. The three useful methods to remove an element from an array are dropLast(), popLast(), and removeLast()

Customizing UIButton in iOS 15

Buttons are an essential element in iOS apps. If you are developing an app using UIKit, you will probably use UIButton class to create buttons. Creating a button is a straightforward process, but it becomes problematic when it comes to customizations. Soon you will find yourself writing hacks for achieving your desired result. We all have been there, and we have done it. You are not alone.…

Exploring Deque in Swift Collections

Deque (should be pronounced as “deck”) is a collection implementing double-ended queues. Deques are similar to arrays, but they have efficient insertions and removal of elements at the beginning and at the end.

Swap keys and values of a Dictionary

Dictionaries are one of the most commonly used data structures. Dictionaries come with keys and values where the keys are unique. Sometimes, there might be a situation where we would want to swap the keys and values of a dictionary. Let’s see how to swap keys and values of a dictionary in swift.

Experimenting with Swift async and await pattern using Xcode

You all might know that async/await is accepted and is available in the main snapshots! Let’s get our hands dirty by trying out some basic example of async/await in Swift.