Submit Search
iOSでMVVM入門
0 likes
•
601 views
I
ishikawa akira
第二十七回岡山モバイルアプリ開発もくもく会
Technology
Read more
1 of 20
Download now
Download to read offline
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
More Related Content
What's hot
(20)
PDF
Dockerfile を書くためのベストプラクティス解説編
Masahito Zembutsu
PDF
イミュータブルデータモデル(入門編)
Yoshitaka Kawashima
PPTX
え!?データがオンプレにあるけどPower BI で BI したいの?
Yugo Shimizu
PDF
Unityでオンラインゲーム作った話
torisoup
PPTX
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
NTT DATA Technology & Innovation
PDF
Tackling Complexity
Yoshitaka Kawashima
PPTX
どうやって決める?kubernetesでのシークレット管理方法(Cloud Native Days 2020 発表資料)
NTT DATA Technology & Innovation
PDF
世界でいちばんわかりやすいドメイン駆動設計
増田 亨
PDF
UniRx完全に理解した
torisoup
PPTX
BuildKitによる高速でセキュアなイメージビルド
Akihiro Suda
PPTX
画像処理ライブラリ OpenCV で 出来ること・出来ないこと
Norishige Fukushima
PPTX
[DL輪読会]Depth Prediction Without the Sensors: Leveraging Structure for Unsuper...
Deep Learning JP
PDF
【DL輪読会】How Much Can CLIP Benefit Vision-and-Language Tasks?
Deep Learning JP
PDF
文字コードに起因する脆弱性とその対策(増補版)
Hiroshi Tokumaru
PDF
7. Vertex AI Model Registryで BigQuery MLのモデルを管理する
幸太朗 岩澤
PDF
(修正)機械学習デザインパターン(ML Design Patterns)の解説
Hironori Washizaki
PDF
「GraphDB徹底入門」〜構造や仕組み理解から使いどころ・種々のGraphDBの比較まで幅広く〜
Takahiro Inoue
PDF
MagicOnion入門
torisoup
PPTX
Depth from Videos in the Wild: Unsupervised Monocular Depth Learning from Unk...
Kazuyuki Miyazawa
PDF
ドメイン駆動設計の基礎知識:設計のスタイル、開発のスタイル
増田 亨
Dockerfile を書くためのベストプラクティス解説編
Masahito Zembutsu
イミュータブルデータモデル(入門編)
Yoshitaka Kawashima
え!?データがオンプレにあるけどPower BI で BI したいの?
Yugo Shimizu
Unityでオンラインゲーム作った話
torisoup
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
NTT DATA Technology & Innovation
Tackling Complexity
Yoshitaka Kawashima
どうやって決める?kubernetesでのシークレット管理方法(Cloud Native Days 2020 発表資料)
NTT DATA Technology & Innovation
世界でいちばんわかりやすいドメイン駆動設計
増田 亨
UniRx完全に理解した
torisoup
BuildKitによる高速でセキュアなイメージビルド
Akihiro Suda
画像処理ライブラリ OpenCV で 出来ること・出来ないこと
Norishige Fukushima
[DL輪読会]Depth Prediction Without the Sensors: Leveraging Structure for Unsuper...
Deep Learning JP
【DL輪読会】How Much Can CLIP Benefit Vision-and-Language Tasks?
Deep Learning JP
文字コードに起因する脆弱性とその対策(増補版)
Hiroshi Tokumaru
7. Vertex AI Model Registryで BigQuery MLのモデルを管理する
幸太朗 岩澤
(修正)機械学習デザインパターン(ML Design Patterns)の解説
Hironori Washizaki
「GraphDB徹底入門」〜構造や仕組み理解から使いどころ・種々のGraphDBの比較まで幅広く〜
Takahiro Inoue
MagicOnion入門
torisoup
Depth from Videos in the Wild: Unsupervised Monocular Depth Learning from Unk...
Kazuyuki Miyazawa
ドメイン駆動設計の基礎知識:設計のスタイル、開発のスタイル
増田 亨
Similar to iOSでMVVM入門
(11)
PPTX
クライアントサイドMVVMアーキテクチャとVue.jsをまとめたよ
Seki Yousuke
PDF
Model View Presenter for Android
shinnosuke kugimiya
PPTX
いまさら学ぶMVVMパターン
Yuta Matsumura
PDF
GUI アプリケーションにおける MVC
Yu Nobuoka
PDF
MvvmCross 入門
jz5 MATSUE
PDF
20140322 mvvm crossforwindowsstoreapps-pdf
Takayoshi Tanaka
PPTX
Xamarin.formsでのmvvm利用のコツ
Masuda Tomoaki
KEY
MVCもやもや話
Tetsuya Kaneuchi
PDF
あの日見たMVCを僕たちはまだ知らない for RoR
shinnosuke kugimiya
PDF
iOS/Androidアプリエンジニアが理解すべき「Model」の振る舞い
Ken Morishita
PPTX
MVVM入門
Kazutoshi Urabe
クライアントサイドMVVMアーキテクチャとVue.jsをまとめたよ
Seki Yousuke
Model View Presenter for Android
shinnosuke kugimiya
いまさら学ぶMVVMパターン
Yuta Matsumura
GUI アプリケーションにおける MVC
Yu Nobuoka
MvvmCross 入門
jz5 MATSUE
20140322 mvvm crossforwindowsstoreapps-pdf
Takayoshi Tanaka
Xamarin.formsでのmvvm利用のコツ
Masuda Tomoaki
MVCもやもや話
Tetsuya Kaneuchi
あの日見たMVCを僕たちはまだ知らない for RoR
shinnosuke kugimiya
iOS/Androidアプリエンジニアが理解すべき「Model」の振る舞い
Ken Morishita
MVVM入門
Kazutoshi Urabe
Ad
Recently uploaded
(9)
PPTX
2025_7_25_吉祥寺_設計ナイト_ADR運用におけるデータ利活用の考え方.pptx
ssuserfcafd1
PDF
LoRaWAN ウェザーステーションキット v3 -WSC3-L 日本語ユーザーマニュアル
CRI Japan, Inc.
PDF
【学会聴講報告】CVPR2025からみるVision最先端トレンド / CVPR2025 report
Sony - Neural Network Libraries
PDF
MahiroYoshida_セリフに着目したキャラクタロール推定に関する基礎検討_sigcc12th2025
Matsushita Laboratory
PPTX
baserCMS『カスタムコンテンツ』徹底活用術〜あなただけの管理画面を自由自在に〜
Ryuji Egashira
PDF
第三世代 ウェザーステーションキット v3 ー WSC3-L 日本語カタログ
CRI Japan, Inc.
PDF
20250726_Devinで変えるエンプラシステム開発の未来
Masaki Yamakawa
PDF
TaketoFujikawa_ComicComputing12th_inKumamoto
Matsushita Laboratory
PDF
VMUG Japan book vsan 20250515 CPU/Memory vSAN
Kazuhiro Sota
2025_7_25_吉祥寺_設計ナイト_ADR運用におけるデータ利活用の考え方.pptx
ssuserfcafd1
LoRaWAN ウェザーステーションキット v3 -WSC3-L 日本語ユーザーマニュアル
CRI Japan, Inc.
【学会聴講報告】CVPR2025からみるVision最先端トレンド / CVPR2025 report
Sony - Neural Network Libraries
MahiroYoshida_セリフに着目したキャラクタロール推定に関する基礎検討_sigcc12th2025
Matsushita Laboratory
baserCMS『カスタムコンテンツ』徹底活用術〜あなただけの管理画面を自由自在に〜
Ryuji Egashira
第三世代 ウェザーステーションキット v3 ー WSC3-L 日本語カタログ
CRI Japan, Inc.
20250726_Devinで変えるエンプラシステム開発の未来
Masaki Yamakawa
TaketoFujikawa_ComicComputing12th_inKumamoto
Matsushita Laboratory
VMUG Japan book vsan 20250515 CPU/Memory vSAN
Kazuhiro Sota
Ad
iOSでMVVM入門
1.
iOSでMVVM 入門 第二十七回岡山モバイルアプリ開発もくもく会 7/22 石川
諒
2.
自己紹介 • 名前 :
石川諒 (イシカワ アキラ) • 中国職業能力開発大学校 4年生 • twitter : ishikawa__pro • GitHub : ishikawa-pro • 好きな言語 : Swift • 最近はRailsが多め💦
3.
MVVM + RxSwiftに 入門した話
4.
MVVMとは? • アーキテクチャの一つ • Model-View-ViewModel の略 •
MVC(Model-View-Controller)の派生パターン • iOSはMVCパターンが基本
5.
iOSの基本的なアーキテクチャ • iOSにはUIViewControllerという内部構造の基盤と なるクラスが必ず1つある • 1つのViewControllerで管理するもの •
ビューの管理 • イベントの処理 • Modelとのデータのやりとり • 別の View Controller への移行etc… 1つのViewController
6.
iOSのMVC • ほぼどんな作業もVCが起点 ViewController
7.
つまり
8.
MVC = Model View
Controller Massive View Controller
9.
そこでMVVM
10.
MVVMの各レイヤの役割 • Viewの役割 • ViewModel
の持つ状態を UI に反映する • UIイベントをViewModelに通知 • MVVMではUIViewControllerがViewの役割を 担う View ViewModel UI Event Data BindingViewController を使う
11.
MVVMの各レイヤの役割 • ViewModelの役割 • Viewの状態を持つ •
UI イベントに応じて処理を行う • 状態が更新されたら View に伝える View ViewModel UI Event Data Binding
12.
MVVMの各レイヤの役割 • Modelの役割 • ViewModelからRequestされたらデータを返 す •
基本的にはMVCとあまり変わらない ViewModel Model Request Data
13.
MVVM View ViewModel Model UI Event Data Binding RequestData ViewControllerを使う
14.
MVCとMVVMの比較 MVC MVVM ViewController View ViewModel Model ViewController
15.
MVCとMVVMでVCの責務の比較 • ビューの管理 • イベントの処理 •
Modelとのデータの やりとり • 別の ViewController へ の移行 etc… • ViewModel の持つ 状態を UI に反映 する • UIイベントを ViewModelに通知 MVC MVVM
16.
MVVMメリット • 各レイヤの責務がMVCよりはっきりする • レイヤ間のデータフローが分かりやすい •
レイヤ間が疎結合になり、テストも書きやす い • Massive ViewControllerが改善される
17.
MVVMデメリット • iOSのMVVMには,RxSwiftが不可欠だがRxSwift の学習コストが高い(RxSwiftの話はまた今度) • RxSwiftでのUITableViewや UICollectionViewの管理はさらに学習コス トが高い •
ViewModelが肥大化する
18.
MVCからMVVMへ移行した理由 • バックエンドをFirebaseを使って、MVCで PodcastPlayerを作っていた • 1画面実装するのに何個もFirestoreからデー タを取りにいかなくてはならず、コールバッ ク地獄になるし、且つViewの状態管理をする のでMVCの限界を感じた
19.
非同期で3つのデータを とりにいって、Viewに反映 購読管理もFirestoreなの で ボタンを押すたびに通信し て状態を反映させる必要が ある Podcastの詳細画面
20.
移行してみて感じたこと • MVCの限界を感じてMVVMに移ると、アーキテク チャの違いとかメリットがよくわかった • RxSwiftは確かに難しいけど楽しい •
今は超MassiveVCな所と新しい画面は、MVVMで 実装して、その他は少しずつMVVMへ移行予定
Download