今は少なくなってしまいましたが、以前まではAndroidアプリを仕事で作っていた者です。アプリを作る際に考えることは色々あると思うのですが、特に重要だと考えているのが、どの設計パターンを選ぶかです。

以前はMVVMパターンでの実装が主だったのですが、MVPについても興味が湧いてきており、色々触りながら考えてみているのですが、こういったデザインパターンのようなものがはたしてどういう理由で生まれてきて、またこれらがどういった変遷を辿ってきたのか知りたいです。この辺りのことについてお詳しい方がいらっしゃったらご教示いただきたいです。