イベントページ 【サポーターズCoLab勉強会】【iOS】今更聞けないMVPとMVVMの違い https://supporterzcolab.com/event/339/ サンプルソース https://github.com/marty-suzuki/DiffMVPAndMVVM https://github.com/marty-suzuki/SimplestCounterSample
![今更聞けないMVPとMVVMの違い](https://cdn-ak-scissors.b.st-hatena.com/image/square/c3e777258bb57e25be475376f8f2f0cc18c32861/height=288;version=1;width=512/https%3A%2F%2Ffiles.speakerdeck.com%2Fpresentations%2F12c44824a65b48ac973abccd557296b5%2Fslide_0.jpg%3F9765053)
MVVM概要 • アプリケーションをModel / View / ViewModel に分割するアーキテクチャパターン • MicrosoftのKen CooperとTed Petersが開発 • WPF/Silverlightで使われていたが、最近は他 のプラットフォームでも採用例が多い
Video: https://youtu.be/MIV7Mi9zko8 Android上の開発は非同期の扱いを避ける事はできないです。ネットワーク、フレームワーク、ユーザの操作などから非同期処理が発生してます。油断してしまうとアプリが複雑化してメンテナンスが難しくなります。皆様はネットワークからレスポンスを待っている途中、ユーザが画面をローテーションしても問題ないですか?並行してユーザがいろんな操作しても大丈夫でしょうか? Model-View-Intent アーキテクチャは非同期処理が発生する前提で考えられたため、すべてがストリームとして扱ってデータの流れを一方通行にするかつ不変オブジェクトを使うのが MVI アーキテクチャの方針です。マルチスレッディングやAndroidのライフサイクルの対応から生じる問題がアーキテクチャによって解決されるおかげでアプリのロジックに集中できるようになり、
StatefulModelとは? StatefulModelはModel-View-Whateverにおける、いわゆる"fatなModel"を構築するためのクラス群です。現在の機能はStetefulModelのための変更通知群とイベントリスナー系がメインになります。github.com 変更通知コレクション群では、スレッドセーフな変更通知コレクションやソート済の変更通知コレクション、または特定のSynchronizationContextにバインドした変更通知コレクションと、それぞれの同期変換機能を提供しています。組み合わせることによって、例えば「スレッドセーフに値を追加できるソート済のUIスレッド上で結果が見える変更通知コレクション」なども簡単に作成できます。ReadOnlyWrapperも用意してあります。 MIT LicenseでNugetにて提供しています。 PCLとして作成してい
iOSDC 2017 9/17 13:50 TrackB https://iosdc.jp/2017/node/1396 iOSDesignPatternSamples https://github.com/marty-suzuki/iOSDesignPatternSamples FluxCapacitory https://github.com/marty-suzuki/FluxCapacitor Flux & MVVM (Brooklyn Swift Developers) https://speakerdeck.com/martysuzuki/flux-and-mvvm-brooklyn-swift-developers 補足資料 【iOSDC2017】MVC→MVP→MVVM→Fluxの実装の違いを比較してみる https://qiita.com/marty-suzuki/item
最近はずっとJSでGUIを書くっていうお仕事をやっていて、その中で様々な知見が溜まってきてます。 そのときにひしひしと感じたんだけど、世の中にはさまざまなアプリケーション・アーキテクチャの話が溢れかえっていて、結構混乱を産んでいるように思います。 MVVMだけ見ても、「MVVMで実装しています」って主張しているものがMVVMパターンと違うパターンで実装されていたり、「軽量MVVM」なんて言葉が生まれていたりという状況があって、これはだいぶ混乱が極まっているぞ、と感じる状況です。 また「最近はClean Architectureが熱いらしい!MVVMを捨ててやってみよう!」とか言う発言を目にしたりして、「Clean ArchitectureとMVVMは矛盾しないからMVVMを捨てる必要はないんだよ!」って思ったりもするわけです。 そういう混乱の中にあるひと(それは知見を貯めるまえの自分のこと
丸山です。ヤパチー、最高に楽しかったですね。スライドの公開はしたのですが、正直重要なことは全部口頭で説明していて、スライドには情報が少ない。しかし、動画を見るのは正直だるい。40分もPCの前で集中して映像を観れないですよね。知ってる。というわけで、受験参考書の「実況中継」シリーズ(知ってます?)方式で、プレゼンをブログで再現します。長いぞ。でも多分動画見るよりははやく読み終われる。ぜひ読んでいってください。 アバンパート 今日はこういうトークをします。 簡単に自己紹介すると、こういうものです。 息子紹介です。かわいいですね。 WEB+DB Press 91号では特集を、92号ではPerlHackersHubに記事を書かせてもらいました。もう原稿料いただいてるので、もうこれ買ってもらってもわたしには一銭も入らないんですけど、いい雑誌なので買ってないひとはぜひ買って読んでください。 まずMVW
notifyPropertyChanged とか、どこかで見たことのある機能が満載の Android Data Binding ですが、登場以来あまり追えてなかったのでやっとサンプルをつくってみました。 といっても RxJava + MVVM パターンで作るストップウォッチアプリ - Qiita で作ったストップウォッチアプリを Data Binding 化しただけです。 前回 との違いを図に示します。 View-ViewModel で全面的に使用していた rx.Observable<T> の代わりに、ObservableField<T> を使用。 View側で「オレオレDataBinding」を実装していた箇所を、Android の Data Binding に置き換え。つまりバインディングの定義はレイアウトxmlへ記述。 Model は相変わらず rx.Observable<T> のま
開発部の@horimislimeです。普段は@y_koh さんとiPadアプリ開発をさせてもらっています。 先日トレタはメジャーアップデートとなるver5.0.0で、飲食店従業員の方が店内のテーブル配置を作成し、空間的にテーブルを見ながら予約を取れる「テーブルレイアウト」機能をリリースしました。 この機能の詳細や、開発にあたっての想いは弊社ブログのエントリも御覧ください。 トレタ新バージョン「5.0.0」とモノ作りの話 : TORETA(トレタ) ブログ トレタとして大規模なアップデートとなるver5.0.0でしたが、その裏ではiOS開発チームとして新しいチャレンジもありました。それが以下の二点です。 Swiftと新しいパラダイムの導入 これまでのトレタには無かったUIの実現 まずiOS開発チーム内でこの新機能からSwiftを導入し、合わせてMVVM風な設計を取り入れつつ実装を進める方針を
TL;DR 複雑になりがちな構造やコードをシンプルで把握しやすいコードで記述したい MVVMを用いて責務を明確にし関心事を分離した構造にする ViewDataBindingとFRPを用いて時間とともに変化するデータやステートに伴う処理を宣言的に記述し、Viewとデータの動的な変化を相互的に連動させる 上記をSwiftとそのパラダイムを活かしたライブラリ(SwiftBond)を中心に実現する はじめに Swiftで新規のアプリを開発することになり、MVVM、FRP、ViewDataBindingの要素技術を活用して開発を行いました。設計やライブラリ選定は2015年5月に行っており実装環境はXcode6.4,Swift1.2になります。Swift2.0以上になるとSwift系ライブラリも大きくインタフェースを変更しているため、ここで紹介しているサンプルコードもそのままでは動作しないことをご留意
Realm meetup #6 で発表した Sync iOS開発の舞台裏についてです プロジェクトの話や、MVVM、ViewBindingなど多義にわたり解説しています
MVVMのめんどくさいと感じてるところ ModelとViewModelのクラスのマッピング MVVMでアプリ組んでるとModelとViewModelで似た構造のクラスを作って、値の移し替えを行うことがあります。AutoMapperとか使ってもいいのですが、ReactivePropertyを使うことでも楽をすることができます。 以下のようなModelクラスがあるとします。(BindableBaseクラスはPrismのINotifyPropertyChangedを実装したクラスです) public class Person : BindableBase { private string name; public string Name { get { return this.name; } set { this.SetProperty(ref this.name, value); } } pr
こちらに移転してきて初めての記事です。 最近たまに話題になるので書いておきます。MVVMのModelについて誤解されやすい部分のお話です。最近よく議論してるasync/awaitの話とは関係がありません。なおこの話は以下のスライドを理解している事が前提となります。 共有したい理解(ゴール) ViewModelはModelの影 ModelについてViewModelが行うことは、イベントに対する反応と戻り値のないメソッドの呼び出ししかない事 これについての理解を共有できるよう説明していきます。 VIewModelはModelの影 スライドにもしつこく書きましたが、MV○(MVVMやMVC/MVP)のModelは大変分厚くなるし、アプリケーション間で使いまわすことなんてできません。ModelはUIを意識しない??いや、何度も言っていますが、意識はする必要があるんです。ただUI実装の知識が必要ない
はじめに 以前、MVVM パターンで ViewModel から View を操作する話題で祭になりました。 MVVM パターンで VM から VIEW を操作したい MVVMでVMからViewを操作する考察 - The Road to C# Master Trapemiya MVVMパターンでVMからVに通知する方法 - かずきのBlog@Hatena MVVM パターンで ViewModel から Viewを操作する方法 - present その後しばらく WPF や Silverlight から離れていたんですが、その間に Messenger というパターンが有力になってきたみたいです。さっそく調査開始。 Messenger パターンって? 簡単に説明すると、View と ViewModel が共通の Messenger を参照し、ViewModel は Messenger を介して
Posted on September 14th, 2014 I’ve recently started using the Model-View-ViewModel pattern a lot more to structure my iOS application code. While MVVM is not necessary in all cases, I’ve found it to be especially useful when writing iOS applications in Swift aka working with Optionals. I’ll use my demo SeinfeldQuotes app as an illustration of this. The App has a screen for displaying all Seinfeld
This browser is no longer supported. Upgrade to Microsoft Edge to take advantage of the latest features, security updates, and technical support. December 2011 Volume 26 Number 12 MVPVM Design Pattern - The Model-View-Presenter-ViewModel Design Pattern for WPF By Bill Kratochvil | December 2011 Of all the successful projectsI’ve been a part of, the most successful ones shared a common result: As t
こんにちは。 マイクロソフトの渡辺です。 アプリケーションのデザインパターンの1つである MVVM ( Model - View - ViewModel )。既に多くの実装例や MVVM パターンを採用した Framework が公開されています。 from Wikkipedia また、MVVM パターンは、C#/.NET/XAML の世界を中心に多く利用されてきましたが、最近では、JavaScript/HTML のアプリケーション開発で利用されることも多くなりました。 そして MVVM を理解する中で、また MVVM をサポートする Framework を利用する中では Model, View, ViewModel にとどまらず、Service, Command, Messenger, IoC, DI, Service Locator ..e.t.c といったキーワードに自然と出会うでし
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く