Clean Architecture iOS [MVC vs MVVM]

Published 2020-09-14
Clean Architecture iOS [MVC vs MVVM]

Escape Tutorial Hell 👉 rebeloper.com/mentoring

Recently I just dived deep into clean architecture! This video is perfect for you if you want to learn clean architecture ios, MVC vs MVVM, advanced swift. I go over mvc vs mvvm swift, swift architecture patterns, ios patterns, and the steps that could help you get closer on building your app better. While there is no easy shortcut on software architecture I will share an awesome clean architecture example and I will guide you step by step on clean architecture use cases. In this mvvm tutorial I will talk about clean code principles, mvc vs mvvm vs mvp, mvvm ios example and clean code github. I hope this video can give you some tips on mvc mvvm mvp and clean code! If you want to learn ios app development you are in the right place!
Don’t forget to subscribe to my YouTube channel for more mvvm ios tutorial and clean code videos. Join me as I break down ios engineering and mvvm ios swift example.
Enjoy!

Don’t forget to download the resources:
→ store.rebeloper.com/youtube-channel-resources

**VIDEOS I RECOMMEND**

→ MVVM & MVC videos:
   • MVVM SwiftUI - Model View ViewModel P...  
   • MVVM in Swift - (Model View View-Mode...  
   • Design Patterns MVVM and Delegates (B...  

→ PLAYLIST: Core Data iOS in 2020
   • CORE DATA SWIFT TUTORIAL [Must Learn ...  

DO YOU WANT TO BE MY APPRENTICE?
HIRE ME → rebeloper.com/hire-us/

TOOLS I RECOMMEND:
→ rebeloper.com/tools
__________
Say hi on social:

Get in touch:
→ [email protected]

SUBSCRIBE to weekly tips & tutorials for building iOS apps!
→ youtube.com/rebeloper/?su...

Github: github.com/rebeloper/
Hire me: rebeloper.com/hire-us/
LinkedIn: www.linkedin.com/in/rebeloper/
My Blog: rebeloper.com/blog
Follow me on Instagram: www.instagram.com/rebeloper/
_____
   • Clean Architecture iOS [MVC vs MVVM]  

#rebeloper

CHAPTERS:
_____
00:00 INTR0
00:22 EXAMPLE PROJECT OVERVIEW
02:00 MVC EXPLAINED
04:59 MVC DRAWBACKS
06:06 MVVM EXPLAINED
10:18 WHAT TO DO NEX

All Comments (21)
  • @rebeloper
    Which is you favourite MVC or MVVM?
  • Exactly the tutorial I was looking for, thanks so much for the great video :)
  • @casadogaspar
    This is the best explanation I ever saw about the theme. Make it so simple for beginners understand it by comparison.
  • @samuelpmilanez
    Thanks for the video. I will integrate a new project and the architecture is Clean MVVM; your video was amazing for my compreension.
  • @jhngolan
    I already implemented MMVM architecture in Java MVVM hopefully can implemented it in IOS Swift after knowing detail of Xcode, newcomer in Apple Gadget , thank you Mr for the nice explanation
  • @Eugene.Berezin
    How about binding? One of the benefits of MVVM that you can create binding and update your view reactively.
  • Thanks for your video. ✅ 1/but when we have logic in cell and in its viewController. we one ViewModel contains all the logic or create one for the cell and another for viewController. "/ when we have for example three viewController that contains the three steps of creating something. we make one ViewModel instantiated in each ViewController or we make three different ViewModels class (first ViewModel, second view model, their ViewModel)
  • @MrBrunomalo1
    In your example, is not the same thing that create a utility class wich receive a skillLevel and return a levelname ?
  • @SourovDattacse
    Thanks for your video. However, I did not understand the separation of concern using a view model. Getting Puzzled
  • @BigCarso
    Where did you get this definition of MVVM from? It seems quite different to the original idea from windows
  • 10:10 couldn't you just create computed properties, name and level, in the model and put the logic in there? Then, for both the MVC and the MVVM, filling in the TableViewCell would be the same two lines.
  • @Neographic84
    Rebeloper thanks always for your tutorials they are very clear and help the whole community a lot! Thank you! I need help .. I have a struct struct TimeSelModel { let hour: String let minute: String } ------------------------------------------------------ I recover data this way because I need to view some data in section 0 of my collectionview and other data in section 1 struct TimeSelData { static func dataSec (section: Int, _ completion: @escaping (Result <[TimeSelModel], Error>) -> ()) { if section == 0 {completion (.success (dataSec0))} else {completion (.success (dataSec1))} } } let dataSec0 = [ TimeSelModel (hour: "09", minute: ": 30"), TimeSelModel (hour: "17", minute: ": 00") ] let dataSec1 = [ TimeSelModel (hour: "12", minute: ": 00"), TimeSelModel (hour: "19", minute: ": 00") ] --------------------------------------------------------------- I use the data this way inside my controller private var section: Int = 0 var data: [TimeSelModel] = [] private func fetchData () -> Void { TimeSelData.dataSec (section: section) {(result) in switch result { case.success (let data): self.data = date case.failure (let error): print (error.localizedDescription) } } } func collectionView (_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int { self.section = section return data.count} func collectionView (_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell { let cell = collectionView.dequeueReusableCell (withReuseIdentifier: TimeSelCell.cellID, for: indexPath) as! TimeSelCell cell.dataModel = data [indexPath.item] return cell } It doesn't work I don't get the right data for the sections of my collectionView .. Using your example in your tutorial how can I achieve my goal of displaying different data for 2 different sections of a collectionView?