Why iOS Development

Kirill Chuyanov
5 min readJan 26, 2024

--

Education

My journey into the world of programming began with Pascal, specifically the Turbo Pascal dialect, during my high school years. Those days were a blend of fun and challenging mathematical tasks. We delved into transforming matrices, drawing on canvases, and exploring realms that, I realize now, are rare in my current work. It was then that I discovered Borland Delphi 7, akin to Pascal but enhanced with a UI library. My first creation was a BMI calculator, a project that faced its first hurdle when I couldn’t compile it, puzzled by an error I couldn’t understand.

As I transitioned to university, the second year introduced me to Delphi, now evolved into Codegear Delphi 2009. Our projects grew more complex, though often they seemed somewhat impractical — crafting forms and basic animations without a deep dive into best practices, design patterns, or principles. A notable subject was database management, where I learned that the pinnacle of table organization was the elusive fifth normal form — a concept I later discovered was rarely applied in real-world scenarios.

In the unique educational landscape of Russia, there was a noticeable shift towards localized SAP-like accounting systems, marked by a programming language where every keyword was in Russian. This was a turning point for me, a moment of realization that my educational path needed a personal intervention. It was then that I plunged into the realms of PHP and JavaScript, eager to chart my own course in the ever-evolving world of programming.

Fortuitously, my first job opportunity emerged at the same university where I was a student. Tasked with resolving minor bugs on the university’s websites, I found myself in an environment rich with learning opportunities. It was here that I was introduced to C# and C, expanding my programming horizons. Despite the invaluable experiences and the wonderful people I met, a sense of stagnation began to creep in. The lack of growth and development opportunities at this job sparked a realization within me — it was time to seek a ‘real’ job, one that would challenge me and allow me to grow.

Reality

The path to my first meaningful job was littered with rejections, a testament to my lack of experience. Many companies sought seasoned developers, and my fledgling skills didn’t measure up. I encountered opportunities in government-related positions, but they were marked by low salaries and restrictive environments. However, fortune smiled upon me once again, leading me to a position where growth and learning were at the forefront. I stepped into the role of a Load Test Engineer.

This role presented me with the opportunity to apply my knowledge of the C language, but the reality was different from what I had envisioned. Our primary tool was LoadRunner, driven by C-scripts, introducing me to the intricate world of memory leaks and robust software testing. What stood out in this company was its commitment to employee growth, a rarity I hadn’t encountered since. My personal development plan was a journey through SQL, database management, and Java, complemented by opportunities to mentor other engineers. This whirlwind of learning and development unfolded over the course of a year. However, not everything was ideal; the job required working at client offices, often located far from my home, adding a layer of challenge to my daily routine.

Hello, iOS

The world of iOS development first caught my attention when a colleague at work showed off his new iPhone, brimming with a plethora of apps. This ignited a curiosity in me; I aspired to create apps, not just test existing software or hardware. Eagerly, I began researching the essentials for iOS development, but was soon met with a disheartening reality: the necessity of owning Apple devices for development purposes.

Acquiring an iPhone was the first step, but the bigger challenge lay in obtaining an Apple laptop, given their hefty price tag. In true resourceful fashion, reminiscent of many fellow Russians, I sought an alternative: transforming my old Windows laptop into a Hackintosh. With my past experience in maneuvering through various Linux distributions and even FreeBSD, this task, while daunting, was not insurmountable.

The Hackintosh setup was far from perfect — laggy, but manageable. It was my first encounter with Xcode and Objective-C. The transition from Delphi was intimidating, yet intriguing. I dabbled with these new tools for three days before feeling overwhelmed and taking a step back. After a week of contemplative weighing, I convinced myself that investing in a MacBook Air was not just a desire but a necessity. I remember vividly the decision to purchase the 13-inch MacBook Air, mid-2012 model, which cost me my entire monthly salary of $1,350. Remarkably, that laptop is still with me today — its battery life dwindling to mere minutes, its performance sluggish, but still operational, a testament to my journey’s beginnings.

The iOS Developer Era

Submerging myself into the world of Objective-C was like diving into a familiar yet distinct ocean. I quickly developed an affinity for the language; it resonated with my C background yet introduced a nuanced approach with object orientation. It struck a balance, being less rigid than C++ but more attentive to developer errors. The Automatic Reference Counting (ARC) feature was a revelation — it elegantly handled memory management without the cumbersome need for manual object freeing or dealing with multiple levels of pointers.

My journey in mastering Objective-C was paved with countless hours spent on tutorials and absorbing knowledge from several books. This intensive three-month period of self-education and exploration culminated in a significant milestone: landing my first job as a Junior Developer. This marked the true beginning of my professional journey in the realm of iOS development.

Yet Why?

But the lingering question remains: why did I choose iOS development over Android? During that era, Android was gaining significant traction; its devices were more affordable, and development could be initiated on any Windows machine. My decision, at its core, was influenced by a rather straightforward human aspiration — financial security.

In Russia, at that time, iOS developers enjoyed a more lucrative and stable financial standing compared to their Android counterparts. This economic landscape painted a picture in my mind, one where I envisioned myself akin to Scrooge McDuck, swimming in a pool of wealth. This dream, albeit naive, was a driving force behind my choice. However, as I would later discover, the reality was far from this simplistic aspiration. But that, indeed, is a story for another time.

--

--

Kirill Chuyanov

[100% Follow-Back] Experienced iOS developer and Flutter enthusiast. Passionate about functional programming and elegant software design. Sharing tech insights.