You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert
はじめに Combineを使った通信まわりのテストコードの情報がまだ少ないように感じましたので、作ったサンプルアプリのコードを載せてみようと思い、書いてみました。 今回のアプリのアーキテクチャは、MVVMです。 この記事でわかること CombineでURLSessionを使ったリクエストを書いたときのテストコードの書き方 MVVMで実装したときのテストコード Modelのテストよりも、個人的にはViewModelのテストのほうが、Combine特有の実装が必要だと思うので、ViewModelの方が重要かなと思います。 Model層のテスト 今回のModel層は、実際にAPIに対してリクエストするところが該当します。 コードには、すべてCombineをimportしてください。 アプリのコード protocol GithubAPIClientProtocl: AnyObject { func
目的 Combineとは何かを学ぶこと 「Combineを使ってミニアプリを作れる」くらいのレベルになること 目次 1 : Combineとは 2 : 文字列の値を渡す 3 : 2つ以上の受け取り先を用意する 4 : store() : 複数のSubscriptionをまとめて保持する 5 : assign : 値の代入 1 : Combineとは Appleが提供しているSwiftのフレームワーク。 オブジェクトからオブジェクトに何かしらのイベントを伝える仕組み を提供する。 (イベントの例 : API通信,アプリ内で発生した状態変化 等) 2 : 文字列の値を渡す プログラム import UIKit import Combine // イベントの送受信を仲介 // イベントは「文字列を渡して表示させる」 let subject = PassthroughSubject<String,
はじめに FatなViewControllerを生成してしまったので、Combineを使いViewとViewModelに分けてみました。 開発環境 Xcode 13.2.1 Swift 5.5.2 Combineって(使ったものだけざっくりと) Combineを使うと イベント処理のコードを一元化し、 ネストしたクロージャや規約ベースのコールバックといった面倒なテクニックを排除し、 コードを読みやすく、保守しやすくすることができる。 CurrentValueSubjectって 値を保持して、値が変わるたびに新しい要素を公開する 保持した値は、.valueで取得できる final class CurrentValueSubject<Output, Failure> where Failure : Error
はじめに サンプルの概要 仕様に関して 開発環境に関して APIクライアントの実装に関して 実装方針に関して 全体の実装 APIクライアント Session.swift User.swift Request.swift SearchUsersRequest.swift ItemsResponse.swift その他 SearchUserView.swift UserListRowView.swift ImageView.swift SearchUserViewModel.swift SearchUserModel.swift ImageLoader.swift ImageCache.swift SampleApp.swift おわりに 参考 はじめに "Processing URL Session Data Task Results with Combine"(https://develo
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く