この記事は トレタ Advent Calendar 2019 の23日目の記事です。 こんにちは。iOS & Androidエンジニアの山口です。 トレタでは、主にトレタnowの開発を行っています。 これまで、UIKit、RxSwift(RxCocoa)を使ったMVVMアーキテクチャで実装することが多かったこともあり、 SwiftUI、Combineを使った場合にはどう書けばよいか考えてみました。 なお、この記事はSwiftUIを使う際に重要なポイントとなる PropertyWrappersやDynamicMemberLookup、それらを利用したObservedObjectやBindingについて の知識がある前提で記述しています。 ViewModel Protocol の定義 早速ですが、コードから説明していきます。 まず、すべてのViewModelが準拠すべきシンプルなProtoco
![SwiftUIとCombineを使ったMVVMの実装 - トレタ開発者ブログ](https://cdn-ak-scissors.b.st-hatena.com/image/square/ff59e12105c66b3b7ae6bd0e95a45f7591a9788d/height=288;version=1;width=512/https%3A%2F%2Fcdn-ak.f.st-hatena.com%2Fimages%2Ffotolife%2Fk%2Fkyo__hei%2F20191224%2F20191224104341.png)