MVVM in Practice - RWDevCon Session - raywenderlich.com

Поделиться
HTML-код
  • Опубликовано: 29 ноя 2024

Комментарии • 75

  • @1419krusty
    @1419krusty 5 лет назад +6

    Thank you. I've done MVVM in C# and was looking for how to do swift MVVM.
    Yours was the first to:
    - talk about how to do binding in Swift
    - point out that VIew = View and ViewController
    - point out that Model = data and business logic
    Made my day. thanks again!

    • @g00dvibes47
      @g00dvibes47 5 лет назад

      Bill Scanlon Imagine making a framework like PRISM for Swift

  • @takasurazeem
    @takasurazeem 2 года назад +1

    Almost 2022 and still the best MVVM implementation video.

  • @DVdroid
    @DVdroid 5 лет назад +6

    One of the best MVVM tutorials I have seen so far...👍🏽

  • @blackwalkergaming6386
    @blackwalkergaming6386 2 года назад

    This guy gives me vibe of Jessy Pinkman from Breaking Bad. This video had best explaination about MVVM architecture and difference between weak and unowned was precisely correct

  • @AsankaGankewala
    @AsankaGankewala 3 года назад

    One of the best MVVM tutorial. Thanks 👍

  • @tiojoe_
    @tiojoe_ 3 года назад

    the best mvvm tutorial i have ever seen

  • @manasemichaelmhando8034
    @manasemichaelmhando8034 5 лет назад +3

    It makes all sense following up how other programmers use the MVVM design pattern. But in reality, it doesn't cover most of the problems we face and if you ain't sure on how to use it you might end up with unnecessary boilerplate code that solves a minor issue.

  • @thesharminkhan
    @thesharminkhan 4 года назад

    This is one of the best videos ever. The explanation is very simple and yet in depth :)

  • @tubehelpr
    @tubehelpr 7 лет назад +26

    This makes so much sense. It's surprisingly difficult to find tutorials and lessons surrounding this stuff. Why is that? I wish I could see some more examples in practice to really get a good understanding of this design pattern and its use with swift. Any suggestions?

    • @johntomsa777
      @johntomsa777 6 лет назад +2

      You can find bunch of tutorials on MVVM. Cocoacasts has some, Pluralsight or Udemy. Even RUclips has tutorials. There might be little information on MVVM Swift, but there is a lot of tutorials on MVVM in general, fundamentals. So, just learn the fundamentals and apply it in Swift

    • @david-tracy
      @david-tracy 5 лет назад

      He doesn’t do enough explaining of why he does every little thing he’s doing imo

    • @david-tracy
      @david-tracy 5 лет назад

      about67turtles he’s cool though. He’s pretty good

    • @dmitriyobidin6049
      @dmitriyobidin6049 5 лет назад +1

      Cause everybody doing thos mvc/mvp/mvvm differently. Try to google mvc design images on google, even such a simple concept have different implementation.

  • @tomblah
    @tomblah 2 года назад +1

    20:30 at last someone asks this question! I'm 24 hours into learning MVVM from an MVP background, and I can't see any differences...yet (except for terminology).

  • @michaelprenez-isbell8672
    @michaelprenez-isbell8672 21 день назад

    Hey I was there!!!

  • @bennychewDev
    @bennychewDev 7 лет назад

    Awesome stuff. It's a little too advanced for me at the moment, but I'm picking things up here and there. This 'boxing' stuff seems incredibly powerful and you don't even need a framework.

  • @mariiasaveleva6724
    @mariiasaveleva6724 5 лет назад +3

    Great presentation! Although I expected a little more examples of setting up the architecture (screen presentation, binding controllers with viewModels and so on), I still learned a lot of useful technics from it.

  • @vladislavsimovic899
    @vladislavsimovic899 6 лет назад +5

    Nice, there are not many examples of MVVM, that don't include adding some reactive framework

  • @trodomir
    @trodomir 5 лет назад +2

    Great talk. I find it amazing that Nicholas Cage was there asking a question at 49:56

    • @30guarino
      @30guarino 5 лет назад

      Erick Christgau Lol Yup

  • @StianF
    @StianF 6 лет назад +5

    This boxing method is incredible! So much easier than any other reactive framework I've used. However, I've reworked the Box class to have `listeners:[Listener?]` rather than `listener:Listener?`, to be able to observe the value from multiple places - and it's working! But now I'm struggling with removing the listeners, because - even though I want the ability to have multiple observers, I still need a way to remove a specific observer (not all at once). I need the `bind()`-function to return a `Disposable` object which I later can use to remove that specific binding (e.g in a reusable cell). How can I do this?

    • @h86991868
      @h86991868 6 лет назад

      Stian Flatby May I ask you how to do that? I want to observe the same property from multiple places.
      I don’t understand about this
      listener:[Listener?]
      value’s didSet and bind func how to replace and make it’s work?
      Please help me ,thanks a lot

    • @StianF
      @StianF 6 лет назад +2

      Sure! Instead of "var listener:Listener?" change it to "var listeners:[Listener?]", and in the "didSet" change from "listener?(value)" to "listeners.foreach({$0?(value)})", and in "bind", change from "self.listener = listener; listener?(value)" to "self.listeners.append(listener); listener?(value)". But be careful, since you now store all listeners and never remove them - the listeners will stay alive as long as the observed object is alive. For tableViewCells, which gets reused, this is really really bad, so you need a way to remove the listeners when you don't want them anymore (e.g if the view you're listening from is removed or reused). That's what I needed help with, but I asked on stackOverflow and got an answer. You should take a look! stackoverflow.com/a/50136414/1203228

    • @Ceejaeespeaking
      @Ceejaeespeaking 6 лет назад

      H​ave you tried adding an identifier to your Listener object? That way you can remove a specific one.

    • @h86991868
      @h86991868 6 лет назад

      Thank you for your teaching, it helped me a lot.

    • @SerJG
      @SerJG 3 года назад

      What about using Dictionary instead of array, where key is your class object that creates listener and just create function to unbind listener for specific owner object passing

  • @david-tracy
    @david-tracy 5 лет назад +2

    Why is delegation a better approach than box/bind for table views?

  • @christophebugnon5155
    @christophebugnon5155 6 лет назад +1

    For those who wanted to download the project, I put the link here! ;)
    github.com/ragotrebor/mvvm-RWDevCon

  • @ytdevs
    @ytdevs 3 года назад

    Awesome, thank you 🙏

  • @michaelprenez-isbell8672
    @michaelprenez-isbell8672 21 день назад

    I took a sleeper car from New York to the conference. First time I ever took a shower on a train! With robes handed to me!

  • @leontea7070
    @leontea7070 5 лет назад

    Is there a general principle that tell you which part of your code should be put into the ViewModel?

  • @timelapse7454
    @timelapse7454 6 лет назад

    The way you used binding to bind view model's access code with label, should we also use binding to bind model's properties with view model properties right ?
    I mean how a model is going to notify view model that it has changed ?

  • @Zeng.Lawrence
    @Zeng.Lawrence 7 лет назад

    Great tutorial! Thanks.

  • @w0mblemania
    @w0mblemania 7 лет назад

    Very good tutorial, thanks.

  • @DimaJP
    @DimaJP 4 года назад

    Thanks for this video

  • @TheAhmadReza
    @TheAhmadReza 5 лет назад +5

    I can't belive I watched a 57 minute tutorial.

    • @KodecoDev
      @KodecoDev  5 лет назад +3

      Did you like it?

    • @TheAhmadReza
      @TheAhmadReza 5 лет назад +2

      Yes, sure, thanks!@@KodecoDev

    • @bsnishanth8096
      @bsnishanth8096 5 лет назад

      Same here! Amazing talk, this has been the best explanation I've come across surrounding this topic. Yayyy!

  • @MadTiw
    @MadTiw 6 лет назад

    Nice tut my friend...:) I am still new to Swift world and my question my sound a bit naive but can you help me understand once the login is successful how it is taking us to a new viewcontroller as i hvn't found any piece of code assigned to loginSuccess closure type variable

  • @blazefrostrider
    @blazefrostrider 5 лет назад

    Excellent Talk !

  • @albertmontserratgambus
    @albertmontserratgambus 7 лет назад +1

    Is there some place to find the code? Great tutorial! :)

  • @janoskukoda4701
    @janoskukoda4701 5 лет назад

    Why do you put getters and setters into extension and not directly into class?

  • @Seb16291629
    @Seb16291629 6 лет назад

    Great Tuto, is there a way to get a copy of the unit test ?

  • @subinrevi2268
    @subinrevi2268 7 лет назад

    Great tutorial !

  • @parveenakter5459
    @parveenakter5459 5 лет назад +1

    Nice tutorial..But how can i download this demo project?

    • @KodecoDev
      @KodecoDev  5 лет назад +1

      I'm not sure we still host it on the site. I'll dig around and see if I can find it.

  • @david-tracy
    @david-tracy 4 года назад +1

    what cases doesn't mvvm cover?

  • @mohanrajcool
    @mohanrajcool 6 лет назад

    Awesome tutorial..can u please tell where can I download the starter and finished project..

  • @BigCarso
    @BigCarso 3 года назад

    But all your logic isn't quite in the viewmodel yet :D. It still decides whether to display an error message, or login. You could move that to the vm too.

  • @mosesayankoya5865
    @mosesayankoya5865 5 лет назад

    awesome!!!

  • @LittleGirlJane21
    @LittleGirlJane21 6 лет назад +4

    can I download this project from somewhere?

  • @bmackey
    @bmackey 6 лет назад +1

    top stuff

  • @nununugraha3265
    @nununugraha3265 3 года назад

    can i see source code of LoginService?

  • @jesteena2584
    @jesteena2584 7 лет назад

    is there similar video in objective-c

  • @liuhan3936
    @liuhan3936 7 лет назад

    Very useful~

  • @leontea7070
    @leontea7070 5 лет назад +4

    Since when Jesse Pinkman started to teaching people how to code instead of how to cook?

  • @neuro5813
    @neuro5813 3 года назад

    He is replicode no ?

  • @bernardonigbinde
    @bernardonigbinde 4 года назад

    48:49 unowned vs. weak

  • @robertogarciamercado1623
    @robertogarciamercado1623 6 лет назад

    github.com/ragotrebor/mvvm-RWDevCon here you can find the project files

  • @BrunoSilva-qt9nv
    @BrunoSilva-qt9nv 3 года назад

    ❤️🇧🇷

  • @shashifav6634
    @shashifav6634 5 лет назад

    Data Binding 26:15

    • @jeevank8550
      @jeevank8550 4 года назад

      Yeah!.. that's my Key take away from this video.

  • @majdaldeynezalregal1862
    @majdaldeynezalregal1862 2 года назад

    boxing is not two-way binding!!!!!

  • @lulaputta
    @lulaputta 7 лет назад +2

    Good one, but he was toooo fast.

    • @crothert
      @crothert 6 лет назад

      then slow down the playback to .5x speed ??????????????????????????????????

    • @danyalOFF
      @danyalOFF 6 лет назад

      not so fast. normal speed