Sign in

Personal blog —https://
Photo by Julian Lozano on Unsplash

I’ve been a little sick lately and was lying in bed the whole day. I got into this loop of thinking about how my life changed after I learned to stop self-rejecting.

Flunking in School exam

The first example that sparked this musing was almost failing my final physics paper in the last year of school. I was (and am) extremely bad with this subject, and I knew that I would fail anyhow. So I started going through the compartment paper and realized these are even tougher. It was around 6PM a day before the exam, and I had two choices - - Somehow…

Screen with dynamic tab items

I am working on an upcoming project that helps a developer visualize many elements on the screen with SF symbols. I started off with the idea of creating dynamic tab views but didn’t find much on the internet. Although, I stumbled upon a discussion that gave me the head-start to develop it. Here’s a small article to summarise my learnings.

The discussion can be found here — SOLVED: How do I append a new page into TabView, PageTabViewStyle?


I start off by creating a `TabItem` with a unique identifier, name, image, and tag associated with it.

Master the process of integrating in-app purchases

Tip jar
Tip jar
Photo by Sam Dan Truong on Unsplash.

I wanted to play around with RevenueCat, and I figured creating a tip jar would be the perfect start. So I sat down yesterday at midnight and went through this article by Thomas Ricouard:

After reading it as well as RevenueCat’s documentation, I was able to add a tip jar to my Gradient Game!


I started off with the inspiration from Apollo’s tip screen — the best Reddit client out there.

Photo by Daniel Cañibano on Unsplash

I’ve been working with WatchKit lately and was rewriting some old code for better navigation handling.

When creating a watchOS app using WatchKit, we use Interface Builder for creating WKInterfaceController.

For identifying that particular screen while handling the navigation programmatically, we provide the custom class for it and the identifier associated with that screen.

Here, we use hard-coded strings for the identifier, and I sometimes mistype them in code while presenting/pushing the controller or reloading them. So I used a more type-safe approach of using enums and an extension on WKInterfaceController that I want to share.

I’m creating a clone…

Photo by Daniel Korpai on Unsplash

This is the first part of sharing small snippets of learning in my everyday life.

I’m working on a project where I’ve to loop and autoplay a video every-time the WKInterfaceController is shown on the watch screen.

To accomplish this, I usedWKInterfaceInlineMovie. It is an interface element that displays a video’s poster image and supports inline playing of the video.


I initially wrote this article for WatchKit, but my friend asked for an example in SwiftUI, so here’s a small one.

To use a WatchKit component in SwiftUI, we go back to the bridge that is WKInterfaceObjectRepresentable.

Photo by freestocks on Unsplash

I was in a Clubhouse room where someone mentioned the best resource to refer to a developer for implementing accessibility in their app.

I had that question a few years back working on Rocket.Chat iOS app to implement VoiceOver, and the answer was — it’s scattered all around the internet.

So here’s an attempt to gather all the resources I’ve referred to, both in UIKit and SwiftUI.

Note — This is the first iteration of the post, and I will add more resources as I stumble upon them. …

Photo by Przemyslaw Marczynski on Unsplash

I’ve been using SwiftUI for a while and recently worked on a watchOS app where I also tried to make it accessible.

When I first started on the app, I forgot to add accessibility labels for the system images, and I found it later while auditing it in the Accessibility Inspector.

SwiftUI doesn’t provide any initializer for Image to have the label as a parameter nor something to ignore it for accessibility purposes. So let’s create one!

SF Symbols with Accessibility Label

I wasn’t sure what to name my custom view because AccessibilityImage seemed too long, while A11YImage didn’t sound ideal. …

Unique experience for iPhone, iPad and Mac

TabView in Gradient Game.

Today I sat down to create a sidebar on Gradient Game for iPadOS 14 and the upcoming macOS Big Sur.

My main concern was passing the same data model for both TabView on iOS devices and SidebarView on iPadOS & macOS.

Sharing some simplified code snippets for the same.

Data Model

The data for an individual tab should consist of its title, the name of the SF Symbol, and the destination View. Also, I want a function that would return an array of this data.

With this, if I’ve to add a new tab or update/remove the existing ones, I just…

Starting 2020 with a rejection.

Photo by Nik MacMillan on Unsplash

It was my first ever technical phone interview for the role of a software engineering internship. That too scheduled with Apple, Cupertino.

The first round was scheduled a few days after my fifth-semester exams. For that, I was doing LeetCode day and night and got the subscription to only focus on questions from Apple. I cleared the first coding round, which was a question similar to a level of LeetCode Medium.

A few hours later, I got the confirmation that I would proceed to the second and the final round. At this point, I had done hundreds of LeetCode easy…

Documenting the process of creating the submission project

Screen at WWDC 2019
Screen at WWDC 2019
WWDC 2019

June 4, 2018

I remember going through the WWDC website to watch the keynote on my MacBook Air.

I wished I could watch it live someday. So, during the intro music, I started exploring the site to understand how the developers get a ticket for it. It was $1,600 for a developer, based on a lottery system. Ummm, no. I scrolled down and found this on the homepage.

Scholarships — Students and STEM organization members can apply to receive a conference ticket, lodging, and one year of membership in the Apple Developer Program.”

Ahh, this is what I am looking for!

But now…

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store