My Two-Year Journey in iOS Development

June 18, 2024 (1mo ago)

Reflecting on My Journey in iOS Development

Overview

Reflecting on my journey as Sofware Enginner over the past two years, I find myself drawn back to the early days of my fascination with Apple's mobile ecosystem. It all started during my high school years, where I became intrigued by the intricate workings of iOS, particularly through Jailbreaking and tweaking the system at a deeper level. This initial curiosity sparked a lasting interest in mobile technology, leading me to explore various pathways after graduating.

Pushing Force

I began my software engineering journey with web development, laying the groundwork for my career. I kept an eye on the dynamic world of mobile app development, experimenting with different platforms like web and Android. However, it was the meticulous attention to detail and the vibrant community surrounding iOS development that resonated deeply with me and guided my decision to specialize in iOS development.

My first step into the industry was as an iOS developer at a digital agency. I deliberately chose this path to immerse myself in fast-paced projects and gain hands-on experience. Digital agencies are great as they often have many different projects. Each project runs for a short period of time, after which the app is released and maintained. Agencies also try to get new projects in, which creates opportunities to set up projects from scratch.

I worked at this agency for over 2 years:

  • I started as a Junior iOS Engineer
  • Became Medior, Senior
  • Learned how to manage projects
  • Created multiple projects from scratch
  • I made many mistakes!

The last point is especially important: making and learning from mistakes. Of course, we don’t know everything from the get-go. For each new project I started, I knew how I wanted to set up the project. At the end of every project, I knew that I wanted to do it differently the next time, haha! I think we all recognize this pattern: we learn, improve, and revisit. It’s so important to gain that experience, and an agency is a perfect place to do so.

Goals and Achievements

Of course, you need to level up those projects you failed on in terms of structure, but it’s different from working at a product company when you’re a Junior. It’s still a valuable starting point, but it’s much harder to gain experience setting up projects from scratch at a company where everything is already structured and set up.

When I joined the team, there wasn't a consistent tech stack. Previous projects were mostly in Objective-C with a bit of Swift mixed in. Over the past two years, I led the switch to Swift, which also encouraged the Android team to move from Java to Kotlin. This change made our development process smoother and faster.

Now, we have centralized private pods for quicker deployment and a solid iOS stack using Swift, SwiftUI, and AWS Amplify.

Comparing to Two Years Ago:

  • Project deployment times are 30% faster.
  • Project quality has improved a lot thanks to Swift's modern features.
  • Maintainability has doubled thanks to SwiftUI and the MVVM architecture.

Working on a diverse range of projects, from e-commerce apps to multimedia platforms, provided invaluable learning opportunities. Each project presented its own set of challenges, pushing me to expand my knowledge and refine my skills.

Takeaways

Over the past two years, I've embraced the iterative nature of iOS development, recognizing the importance of adaptability and continuous learning. Whether it's mastering new frameworks or refining UI/UX design principles, each project has been a stepping stone in my professional growth. I've learned to stay updated with the latest industry trends and technologies, always striving to deliver innovative solutions to complex problems.

As I look back on my journey, I'm grateful for the experiences that have shaped my growth as an iOS developer. Looking ahead, I'm excited to continue pushing the boundaries of iOS development, contributing to the advancement of mobile technology, and making a meaningful impact in the ever-evolving landscape of digital innovation.