You should think of âarchitectureâ as a spectrum, where there are less complex and more complex patterns. The purpose of architecting your code is to make it more reusable, scalable, and organized. However, depending on the size of your app/team, the amount of âscalingâ that you need differs greatly.
For smaller apps, you can build with little-to-no architecture and not have any problems. For larger teams, you will most likely want more separation of concerns between the files and layers of your app, as to avoid conflicts between teams and streamline your development process.
Most apps fall into first bucket, where no architecture or MVVM works well. This is what most of the Swiftful Thinking courses teach.
Larger apps should lean towards more architecture, where MVVM, VIPER, or TCA could be better suited.