Mediocre-quality software is available anywhere and everywhere. We have all encountered it using our desktops, smart phones, running applications from the cloud, and suffered various amounts of pain both as user and developer. Dealing with software, I had done my share of losing and causing loss, and I had done it my way.
Understanding the nature of a software is crucial for all sorts of practitioners in the field.
In software engineering world, Factory Design Pattern is used to encapsulate object creation. Generics which is another useful concept, converts runtime typecast errors to compile-time errors.
Many times when you talk with software engineers about possible reuse of their product you would hear a phrase like: “I would rewrite this project if we want to reuse it.”, because they think that their system cannot be maintained for future projects.
Choosing the right architecture that fits your needs is so crucial. There are several architectures available on the iOS development.