Philomath's Dream Job Journey Journal

@Philomath great questions! Of course it’s okay to tag people, it often leads to further responses and discussion :slight_smile:

However, I’d suggest in the future, creating an entirely new post for this! Maybe posting this into the App Development section of the forum. That way more people will see this post, and be able to respond versus people keeping track of your great journal, or someone like me that was thankfully tagged :slight_smile:

The biggest difference I see, so far is that in MVC, the Model actually stores/ holds onto its own data. In contrast, in the MVVM pattern, the ViewModel would hold onto the data. Also, in the MVC pattern it seems the entry point into an app is through the controller versus a View. Also, the Controller seems to take user input, while in MVVM the View does this.

The MVVM pattern seems recently adopted by the mobile app industry, it works better in my opinion with the purposes of classes too. For example, we think of classes as blueprints for things. Rather, we instantiate objects of the classes to perform operations on them. We often keep track of their states with the ViewModel in this way too.

I had to read up on these differences, but here’s an article that helped me out: MVC vs MVVM – Difference Between Them.

Still, even that article gets it wrong, by saying that the models in MVVM hold data. While to me, they don’t. I found this article that more definitively confirms that as well: MVC Versus MVP Versus MVVM - Learning JavaScript Design Patterns [Book]
“MVVM consequently allows us to create View-specific subsets of a Model, which can contain state and logic information, avoiding the need to expose the entire Model to a View. Unlike MVP’s Presenter, a ViewModel is not required to reference a View. The View can bind to properties on the ViewModel, which in turn expose data contained in Models to the View.”

Despite the typos and repeated paragraphs, a skim of this article explains some of the differences too. I like the graphic they use for MVVM the best: MVC vs MVVM- A complete guide with comparison

This GeeksForGeeks article gets MVVM wrong in my opinion by saying the model holds the data. While to me the ViewModel plays this role. Although, I liked its simple definitions of all the components:

As for your second question, I have no idea! Haha - I already have a job in the IT space developing Python apps, and doing Site Reliability Engineering (SRE). I don’t plan to become an iOS developer for a company. Rather, I plan to make my own apps :slight_smile: I know how to manage backend infrastructure/ APIs, databases, so will set that up from scratch as well, or use an awesome service like FaunaDB, if I don’t settle for Firebase. Read up more on my background here

Cheers and keep up the great work!

Andrew

1 Like