At AppFoundry we love crafting software that fits the needs of our customers. Since all apps are different, they often require different solutions for different problems. There are, however, some basic principles and solutions that we apply in almost all of our apps. In this series, we’ll describe some of those solutions and how they help us deliver maintainable software, which in turn keeps our customers happy.
Dependency InjectionEver since we started developing iOS apps, we felt the need for Dependency Injection. At that time, existing dependency injection frameworks felt too intrusive in our code. We decided to create our own Dependency Injection framework called Reliant. We’ll cover the advantages of using dependency injection and will showcase its usefulness throughout this series.
Test Driven Development (TDD)We’ll also talk about how test driven development helps us discover bugs very early on in the development process, and how it influences our application architecture. The result is better, more maintainable software and (contrary to what many people think) faster delivery times.
Debug Drawer[bscolumns class="two_third"] Testing is awesome, but a machine cannot test things like user experience and app consistency. These require human interaction. To help both testers and developers while manipulating the app, we often use a debug drawer. The debug drawer allows us to simulate certain conditions. It is also capable of:
- manipulating where the apps get their data from
- simulate memory warnings
- mimic incoming notifications, etc…