There is a big huge difference between 'well designed code' in case of an application and a public library. Don't over-engineer your apps like you were building a library.
Struggle with custom encoding/decoding for specific properties in your Codable models? This post explores how Property Wrappers can help eliminating the need for custom encoding / decoding in your codable types
An MVP, or minimum viable product, is a stripped-down version of your app or website that gets core features into users' hands fast. This lets you see if there's real interest in your idea before investing heavily in development.