Posts

  • Write Less Convoluted ViewModels with Subscripts

    The Swift programming language provides many convenient language features to access data immediately—for instance, the built-in subscripts for arrays and dictionaries. But what about custom Swift objects? Today, you’ll learn how to access any property without relying on dot notation.

  • Generics Beyond Ints and Strings in Swift

    In the Swift programming language, certain concepts may appear daunting at first but hold immense power once understood. Generics is one of those concepts. Today, we will simplify their purpose and explore the elegance and versatility of generics. By the end, you’ll have a better understanding of generics and how to squeeze the most out of them.

  • Visualize Reversing Linked Lists in Swift Differently

    In the realm of algorithmic problem-solving, one challenge that often perplexes developers is the task of reversing a linked list. Today, we’ll aim to unravel the intricacies of this problem and equip you with the insights needed to master this common algorithm.

  • How to Make Technical Concepts Easier to Recall

    Recalling abstract concepts can feel hopelessly challenging unless you have a framework to turn the abstract into something tangible. I overcome this challenge by using intellectual construct to identify situations that are familiar to me. You cannot learn these concepts in a vacuum; you must associate them with tangible situations or objects you can recall.

  • Why You Should Use Async/Await Over Closures Moving Forward

    Since Apple released Async/await in 2021, it has made writing asynchronous code amazingly pleasant for iOS developers. In addition to the out-of-the-box performance and safety benefits, writing asynchronous code with async/await feels like you’re writing synchronous code, which we write most of the time. Writing straightline code rather than nested closures allows us to better express our intent to others. Using the combination of async/await and throws also makes handling errors straightforward.

  • The Ultimate Resource Guide to Discovering and Selecting Great Startup Ideas

    Do you have a strong desire to launch a startup, especially one with the potential of generating billions of dollars in value? If you answered “Hell yeah,” like me, then keep reading. I’ll share my personal experience with startup ideas and the counterintuitive concepts I wish I had known when I created my startup. Within this guide, I’ll also provide you with key ideas, insights, and resources (links included) from the world’s most exceptional founders on how to discover your next big idea.

  • The Decorator Pattern Saved the Day

    I recently encountered a challenging problem at work when given the task of integrating into our iOS codebase a new authentication service called Auth0. While Auth0 reduces many of the complexities around authentication and authorization, our architecture wasn’t designed to handle token rotation prior to the app making its network requests. As with many problems, the ideal solution to this problem wasn’t obvious. In this case, I first took a step back and thought about different approaches. It’s crucial to think; use UML diagrams to help you think; learn from others. It’s important for iOS developers to be familiar with the structural tools at their disposal to solve architectural bottlenecks in a modular and extensible way as advocated by the popular book “Design Patterns,” written by Erich Gamma.

  • Make Learning your Secret Weapon to a Stress-free Life

    Learning about anything, especially anything nontrivial, will greatly improve your mental state. Learning how to learn makes learning even more enjoyable. Adopt these two ideas into your daily habits, and I guarantee you a boost in happiness and morale.

  • Why iOS Developers Overlook the Usefulness of Unowned

    Most iOS Developers I’ve talked to about unowned variables disregard its specific usefulness. Even worse, they just default to weak without a justified reason. I think this is because it’s not commonly used in our day-to-day development. But if you spend some time digging into Swift’s own documentation around the topic and doing your own hands-on tinkering, you’ll quickly notice what makes unowned important and realize the distinction between weak and owned.