Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save jiro/1a508511809924a6a2e7dfb1612af458 to your computer and use it in GitHub Desktop.
Save jiro/1a508511809924a6a2e7dfb1612af458 to your computer and use it in GitHub Desktop.

イベント

準備

📝 課題 0.1

  • 題材アプリをビルド & 実行
git clone -b workshop https://github.com/hedjirog/GitHubSearch.git
cd GitHubSearch
open GitHubSearch.xcworkspace

📝 課題 0.2

curlコマンドで rate_limit を確認ができる

curl -H "Authorization: token **************" https://api.github.com/rate_limit

📝 課題 0.3

  • 発行した access token を利用するようにコードを書き変え
    • AppDelegate 内の accessToken 変数の値を変更
diff --git a/GitHubSearch/AppDelegate.swift b/GitHubSearch/AppDelegate.swift
index 6fe7bde..8a9859b 100644
--- a/GitHubSearch/AppDelegate.swift
+++ b/GitHubSearch/AppDelegate.swift
@@ -1,7 +1,7 @@
 import UIKit

 struct Const {
-    static let accessToken = ""
+    static let accessToken = "**************"
 }

View と Reactor の実装

📝 課題1 🌟

検索結果がない場合にUITableViewを非表示にする

💡 ヒント:

  • UITableView の背後に空の際に表示する UILabel が存在する
  • View である SearchViewControllerbind メソッドを変更する
    • reactor.state のストリームを加工して、UITableView の isHidden プロパティにバインディングする

📝 課題2 🌟🌟🌟

検索回数の上限に達したらUIAlertControllerを表示する

💡 ヒント:

  • View である SearchViewControllerbind メソッドを変更する
    • reactor.state のストリームを加工して、subscribe する
    • showAlert メソッドが適切に呼ばれるようにする
  • Reactor である SearchViewReactorsetSearchedRepositories メソッドを変更する
    • エラー時に Mutation.setLimitExceeded を伝搬させる

📝 課題3 🌟🌟🌟🌟🌟

ページングを可能にする

💡 ヒント:

  • Reactor である SearchViewReactormutate メソッドを変更する
    • 頻繁に Action が伝搬してくるので、特定の条件でのみ Mutation を伝搬するようにする
      • 条件:次のページを把握している、ローディング中でない、検索回数の上限に達していない
  • appendRepositories の Mutation を追加する

View と Reactor のテスト

📝 課題4 🌟🌟

クエリの入力でのActionが伝搬することを確かめる

💡 ヒント:

  • SearchViewControllerSpec を変更する
  • UISearchBar のデリゲートメソッドを実行する

📝 課題5 🌟🌟🌟

クエリ入力によるActionの伝搬によって変化したStateが伝搬することを確かめる

💡 ヒント:

  • SearchViewReactorSpec を変更する
  • スタブ化した repositoryServicesearchRepositories メソッドの挙動を変更する
  • Reactor に Action を伝搬させる

📝 発展課題 🌟🌟🌟🌟

ページングによるActionの伝搬によって変化したStateが伝搬することを確かめる

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment