Sign in

Personal blog —https:// rudrank.blog

A journey beyond the corporate job market

notebooks, pens, and a stack of books with a pair of glasses on top, sitting next to an open laptop
notebooks, pens, and a stack of books with a pair of glasses on top, sitting next to an open laptop

It’s been exactly three months that I rejected multiple full-time offers to take a break and go towards the freelancing route. A Twitter friend encouraged me to write an article on why I decided to go from job security to the freelance world.

Prologue

I’m a final-year student in college and decided to quit my industrial internship in February to take a break from everything. I had iOS developer offers, but I was reluctant to commit to 9–5. I wanted to explore further opportunities, and I felt that wasn’t possible while doing a full-time role.

Taking the Leap

I read numerous articles about how…


I solved a few hundred questions on LeetCode in Swift for my internship preparation in my third year. And I want to share my journey. This post summarises my planning and lessons learned along the way.

This is an excerpt from my upcoming book, “From a Small Startup to the Fruit Company: Internship Experiences.”

Introduction

The introduction dates back to my fifth semester, around December 2019. My final semester exams were going on, and I was almost flunking them. (Except management, I love the subject)

I didn’t plan to interview anywhere for the following summer. …


Learn to say no more often

Woman pulling hat over her eyes
Woman pulling hat over her eyes

Burnout was something I didn’t believe in until I had zero motivation to wake up in the morning and open Xcode. I interned at three places last year during the pandemic. It was tricky handling the new stressful work-from-home environment. The internships worked as a distraction from online college life. But I worked more to escape reality, hence the burnout.

Tight Deadlines

I worked at a client/product startup in February 2020. It was all going fine, as I was handling the client’s work, working on their main app, and physical college. Around mid-March, I got an interview opportunity from Apple and I…


I’ve been a little sick lately and was lying in bed the whole day. So I got into this loop of thinking about how my life changed after learning 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, study…


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?

Model

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

struct TabItem: Identifiable {…


Master the process of integrating in-app purchases

Tip jar
Tip jar

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!

Inspiration

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


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…


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.

SwiftUI

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.


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. …


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. …

Rudrank Riyam

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