iOS開発 MVCからMVVMへ!

記事
IT・テクノロジー
MVVMってないに?それ美味しいの?
安心してください。はいてますよ。ちゃんと

今回はですね、みなさん大好きなRx Swiftについての雑談です!

最初独学のときはMVC(Model View Controller)開発していたのですがアプリの機能が増えていくにつれてmainVCが肥大化して、とんでもないコードを書いてしまっていたり、、、
これだと後々保守の時に大変だったりします。。。
本当に探すのめんどい。。。

MassiveVCとか言われてたり笑

理由としてはDelegateで肥大化するのがほとんどですが、、、、

その悩みを解決してくれるのが!!!
なんと、なんと、、、MVVM(Model View ViewModel)なんです!!
あれ?VCどこいたの?とりあえず、その話は後で笑

何が変わったのーと言われますと 新しく view を バインディングする viewmodelが新しく追加されているところが大きな違いですね!!

バインディングする ってなんやねんですが、簡単にいうとずっと監視している状態のことです!変数が変わったら、viewに即座に反映するみたいなことをしているわけですね。
最初は分からなくても、なんか記事読んで言ったら、自分も理解できました。。

これがですよ、、最高なんですよ、、、めっちゃVCを綺麗に描ける。。。

結論はRxSwiftライブラリーを使ってリアクティブプログラミングを行おう!ってことですね!!!

非同期処理(API通信など)はModelに任せてしまってください!
ViewModelはviewを常に監視!
View はタップされた時に view Model タップされたよーって即座にに伝えます!!!(Observer)

でも端末も観察し続けると、メモリーリークする可能性がありますが、大丈夫!ちゃんと開放する処理を問題ありません!!

これがですよ、、Redux開発の時に最高のパフィーマンスを発揮してくれます。!!ReSwift + RxSwift があればもう何もいらない。。。。

ReSwiftに関しましてはまた後日説明いたします!

 今の現場はReSwift + RxSwift がメインで開発してますねー

前の現場はひどいMVCでしたけど笑

開発のしやすさが段違いですね笑笑

さてここから勉強の仕方ですが、すごく簡単!!

◯まずグーグル先生にMVVMってなに?って聞く
◯実際delegateに頼らずMVVMでタイマーアプリなど作ってみる
◯実際の自分が開発しているの環境で試してみる

簡単でしょ?私もこのフローで学びました。実際にメッセージの未読カウントを数えて反映するみたいな感じをMVVMで実装しましたね

そんな難しくないので学習意欲のある方はぜひ!!

まじで世界変わります!

是非初心者の方でMVVCを学びたいって方がいらっしゃいましたら、連絡ください!最近の案件はほとんどMVVMだと勝手に思っていますw



以上!







サービス数40万件のスキルマーケット、あなたにぴったりのサービスを探す ココナラコンテンツマーケット ノウハウ記事・テンプレート・デザイン素材はこちら