If you've cared about code quality and consistency before AI-assisted coding became standard, you surely understand the pain of setting development standards in the team. It's an endless cycle: writing documentation that nobody reads, explaining conventions everyone forgets, and leaving the same code review comments for the hundredth time... Finally,…
Imagine you've just built an amazing iOS app for a restaurant. The client loves it, the users love it, their dogs love it, etc. As expected, soon enough you get a call from the client: Hey, can you make the same app for my other restaurant? Sounds simple. Just copy-paste…
How much time have you spent staring at an empty mailbox after applying to numerous positions? "We'd like to confirm we've received your application…" and then… silence. Even an automatic rejection would have been more bearable. You've done everything right. You have relevant experience, a matching skill set, a well-maintained…
After tackling the Single Responsibility Principle and Open-Closed Principle, it's time to explore the Liskov Substitution Principle (LSP) and how it can help us write better code. At first glance, it's straightforward: if we have a component X conforming to protocol A, and another component (Y) conforming to the same…
Over the years, we've been told to use dependency injection to help our apps scale better. On the other hand, design patterns like MV suggest simplifying app design to the minimum, often overlooking proper dependency management. While most of us instinctively understand that Dependency Injection is crucial for maintainability, testability,…
While most people share common fears like death, public speaking, and rejection, software developers have an additional dread - receiving a bad code review. But why does a simple checkup cause so much stress and negative emotions? Is it because we fear being judged or appearing incompetent in front of…
Have you ever joined a development team that was a team in name only? Torn apart by internal conflicts, petty quarrels, clashing egos, and office politics? Or perhaps you've seen a seemingly perfect candidate join a well-organized team, only to fail to integrate and quickly leave? Finding and recruiting exceptional…
Remote styling in iOS apps is becoming increasingly important for modern development workflows. Picture this: you're finalizing a banking app with remote UI configuration capabilities. From the project's inception, you've implemented a robust remote styling system with SwiftUI view modifiers that make UI updates seamless. Your codebase includes well-structured style…
So you've been promoted to a Tech Lead position? Or perhaps you're eyeing it as the next step in your career? But what does a Tech Lead actually do? What new responsibilities come with this title? Beyond the usual job-change jitters, is there anything you should know before taking the…
The Open-Closed Principle (OCP) represents the letter "O" in S.O.L.I.D. It teaches us to create software that is open to extension but closed to change, enhancing its maintainability and scalability. To be honest, the OCP is one of the most challenging S.O.L.I.D. principles to understand and apply in iOS projects.…
Recently, modularity has gained a lot of popularity in our field over the years. Architectures like TCA and VIPER pride themselves on their inherently modular design. Compared to a monolithic design, modularity offers various benefits: efficient work parallelization (especially in large teams), interchangeability, superior separation of concerns and responsibilities, and…
What distinguishes a top 10% iOS developer? How can we draw parallels with the craftsmen of old? In what ways can we refine our skills following their lead? How should we select our projects, clients, and companies? Once involved in a project, how do we initiate change to ensure its…
How many responsibilities should a class have? As many as it needs! This is a common joke, but the reality often is far less amusing... How often do we encounter… “challenging” code annotated with "Do not change!!!" comments? Software development isn't rocket science. There are a few basic rules that most…
Picture this: you're just dying to play a car racing game. After a quick scroll through the App Store you find the perfect one. It has cool graphics and some sweet retro cars to race. And it's even free! You're pumped, hit download and wait. Finally, you launch the game…
Ever wondered how some developers maintain their passion for their craft after decades in the business? How do they continue to contribute at the highest level? Where do they source their motivation to keep learning? How do they find time to do all this and share their knowledge?Conversely, you've likely…
Imagine you’ve just implemented a nice feature. Cleanly separated UI from business logic, added some unit tests, etc. Surely, code review would be a formality. Instead, this insufferable Senior Dev requested that you wrap one of the services with abstraction. Surely, you’ve read somewhere that you should operate on abstractions…
We absolutely must meet this deadline! Can you please do some overtime?Honestly, how many times did you hear that question throughout your career? What was your answer? If you said “no” did the business add any sweeteners?Only you can do it! You're my hero, the best developer I’ve ever met!…
Although SwiftUI is a great framework, it’s not without its limitations. If you’ve ever had to implement a complex application, utilizing branching navigation flows, you probably know what I am talking about. Yes, navigation components in SwiftUI have been a constant source of headache… An iOS 16 addition, the NavigationStack,…
How much is it going to cost me to implement these Unit Tests?Is this refactor really necessary? Money doesn’t grow on the trees, you know… As mobile devs we’ve heard similar questions more times than we care to remember. Whenever we brooch the subject of improving the quality of our…
The benefits of having an exhaustive automated tests suite are obvious to anyone who ever worked on an app for more than a few months. We’ve all seen what lack of code maintenance might do: duplication, hidden side effects, convoluted business logic. A project codebase is like a garden -…
