TL;DR 複雑になりがちな構造やコードをシンプルで把握しやすいコードで記述したい MVVMを用いて責務を明確にし関心事を分離した構造にする ViewDataBindingとFRPを用いて時間とともに変化するデータやステートに伴う処理を宣言的に記述し、Viewとデータの動的な変化を相互的に連動させる 上記をSwiftとそのパラダイムを活かしたライブラリ(SwiftBond)を中心に実現する はじめに Swiftで新規のアプリを開発することになり、MVVM、FRP、ViewDataBindingの要素技術を活用して開発を行いました。設計やライブラリ選定は2015年5月に行っており実装環境はXcode6.4,Swift1.2になります。Swift2.0以上になるとSwift系ライブラリも大きくインタフェースを変更しているため、ここで紹介しているサンプルコードもそのままでは動作しないことをご留意
![MVVMをベースに複雑な振る舞いをしっかり把握できるアプリ開発 - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/34625c90c58543ff3c3b93d8b1097ae455761d2f/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-9f5428127621718a910c8b63951390ad.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTkxNiZoPTMzNiZ0eHQ9TVZWTSVFMyU4MiU5MiVFMyU4MyU5OSVFMyU4MyVCQyVFMyU4MiVCOSVFMyU4MSVBQiVFOCVBNCU4NyVFOSU5QiU5MSVFMyU4MSVBQSVFNiU4QyVBRiVFMyU4MiU4QiVFOCU4OCU5RSVFMyU4MSU4NCVFMyU4MiU5MiVFMyU4MSU5NyVFMyU4MSVBMyVFMyU4MSU4QiVFMyU4MiU4QSVFNiU4QSU4QSVFNiU4RiVBMSVFMyU4MSVBNyVFMyU4MSU4RCVFMyU4MiU4QiVFMyU4MiVBMiVFMyU4MyU5NyVFMyU4MyVBQSVFOSU5NiU4QiVFNyU5OSVCQSZ0eHQtY29sb3I9JTIzMjEyMTIxJnR4dC1mb250PUhpcmFnaW5vJTIwU2FucyUyMFc2JnR4dC1zaXplPTU2JnR4dC1jbGlwPWVsbGlwc2lzJnR4dC1hbGlnbj1sZWZ0JTJDdG9wJnM9MTEwOTA2ODY1OGFhZjE4MGM2MzMxMmZkYWMzNmM1MjA%26mark-x%3D142%26mark-y%3D112%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTYxNiZ0eHQ9JTQwc3VzaWV5eSZ0eHQtY29sb3I9JTIzMjEyMTIxJnR4dC1mb250PUhpcmFnaW5vJTIwU2FucyUyMFc2JnR4dC1zaXplPTM2JnR4dC1hbGlnbj1sZWZ0JTJDdG9wJnM9ZWFiZjc0NGI5YTQyNDJkMmM5MjZiYzU3N2NmZjNjNjk%26blend-x%3D142%26blend-y%3D491%26blend-mode%3Dnormal%26s%3Db5cd3ba875a614d25948a108bf37ccfd)