diff --git a/.bundle/config b/.bundle/config new file mode 100644 index 0000000..d14f6a2 --- /dev/null +++ b/.bundle/config @@ -0,0 +1,5 @@ +--- +BUNDLE_PATH: "vendor/bundle" +BUNDLE_CLEAN: "true" +BUNDLE_RETRY: "5" +BUNDLE_JOBS: "20" diff --git a/.circleci/config.yml b/.circleci/config.yml new file mode 100644 index 0000000..8324072 --- /dev/null +++ b/.circleci/config.yml @@ -0,0 +1,256 @@ +# https://circleci.com/docs/2.0/configuration-reference +# https://circleci.com/docs/2.0/testing-ios + +version: 2.1 + +executors: + default: &default + macos: + xcode: 14.1 + environment: + HOMEBREW_NO_AUTO_UPDATE: 1 + FASTLANE_SKIP_UPDATE_CHECK: 1 + SPACESHIP_ONLY_ALLOW_INTERACTIVE_2FA: "true" + +parameters: + run_test: + default: true + type: boolean + +commands: + shallow_checkout: + description: Shallow checkout and LFS caching + parameters: + depth: + type: integer + default: 1 + steps: + - run: + name: Shallow checkout + command: | + # 標準のcheckoutステップではdepth指定ができないため、直接実行する + set -euo pipefail + # https://discuss.circleci.com/t/17007/5 + CIRCLE_WORKING_DIRECTORY="${CIRCLE_WORKING_DIRECTORY/#\~/$HOME}" + mkdir -p $HOME/.ssh + ssh-keyscan -H github.com >> $HOME/.ssh/known_hosts + git config --global url."ssh://git@github.com/".insteadOf "https://github.com/" + export GIT_LFS_SKIP_SMUDGE=1 + if [ -n "${CIRCLE_TAG:-}" ]; then + git clone \ + --branch="$CIRCLE_TAG" \ + --depth=<> \ + "$CIRCLE_REPOSITORY_URL" "$CIRCLE_WORKING_DIRECTORY" + elif [ -n "${CIRCLE_BRANCH:-}" ]; then + git clone \ + --branch="$CIRCLE_BRANCH" \ + --depth=<> \ + "$CIRCLE_REPOSITORY_URL" "$CIRCLE_WORKING_DIRECTORY" + else + git clone \ + --depth=<> \ + "$CIRCLE_REPOSITORY_URL" "$CIRCLE_WORKING_DIRECTORY" + fi + git reset --hard "$CIRCLE_SHA1" + git submodule update --init --recursive --recommend-shallow --depth=<> + lfs_pull: + steps: + - run: + name: Write out a list of LFS-managed files for caching + command: git lfs ls-files -l | cut -d' ' -f1 | sort > .assets-id + - restore_cache: + name: Restoring LFS cache + keys: + - v1-lfs-{{ checksum ".assets-id" }} + - v1-lfs- + - run: + name: Show LFS status + command: git lfs ls-files -d + - run: git lfs pull + - run: git lfs prune + - save_cache: + name: Saving LFS cache + paths: [./.git/lfs] + key: v1-lfs-{{ checksum ".assets-id" }} + + prepare_ruby: + steps: + - run: + name: Specify Ruby version + command: | + if ! command -v chruby >/dev/null; then + echo "chruby not found; skipped" + exit 0 + fi + RUBY_VERSION=$(cat .ruby-version | sed -E 's/^([0-9]+\.[0-9]+)(\.[0-9]+)?$/\1/g') + chruby $RUBY_VERSION + echo $'\n'"chruby $RUBY_VERSION" >> ~/.bash_profile + - run: + name: Install gems + command: | + touch Gemfile # キャッシュがある場合でも実行させる + make install-gems + + prepare_netrc: + steps: + - run: + name: Set Username and Personal Token to netrc + command: | + cat \<<- EOS >> $HOME/.netrc + machine api.github.com + login abematv-native + password $GITHUB_ACCESS_TOKEN + EOS + chmod 600 $HOME/.netrc + + start_simulator: + parameters: + device: + type: string + steps: + - run: + name: Starting iPhone Simulator + command: | + xcrun simctl boot "<>" + export DEVICE="<>" + + restore_cache_rubygem: + steps: + - restore_cache: + name: Restoring RubyGems cache + keys: + - v2-rubygems-{{ arch }}-{{ .Branch }}-{{ checksum "Gemfile.lock" }} + - v2-rubygems-{{ arch }}-{{ .Branch }}- + - v2-rubygems-{{ arch }}- + save_cache_rubygem: + steps: + - save_cache: + name: Saving RubyGems cache + paths: [./vendor/bundle] + key: v2-rubygems-{{ arch }}-{{ .Branch }}-{{ checksum "Gemfile.lock" }} + + restore_cache_mint: + steps: + - restore_cache: + name: Restoring Mint cache + keys: + # Mintは複数バージョン共存できるのでブランチとチェックサムを無視する + - v2-mint- + save_cache_mint: + steps: + - save_cache: + name: Saving Mint cache + paths: [./.mint] + key: v2-mint-{{ .Branch }}-{{ checksum "Mintfile" }} + + store_xcresult_artifacts: + steps: + - run: + name: Archiving xcresults + when: always + command: tar czf build/xcresults{.tar.gz,} + - store_artifacts: { path: build/xcresults.tar.gz } + + bootstrap: + steps: + - lfs_pull + + - restore_cache_rubygem + - restore_cache_mint + + - prepare_ruby + - prepare_netrc + + - run: make bootstrap + - run: make mint-xcbeautify # .mint/配下に入れる + + - save_cache_rubygem + - save_cache_mint + +jobs: + build: + executor: default + + steps: + - start_simulator: + device: "iPhone 14" + + - shallow_checkout + - bootstrap + + - run: + name: Check project integration for CocoaPods + command: bundle exec fastlane run check_cocoapods_templates + + - run: make --keep-going build | tee build.log | make test-output-formatter + - store_artifacts: { path: build.log } + + - store_xcresult_artifacts + + - when: # master以外のブランチでのみDangerを実行 + condition: { not: { equal: [<>, master] } } + steps: + # WORKAROUND: shallow cloneしているとDangerがfetchしなおしてしまうため、 + # base commitまでの履歴だけを取得する + - run: + name: Fetch additional commits + when: always + command: > + GITHUB_API_TOKEN=$GITHUB_ACCESS_TOKEN + scripts/ci/git-deepen.sh + -p $CIRCLE_PULL_REQUEST + -r $CIRCLE_PROJECT_USERNAME/$CIRCLE_PROJECT_REPONAME + - run: + name: Danger + when: always + command: > + DANGER_GITHUB_API_TOKEN=$GITHUB_ACCESS_TOKEN + bundle exec danger + test: + executor: default + + steps: + - start_simulator: + device: "iPhone 14" + + - shallow_checkout + - bootstrap + + - run: + name: Check project integration for CocoaPods + command: bundle exec fastlane run check_cocoapods_templates + + - run: make --keep-going test | tee test.log | make test-output-formatter + - store_artifacts: { path: test.log } + + - store_xcresult_artifacts + + - when: # master以外のブランチでのみDangerを実行 + condition: { not: { equal: [<>, master] } } + steps: + # WORKAROUND: shallow cloneしているとDangerがfetchしなおしてしまうため、 + # base commitまでの履歴だけを取得する + - run: + name: Fetch additional commits + when: always + command: > + scripts/ci/git-deepen.sh + -p $CIRCLE_PULL_REQUEST + -r $CIRCLE_PROJECT_USERNAME/$CIRCLE_PROJECT_REPONAME + - run: + name: Danger + when: always + command: > + DANGER_GITHUB_API_TOKEN=$GITHUB_ACCESS_TOKEN + bundle exec danger + +workflows: + test: + when: <> + jobs: + - build: + filters: + branches: { ignore: /.*-master/ } + - test: + filters: + branches: { only: /.*-master/ } diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..f8ec180 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,12 @@ +root = true + +[*] +indent_style = space +indent_size = 2 +charset = utf-8 +trim_trailing_whitespace = true +insert_final_newline = true + +[Makefile] +indent_style = tab +tab_width = 2 diff --git a/.github/workflows/publish-answers.yaml b/.github/workflows/publish-answers.yaml new file mode 100644 index 0000000..5d33ae2 --- /dev/null +++ b/.github/workflows/publish-answers.yaml @@ -0,0 +1,41 @@ +name: Publish Answers + +on: + push: + branches: [public-answer] + +jobs: + publish: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v1 + + - name: Set Username and Authentication + run: | + git config --global user.name abematviosbot + git config --global user.email ios_bot@abema.tv + cat <<- EOS >> $HOME/.netrc + machine github.com + login abematviosbot + password ${{ secrets.BOT_GITHUB_TOKEN }} + EOS + chmod 600 $HOME/.netrc + + - name: Publish Answers + run: | + set -eux + git remote add public https://github.com/abema/abema-ios-tutorial-public + git fetch public + COMMITS=$(git log -n $NUMBER_OF_ANSWERS --pretty=%H --reverse) + git checkout -b answer-base public/master + INDEX=0 + for COMMIT in $COMMITS; do + INDEX=$(expr $INDEX + 1) + git checkout -b answer-$INDEX + git cherry-pick $COMMIT + git push -f public HEAD + done + env: + GITHUB_ACCESS_TOKEN: ${{ secrets.BOT_GITHUB_TOKEN }} + NUMBER_OF_ANSWERS: 4 diff --git a/.github/workflows/publish.yaml b/.github/workflows/publish.yaml new file mode 100644 index 0000000..40aa2c4 --- /dev/null +++ b/.github/workflows/publish.yaml @@ -0,0 +1,34 @@ +name: Publish + +on: + push: + branches: [public] + +jobs: + publish: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v1 + + - name: Set Username and Authentication + run: | + git config --global user.name abematviosbot + git config --global user.email ios_bot@abema.tv + cat <<- EOS >> $HOME/.netrc + machine github.com + login abematviosbot + password ${{ secrets.BOT_GITHUB_TOKEN }} + EOS + chmod 600 $HOME/.netrc + + - name: Publish + run: | + rm -rf .git + git init + git add . + git commit -m 'Initial commit' + git remote add public https://github.com/abema/abema-ios-tutorial-public + git push public master --force + env: + GITHUB_ACCESS_TOKEN: ${{ secrets.BOT_GITHUB_TOKEN }} diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..365991e --- /dev/null +++ b/.gitignore @@ -0,0 +1,21 @@ +# Mac OSX +# +.DS_Store + +# Xcode +# +xcuserdata +DerivedData +*.xcodeproj + +# CocoaPods +/Pods/* +!/Pods/Target Support Files +/Pods/Target Support Files/* +!/Pods/Target Support Files/Pods-* + +# Bundler / Ruby Gem +vendor/ + +# Mint +.mint diff --git a/.ruby-version b/.ruby-version new file mode 100644 index 0000000..75a22a2 --- /dev/null +++ b/.ruby-version @@ -0,0 +1 @@ +3.0.3 diff --git a/.swiftlint.yml b/.swiftlint.yml new file mode 100644 index 0000000..da09809 --- /dev/null +++ b/.swiftlint.yml @@ -0,0 +1,73 @@ +opt_in_rules: + - empty_string + +disabled_rules: + - unused_closure_parameter + - trailing_comma + - line_length + - trailing_newline + - todo + - file_length + - force_try + - force_cast + - function_body_length + - function_parameter_count + - large_tuple + - type_body_length + - type_name # allow any length + - cyclomatic_complexity # allow complex if/switch/for + - identifier_name # allow `_`-prefixed variable name + - nesting # allow multiple type nesting + - weak_delegate # delegate may be a separated class that needs to be retained by core class. + - colon + - multiple_closures_with_trailing_closure + - private_over_fileprivate + - fallthrough + + # TODO: enable this + - vertical_parameter_alignment + - redundant_string_enum_value + - legacy_constructor + - implicit_getter + - syntactic_sugar + - for_where + +included: + - Targets + +excluded: +- Targets/UseCaseInterface/UseCaseInterface/Sources/Generated +- Targets/Domain/Domain/Sources/Generated +- Targets/UILogicInterface/UILogicInterface/Sources/Generated + +custom_rules: + const_declare_use_enum: + name: "Use enum instead of struct." + regex: 'struct\sConst\w*' + message: "Use enum Const instead, if you want to declare constant values." + severity: warning + match_kinds: identifier + + constants_declare_use_const: + name: "Rename Constant[s] to Const." + regex: '(enum|struct)\sConst\w+' + message: "Use Const instead of Constants and Constant." + severity: warning + match_kinds: identifier + + function_argument_label_spacing: + name: "Add white space." + regex: '\([^:\[\)]+:[^\s\):]+\)' + message: "White space should be next to the colon of function argument label." + severity: warning + match_kinds: + - identifier + - keyword + - number + + subscribe_use_subscribe_on_next: + name: "Use subscribe(onNext:)." + regex: 'bind\(onNext:\s+' + message: "Use subscribe(onNext:), if you want to subscribe the stream." + severity: warning + match_kinds: identifier diff --git a/Config/Makefile/shared.mk b/Config/Makefile/shared.mk new file mode 100644 index 0000000..6227013 --- /dev/null +++ b/Config/Makefile/shared.mk @@ -0,0 +1,43 @@ +.PHONY: default +default: # ターゲットを指定していない時、include元のdefaultターゲットを実行する + +# Environment + +PROJECT_ROOT := $(shell git rev-parse --show-toplevel) + +ifneq ($(shell which brew),) +BREW_PREFIX = $(shell brew --prefix) +endif +ifneq ($(shell which /opt/homebrew/bin/brew),) +BREW_PREFIX = $(shell /opt/homebrew/bin/brew --prefix) +endif +ifneq ($(shell which /usr/local/bin/brew),) +BREW_PREFIX = $(shell /usr/local/bin/brew --prefix) +endif + +# Mint + +MINT ?= $(BREW_PREFIX)/bin/mint +MINT_PATH = $(PROJECT_ROOT)/.mint/lib +MINT_LINK_PATH = $(PROJECT_ROOT)/.mint/bin + +# Default tool paths +XCODEGEN ?= $(MINT_LINK_PATH)/xcodegen +MOCKOLO ?= $(MINT_LINK_PATH)/mockolo +XCBEAUTIFY ?= $(MINT_LINK_PATH)/xcbeautify + +# Tools + +/usr/local/bin/mint: + $(BREW_PREFIX)/bin/brew install mint + +mint-%: $(MINT_LINK_PATH)/% + @echo Installed: $? + +$(MINT_LINK_PATH)/%: $(MINT) $(PROJECT_ROOT)/Mintfile + SDKROOT="" \ + MOCKOLO_LIB_SEARCH_PATH="$(shell xcode-select -p)/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/macosx" \ + MINT_PATH=$(MINT_PATH) MINT_LINK_PATH=$(MINT_LINK_PATH) \ + $(MINT) install $(notdir $@) \ + --mintfile $(PROJECT_ROOT)/Mintfile + @touch $@ diff --git a/Config/xcodegen/CocoaPods.yml b/Config/xcodegen/CocoaPods.yml new file mode 100644 index 0000000..d060ad5 --- /dev/null +++ b/Config/xcodegen/CocoaPods.yml @@ -0,0 +1,38 @@ +targetTemplates: + CocoaPods: + sources: + # xcconfig が xcodeproj に直接追加されるのを防ぐために Pods ディレクトリ単位で追加 + - path: ../../Pods/Target Support Files/Pods-${target_name} + createIntermediateGroups: true + + configFiles: + Debug: ../../Pods/Target Support Files/Pods-${target_name}/Pods-${target_name}.debug.xcconfig + Release: ../../Pods/Target Support Files/Pods-${target_name}/Pods-${target_name}.release.xcconfig + + settings: + base: + PODS_ROOT: $(SRCROOT)/Pods + PODS_BUILD_DIR: $(SRCROOT)/Pods/_Build + PODS_CONFIGURATION_BUILD_DIR: $(PODS_BUILD_DIR)/Release$(EFFECTIVE_PLATFORM_NAME) + + CocoaPodsFrameworks: + postCompileScripts: + - name: "[CocoaPods] Embed Pods Frameworks" + script: > + BUILT_PRODUCTS_DIR=$PODS_CONFIGURATION_BUILD_DIR + "${PODS_ROOT}/Target Support Files/Pods-${target_name}/Pods-${target_name}-frameworks.sh" + inputFileLists: + - $(PODS_ROOT)/Target Support Files/Pods-${target_name}/Pods-${target_name}-frameworks-$(CONFIGURATION)-input-files.xcfilelist + outputFileLists: + - $(PODS_ROOT)/Target Support Files/Pods-${target_name}/Pods-${target_name}-frameworks-$(CONFIGURATION)-output-files.xcfilelist + + CocoaPodsResources: + postCompileScripts: + - name: "[CocoaPods] Copy Resources" + script: > + BUILT_PRODUCTS_DIR=$PODS_CONFIGURATION_BUILD_DIR + "${PODS_ROOT}/Target Support Files/Pods-${target_name}/Pods-${target_name}-resources.sh" + inputFileLists: + - $(PODS_ROOT)/Target Support Files/Pods-${target_name}/Pods-${target_name}-resources-$(CONFIGURATION)-input-files.xcfilelist + outputFileLists: + - $(PODS_ROOT)/Target Support Files/Pods-${target_name}/Pods-${target_name}-resources-$(CONFIGURATION)-output-files.xcfilelist diff --git a/Config/xcodegen/ComponentTemplates.yml b/Config/xcodegen/ComponentTemplates.yml new file mode 100644 index 0000000..709b118 --- /dev/null +++ b/Config/xcodegen/ComponentTemplates.yml @@ -0,0 +1,38 @@ +targetTemplates: + ComponentFramework: + platform: iOS + type: framework.static + sources: + - path: ../../Targets/${componentName}/${target_name} + createIntermediateGroups: true + settings: + base: + TARGETED_DEVICE_FAMILY: 1,2 + SUPPORTS_MACCATALYST: false + DEBUG_INFORMATION_FORMAT: dwarf # static library なので dSYM は不要 + + ComponentFrameworkTests: + platform: iOS + type: bundle.unit-test + sources: + - path: ../../Targets/${componentName}/${target_name} + createIntermediateGroups: true + settings: + base: + TARGETED_DEVICE_FAMILY: 1,2 + SUPPORTS_MACCATALYST: false + transitivelyLinkDependencies: true + +schemeTemplates: + ComponentFrameworkScheme: + build: + targets: + "${scheme_name}": all + run: + config: Debug + test: + config: Debug + targets: + - name: "${scheme_name}Tests" + parallelizable: true + randomExecutionOrder: true diff --git a/Dangerfile b/Dangerfile new file mode 100644 index 0000000..07436a3 --- /dev/null +++ b/Dangerfile @@ -0,0 +1,11 @@ +def fail_if_master + is_master_pr = github.branch_for_base == 'master' + master_in_title = github.pr_title.include? '[master]' + + if is_master_pr && !master_in_title + fail "Pull Requestの向き先(base branch)を変更してください。masterに変更を加える場合は、タイトルに [master] を含めてください。" + end +end + +swiftlint.lint_files inline_mode: true, fail_on_error: true +fail_if_master \ No newline at end of file diff --git a/Documents/Images/bitrise_details.png b/Documents/Images/bitrise_details.png new file mode 100644 index 0000000..a0a2c61 Binary files /dev/null and b/Documents/Images/bitrise_details.png differ diff --git a/Documents/Images/bitrise_rebuild.png b/Documents/Images/bitrise_rebuild.png new file mode 100644 index 0000000..16ec422 Binary files /dev/null and b/Documents/Images/bitrise_rebuild.png differ diff --git a/Documents/Images/error.png b/Documents/Images/error.png new file mode 100644 index 0000000..e53a672 Binary files /dev/null and b/Documents/Images/error.png differ diff --git a/Documents/Images/issue.png b/Documents/Images/issue.png new file mode 100644 index 0000000..295f1e4 Binary files /dev/null and b/Documents/Images/issue.png differ diff --git a/Documents/Images/pr-base.png b/Documents/Images/pr-base.png new file mode 100644 index 0000000..ab1a85c Binary files /dev/null and b/Documents/Images/pr-base.png differ diff --git a/Documents/Images/with_desc.png b/Documents/Images/with_desc.png new file mode 100644 index 0000000..15e0178 Binary files /dev/null and b/Documents/Images/with_desc.png differ diff --git a/Gemfile b/Gemfile new file mode 100644 index 0000000..6cc8d06 --- /dev/null +++ b/Gemfile @@ -0,0 +1,10 @@ +# frozen_string_literal: true + +source "https://rubygems.org" + +git_source(:github) {|repo_name| "https://github.com/#{repo_name}" } + +gem 'cocoapods', '1.11.3' +gem 'danger', '8.6.1' +gem 'danger-swiftlint', '0.30.2' +gem "fastlane", '2.206.2' diff --git a/Gemfile.lock b/Gemfile.lock new file mode 100644 index 0000000..e6ddf61 --- /dev/null +++ b/Gemfile.lock @@ -0,0 +1,329 @@ +GEM + remote: https://rubygems.org/ + specs: + CFPropertyList (3.0.5) + rexml + activesupport (6.1.6) + concurrent-ruby (~> 1.0, >= 1.0.2) + i18n (>= 1.6, < 2) + minitest (>= 5.1) + tzinfo (~> 2.0) + zeitwerk (~> 2.3) + addressable (2.8.0) + public_suffix (>= 2.0.2, < 5.0) + algoliasearch (1.27.5) + httpclient (~> 2.8, >= 2.8.3) + json (>= 1.5.1) + artifactory (3.0.15) + atomos (0.1.3) + aws-eventstream (1.2.0) + aws-partitions (1.598.0) + aws-sdk-core (3.131.1) + aws-eventstream (~> 1, >= 1.0.2) + aws-partitions (~> 1, >= 1.525.0) + aws-sigv4 (~> 1.1) + jmespath (~> 1, >= 1.6.1) + aws-sdk-kms (1.57.0) + aws-sdk-core (~> 3, >= 3.127.0) + aws-sigv4 (~> 1.1) + aws-sdk-s3 (1.114.0) + aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-kms (~> 1) + aws-sigv4 (~> 1.4) + aws-sigv4 (1.5.0) + aws-eventstream (~> 1, >= 1.0.2) + babosa (1.0.4) + claide (1.1.0) + claide-plugins (0.9.2) + cork + nap + open4 (~> 1.3) + cocoapods (1.11.3) + addressable (~> 2.8) + claide (>= 1.0.2, < 2.0) + cocoapods-core (= 1.11.3) + cocoapods-deintegrate (>= 1.0.3, < 2.0) + cocoapods-downloader (>= 1.4.0, < 2.0) + cocoapods-plugins (>= 1.0.0, < 2.0) + cocoapods-search (>= 1.0.0, < 2.0) + cocoapods-trunk (>= 1.4.0, < 2.0) + cocoapods-try (>= 1.1.0, < 2.0) + colored2 (~> 3.1) + escape (~> 0.0.4) + fourflusher (>= 2.3.0, < 3.0) + gh_inspector (~> 1.0) + molinillo (~> 0.8.0) + nap (~> 1.0) + ruby-macho (>= 1.0, < 3.0) + xcodeproj (>= 1.21.0, < 2.0) + cocoapods-core (1.11.3) + activesupport (>= 5.0, < 7) + addressable (~> 2.8) + algoliasearch (~> 1.0) + concurrent-ruby (~> 1.1) + fuzzy_match (~> 2.0.4) + nap (~> 1.0) + netrc (~> 0.11) + public_suffix (~> 4.0) + typhoeus (~> 1.0) + cocoapods-deintegrate (1.0.5) + cocoapods-downloader (1.6.3) + cocoapods-plugins (1.0.0) + nap + cocoapods-search (1.0.1) + cocoapods-trunk (1.6.0) + nap (>= 0.8, < 2.0) + netrc (~> 0.11) + cocoapods-try (1.2.0) + colored (1.2) + colored2 (3.1.2) + commander (4.6.0) + highline (~> 2.0.0) + concurrent-ruby (1.1.10) + cork (0.3.0) + colored2 (~> 3.1) + danger (8.6.1) + claide (~> 1.0) + claide-plugins (>= 0.9.2) + colored2 (~> 3.1) + cork (~> 0.1) + faraday (>= 0.9.0, < 2.0) + faraday-http-cache (~> 2.0) + git (~> 1.7) + kramdown (~> 2.3) + kramdown-parser-gfm (~> 1.0) + no_proxy_fix + octokit (~> 4.7) + terminal-table (>= 1, < 4) + danger-swiftlint (0.30.2) + danger + rake (> 10) + thor (~> 0.19) + declarative (0.0.20) + digest-crc (0.6.4) + rake (>= 12.0.0, < 14.0.0) + domain_name (0.5.20190701) + unf (>= 0.0.5, < 1.0.0) + dotenv (2.7.6) + emoji_regex (3.2.3) + escape (0.0.4) + ethon (0.15.0) + ffi (>= 1.15.0) + excon (0.92.3) + faraday (1.10.0) + faraday-em_http (~> 1.0) + faraday-em_synchrony (~> 1.0) + faraday-excon (~> 1.1) + faraday-httpclient (~> 1.0) + faraday-multipart (~> 1.0) + faraday-net_http (~> 1.0) + faraday-net_http_persistent (~> 1.0) + faraday-patron (~> 1.0) + faraday-rack (~> 1.0) + faraday-retry (~> 1.0) + ruby2_keywords (>= 0.0.4) + faraday-cookie_jar (0.0.7) + faraday (>= 0.8.0) + http-cookie (~> 1.0.0) + faraday-em_http (1.0.0) + faraday-em_synchrony (1.0.0) + faraday-excon (1.1.0) + faraday-http-cache (2.4.0) + faraday (>= 0.8) + faraday-httpclient (1.0.1) + faraday-multipart (1.0.4) + multipart-post (~> 2) + faraday-net_http (1.0.1) + faraday-net_http_persistent (1.2.0) + faraday-patron (1.0.0) + faraday-rack (1.0.0) + faraday-retry (1.0.3) + faraday_middleware (1.2.0) + faraday (~> 1.0) + fastimage (2.2.6) + fastlane (2.206.2) + CFPropertyList (>= 2.3, < 4.0.0) + addressable (>= 2.8, < 3.0.0) + artifactory (~> 3.0) + aws-sdk-s3 (~> 1.0) + babosa (>= 1.0.3, < 2.0.0) + bundler (>= 1.12.0, < 3.0.0) + colored + commander (~> 4.6) + dotenv (>= 2.1.1, < 3.0.0) + emoji_regex (>= 0.1, < 4.0) + excon (>= 0.71.0, < 1.0.0) + faraday (~> 1.0) + faraday-cookie_jar (~> 0.0.6) + faraday_middleware (~> 1.0) + fastimage (>= 2.1.0, < 3.0.0) + gh_inspector (>= 1.1.2, < 2.0.0) + google-apis-androidpublisher_v3 (~> 0.3) + google-apis-playcustomapp_v1 (~> 0.1) + google-cloud-storage (~> 1.31) + highline (~> 2.0) + json (< 3.0.0) + jwt (>= 2.1.0, < 3) + mini_magick (>= 4.9.4, < 5.0.0) + multipart-post (~> 2.0.0) + naturally (~> 2.2) + optparse (~> 0.1.1) + plist (>= 3.1.0, < 4.0.0) + rubyzip (>= 2.0.0, < 3.0.0) + security (= 0.1.3) + simctl (~> 1.6.3) + terminal-notifier (>= 2.0.0, < 3.0.0) + terminal-table (>= 1.4.5, < 2.0.0) + tty-screen (>= 0.6.3, < 1.0.0) + tty-spinner (>= 0.8.0, < 1.0.0) + word_wrap (~> 1.0.0) + xcodeproj (>= 1.13.0, < 2.0.0) + xcpretty (~> 0.3.0) + xcpretty-travis-formatter (>= 0.0.3) + ffi (1.15.5) + fourflusher (2.3.1) + fuzzy_match (2.0.4) + gh_inspector (1.1.3) + git (1.11.0) + rchardet (~> 1.8) + google-apis-androidpublisher_v3 (0.22.0) + google-apis-core (>= 0.5, < 2.a) + google-apis-core (0.5.0) + addressable (~> 2.5, >= 2.5.1) + googleauth (>= 0.16.2, < 2.a) + httpclient (>= 2.8.1, < 3.a) + mini_mime (~> 1.0) + representable (~> 3.0) + retriable (>= 2.0, < 4.a) + rexml + webrick + google-apis-iamcredentials_v1 (0.11.0) + google-apis-core (>= 0.5, < 2.a) + google-apis-playcustomapp_v1 (0.8.0) + google-apis-core (>= 0.5, < 2.a) + google-apis-storage_v1 (0.15.0) + google-apis-core (>= 0.5, < 2.a) + google-cloud-core (1.6.0) + google-cloud-env (~> 1.0) + google-cloud-errors (~> 1.0) + google-cloud-env (1.6.0) + faraday (>= 0.17.3, < 3.0) + google-cloud-errors (1.2.0) + google-cloud-storage (1.36.2) + addressable (~> 2.8) + digest-crc (~> 0.4) + google-apis-iamcredentials_v1 (~> 0.1) + google-apis-storage_v1 (~> 0.1) + google-cloud-core (~> 1.6) + googleauth (>= 0.16.2, < 2.a) + mini_mime (~> 1.0) + googleauth (1.1.3) + faraday (>= 0.17.3, < 3.a) + jwt (>= 1.4, < 3.0) + memoist (~> 0.16) + multi_json (~> 1.11) + os (>= 0.9, < 2.0) + signet (>= 0.16, < 2.a) + highline (2.0.3) + http-cookie (1.0.5) + domain_name (~> 0.5) + httpclient (2.8.3) + i18n (1.10.0) + concurrent-ruby (~> 1.0) + jmespath (1.6.1) + json (2.6.2) + jwt (2.4.1) + kramdown (2.4.0) + rexml + kramdown-parser-gfm (1.1.0) + kramdown (~> 2.0) + memoist (0.16.2) + mini_magick (4.11.0) + mini_mime (1.1.2) + minitest (5.15.0) + molinillo (0.8.0) + multi_json (1.15.0) + multipart-post (2.0.0) + nanaimo (0.3.0) + nap (1.1.0) + naturally (2.2.1) + netrc (0.11.0) + no_proxy_fix (0.1.2) + octokit (4.24.0) + faraday (>= 1, < 3) + sawyer (~> 0.9) + open4 (1.3.4) + optparse (0.1.1) + os (1.1.4) + plist (3.6.0) + public_suffix (4.0.7) + rake (13.0.6) + rchardet (1.8.0) + representable (3.2.0) + declarative (< 0.1.0) + trailblazer-option (>= 0.1.1, < 0.2.0) + uber (< 0.2.0) + retriable (3.1.2) + rexml (3.2.5) + rouge (2.0.7) + ruby-macho (2.5.1) + ruby2_keywords (0.0.5) + rubyzip (2.3.2) + sawyer (0.9.2) + addressable (>= 2.3.5) + faraday (>= 0.17.3, < 3) + security (0.1.3) + signet (0.16.1) + addressable (~> 2.8) + faraday (>= 0.17.5, < 3.0) + jwt (>= 1.5, < 3.0) + multi_json (~> 1.10) + simctl (1.6.8) + CFPropertyList + naturally + terminal-notifier (2.0.0) + terminal-table (1.8.0) + unicode-display_width (~> 1.1, >= 1.1.1) + thor (0.20.3) + trailblazer-option (0.1.2) + tty-cursor (0.7.1) + tty-screen (0.8.1) + tty-spinner (0.9.3) + tty-cursor (~> 0.7) + typhoeus (1.4.0) + ethon (>= 0.9.0) + tzinfo (2.0.4) + concurrent-ruby (~> 1.0) + uber (0.1.0) + unf (0.1.4) + unf_ext + unf_ext (0.0.8.2) + unicode-display_width (1.8.0) + webrick (1.7.0) + word_wrap (1.0.0) + xcodeproj (1.21.0) + CFPropertyList (>= 2.3.3, < 4.0) + atomos (~> 0.1.3) + claide (>= 1.0.2, < 2.0) + colored2 (~> 3.1) + nanaimo (~> 0.3.0) + rexml (~> 3.2.4) + xcpretty (0.3.0) + rouge (~> 2.0.7) + xcpretty-travis-formatter (1.0.1) + xcpretty (~> 0.2, >= 0.0.7) + zeitwerk (2.6.0) + +PLATFORMS + arm64-darwin-21 + arm64-darwin-22 + x86_64-darwin-20 + +DEPENDENCIES + cocoapods (= 1.11.3) + danger (= 8.6.1) + danger-swiftlint (= 0.30.2) + fastlane (= 2.206.2) + +BUNDLED WITH + 2.3.13 diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..68b4fcc --- /dev/null +++ b/Makefile @@ -0,0 +1,142 @@ +include Config/Makefile/shared.mk + +APP_NAME=AbemaTutorial + +TEST_SCHEMES = \ + Extension \ + UILogic \ + UseCase + +BUILD_DIR=$(PROJECT_ROOT)/build +RESULT_BUNDLE_PATH ?= $(BUILD_DIR)/xcresults/$(subst /,_,$@)_$(shell date +%Y%m%d%H%M%S).xcresult + +BUNDLER_VERSION = $(shell tail -n 1 Gemfile.lock | tr -cd "[:digit:]\.") +BUNDLE_EXEC=bundle _$(BUNDLER_VERSION)_ exec + +XCODE_OUTPUT_FORMATTER ?= $(XCBEAUTIFY) + +PODS_ROOT ?= $(PROJECT_ROOT)/Pods +PODS_PROJECT ?= $(PODS_ROOT)/Pods.xcodeproj +PODS_BUILD_DIR ?= $(PODS_ROOT)/_Build +PODS_REPO_UPDATE_TIMESTAMP := ./Pods/.repo-update-timestamp +PODS_BUILD_TARGETS ?= + +default: bootstrap + +# Bootstrap + +.PHONY: bootstrap +bootstrap: pod-build mockolo + +# RubyGems + +install-gems: vendor/bundle + +vendor/bundle: Gemfile Gemfile.lock + scripts/install-bundler.sh + @touch vendor/bundle + +# CocoaPods + +.PHONY: pod-install +pod-install: install-gems xcodegen $(PODS_REPO_UPDATE_TIMESTAMP) + @xcodebuild -version > Pods/xcodebuild.version + $(BUNDLE_EXEC) pod install + $(MAKE) $(PODS_ROOT)/.gitignore + @# CocoaPodsがxcodeprojを変更してしまうので再生成する + $(MAKE) xcodegen + +# 直接使用するファイルが存在するディレクトリをignoreしないためのgitignoreを生成 +# +# xcconfigとxcfilelistから参照されているファイル名を検索する +# PODS_TARGET_SRCROOTは全てのPodsに定義されているので無視する +$(PODS_ROOT)/.gitignore: FORCE + @find Pods/Target\ Support\ Files -name '*.xcconfig' -or -name '*.xcfilelist' \ + | xargs -I{} grep -v -E 'PODS_TARGET_SRCROOT =' {} \ + | grep -o -E '\$$\{PODS_ROOT\}/.[a-zA-Z0-9 _-]+' \ + | sort -u \ + | PODS_ROOT= envsubst \ + | xargs -I{} echo !{} \ + > $@ + +# CocoaPodsでインストールしたPodを事前ビルドする +# +# Usage: +# make pod-build ... 全てのPodを再ビルド +# make pod-build PODS_BUILD_TARGETS="A B C" ... Pod A, B, Cとその依存Podを再ビルド +.PHONY: pod-build +pod-build: pod-build/iphoneos pod-build/iphonesimulator + +.PHONY: pod-build +pod-build/%: pod-install + xcodebuild build \ + -project $(PODS_PROJECT) \ + -sdk $(notdir $@) \ + $(if $(PODS_BUILD_TARGETS),$(addprefix -target ,$(PODS_BUILD_TARGETS)),-alltargets) \ + -configuration Release \ + ONLY_ACTIVE_ARCH=NO \ + SYMROOT=$(PODS_BUILD_DIR) \ + | $(MAKE) test-output-formatter + scripts/cocoapods/pod-checksum.rb --update $(PODS_BUILD_TARGETS) + +$(PODS_REPO_UPDATE_TIMESTAMP): vendor/bundle Podfile Podfile.lock + $(BUNDLE_EXEC) pod repo update + @touch $(PODS_REPO_UPDATE_TIMESTAMP) >> /dev/null || true + +# Tools + +.PHONY: brew-install +brew-install: + $(BREW_PREFIX)/bin/brew install rbenv + +mockolo: $(MOCKOLO) +ifeq ($(CI),) + $(MAKE) -C ./Targets/UseCaseInterface mockolo + $(MAKE) -C ./Targets/Domain mockolo + $(MAKE) -C ./Targets/UILogicInterface mockolo +else + @echo Skipping Mockolo on CI +endif + +.PHONY: xcodegen +xcodegen: $(XCODEGEN) + BREW_PREFIX=$(BREW_PREFIX) \ + $(XCODEGEN) + +.PHONY: xcodegen-dump +xcodegen-dump: $(XCODEGEN) + @$(XCODEGEN) dump --type json + +# Xcode build commands + +.PHONY: build +build: + xcodebuild build \ + -project $(APP_NAME).xcodeproj \ + -scheme $(APP_NAME) \ + -configuration Debug \ + -destination 'platform=iOS Simulator,name=iPhone 14' \ + -resultBundlePath $(RESULT_BUNDLE_PATH) \ + CODE_SIGNING_ALLOWED=NO \ + COMPILER_INDEX_STORE_ENABLE=NO + +.PHONY: test +test: $(addprefix test/,$(TEST_SCHEMES)) +test/%: FORCE + xcodebuild test \ + -project $(APP_NAME).xcodeproj \ + -scheme $(notdir $@) \ + -configuration Debug \ + -destination 'platform=iOS Simulator,name=iPhone 14' \ + -resultBundlePath $(RESULT_BUNDLE_PATH) \ + CODE_SIGNING_ALLOWED=NO \ + COMPILER_INDEX_STORE_ENABLE=NO + +# Utils + +.PHONY: test-output-formatter +test-output-formatter: $(XCBEAUTIFY) + $(XCODE_OUTPUT_FORMATTER) + +.PHONY: FORCE +FORCE: diff --git a/Mintfile b/Mintfile new file mode 100644 index 0000000..18076e4 --- /dev/null +++ b/Mintfile @@ -0,0 +1,3 @@ +yonaskolb/XcodeGen@2.28.0 +abema/mockolo@763ba88 +tuist/xcbeautify@0.13.0 diff --git a/Podfile b/Podfile new file mode 100644 index 0000000..9660a20 --- /dev/null +++ b/Podfile @@ -0,0 +1,160 @@ +source 'https://cdn.cocoapods.org/' + +workspace 'Pods/_Unused.xcworkspace' +project './AbemaTutorial.xcodeproj' + +use_frameworks! :linkage => :static +inhibit_all_warnings! + +deployment_target = '13.0' +platform :ios, '13.0' + +$rx_version = '6.5.0' + +def app_proj + project './AbemaTutorial.xcodeproj' +end + +def rxswift + pod 'RxSwift', $rx_version +end + +def rxrelay + pod 'RxRelay', $rx_version +end + +def rxcocoa + pod 'RxCocoa', $rx_version +end + +def rxtest + pod 'RxTest', $rx_version +end + +def rxblocking + pod 'RxBlocking', $rx_version +end + +def rxaction + pod 'Action', '5.0.0' +end + +def unio + pod 'Unio', '0.11.0' +end + +target 'AbemaTutorial' do + app_proj + + rxswift + rxrelay + rxcocoa + rxaction + unio + + ## Tool + pod 'SwiftLint', '0.47.0' + pod 'SwiftGen', '6.5.1' +end + +target 'Extension' do + rxswift + rxrelay +end + +target 'TestExtension' do + rxtest +end + +target 'ExtensionTests' do + rxswift + rxrelay + + rxtest +end + +target 'Domain' do + rxswift + rxrelay +end + +target 'DomainTests' do + rxswift + rxrelay + + rxtest +end + +target 'Repository' do + rxswift +end + +target 'RepositoryTests' do + rxswift + rxrelay + rxtest +end + +target 'UIComponent' do + rxswift + rxrelay + rxcocoa + unio +end + +target 'XcodePreviews' do + rxswift + rxrelay + rxcocoa + unio +end + +target 'UILogic' do + rxswift + rxrelay + rxcocoa + unio +end + +target 'UILogicTests' do + rxswift + rxrelay + rxcocoa + unio + + rxtest +end + +target 'UILogicInterface' do + rxswift + rxrelay + rxcocoa + unio +end + +target 'UseCase' do + rxswift + rxrelay +end + +target 'UseCaseTests' do + rxswift + rxrelay + + rxtest +end + +target 'UseCaseInterface' do + rxswift + rxrelay +end + +post_install do |installer| + # Workaround for Xcode12 + # https://qiita.com/temoki/items/46ad22940e819a132435 + installer.pods_project.targets.each do |target| + target.build_configurations.each do |config| + config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '12.0' + end + end +end diff --git a/Podfile.lock b/Podfile.lock new file mode 100644 index 0000000..1a485aa --- /dev/null +++ b/Podfile.lock @@ -0,0 +1,52 @@ +PODS: + - Action (5.0.0): + - RxCocoa (~> 6.0) + - RxSwift (~> 6.0) + - RxCocoa (6.5.0): + - RxRelay (= 6.5.0) + - RxSwift (= 6.5.0) + - RxRelay (6.5.0): + - RxSwift (= 6.5.0) + - RxSwift (6.5.0) + - RxTest (6.5.0): + - RxSwift (= 6.5.0) + - SwiftGen (6.5.1) + - SwiftLint (0.47.0) + - Unio (0.11.0): + - RxRelay (~> 6.0) + - RxSwift (~> 6.0) + +DEPENDENCIES: + - Action (= 5.0.0) + - RxCocoa (= 6.5.0) + - RxRelay (= 6.5.0) + - RxSwift (= 6.5.0) + - RxTest (= 6.5.0) + - SwiftGen (= 6.5.1) + - SwiftLint (= 0.47.0) + - Unio (= 0.11.0) + +SPEC REPOS: + trunk: + - Action + - RxCocoa + - RxRelay + - RxSwift + - RxTest + - SwiftGen + - SwiftLint + - Unio + +SPEC CHECKSUMS: + Action: 47f1825511907b4fcd79dd7a7db9526c20f78018 + RxCocoa: 94f817b71c07517321eb4f9ad299112ca8af743b + RxRelay: 1de1523e604c72b6c68feadedd1af3b1b4d0ecbd + RxSwift: 5710a9e6b17f3c3d6e40d6e559b9fa1e813b2ef8 + RxTest: eb2d23adefc5a5ebf5779c7792fa3edfe6ebcc17 + SwiftGen: a6d22010845f08fe18fbdf3a07a8e380fd22e0ea + SwiftLint: d41cc46a2ae58ac6d9f26954bc89f1d72e71fdef + Unio: 6e57bd33dbcf38d281b0b420f75c0eae3bef0cf3 + +PODFILE CHECKSUM: a2009e8ba78028d9158cce5b8d6028d58f406383 + +COCOAPODS: 1.11.3 diff --git a/Pods/Target Support Files/Pods-AbemaTutorial/Pods-AbemaTutorial-Info.plist b/Pods/Target Support Files/Pods-AbemaTutorial/Pods-AbemaTutorial-Info.plist new file mode 100644 index 0000000..2243fe6 --- /dev/null +++ b/Pods/Target Support Files/Pods-AbemaTutorial/Pods-AbemaTutorial-Info.plist @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIdentifier + ${PRODUCT_BUNDLE_IDENTIFIER} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0.0 + CFBundleSignature + ???? + CFBundleVersion + ${CURRENT_PROJECT_VERSION} + NSPrincipalClass + + + diff --git a/Pods/Target Support Files/Pods-AbemaTutorial/Pods-AbemaTutorial-acknowledgements.markdown b/Pods/Target Support Files/Pods-AbemaTutorial/Pods-AbemaTutorial-acknowledgements.markdown new file mode 100644 index 0000000..fc4fe3d --- /dev/null +++ b/Pods/Target Support Files/Pods-AbemaTutorial/Pods-AbemaTutorial-acknowledgements.markdown @@ -0,0 +1,143 @@ +# Acknowledgements +This application makes use of the following third party libraries: + +## Action + +The MIT License (MIT) + +Copyright (c) 2015 Ash Furrow + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + + + +## RxCocoa + +**The MIT License** +**Copyright © 2015 Krunoslav Zaher, Shai Mishali** +**All rights reserved.** + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + +## RxRelay + +**The MIT License** +**Copyright © 2015 Krunoslav Zaher, Shai Mishali** +**All rights reserved.** + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + +## RxSwift + +**The MIT License** +**Copyright © 2015 Krunoslav Zaher, Shai Mishali** +**All rights reserved.** + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + +## SwiftGen + +MIT Licence + +Copyright (c) 2020 SwiftGen + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + + +## SwiftLint + +The MIT License (MIT) + +Copyright (c) 2020 Realm Inc. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + + +## Unio + +MIT License + +Copyright (c) 2019 AbemaTV + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +Generated by CocoaPods - https://cocoapods.org diff --git a/Pods/Target Support Files/Pods-AbemaTutorial/Pods-AbemaTutorial-acknowledgements.plist b/Pods/Target Support Files/Pods-AbemaTutorial/Pods-AbemaTutorial-acknowledgements.plist new file mode 100644 index 0000000..34be271 --- /dev/null +++ b/Pods/Target Support Files/Pods-AbemaTutorial/Pods-AbemaTutorial-acknowledgements.plist @@ -0,0 +1,211 @@ + + + + + PreferenceSpecifiers + + + FooterText + This application makes use of the following third party libraries: + Title + Acknowledgements + Type + PSGroupSpecifier + + + FooterText + The MIT License (MIT) + +Copyright (c) 2015 Ash Furrow + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + + + License + MIT + Title + Action + Type + PSGroupSpecifier + + + FooterText + **The MIT License** +**Copyright © 2015 Krunoslav Zaher, Shai Mishali** +**All rights reserved.** + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + License + MIT + Title + RxCocoa + Type + PSGroupSpecifier + + + FooterText + **The MIT License** +**Copyright © 2015 Krunoslav Zaher, Shai Mishali** +**All rights reserved.** + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + License + MIT + Title + RxRelay + Type + PSGroupSpecifier + + + FooterText + **The MIT License** +**Copyright © 2015 Krunoslav Zaher, Shai Mishali** +**All rights reserved.** + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + License + MIT + Title + RxSwift + Type + PSGroupSpecifier + + + FooterText + MIT Licence + +Copyright (c) 2020 SwiftGen + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + + License + MIT + Title + SwiftGen + Type + PSGroupSpecifier + + + FooterText + The MIT License (MIT) + +Copyright (c) 2020 Realm Inc. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + + License + MIT + Title + SwiftLint + Type + PSGroupSpecifier + + + FooterText + MIT License + +Copyright (c) 2019 AbemaTV + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + + License + MIT + Title + Unio + Type + PSGroupSpecifier + + + FooterText + Generated by CocoaPods - https://cocoapods.org + Title + + Type + PSGroupSpecifier + + + StringsTable + Acknowledgements + Title + Acknowledgements + + diff --git a/Pods/Target Support Files/Pods-AbemaTutorial/Pods-AbemaTutorial-dummy.m b/Pods/Target Support Files/Pods-AbemaTutorial/Pods-AbemaTutorial-dummy.m new file mode 100644 index 0000000..672811f --- /dev/null +++ b/Pods/Target Support Files/Pods-AbemaTutorial/Pods-AbemaTutorial-dummy.m @@ -0,0 +1,5 @@ +#import +@interface PodsDummy_Pods_AbemaTutorial : NSObject +@end +@implementation PodsDummy_Pods_AbemaTutorial +@end diff --git a/Pods/Target Support Files/Pods-AbemaTutorial/Pods-AbemaTutorial-umbrella.h b/Pods/Target Support Files/Pods-AbemaTutorial/Pods-AbemaTutorial-umbrella.h new file mode 100644 index 0000000..5e403d0 --- /dev/null +++ b/Pods/Target Support Files/Pods-AbemaTutorial/Pods-AbemaTutorial-umbrella.h @@ -0,0 +1,16 @@ +#ifdef __OBJC__ +#import +#else +#ifndef FOUNDATION_EXPORT +#if defined(__cplusplus) +#define FOUNDATION_EXPORT extern "C" +#else +#define FOUNDATION_EXPORT extern +#endif +#endif +#endif + + +FOUNDATION_EXPORT double Pods_AbemaTutorialVersionNumber; +FOUNDATION_EXPORT const unsigned char Pods_AbemaTutorialVersionString[]; + diff --git a/Pods/Target Support Files/Pods-AbemaTutorial/Pods-AbemaTutorial.debug.xcconfig b/Pods/Target Support Files/Pods-AbemaTutorial/Pods-AbemaTutorial.debug.xcconfig new file mode 100644 index 0000000..02aeef1 --- /dev/null +++ b/Pods/Target Support Files/Pods-AbemaTutorial/Pods-AbemaTutorial.debug.xcconfig @@ -0,0 +1,15 @@ +ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Action" "${PODS_CONFIGURATION_BUILD_DIR}/RxCocoa" "${PODS_CONFIGURATION_BUILD_DIR}/RxRelay" "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift" "${PODS_CONFIGURATION_BUILD_DIR}/Unio" +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Action/Action.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/RxCocoa/RxCocoa.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/RxRelay/RxRelay.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift/RxSwift.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/Unio/Unio.framework/Headers" +LIBRARY_SEARCH_PATHS = $(inherited) "${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift +OTHER_CFLAGS = $(inherited) -isystem "${PODS_CONFIGURATION_BUILD_DIR}/Action/Action.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/RxCocoa/RxCocoa.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/RxRelay/RxRelay.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift/RxSwift.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/Unio/Unio.framework/Headers" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/Action" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/RxCocoa" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/RxRelay" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/Unio" +OTHER_LDFLAGS = $(inherited) -ObjC -framework "Action" -framework "Foundation" -framework "RxCocoa" -framework "RxRelay" -framework "RxSwift" -framework "Unio" +OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_PODFILE_DIR_PATH = ${SRCROOT}/. +PODS_ROOT = ${SRCROOT}/Pods +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/Pods/Target Support Files/Pods-AbemaTutorial/Pods-AbemaTutorial.modulemap b/Pods/Target Support Files/Pods-AbemaTutorial/Pods-AbemaTutorial.modulemap new file mode 100644 index 0000000..c9b10b3 --- /dev/null +++ b/Pods/Target Support Files/Pods-AbemaTutorial/Pods-AbemaTutorial.modulemap @@ -0,0 +1,6 @@ +framework module Pods_AbemaTutorial { + umbrella header "Pods-AbemaTutorial-umbrella.h" + + export * + module * { export * } +} diff --git a/Pods/Target Support Files/Pods-AbemaTutorial/Pods-AbemaTutorial.release.xcconfig b/Pods/Target Support Files/Pods-AbemaTutorial/Pods-AbemaTutorial.release.xcconfig new file mode 100644 index 0000000..02aeef1 --- /dev/null +++ b/Pods/Target Support Files/Pods-AbemaTutorial/Pods-AbemaTutorial.release.xcconfig @@ -0,0 +1,15 @@ +ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Action" "${PODS_CONFIGURATION_BUILD_DIR}/RxCocoa" "${PODS_CONFIGURATION_BUILD_DIR}/RxRelay" "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift" "${PODS_CONFIGURATION_BUILD_DIR}/Unio" +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Action/Action.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/RxCocoa/RxCocoa.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/RxRelay/RxRelay.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift/RxSwift.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/Unio/Unio.framework/Headers" +LIBRARY_SEARCH_PATHS = $(inherited) "${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift +OTHER_CFLAGS = $(inherited) -isystem "${PODS_CONFIGURATION_BUILD_DIR}/Action/Action.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/RxCocoa/RxCocoa.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/RxRelay/RxRelay.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift/RxSwift.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/Unio/Unio.framework/Headers" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/Action" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/RxCocoa" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/RxRelay" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/Unio" +OTHER_LDFLAGS = $(inherited) -ObjC -framework "Action" -framework "Foundation" -framework "RxCocoa" -framework "RxRelay" -framework "RxSwift" -framework "Unio" +OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_PODFILE_DIR_PATH = ${SRCROOT}/. +PODS_ROOT = ${SRCROOT}/Pods +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/Pods/Target Support Files/Pods-Domain/Pods-Domain-Info.plist b/Pods/Target Support Files/Pods-Domain/Pods-Domain-Info.plist new file mode 100644 index 0000000..2243fe6 --- /dev/null +++ b/Pods/Target Support Files/Pods-Domain/Pods-Domain-Info.plist @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIdentifier + ${PRODUCT_BUNDLE_IDENTIFIER} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0.0 + CFBundleSignature + ???? + CFBundleVersion + ${CURRENT_PROJECT_VERSION} + NSPrincipalClass + + + diff --git a/Pods/Target Support Files/Pods-Domain/Pods-Domain-acknowledgements.markdown b/Pods/Target Support Files/Pods-Domain/Pods-Domain-acknowledgements.markdown new file mode 100644 index 0000000..a259938 --- /dev/null +++ b/Pods/Target Support Files/Pods-Domain/Pods-Domain-acknowledgements.markdown @@ -0,0 +1,29 @@ +# Acknowledgements +This application makes use of the following third party libraries: + +## RxRelay + +**The MIT License** +**Copyright © 2015 Krunoslav Zaher, Shai Mishali** +**All rights reserved.** + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + +## RxSwift + +**The MIT License** +**Copyright © 2015 Krunoslav Zaher, Shai Mishali** +**All rights reserved.** + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +Generated by CocoaPods - https://cocoapods.org diff --git a/Pods/Target Support Files/Pods-Domain/Pods-Domain-acknowledgements.plist b/Pods/Target Support Files/Pods-Domain/Pods-Domain-acknowledgements.plist new file mode 100644 index 0000000..29c07ff --- /dev/null +++ b/Pods/Target Support Files/Pods-Domain/Pods-Domain-acknowledgements.plist @@ -0,0 +1,67 @@ + + + + + PreferenceSpecifiers + + + FooterText + This application makes use of the following third party libraries: + Title + Acknowledgements + Type + PSGroupSpecifier + + + FooterText + **The MIT License** +**Copyright © 2015 Krunoslav Zaher, Shai Mishali** +**All rights reserved.** + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + License + MIT + Title + RxRelay + Type + PSGroupSpecifier + + + FooterText + **The MIT License** +**Copyright © 2015 Krunoslav Zaher, Shai Mishali** +**All rights reserved.** + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + License + MIT + Title + RxSwift + Type + PSGroupSpecifier + + + FooterText + Generated by CocoaPods - https://cocoapods.org + Title + + Type + PSGroupSpecifier + + + StringsTable + Acknowledgements + Title + Acknowledgements + + diff --git a/Pods/Target Support Files/Pods-Domain/Pods-Domain-dummy.m b/Pods/Target Support Files/Pods-Domain/Pods-Domain-dummy.m new file mode 100644 index 0000000..3675ae4 --- /dev/null +++ b/Pods/Target Support Files/Pods-Domain/Pods-Domain-dummy.m @@ -0,0 +1,5 @@ +#import +@interface PodsDummy_Pods_Domain : NSObject +@end +@implementation PodsDummy_Pods_Domain +@end diff --git a/Pods/Target Support Files/Pods-Domain/Pods-Domain-umbrella.h b/Pods/Target Support Files/Pods-Domain/Pods-Domain-umbrella.h new file mode 100644 index 0000000..5964f26 --- /dev/null +++ b/Pods/Target Support Files/Pods-Domain/Pods-Domain-umbrella.h @@ -0,0 +1,16 @@ +#ifdef __OBJC__ +#import +#else +#ifndef FOUNDATION_EXPORT +#if defined(__cplusplus) +#define FOUNDATION_EXPORT extern "C" +#else +#define FOUNDATION_EXPORT extern +#endif +#endif +#endif + + +FOUNDATION_EXPORT double Pods_DomainVersionNumber; +FOUNDATION_EXPORT const unsigned char Pods_DomainVersionString[]; + diff --git a/Pods/Target Support Files/Pods-Domain/Pods-Domain.debug.xcconfig b/Pods/Target Support Files/Pods-Domain/Pods-Domain.debug.xcconfig new file mode 100644 index 0000000..ab3377b --- /dev/null +++ b/Pods/Target Support Files/Pods-Domain/Pods-Domain.debug.xcconfig @@ -0,0 +1,15 @@ +ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/RxRelay" "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift" +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/RxRelay/RxRelay.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift/RxSwift.framework/Headers" +LIBRARY_SEARCH_PATHS = $(inherited) "${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift +OTHER_CFLAGS = $(inherited) -isystem "${PODS_CONFIGURATION_BUILD_DIR}/RxRelay/RxRelay.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift/RxSwift.framework/Headers" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/RxRelay" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift" +OTHER_LDFLAGS = $(inherited) -ObjC -framework "RxRelay" -framework "RxSwift" +OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_PODFILE_DIR_PATH = ${SRCROOT}/. +PODS_ROOT = ${SRCROOT}/Pods +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/Pods/Target Support Files/Pods-Domain/Pods-Domain.modulemap b/Pods/Target Support Files/Pods-Domain/Pods-Domain.modulemap new file mode 100644 index 0000000..4c2ae72 --- /dev/null +++ b/Pods/Target Support Files/Pods-Domain/Pods-Domain.modulemap @@ -0,0 +1,6 @@ +framework module Pods_Domain { + umbrella header "Pods-Domain-umbrella.h" + + export * + module * { export * } +} diff --git a/Pods/Target Support Files/Pods-Domain/Pods-Domain.release.xcconfig b/Pods/Target Support Files/Pods-Domain/Pods-Domain.release.xcconfig new file mode 100644 index 0000000..ab3377b --- /dev/null +++ b/Pods/Target Support Files/Pods-Domain/Pods-Domain.release.xcconfig @@ -0,0 +1,15 @@ +ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/RxRelay" "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift" +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/RxRelay/RxRelay.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift/RxSwift.framework/Headers" +LIBRARY_SEARCH_PATHS = $(inherited) "${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift +OTHER_CFLAGS = $(inherited) -isystem "${PODS_CONFIGURATION_BUILD_DIR}/RxRelay/RxRelay.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift/RxSwift.framework/Headers" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/RxRelay" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift" +OTHER_LDFLAGS = $(inherited) -ObjC -framework "RxRelay" -framework "RxSwift" +OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_PODFILE_DIR_PATH = ${SRCROOT}/. +PODS_ROOT = ${SRCROOT}/Pods +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/Pods/Target Support Files/Pods-DomainTests/Pods-DomainTests-Info.plist b/Pods/Target Support Files/Pods-DomainTests/Pods-DomainTests-Info.plist new file mode 100644 index 0000000..2243fe6 --- /dev/null +++ b/Pods/Target Support Files/Pods-DomainTests/Pods-DomainTests-Info.plist @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIdentifier + ${PRODUCT_BUNDLE_IDENTIFIER} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0.0 + CFBundleSignature + ???? + CFBundleVersion + ${CURRENT_PROJECT_VERSION} + NSPrincipalClass + + + diff --git a/Pods/Target Support Files/Pods-DomainTests/Pods-DomainTests-acknowledgements.markdown b/Pods/Target Support Files/Pods-DomainTests/Pods-DomainTests-acknowledgements.markdown new file mode 100644 index 0000000..df46876 --- /dev/null +++ b/Pods/Target Support Files/Pods-DomainTests/Pods-DomainTests-acknowledgements.markdown @@ -0,0 +1,42 @@ +# Acknowledgements +This application makes use of the following third party libraries: + +## RxRelay + +**The MIT License** +**Copyright © 2015 Krunoslav Zaher, Shai Mishali** +**All rights reserved.** + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + +## RxSwift + +**The MIT License** +**Copyright © 2015 Krunoslav Zaher, Shai Mishali** +**All rights reserved.** + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + +## RxTest + +**The MIT License** +**Copyright © 2015 Krunoslav Zaher, Shai Mishali** +**All rights reserved.** + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +Generated by CocoaPods - https://cocoapods.org diff --git a/Pods/Target Support Files/Pods-DomainTests/Pods-DomainTests-acknowledgements.plist b/Pods/Target Support Files/Pods-DomainTests/Pods-DomainTests-acknowledgements.plist new file mode 100644 index 0000000..87c8631 --- /dev/null +++ b/Pods/Target Support Files/Pods-DomainTests/Pods-DomainTests-acknowledgements.plist @@ -0,0 +1,86 @@ + + + + + PreferenceSpecifiers + + + FooterText + This application makes use of the following third party libraries: + Title + Acknowledgements + Type + PSGroupSpecifier + + + FooterText + **The MIT License** +**Copyright © 2015 Krunoslav Zaher, Shai Mishali** +**All rights reserved.** + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + License + MIT + Title + RxRelay + Type + PSGroupSpecifier + + + FooterText + **The MIT License** +**Copyright © 2015 Krunoslav Zaher, Shai Mishali** +**All rights reserved.** + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + License + MIT + Title + RxSwift + Type + PSGroupSpecifier + + + FooterText + **The MIT License** +**Copyright © 2015 Krunoslav Zaher, Shai Mishali** +**All rights reserved.** + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + License + MIT + Title + RxTest + Type + PSGroupSpecifier + + + FooterText + Generated by CocoaPods - https://cocoapods.org + Title + + Type + PSGroupSpecifier + + + StringsTable + Acknowledgements + Title + Acknowledgements + + diff --git a/Pods/Target Support Files/Pods-DomainTests/Pods-DomainTests-dummy.m b/Pods/Target Support Files/Pods-DomainTests/Pods-DomainTests-dummy.m new file mode 100644 index 0000000..8de391d --- /dev/null +++ b/Pods/Target Support Files/Pods-DomainTests/Pods-DomainTests-dummy.m @@ -0,0 +1,5 @@ +#import +@interface PodsDummy_Pods_DomainTests : NSObject +@end +@implementation PodsDummy_Pods_DomainTests +@end diff --git a/Pods/Target Support Files/Pods-DomainTests/Pods-DomainTests-umbrella.h b/Pods/Target Support Files/Pods-DomainTests/Pods-DomainTests-umbrella.h new file mode 100644 index 0000000..7a5002b --- /dev/null +++ b/Pods/Target Support Files/Pods-DomainTests/Pods-DomainTests-umbrella.h @@ -0,0 +1,16 @@ +#ifdef __OBJC__ +#import +#else +#ifndef FOUNDATION_EXPORT +#if defined(__cplusplus) +#define FOUNDATION_EXPORT extern "C" +#else +#define FOUNDATION_EXPORT extern +#endif +#endif +#endif + + +FOUNDATION_EXPORT double Pods_DomainTestsVersionNumber; +FOUNDATION_EXPORT const unsigned char Pods_DomainTestsVersionString[]; + diff --git a/Pods/Target Support Files/Pods-DomainTests/Pods-DomainTests.debug.xcconfig b/Pods/Target Support Files/Pods-DomainTests/Pods-DomainTests.debug.xcconfig new file mode 100644 index 0000000..8000a84 --- /dev/null +++ b/Pods/Target Support Files/Pods-DomainTests/Pods-DomainTests.debug.xcconfig @@ -0,0 +1,15 @@ +ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO +FRAMEWORK_SEARCH_PATHS = $(inherited) "$(PLATFORM_DIR)/Developer/Library/Frameworks" "${PODS_CONFIGURATION_BUILD_DIR}/RxRelay" "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift" "${PODS_CONFIGURATION_BUILD_DIR}/RxTest" +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/RxRelay/RxRelay.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift/RxSwift.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/RxTest/RxTest.framework/Headers" +LIBRARY_SEARCH_PATHS = $(inherited) "${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift +OTHER_CFLAGS = $(inherited) -isystem "${PODS_CONFIGURATION_BUILD_DIR}/RxRelay/RxRelay.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift/RxSwift.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/RxTest/RxTest.framework/Headers" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/RxRelay" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift" -iframework "$(PLATFORM_DIR)/Developer/Library/Frameworks" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/RxTest" +OTHER_LDFLAGS = $(inherited) -ObjC -framework "RxRelay" -framework "RxSwift" -framework "RxTest" -framework "XCTest" +OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_PODFILE_DIR_PATH = ${SRCROOT}/. +PODS_ROOT = ${SRCROOT}/Pods +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/Pods/Target Support Files/Pods-DomainTests/Pods-DomainTests.modulemap b/Pods/Target Support Files/Pods-DomainTests/Pods-DomainTests.modulemap new file mode 100644 index 0000000..a114bcd --- /dev/null +++ b/Pods/Target Support Files/Pods-DomainTests/Pods-DomainTests.modulemap @@ -0,0 +1,6 @@ +framework module Pods_DomainTests { + umbrella header "Pods-DomainTests-umbrella.h" + + export * + module * { export * } +} diff --git a/Pods/Target Support Files/Pods-DomainTests/Pods-DomainTests.release.xcconfig b/Pods/Target Support Files/Pods-DomainTests/Pods-DomainTests.release.xcconfig new file mode 100644 index 0000000..8000a84 --- /dev/null +++ b/Pods/Target Support Files/Pods-DomainTests/Pods-DomainTests.release.xcconfig @@ -0,0 +1,15 @@ +ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO +FRAMEWORK_SEARCH_PATHS = $(inherited) "$(PLATFORM_DIR)/Developer/Library/Frameworks" "${PODS_CONFIGURATION_BUILD_DIR}/RxRelay" "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift" "${PODS_CONFIGURATION_BUILD_DIR}/RxTest" +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/RxRelay/RxRelay.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift/RxSwift.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/RxTest/RxTest.framework/Headers" +LIBRARY_SEARCH_PATHS = $(inherited) "${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift +OTHER_CFLAGS = $(inherited) -isystem "${PODS_CONFIGURATION_BUILD_DIR}/RxRelay/RxRelay.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift/RxSwift.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/RxTest/RxTest.framework/Headers" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/RxRelay" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift" -iframework "$(PLATFORM_DIR)/Developer/Library/Frameworks" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/RxTest" +OTHER_LDFLAGS = $(inherited) -ObjC -framework "RxRelay" -framework "RxSwift" -framework "RxTest" -framework "XCTest" +OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_PODFILE_DIR_PATH = ${SRCROOT}/. +PODS_ROOT = ${SRCROOT}/Pods +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/Pods/Target Support Files/Pods-Extension/Pods-Extension-Info.plist b/Pods/Target Support Files/Pods-Extension/Pods-Extension-Info.plist new file mode 100644 index 0000000..2243fe6 --- /dev/null +++ b/Pods/Target Support Files/Pods-Extension/Pods-Extension-Info.plist @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIdentifier + ${PRODUCT_BUNDLE_IDENTIFIER} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0.0 + CFBundleSignature + ???? + CFBundleVersion + ${CURRENT_PROJECT_VERSION} + NSPrincipalClass + + + diff --git a/Pods/Target Support Files/Pods-Extension/Pods-Extension-acknowledgements.markdown b/Pods/Target Support Files/Pods-Extension/Pods-Extension-acknowledgements.markdown new file mode 100644 index 0000000..a259938 --- /dev/null +++ b/Pods/Target Support Files/Pods-Extension/Pods-Extension-acknowledgements.markdown @@ -0,0 +1,29 @@ +# Acknowledgements +This application makes use of the following third party libraries: + +## RxRelay + +**The MIT License** +**Copyright © 2015 Krunoslav Zaher, Shai Mishali** +**All rights reserved.** + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + +## RxSwift + +**The MIT License** +**Copyright © 2015 Krunoslav Zaher, Shai Mishali** +**All rights reserved.** + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +Generated by CocoaPods - https://cocoapods.org diff --git a/Pods/Target Support Files/Pods-Extension/Pods-Extension-acknowledgements.plist b/Pods/Target Support Files/Pods-Extension/Pods-Extension-acknowledgements.plist new file mode 100644 index 0000000..29c07ff --- /dev/null +++ b/Pods/Target Support Files/Pods-Extension/Pods-Extension-acknowledgements.plist @@ -0,0 +1,67 @@ + + + + + PreferenceSpecifiers + + + FooterText + This application makes use of the following third party libraries: + Title + Acknowledgements + Type + PSGroupSpecifier + + + FooterText + **The MIT License** +**Copyright © 2015 Krunoslav Zaher, Shai Mishali** +**All rights reserved.** + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + License + MIT + Title + RxRelay + Type + PSGroupSpecifier + + + FooterText + **The MIT License** +**Copyright © 2015 Krunoslav Zaher, Shai Mishali** +**All rights reserved.** + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + License + MIT + Title + RxSwift + Type + PSGroupSpecifier + + + FooterText + Generated by CocoaPods - https://cocoapods.org + Title + + Type + PSGroupSpecifier + + + StringsTable + Acknowledgements + Title + Acknowledgements + + diff --git a/Pods/Target Support Files/Pods-Extension/Pods-Extension-dummy.m b/Pods/Target Support Files/Pods-Extension/Pods-Extension-dummy.m new file mode 100644 index 0000000..5abae09 --- /dev/null +++ b/Pods/Target Support Files/Pods-Extension/Pods-Extension-dummy.m @@ -0,0 +1,5 @@ +#import +@interface PodsDummy_Pods_Extension : NSObject +@end +@implementation PodsDummy_Pods_Extension +@end diff --git a/Pods/Target Support Files/Pods-Extension/Pods-Extension-umbrella.h b/Pods/Target Support Files/Pods-Extension/Pods-Extension-umbrella.h new file mode 100644 index 0000000..1ce793a --- /dev/null +++ b/Pods/Target Support Files/Pods-Extension/Pods-Extension-umbrella.h @@ -0,0 +1,16 @@ +#ifdef __OBJC__ +#import +#else +#ifndef FOUNDATION_EXPORT +#if defined(__cplusplus) +#define FOUNDATION_EXPORT extern "C" +#else +#define FOUNDATION_EXPORT extern +#endif +#endif +#endif + + +FOUNDATION_EXPORT double Pods_ExtensionVersionNumber; +FOUNDATION_EXPORT const unsigned char Pods_ExtensionVersionString[]; + diff --git a/Pods/Target Support Files/Pods-Extension/Pods-Extension.debug.xcconfig b/Pods/Target Support Files/Pods-Extension/Pods-Extension.debug.xcconfig new file mode 100644 index 0000000..ab3377b --- /dev/null +++ b/Pods/Target Support Files/Pods-Extension/Pods-Extension.debug.xcconfig @@ -0,0 +1,15 @@ +ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/RxRelay" "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift" +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/RxRelay/RxRelay.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift/RxSwift.framework/Headers" +LIBRARY_SEARCH_PATHS = $(inherited) "${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift +OTHER_CFLAGS = $(inherited) -isystem "${PODS_CONFIGURATION_BUILD_DIR}/RxRelay/RxRelay.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift/RxSwift.framework/Headers" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/RxRelay" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift" +OTHER_LDFLAGS = $(inherited) -ObjC -framework "RxRelay" -framework "RxSwift" +OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_PODFILE_DIR_PATH = ${SRCROOT}/. +PODS_ROOT = ${SRCROOT}/Pods +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/Pods/Target Support Files/Pods-Extension/Pods-Extension.modulemap b/Pods/Target Support Files/Pods-Extension/Pods-Extension.modulemap new file mode 100644 index 0000000..9033609 --- /dev/null +++ b/Pods/Target Support Files/Pods-Extension/Pods-Extension.modulemap @@ -0,0 +1,6 @@ +framework module Pods_Extension { + umbrella header "Pods-Extension-umbrella.h" + + export * + module * { export * } +} diff --git a/Pods/Target Support Files/Pods-Extension/Pods-Extension.release.xcconfig b/Pods/Target Support Files/Pods-Extension/Pods-Extension.release.xcconfig new file mode 100644 index 0000000..ab3377b --- /dev/null +++ b/Pods/Target Support Files/Pods-Extension/Pods-Extension.release.xcconfig @@ -0,0 +1,15 @@ +ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/RxRelay" "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift" +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/RxRelay/RxRelay.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift/RxSwift.framework/Headers" +LIBRARY_SEARCH_PATHS = $(inherited) "${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift +OTHER_CFLAGS = $(inherited) -isystem "${PODS_CONFIGURATION_BUILD_DIR}/RxRelay/RxRelay.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift/RxSwift.framework/Headers" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/RxRelay" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift" +OTHER_LDFLAGS = $(inherited) -ObjC -framework "RxRelay" -framework "RxSwift" +OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_PODFILE_DIR_PATH = ${SRCROOT}/. +PODS_ROOT = ${SRCROOT}/Pods +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/Pods/Target Support Files/Pods-ExtensionTests/Pods-ExtensionTests-Info.plist b/Pods/Target Support Files/Pods-ExtensionTests/Pods-ExtensionTests-Info.plist new file mode 100644 index 0000000..2243fe6 --- /dev/null +++ b/Pods/Target Support Files/Pods-ExtensionTests/Pods-ExtensionTests-Info.plist @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIdentifier + ${PRODUCT_BUNDLE_IDENTIFIER} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0.0 + CFBundleSignature + ???? + CFBundleVersion + ${CURRENT_PROJECT_VERSION} + NSPrincipalClass + + + diff --git a/Pods/Target Support Files/Pods-ExtensionTests/Pods-ExtensionTests-acknowledgements.markdown b/Pods/Target Support Files/Pods-ExtensionTests/Pods-ExtensionTests-acknowledgements.markdown new file mode 100644 index 0000000..df46876 --- /dev/null +++ b/Pods/Target Support Files/Pods-ExtensionTests/Pods-ExtensionTests-acknowledgements.markdown @@ -0,0 +1,42 @@ +# Acknowledgements +This application makes use of the following third party libraries: + +## RxRelay + +**The MIT License** +**Copyright © 2015 Krunoslav Zaher, Shai Mishali** +**All rights reserved.** + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + +## RxSwift + +**The MIT License** +**Copyright © 2015 Krunoslav Zaher, Shai Mishali** +**All rights reserved.** + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + +## RxTest + +**The MIT License** +**Copyright © 2015 Krunoslav Zaher, Shai Mishali** +**All rights reserved.** + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +Generated by CocoaPods - https://cocoapods.org diff --git a/Pods/Target Support Files/Pods-ExtensionTests/Pods-ExtensionTests-acknowledgements.plist b/Pods/Target Support Files/Pods-ExtensionTests/Pods-ExtensionTests-acknowledgements.plist new file mode 100644 index 0000000..87c8631 --- /dev/null +++ b/Pods/Target Support Files/Pods-ExtensionTests/Pods-ExtensionTests-acknowledgements.plist @@ -0,0 +1,86 @@ + + + + + PreferenceSpecifiers + + + FooterText + This application makes use of the following third party libraries: + Title + Acknowledgements + Type + PSGroupSpecifier + + + FooterText + **The MIT License** +**Copyright © 2015 Krunoslav Zaher, Shai Mishali** +**All rights reserved.** + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + License + MIT + Title + RxRelay + Type + PSGroupSpecifier + + + FooterText + **The MIT License** +**Copyright © 2015 Krunoslav Zaher, Shai Mishali** +**All rights reserved.** + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + License + MIT + Title + RxSwift + Type + PSGroupSpecifier + + + FooterText + **The MIT License** +**Copyright © 2015 Krunoslav Zaher, Shai Mishali** +**All rights reserved.** + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + License + MIT + Title + RxTest + Type + PSGroupSpecifier + + + FooterText + Generated by CocoaPods - https://cocoapods.org + Title + + Type + PSGroupSpecifier + + + StringsTable + Acknowledgements + Title + Acknowledgements + + diff --git a/Pods/Target Support Files/Pods-ExtensionTests/Pods-ExtensionTests-dummy.m b/Pods/Target Support Files/Pods-ExtensionTests/Pods-ExtensionTests-dummy.m new file mode 100644 index 0000000..092950a --- /dev/null +++ b/Pods/Target Support Files/Pods-ExtensionTests/Pods-ExtensionTests-dummy.m @@ -0,0 +1,5 @@ +#import +@interface PodsDummy_Pods_ExtensionTests : NSObject +@end +@implementation PodsDummy_Pods_ExtensionTests +@end diff --git a/Pods/Target Support Files/Pods-ExtensionTests/Pods-ExtensionTests-umbrella.h b/Pods/Target Support Files/Pods-ExtensionTests/Pods-ExtensionTests-umbrella.h new file mode 100644 index 0000000..88ce120 --- /dev/null +++ b/Pods/Target Support Files/Pods-ExtensionTests/Pods-ExtensionTests-umbrella.h @@ -0,0 +1,16 @@ +#ifdef __OBJC__ +#import +#else +#ifndef FOUNDATION_EXPORT +#if defined(__cplusplus) +#define FOUNDATION_EXPORT extern "C" +#else +#define FOUNDATION_EXPORT extern +#endif +#endif +#endif + + +FOUNDATION_EXPORT double Pods_ExtensionTestsVersionNumber; +FOUNDATION_EXPORT const unsigned char Pods_ExtensionTestsVersionString[]; + diff --git a/Pods/Target Support Files/Pods-ExtensionTests/Pods-ExtensionTests.debug.xcconfig b/Pods/Target Support Files/Pods-ExtensionTests/Pods-ExtensionTests.debug.xcconfig new file mode 100644 index 0000000..8000a84 --- /dev/null +++ b/Pods/Target Support Files/Pods-ExtensionTests/Pods-ExtensionTests.debug.xcconfig @@ -0,0 +1,15 @@ +ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO +FRAMEWORK_SEARCH_PATHS = $(inherited) "$(PLATFORM_DIR)/Developer/Library/Frameworks" "${PODS_CONFIGURATION_BUILD_DIR}/RxRelay" "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift" "${PODS_CONFIGURATION_BUILD_DIR}/RxTest" +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/RxRelay/RxRelay.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift/RxSwift.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/RxTest/RxTest.framework/Headers" +LIBRARY_SEARCH_PATHS = $(inherited) "${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift +OTHER_CFLAGS = $(inherited) -isystem "${PODS_CONFIGURATION_BUILD_DIR}/RxRelay/RxRelay.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift/RxSwift.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/RxTest/RxTest.framework/Headers" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/RxRelay" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift" -iframework "$(PLATFORM_DIR)/Developer/Library/Frameworks" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/RxTest" +OTHER_LDFLAGS = $(inherited) -ObjC -framework "RxRelay" -framework "RxSwift" -framework "RxTest" -framework "XCTest" +OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_PODFILE_DIR_PATH = ${SRCROOT}/. +PODS_ROOT = ${SRCROOT}/Pods +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/Pods/Target Support Files/Pods-ExtensionTests/Pods-ExtensionTests.modulemap b/Pods/Target Support Files/Pods-ExtensionTests/Pods-ExtensionTests.modulemap new file mode 100644 index 0000000..968f589 --- /dev/null +++ b/Pods/Target Support Files/Pods-ExtensionTests/Pods-ExtensionTests.modulemap @@ -0,0 +1,6 @@ +framework module Pods_ExtensionTests { + umbrella header "Pods-ExtensionTests-umbrella.h" + + export * + module * { export * } +} diff --git a/Pods/Target Support Files/Pods-ExtensionTests/Pods-ExtensionTests.release.xcconfig b/Pods/Target Support Files/Pods-ExtensionTests/Pods-ExtensionTests.release.xcconfig new file mode 100644 index 0000000..8000a84 --- /dev/null +++ b/Pods/Target Support Files/Pods-ExtensionTests/Pods-ExtensionTests.release.xcconfig @@ -0,0 +1,15 @@ +ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO +FRAMEWORK_SEARCH_PATHS = $(inherited) "$(PLATFORM_DIR)/Developer/Library/Frameworks" "${PODS_CONFIGURATION_BUILD_DIR}/RxRelay" "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift" "${PODS_CONFIGURATION_BUILD_DIR}/RxTest" +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/RxRelay/RxRelay.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift/RxSwift.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/RxTest/RxTest.framework/Headers" +LIBRARY_SEARCH_PATHS = $(inherited) "${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift +OTHER_CFLAGS = $(inherited) -isystem "${PODS_CONFIGURATION_BUILD_DIR}/RxRelay/RxRelay.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift/RxSwift.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/RxTest/RxTest.framework/Headers" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/RxRelay" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift" -iframework "$(PLATFORM_DIR)/Developer/Library/Frameworks" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/RxTest" +OTHER_LDFLAGS = $(inherited) -ObjC -framework "RxRelay" -framework "RxSwift" -framework "RxTest" -framework "XCTest" +OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_PODFILE_DIR_PATH = ${SRCROOT}/. +PODS_ROOT = ${SRCROOT}/Pods +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/Pods/Target Support Files/Pods-Repository/Pods-Repository-Info.plist b/Pods/Target Support Files/Pods-Repository/Pods-Repository-Info.plist new file mode 100644 index 0000000..2243fe6 --- /dev/null +++ b/Pods/Target Support Files/Pods-Repository/Pods-Repository-Info.plist @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIdentifier + ${PRODUCT_BUNDLE_IDENTIFIER} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0.0 + CFBundleSignature + ???? + CFBundleVersion + ${CURRENT_PROJECT_VERSION} + NSPrincipalClass + + + diff --git a/Pods/Target Support Files/Pods-Repository/Pods-Repository-acknowledgements.markdown b/Pods/Target Support Files/Pods-Repository/Pods-Repository-acknowledgements.markdown new file mode 100644 index 0000000..3954951 --- /dev/null +++ b/Pods/Target Support Files/Pods-Repository/Pods-Repository-acknowledgements.markdown @@ -0,0 +1,16 @@ +# Acknowledgements +This application makes use of the following third party libraries: + +## RxSwift + +**The MIT License** +**Copyright © 2015 Krunoslav Zaher, Shai Mishali** +**All rights reserved.** + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +Generated by CocoaPods - https://cocoapods.org diff --git a/Pods/Target Support Files/Pods-Repository/Pods-Repository-acknowledgements.plist b/Pods/Target Support Files/Pods-Repository/Pods-Repository-acknowledgements.plist new file mode 100644 index 0000000..15f7afb --- /dev/null +++ b/Pods/Target Support Files/Pods-Repository/Pods-Repository-acknowledgements.plist @@ -0,0 +1,48 @@ + + + + + PreferenceSpecifiers + + + FooterText + This application makes use of the following third party libraries: + Title + Acknowledgements + Type + PSGroupSpecifier + + + FooterText + **The MIT License** +**Copyright © 2015 Krunoslav Zaher, Shai Mishali** +**All rights reserved.** + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + License + MIT + Title + RxSwift + Type + PSGroupSpecifier + + + FooterText + Generated by CocoaPods - https://cocoapods.org + Title + + Type + PSGroupSpecifier + + + StringsTable + Acknowledgements + Title + Acknowledgements + + diff --git a/Pods/Target Support Files/Pods-Repository/Pods-Repository-dummy.m b/Pods/Target Support Files/Pods-Repository/Pods-Repository-dummy.m new file mode 100644 index 0000000..61a6006 --- /dev/null +++ b/Pods/Target Support Files/Pods-Repository/Pods-Repository-dummy.m @@ -0,0 +1,5 @@ +#import +@interface PodsDummy_Pods_Repository : NSObject +@end +@implementation PodsDummy_Pods_Repository +@end diff --git a/Pods/Target Support Files/Pods-Repository/Pods-Repository-umbrella.h b/Pods/Target Support Files/Pods-Repository/Pods-Repository-umbrella.h new file mode 100644 index 0000000..fccd427 --- /dev/null +++ b/Pods/Target Support Files/Pods-Repository/Pods-Repository-umbrella.h @@ -0,0 +1,16 @@ +#ifdef __OBJC__ +#import +#else +#ifndef FOUNDATION_EXPORT +#if defined(__cplusplus) +#define FOUNDATION_EXPORT extern "C" +#else +#define FOUNDATION_EXPORT extern +#endif +#endif +#endif + + +FOUNDATION_EXPORT double Pods_RepositoryVersionNumber; +FOUNDATION_EXPORT const unsigned char Pods_RepositoryVersionString[]; + diff --git a/Pods/Target Support Files/Pods-Repository/Pods-Repository.debug.xcconfig b/Pods/Target Support Files/Pods-Repository/Pods-Repository.debug.xcconfig new file mode 100644 index 0000000..bd50ccc --- /dev/null +++ b/Pods/Target Support Files/Pods-Repository/Pods-Repository.debug.xcconfig @@ -0,0 +1,15 @@ +ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift" +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift/RxSwift.framework/Headers" +LIBRARY_SEARCH_PATHS = $(inherited) "${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift +OTHER_CFLAGS = $(inherited) -isystem "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift/RxSwift.framework/Headers" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift" +OTHER_LDFLAGS = $(inherited) -ObjC -framework "RxSwift" +OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_PODFILE_DIR_PATH = ${SRCROOT}/. +PODS_ROOT = ${SRCROOT}/Pods +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/Pods/Target Support Files/Pods-Repository/Pods-Repository.modulemap b/Pods/Target Support Files/Pods-Repository/Pods-Repository.modulemap new file mode 100644 index 0000000..0b481c9 --- /dev/null +++ b/Pods/Target Support Files/Pods-Repository/Pods-Repository.modulemap @@ -0,0 +1,6 @@ +framework module Pods_Repository { + umbrella header "Pods-Repository-umbrella.h" + + export * + module * { export * } +} diff --git a/Pods/Target Support Files/Pods-Repository/Pods-Repository.release.xcconfig b/Pods/Target Support Files/Pods-Repository/Pods-Repository.release.xcconfig new file mode 100644 index 0000000..bd50ccc --- /dev/null +++ b/Pods/Target Support Files/Pods-Repository/Pods-Repository.release.xcconfig @@ -0,0 +1,15 @@ +ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift" +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift/RxSwift.framework/Headers" +LIBRARY_SEARCH_PATHS = $(inherited) "${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift +OTHER_CFLAGS = $(inherited) -isystem "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift/RxSwift.framework/Headers" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift" +OTHER_LDFLAGS = $(inherited) -ObjC -framework "RxSwift" +OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_PODFILE_DIR_PATH = ${SRCROOT}/. +PODS_ROOT = ${SRCROOT}/Pods +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/Pods/Target Support Files/Pods-RepositoryTests/Pods-RepositoryTests-Info.plist b/Pods/Target Support Files/Pods-RepositoryTests/Pods-RepositoryTests-Info.plist new file mode 100644 index 0000000..2243fe6 --- /dev/null +++ b/Pods/Target Support Files/Pods-RepositoryTests/Pods-RepositoryTests-Info.plist @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIdentifier + ${PRODUCT_BUNDLE_IDENTIFIER} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0.0 + CFBundleSignature + ???? + CFBundleVersion + ${CURRENT_PROJECT_VERSION} + NSPrincipalClass + + + diff --git a/Pods/Target Support Files/Pods-RepositoryTests/Pods-RepositoryTests-acknowledgements.markdown b/Pods/Target Support Files/Pods-RepositoryTests/Pods-RepositoryTests-acknowledgements.markdown new file mode 100644 index 0000000..df46876 --- /dev/null +++ b/Pods/Target Support Files/Pods-RepositoryTests/Pods-RepositoryTests-acknowledgements.markdown @@ -0,0 +1,42 @@ +# Acknowledgements +This application makes use of the following third party libraries: + +## RxRelay + +**The MIT License** +**Copyright © 2015 Krunoslav Zaher, Shai Mishali** +**All rights reserved.** + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + +## RxSwift + +**The MIT License** +**Copyright © 2015 Krunoslav Zaher, Shai Mishali** +**All rights reserved.** + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + +## RxTest + +**The MIT License** +**Copyright © 2015 Krunoslav Zaher, Shai Mishali** +**All rights reserved.** + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +Generated by CocoaPods - https://cocoapods.org diff --git a/Pods/Target Support Files/Pods-RepositoryTests/Pods-RepositoryTests-acknowledgements.plist b/Pods/Target Support Files/Pods-RepositoryTests/Pods-RepositoryTests-acknowledgements.plist new file mode 100644 index 0000000..87c8631 --- /dev/null +++ b/Pods/Target Support Files/Pods-RepositoryTests/Pods-RepositoryTests-acknowledgements.plist @@ -0,0 +1,86 @@ + + + + + PreferenceSpecifiers + + + FooterText + This application makes use of the following third party libraries: + Title + Acknowledgements + Type + PSGroupSpecifier + + + FooterText + **The MIT License** +**Copyright © 2015 Krunoslav Zaher, Shai Mishali** +**All rights reserved.** + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + License + MIT + Title + RxRelay + Type + PSGroupSpecifier + + + FooterText + **The MIT License** +**Copyright © 2015 Krunoslav Zaher, Shai Mishali** +**All rights reserved.** + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + License + MIT + Title + RxSwift + Type + PSGroupSpecifier + + + FooterText + **The MIT License** +**Copyright © 2015 Krunoslav Zaher, Shai Mishali** +**All rights reserved.** + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + License + MIT + Title + RxTest + Type + PSGroupSpecifier + + + FooterText + Generated by CocoaPods - https://cocoapods.org + Title + + Type + PSGroupSpecifier + + + StringsTable + Acknowledgements + Title + Acknowledgements + + diff --git a/Pods/Target Support Files/Pods-RepositoryTests/Pods-RepositoryTests-dummy.m b/Pods/Target Support Files/Pods-RepositoryTests/Pods-RepositoryTests-dummy.m new file mode 100644 index 0000000..8a8be41 --- /dev/null +++ b/Pods/Target Support Files/Pods-RepositoryTests/Pods-RepositoryTests-dummy.m @@ -0,0 +1,5 @@ +#import +@interface PodsDummy_Pods_RepositoryTests : NSObject +@end +@implementation PodsDummy_Pods_RepositoryTests +@end diff --git a/Pods/Target Support Files/Pods-RepositoryTests/Pods-RepositoryTests-umbrella.h b/Pods/Target Support Files/Pods-RepositoryTests/Pods-RepositoryTests-umbrella.h new file mode 100644 index 0000000..6d2ab58 --- /dev/null +++ b/Pods/Target Support Files/Pods-RepositoryTests/Pods-RepositoryTests-umbrella.h @@ -0,0 +1,16 @@ +#ifdef __OBJC__ +#import +#else +#ifndef FOUNDATION_EXPORT +#if defined(__cplusplus) +#define FOUNDATION_EXPORT extern "C" +#else +#define FOUNDATION_EXPORT extern +#endif +#endif +#endif + + +FOUNDATION_EXPORT double Pods_RepositoryTestsVersionNumber; +FOUNDATION_EXPORT const unsigned char Pods_RepositoryTestsVersionString[]; + diff --git a/Pods/Target Support Files/Pods-RepositoryTests/Pods-RepositoryTests.debug.xcconfig b/Pods/Target Support Files/Pods-RepositoryTests/Pods-RepositoryTests.debug.xcconfig new file mode 100644 index 0000000..8000a84 --- /dev/null +++ b/Pods/Target Support Files/Pods-RepositoryTests/Pods-RepositoryTests.debug.xcconfig @@ -0,0 +1,15 @@ +ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO +FRAMEWORK_SEARCH_PATHS = $(inherited) "$(PLATFORM_DIR)/Developer/Library/Frameworks" "${PODS_CONFIGURATION_BUILD_DIR}/RxRelay" "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift" "${PODS_CONFIGURATION_BUILD_DIR}/RxTest" +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/RxRelay/RxRelay.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift/RxSwift.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/RxTest/RxTest.framework/Headers" +LIBRARY_SEARCH_PATHS = $(inherited) "${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift +OTHER_CFLAGS = $(inherited) -isystem "${PODS_CONFIGURATION_BUILD_DIR}/RxRelay/RxRelay.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift/RxSwift.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/RxTest/RxTest.framework/Headers" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/RxRelay" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift" -iframework "$(PLATFORM_DIR)/Developer/Library/Frameworks" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/RxTest" +OTHER_LDFLAGS = $(inherited) -ObjC -framework "RxRelay" -framework "RxSwift" -framework "RxTest" -framework "XCTest" +OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_PODFILE_DIR_PATH = ${SRCROOT}/. +PODS_ROOT = ${SRCROOT}/Pods +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/Pods/Target Support Files/Pods-RepositoryTests/Pods-RepositoryTests.modulemap b/Pods/Target Support Files/Pods-RepositoryTests/Pods-RepositoryTests.modulemap new file mode 100644 index 0000000..69c6e2e --- /dev/null +++ b/Pods/Target Support Files/Pods-RepositoryTests/Pods-RepositoryTests.modulemap @@ -0,0 +1,6 @@ +framework module Pods_RepositoryTests { + umbrella header "Pods-RepositoryTests-umbrella.h" + + export * + module * { export * } +} diff --git a/Pods/Target Support Files/Pods-RepositoryTests/Pods-RepositoryTests.release.xcconfig b/Pods/Target Support Files/Pods-RepositoryTests/Pods-RepositoryTests.release.xcconfig new file mode 100644 index 0000000..8000a84 --- /dev/null +++ b/Pods/Target Support Files/Pods-RepositoryTests/Pods-RepositoryTests.release.xcconfig @@ -0,0 +1,15 @@ +ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO +FRAMEWORK_SEARCH_PATHS = $(inherited) "$(PLATFORM_DIR)/Developer/Library/Frameworks" "${PODS_CONFIGURATION_BUILD_DIR}/RxRelay" "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift" "${PODS_CONFIGURATION_BUILD_DIR}/RxTest" +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/RxRelay/RxRelay.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift/RxSwift.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/RxTest/RxTest.framework/Headers" +LIBRARY_SEARCH_PATHS = $(inherited) "${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift +OTHER_CFLAGS = $(inherited) -isystem "${PODS_CONFIGURATION_BUILD_DIR}/RxRelay/RxRelay.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift/RxSwift.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/RxTest/RxTest.framework/Headers" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/RxRelay" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift" -iframework "$(PLATFORM_DIR)/Developer/Library/Frameworks" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/RxTest" +OTHER_LDFLAGS = $(inherited) -ObjC -framework "RxRelay" -framework "RxSwift" -framework "RxTest" -framework "XCTest" +OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_PODFILE_DIR_PATH = ${SRCROOT}/. +PODS_ROOT = ${SRCROOT}/Pods +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/Pods/Target Support Files/Pods-TestExtension/Pods-TestExtension-Info.plist b/Pods/Target Support Files/Pods-TestExtension/Pods-TestExtension-Info.plist new file mode 100644 index 0000000..2243fe6 --- /dev/null +++ b/Pods/Target Support Files/Pods-TestExtension/Pods-TestExtension-Info.plist @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIdentifier + ${PRODUCT_BUNDLE_IDENTIFIER} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0.0 + CFBundleSignature + ???? + CFBundleVersion + ${CURRENT_PROJECT_VERSION} + NSPrincipalClass + + + diff --git a/Pods/Target Support Files/Pods-TestExtension/Pods-TestExtension-acknowledgements.markdown b/Pods/Target Support Files/Pods-TestExtension/Pods-TestExtension-acknowledgements.markdown new file mode 100644 index 0000000..decb7f1 --- /dev/null +++ b/Pods/Target Support Files/Pods-TestExtension/Pods-TestExtension-acknowledgements.markdown @@ -0,0 +1,29 @@ +# Acknowledgements +This application makes use of the following third party libraries: + +## RxSwift + +**The MIT License** +**Copyright © 2015 Krunoslav Zaher, Shai Mishali** +**All rights reserved.** + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + +## RxTest + +**The MIT License** +**Copyright © 2015 Krunoslav Zaher, Shai Mishali** +**All rights reserved.** + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +Generated by CocoaPods - https://cocoapods.org diff --git a/Pods/Target Support Files/Pods-TestExtension/Pods-TestExtension-acknowledgements.plist b/Pods/Target Support Files/Pods-TestExtension/Pods-TestExtension-acknowledgements.plist new file mode 100644 index 0000000..4dd1c8d --- /dev/null +++ b/Pods/Target Support Files/Pods-TestExtension/Pods-TestExtension-acknowledgements.plist @@ -0,0 +1,67 @@ + + + + + PreferenceSpecifiers + + + FooterText + This application makes use of the following third party libraries: + Title + Acknowledgements + Type + PSGroupSpecifier + + + FooterText + **The MIT License** +**Copyright © 2015 Krunoslav Zaher, Shai Mishali** +**All rights reserved.** + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + License + MIT + Title + RxSwift + Type + PSGroupSpecifier + + + FooterText + **The MIT License** +**Copyright © 2015 Krunoslav Zaher, Shai Mishali** +**All rights reserved.** + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + License + MIT + Title + RxTest + Type + PSGroupSpecifier + + + FooterText + Generated by CocoaPods - https://cocoapods.org + Title + + Type + PSGroupSpecifier + + + StringsTable + Acknowledgements + Title + Acknowledgements + + diff --git a/Pods/Target Support Files/Pods-TestExtension/Pods-TestExtension-dummy.m b/Pods/Target Support Files/Pods-TestExtension/Pods-TestExtension-dummy.m new file mode 100644 index 0000000..dfce983 --- /dev/null +++ b/Pods/Target Support Files/Pods-TestExtension/Pods-TestExtension-dummy.m @@ -0,0 +1,5 @@ +#import +@interface PodsDummy_Pods_TestExtension : NSObject +@end +@implementation PodsDummy_Pods_TestExtension +@end diff --git a/Pods/Target Support Files/Pods-TestExtension/Pods-TestExtension-umbrella.h b/Pods/Target Support Files/Pods-TestExtension/Pods-TestExtension-umbrella.h new file mode 100644 index 0000000..4b06d71 --- /dev/null +++ b/Pods/Target Support Files/Pods-TestExtension/Pods-TestExtension-umbrella.h @@ -0,0 +1,16 @@ +#ifdef __OBJC__ +#import +#else +#ifndef FOUNDATION_EXPORT +#if defined(__cplusplus) +#define FOUNDATION_EXPORT extern "C" +#else +#define FOUNDATION_EXPORT extern +#endif +#endif +#endif + + +FOUNDATION_EXPORT double Pods_TestExtensionVersionNumber; +FOUNDATION_EXPORT const unsigned char Pods_TestExtensionVersionString[]; + diff --git a/Pods/Target Support Files/Pods-TestExtension/Pods-TestExtension.debug.xcconfig b/Pods/Target Support Files/Pods-TestExtension/Pods-TestExtension.debug.xcconfig new file mode 100644 index 0000000..b80fe31 --- /dev/null +++ b/Pods/Target Support Files/Pods-TestExtension/Pods-TestExtension.debug.xcconfig @@ -0,0 +1,15 @@ +ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO +FRAMEWORK_SEARCH_PATHS = $(inherited) "$(PLATFORM_DIR)/Developer/Library/Frameworks" "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift" "${PODS_CONFIGURATION_BUILD_DIR}/RxTest" +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift/RxSwift.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/RxTest/RxTest.framework/Headers" +LIBRARY_SEARCH_PATHS = $(inherited) "${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift +OTHER_CFLAGS = $(inherited) -isystem "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift/RxSwift.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/RxTest/RxTest.framework/Headers" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift" -iframework "$(PLATFORM_DIR)/Developer/Library/Frameworks" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/RxTest" +OTHER_LDFLAGS = $(inherited) -ObjC -framework "RxSwift" -framework "RxTest" -framework "XCTest" +OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_PODFILE_DIR_PATH = ${SRCROOT}/. +PODS_ROOT = ${SRCROOT}/Pods +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/Pods/Target Support Files/Pods-TestExtension/Pods-TestExtension.modulemap b/Pods/Target Support Files/Pods-TestExtension/Pods-TestExtension.modulemap new file mode 100644 index 0000000..1d39574 --- /dev/null +++ b/Pods/Target Support Files/Pods-TestExtension/Pods-TestExtension.modulemap @@ -0,0 +1,6 @@ +framework module Pods_TestExtension { + umbrella header "Pods-TestExtension-umbrella.h" + + export * + module * { export * } +} diff --git a/Pods/Target Support Files/Pods-TestExtension/Pods-TestExtension.release.xcconfig b/Pods/Target Support Files/Pods-TestExtension/Pods-TestExtension.release.xcconfig new file mode 100644 index 0000000..b80fe31 --- /dev/null +++ b/Pods/Target Support Files/Pods-TestExtension/Pods-TestExtension.release.xcconfig @@ -0,0 +1,15 @@ +ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO +FRAMEWORK_SEARCH_PATHS = $(inherited) "$(PLATFORM_DIR)/Developer/Library/Frameworks" "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift" "${PODS_CONFIGURATION_BUILD_DIR}/RxTest" +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift/RxSwift.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/RxTest/RxTest.framework/Headers" +LIBRARY_SEARCH_PATHS = $(inherited) "${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift +OTHER_CFLAGS = $(inherited) -isystem "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift/RxSwift.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/RxTest/RxTest.framework/Headers" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift" -iframework "$(PLATFORM_DIR)/Developer/Library/Frameworks" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/RxTest" +OTHER_LDFLAGS = $(inherited) -ObjC -framework "RxSwift" -framework "RxTest" -framework "XCTest" +OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_PODFILE_DIR_PATH = ${SRCROOT}/. +PODS_ROOT = ${SRCROOT}/Pods +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/Pods/Target Support Files/Pods-UIComponent/Pods-UIComponent-Info.plist b/Pods/Target Support Files/Pods-UIComponent/Pods-UIComponent-Info.plist new file mode 100644 index 0000000..2243fe6 --- /dev/null +++ b/Pods/Target Support Files/Pods-UIComponent/Pods-UIComponent-Info.plist @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIdentifier + ${PRODUCT_BUNDLE_IDENTIFIER} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0.0 + CFBundleSignature + ???? + CFBundleVersion + ${CURRENT_PROJECT_VERSION} + NSPrincipalClass + + + diff --git a/Pods/Target Support Files/Pods-UIComponent/Pods-UIComponent-acknowledgements.markdown b/Pods/Target Support Files/Pods-UIComponent/Pods-UIComponent-acknowledgements.markdown new file mode 100644 index 0000000..adce18b --- /dev/null +++ b/Pods/Target Support Files/Pods-UIComponent/Pods-UIComponent-acknowledgements.markdown @@ -0,0 +1,67 @@ +# Acknowledgements +This application makes use of the following third party libraries: + +## RxCocoa + +**The MIT License** +**Copyright © 2015 Krunoslav Zaher, Shai Mishali** +**All rights reserved.** + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + +## RxRelay + +**The MIT License** +**Copyright © 2015 Krunoslav Zaher, Shai Mishali** +**All rights reserved.** + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + +## RxSwift + +**The MIT License** +**Copyright © 2015 Krunoslav Zaher, Shai Mishali** +**All rights reserved.** + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + +## Unio + +MIT License + +Copyright (c) 2019 AbemaTV + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +Generated by CocoaPods - https://cocoapods.org diff --git a/Pods/Target Support Files/Pods-UIComponent/Pods-UIComponent-acknowledgements.plist b/Pods/Target Support Files/Pods-UIComponent/Pods-UIComponent-acknowledgements.plist new file mode 100644 index 0000000..33fbe5a --- /dev/null +++ b/Pods/Target Support Files/Pods-UIComponent/Pods-UIComponent-acknowledgements.plist @@ -0,0 +1,117 @@ + + + + + PreferenceSpecifiers + + + FooterText + This application makes use of the following third party libraries: + Title + Acknowledgements + Type + PSGroupSpecifier + + + FooterText + **The MIT License** +**Copyright © 2015 Krunoslav Zaher, Shai Mishali** +**All rights reserved.** + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + License + MIT + Title + RxCocoa + Type + PSGroupSpecifier + + + FooterText + **The MIT License** +**Copyright © 2015 Krunoslav Zaher, Shai Mishali** +**All rights reserved.** + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + License + MIT + Title + RxRelay + Type + PSGroupSpecifier + + + FooterText + **The MIT License** +**Copyright © 2015 Krunoslav Zaher, Shai Mishali** +**All rights reserved.** + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + License + MIT + Title + RxSwift + Type + PSGroupSpecifier + + + FooterText + MIT License + +Copyright (c) 2019 AbemaTV + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + + License + MIT + Title + Unio + Type + PSGroupSpecifier + + + FooterText + Generated by CocoaPods - https://cocoapods.org + Title + + Type + PSGroupSpecifier + + + StringsTable + Acknowledgements + Title + Acknowledgements + + diff --git a/Pods/Target Support Files/Pods-UIComponent/Pods-UIComponent-dummy.m b/Pods/Target Support Files/Pods-UIComponent/Pods-UIComponent-dummy.m new file mode 100644 index 0000000..cd6d9cf --- /dev/null +++ b/Pods/Target Support Files/Pods-UIComponent/Pods-UIComponent-dummy.m @@ -0,0 +1,5 @@ +#import +@interface PodsDummy_Pods_UIComponent : NSObject +@end +@implementation PodsDummy_Pods_UIComponent +@end diff --git a/Pods/Target Support Files/Pods-UIComponent/Pods-UIComponent-umbrella.h b/Pods/Target Support Files/Pods-UIComponent/Pods-UIComponent-umbrella.h new file mode 100644 index 0000000..4e6dc9c --- /dev/null +++ b/Pods/Target Support Files/Pods-UIComponent/Pods-UIComponent-umbrella.h @@ -0,0 +1,16 @@ +#ifdef __OBJC__ +#import +#else +#ifndef FOUNDATION_EXPORT +#if defined(__cplusplus) +#define FOUNDATION_EXPORT extern "C" +#else +#define FOUNDATION_EXPORT extern +#endif +#endif +#endif + + +FOUNDATION_EXPORT double Pods_UIComponentVersionNumber; +FOUNDATION_EXPORT const unsigned char Pods_UIComponentVersionString[]; + diff --git a/Pods/Target Support Files/Pods-UIComponent/Pods-UIComponent.debug.xcconfig b/Pods/Target Support Files/Pods-UIComponent/Pods-UIComponent.debug.xcconfig new file mode 100644 index 0000000..37bd9c8 --- /dev/null +++ b/Pods/Target Support Files/Pods-UIComponent/Pods-UIComponent.debug.xcconfig @@ -0,0 +1,15 @@ +ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/RxCocoa" "${PODS_CONFIGURATION_BUILD_DIR}/RxRelay" "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift" "${PODS_CONFIGURATION_BUILD_DIR}/Unio" +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/RxCocoa/RxCocoa.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/RxRelay/RxRelay.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift/RxSwift.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/Unio/Unio.framework/Headers" +LIBRARY_SEARCH_PATHS = $(inherited) "${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift +OTHER_CFLAGS = $(inherited) -isystem "${PODS_CONFIGURATION_BUILD_DIR}/RxCocoa/RxCocoa.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/RxRelay/RxRelay.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift/RxSwift.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/Unio/Unio.framework/Headers" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/RxCocoa" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/RxRelay" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/Unio" +OTHER_LDFLAGS = $(inherited) -ObjC -framework "RxCocoa" -framework "RxRelay" -framework "RxSwift" -framework "Unio" +OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_PODFILE_DIR_PATH = ${SRCROOT}/. +PODS_ROOT = ${SRCROOT}/Pods +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/Pods/Target Support Files/Pods-UIComponent/Pods-UIComponent.modulemap b/Pods/Target Support Files/Pods-UIComponent/Pods-UIComponent.modulemap new file mode 100644 index 0000000..beb6525 --- /dev/null +++ b/Pods/Target Support Files/Pods-UIComponent/Pods-UIComponent.modulemap @@ -0,0 +1,6 @@ +framework module Pods_UIComponent { + umbrella header "Pods-UIComponent-umbrella.h" + + export * + module * { export * } +} diff --git a/Pods/Target Support Files/Pods-UIComponent/Pods-UIComponent.release.xcconfig b/Pods/Target Support Files/Pods-UIComponent/Pods-UIComponent.release.xcconfig new file mode 100644 index 0000000..37bd9c8 --- /dev/null +++ b/Pods/Target Support Files/Pods-UIComponent/Pods-UIComponent.release.xcconfig @@ -0,0 +1,15 @@ +ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/RxCocoa" "${PODS_CONFIGURATION_BUILD_DIR}/RxRelay" "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift" "${PODS_CONFIGURATION_BUILD_DIR}/Unio" +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/RxCocoa/RxCocoa.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/RxRelay/RxRelay.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift/RxSwift.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/Unio/Unio.framework/Headers" +LIBRARY_SEARCH_PATHS = $(inherited) "${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift +OTHER_CFLAGS = $(inherited) -isystem "${PODS_CONFIGURATION_BUILD_DIR}/RxCocoa/RxCocoa.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/RxRelay/RxRelay.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift/RxSwift.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/Unio/Unio.framework/Headers" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/RxCocoa" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/RxRelay" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/Unio" +OTHER_LDFLAGS = $(inherited) -ObjC -framework "RxCocoa" -framework "RxRelay" -framework "RxSwift" -framework "Unio" +OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_PODFILE_DIR_PATH = ${SRCROOT}/. +PODS_ROOT = ${SRCROOT}/Pods +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/Pods/Target Support Files/Pods-UILogic/Pods-UILogic-Info.plist b/Pods/Target Support Files/Pods-UILogic/Pods-UILogic-Info.plist new file mode 100644 index 0000000..2243fe6 --- /dev/null +++ b/Pods/Target Support Files/Pods-UILogic/Pods-UILogic-Info.plist @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIdentifier + ${PRODUCT_BUNDLE_IDENTIFIER} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0.0 + CFBundleSignature + ???? + CFBundleVersion + ${CURRENT_PROJECT_VERSION} + NSPrincipalClass + + + diff --git a/Pods/Target Support Files/Pods-UILogic/Pods-UILogic-acknowledgements.markdown b/Pods/Target Support Files/Pods-UILogic/Pods-UILogic-acknowledgements.markdown new file mode 100644 index 0000000..adce18b --- /dev/null +++ b/Pods/Target Support Files/Pods-UILogic/Pods-UILogic-acknowledgements.markdown @@ -0,0 +1,67 @@ +# Acknowledgements +This application makes use of the following third party libraries: + +## RxCocoa + +**The MIT License** +**Copyright © 2015 Krunoslav Zaher, Shai Mishali** +**All rights reserved.** + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + +## RxRelay + +**The MIT License** +**Copyright © 2015 Krunoslav Zaher, Shai Mishali** +**All rights reserved.** + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + +## RxSwift + +**The MIT License** +**Copyright © 2015 Krunoslav Zaher, Shai Mishali** +**All rights reserved.** + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + +## Unio + +MIT License + +Copyright (c) 2019 AbemaTV + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +Generated by CocoaPods - https://cocoapods.org diff --git a/Pods/Target Support Files/Pods-UILogic/Pods-UILogic-acknowledgements.plist b/Pods/Target Support Files/Pods-UILogic/Pods-UILogic-acknowledgements.plist new file mode 100644 index 0000000..33fbe5a --- /dev/null +++ b/Pods/Target Support Files/Pods-UILogic/Pods-UILogic-acknowledgements.plist @@ -0,0 +1,117 @@ + + + + + PreferenceSpecifiers + + + FooterText + This application makes use of the following third party libraries: + Title + Acknowledgements + Type + PSGroupSpecifier + + + FooterText + **The MIT License** +**Copyright © 2015 Krunoslav Zaher, Shai Mishali** +**All rights reserved.** + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + License + MIT + Title + RxCocoa + Type + PSGroupSpecifier + + + FooterText + **The MIT License** +**Copyright © 2015 Krunoslav Zaher, Shai Mishali** +**All rights reserved.** + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + License + MIT + Title + RxRelay + Type + PSGroupSpecifier + + + FooterText + **The MIT License** +**Copyright © 2015 Krunoslav Zaher, Shai Mishali** +**All rights reserved.** + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + License + MIT + Title + RxSwift + Type + PSGroupSpecifier + + + FooterText + MIT License + +Copyright (c) 2019 AbemaTV + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + + License + MIT + Title + Unio + Type + PSGroupSpecifier + + + FooterText + Generated by CocoaPods - https://cocoapods.org + Title + + Type + PSGroupSpecifier + + + StringsTable + Acknowledgements + Title + Acknowledgements + + diff --git a/Pods/Target Support Files/Pods-UILogic/Pods-UILogic-dummy.m b/Pods/Target Support Files/Pods-UILogic/Pods-UILogic-dummy.m new file mode 100644 index 0000000..a524327 --- /dev/null +++ b/Pods/Target Support Files/Pods-UILogic/Pods-UILogic-dummy.m @@ -0,0 +1,5 @@ +#import +@interface PodsDummy_Pods_UILogic : NSObject +@end +@implementation PodsDummy_Pods_UILogic +@end diff --git a/Pods/Target Support Files/Pods-UILogic/Pods-UILogic-umbrella.h b/Pods/Target Support Files/Pods-UILogic/Pods-UILogic-umbrella.h new file mode 100644 index 0000000..a660ed3 --- /dev/null +++ b/Pods/Target Support Files/Pods-UILogic/Pods-UILogic-umbrella.h @@ -0,0 +1,16 @@ +#ifdef __OBJC__ +#import +#else +#ifndef FOUNDATION_EXPORT +#if defined(__cplusplus) +#define FOUNDATION_EXPORT extern "C" +#else +#define FOUNDATION_EXPORT extern +#endif +#endif +#endif + + +FOUNDATION_EXPORT double Pods_UILogicVersionNumber; +FOUNDATION_EXPORT const unsigned char Pods_UILogicVersionString[]; + diff --git a/Pods/Target Support Files/Pods-UILogic/Pods-UILogic.debug.xcconfig b/Pods/Target Support Files/Pods-UILogic/Pods-UILogic.debug.xcconfig new file mode 100644 index 0000000..37bd9c8 --- /dev/null +++ b/Pods/Target Support Files/Pods-UILogic/Pods-UILogic.debug.xcconfig @@ -0,0 +1,15 @@ +ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/RxCocoa" "${PODS_CONFIGURATION_BUILD_DIR}/RxRelay" "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift" "${PODS_CONFIGURATION_BUILD_DIR}/Unio" +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/RxCocoa/RxCocoa.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/RxRelay/RxRelay.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift/RxSwift.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/Unio/Unio.framework/Headers" +LIBRARY_SEARCH_PATHS = $(inherited) "${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift +OTHER_CFLAGS = $(inherited) -isystem "${PODS_CONFIGURATION_BUILD_DIR}/RxCocoa/RxCocoa.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/RxRelay/RxRelay.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift/RxSwift.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/Unio/Unio.framework/Headers" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/RxCocoa" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/RxRelay" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/Unio" +OTHER_LDFLAGS = $(inherited) -ObjC -framework "RxCocoa" -framework "RxRelay" -framework "RxSwift" -framework "Unio" +OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_PODFILE_DIR_PATH = ${SRCROOT}/. +PODS_ROOT = ${SRCROOT}/Pods +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/Pods/Target Support Files/Pods-UILogic/Pods-UILogic.modulemap b/Pods/Target Support Files/Pods-UILogic/Pods-UILogic.modulemap new file mode 100644 index 0000000..0595f38 --- /dev/null +++ b/Pods/Target Support Files/Pods-UILogic/Pods-UILogic.modulemap @@ -0,0 +1,6 @@ +framework module Pods_UILogic { + umbrella header "Pods-UILogic-umbrella.h" + + export * + module * { export * } +} diff --git a/Pods/Target Support Files/Pods-UILogic/Pods-UILogic.release.xcconfig b/Pods/Target Support Files/Pods-UILogic/Pods-UILogic.release.xcconfig new file mode 100644 index 0000000..37bd9c8 --- /dev/null +++ b/Pods/Target Support Files/Pods-UILogic/Pods-UILogic.release.xcconfig @@ -0,0 +1,15 @@ +ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/RxCocoa" "${PODS_CONFIGURATION_BUILD_DIR}/RxRelay" "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift" "${PODS_CONFIGURATION_BUILD_DIR}/Unio" +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/RxCocoa/RxCocoa.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/RxRelay/RxRelay.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift/RxSwift.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/Unio/Unio.framework/Headers" +LIBRARY_SEARCH_PATHS = $(inherited) "${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift +OTHER_CFLAGS = $(inherited) -isystem "${PODS_CONFIGURATION_BUILD_DIR}/RxCocoa/RxCocoa.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/RxRelay/RxRelay.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift/RxSwift.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/Unio/Unio.framework/Headers" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/RxCocoa" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/RxRelay" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/Unio" +OTHER_LDFLAGS = $(inherited) -ObjC -framework "RxCocoa" -framework "RxRelay" -framework "RxSwift" -framework "Unio" +OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_PODFILE_DIR_PATH = ${SRCROOT}/. +PODS_ROOT = ${SRCROOT}/Pods +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/Pods/Target Support Files/Pods-UILogicInterface/Pods-UILogicInterface-Info.plist b/Pods/Target Support Files/Pods-UILogicInterface/Pods-UILogicInterface-Info.plist new file mode 100644 index 0000000..2243fe6 --- /dev/null +++ b/Pods/Target Support Files/Pods-UILogicInterface/Pods-UILogicInterface-Info.plist @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIdentifier + ${PRODUCT_BUNDLE_IDENTIFIER} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0.0 + CFBundleSignature + ???? + CFBundleVersion + ${CURRENT_PROJECT_VERSION} + NSPrincipalClass + + + diff --git a/Pods/Target Support Files/Pods-UILogicInterface/Pods-UILogicInterface-acknowledgements.markdown b/Pods/Target Support Files/Pods-UILogicInterface/Pods-UILogicInterface-acknowledgements.markdown new file mode 100644 index 0000000..adce18b --- /dev/null +++ b/Pods/Target Support Files/Pods-UILogicInterface/Pods-UILogicInterface-acknowledgements.markdown @@ -0,0 +1,67 @@ +# Acknowledgements +This application makes use of the following third party libraries: + +## RxCocoa + +**The MIT License** +**Copyright © 2015 Krunoslav Zaher, Shai Mishali** +**All rights reserved.** + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + +## RxRelay + +**The MIT License** +**Copyright © 2015 Krunoslav Zaher, Shai Mishali** +**All rights reserved.** + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + +## RxSwift + +**The MIT License** +**Copyright © 2015 Krunoslav Zaher, Shai Mishali** +**All rights reserved.** + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + +## Unio + +MIT License + +Copyright (c) 2019 AbemaTV + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +Generated by CocoaPods - https://cocoapods.org diff --git a/Pods/Target Support Files/Pods-UILogicInterface/Pods-UILogicInterface-acknowledgements.plist b/Pods/Target Support Files/Pods-UILogicInterface/Pods-UILogicInterface-acknowledgements.plist new file mode 100644 index 0000000..33fbe5a --- /dev/null +++ b/Pods/Target Support Files/Pods-UILogicInterface/Pods-UILogicInterface-acknowledgements.plist @@ -0,0 +1,117 @@ + + + + + PreferenceSpecifiers + + + FooterText + This application makes use of the following third party libraries: + Title + Acknowledgements + Type + PSGroupSpecifier + + + FooterText + **The MIT License** +**Copyright © 2015 Krunoslav Zaher, Shai Mishali** +**All rights reserved.** + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + License + MIT + Title + RxCocoa + Type + PSGroupSpecifier + + + FooterText + **The MIT License** +**Copyright © 2015 Krunoslav Zaher, Shai Mishali** +**All rights reserved.** + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + License + MIT + Title + RxRelay + Type + PSGroupSpecifier + + + FooterText + **The MIT License** +**Copyright © 2015 Krunoslav Zaher, Shai Mishali** +**All rights reserved.** + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + License + MIT + Title + RxSwift + Type + PSGroupSpecifier + + + FooterText + MIT License + +Copyright (c) 2019 AbemaTV + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + + License + MIT + Title + Unio + Type + PSGroupSpecifier + + + FooterText + Generated by CocoaPods - https://cocoapods.org + Title + + Type + PSGroupSpecifier + + + StringsTable + Acknowledgements + Title + Acknowledgements + + diff --git a/Pods/Target Support Files/Pods-UILogicInterface/Pods-UILogicInterface-dummy.m b/Pods/Target Support Files/Pods-UILogicInterface/Pods-UILogicInterface-dummy.m new file mode 100644 index 0000000..c0e45f1 --- /dev/null +++ b/Pods/Target Support Files/Pods-UILogicInterface/Pods-UILogicInterface-dummy.m @@ -0,0 +1,5 @@ +#import +@interface PodsDummy_Pods_UILogicInterface : NSObject +@end +@implementation PodsDummy_Pods_UILogicInterface +@end diff --git a/Pods/Target Support Files/Pods-UILogicInterface/Pods-UILogicInterface-umbrella.h b/Pods/Target Support Files/Pods-UILogicInterface/Pods-UILogicInterface-umbrella.h new file mode 100644 index 0000000..c9f94b3 --- /dev/null +++ b/Pods/Target Support Files/Pods-UILogicInterface/Pods-UILogicInterface-umbrella.h @@ -0,0 +1,16 @@ +#ifdef __OBJC__ +#import +#else +#ifndef FOUNDATION_EXPORT +#if defined(__cplusplus) +#define FOUNDATION_EXPORT extern "C" +#else +#define FOUNDATION_EXPORT extern +#endif +#endif +#endif + + +FOUNDATION_EXPORT double Pods_UILogicInterfaceVersionNumber; +FOUNDATION_EXPORT const unsigned char Pods_UILogicInterfaceVersionString[]; + diff --git a/Pods/Target Support Files/Pods-UILogicInterface/Pods-UILogicInterface.debug.xcconfig b/Pods/Target Support Files/Pods-UILogicInterface/Pods-UILogicInterface.debug.xcconfig new file mode 100644 index 0000000..37bd9c8 --- /dev/null +++ b/Pods/Target Support Files/Pods-UILogicInterface/Pods-UILogicInterface.debug.xcconfig @@ -0,0 +1,15 @@ +ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/RxCocoa" "${PODS_CONFIGURATION_BUILD_DIR}/RxRelay" "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift" "${PODS_CONFIGURATION_BUILD_DIR}/Unio" +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/RxCocoa/RxCocoa.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/RxRelay/RxRelay.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift/RxSwift.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/Unio/Unio.framework/Headers" +LIBRARY_SEARCH_PATHS = $(inherited) "${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift +OTHER_CFLAGS = $(inherited) -isystem "${PODS_CONFIGURATION_BUILD_DIR}/RxCocoa/RxCocoa.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/RxRelay/RxRelay.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift/RxSwift.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/Unio/Unio.framework/Headers" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/RxCocoa" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/RxRelay" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/Unio" +OTHER_LDFLAGS = $(inherited) -ObjC -framework "RxCocoa" -framework "RxRelay" -framework "RxSwift" -framework "Unio" +OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_PODFILE_DIR_PATH = ${SRCROOT}/. +PODS_ROOT = ${SRCROOT}/Pods +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/Pods/Target Support Files/Pods-UILogicInterface/Pods-UILogicInterface.modulemap b/Pods/Target Support Files/Pods-UILogicInterface/Pods-UILogicInterface.modulemap new file mode 100644 index 0000000..08aa435 --- /dev/null +++ b/Pods/Target Support Files/Pods-UILogicInterface/Pods-UILogicInterface.modulemap @@ -0,0 +1,6 @@ +framework module Pods_UILogicInterface { + umbrella header "Pods-UILogicInterface-umbrella.h" + + export * + module * { export * } +} diff --git a/Pods/Target Support Files/Pods-UILogicInterface/Pods-UILogicInterface.release.xcconfig b/Pods/Target Support Files/Pods-UILogicInterface/Pods-UILogicInterface.release.xcconfig new file mode 100644 index 0000000..37bd9c8 --- /dev/null +++ b/Pods/Target Support Files/Pods-UILogicInterface/Pods-UILogicInterface.release.xcconfig @@ -0,0 +1,15 @@ +ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/RxCocoa" "${PODS_CONFIGURATION_BUILD_DIR}/RxRelay" "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift" "${PODS_CONFIGURATION_BUILD_DIR}/Unio" +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/RxCocoa/RxCocoa.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/RxRelay/RxRelay.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift/RxSwift.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/Unio/Unio.framework/Headers" +LIBRARY_SEARCH_PATHS = $(inherited) "${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift +OTHER_CFLAGS = $(inherited) -isystem "${PODS_CONFIGURATION_BUILD_DIR}/RxCocoa/RxCocoa.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/RxRelay/RxRelay.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift/RxSwift.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/Unio/Unio.framework/Headers" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/RxCocoa" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/RxRelay" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/Unio" +OTHER_LDFLAGS = $(inherited) -ObjC -framework "RxCocoa" -framework "RxRelay" -framework "RxSwift" -framework "Unio" +OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_PODFILE_DIR_PATH = ${SRCROOT}/. +PODS_ROOT = ${SRCROOT}/Pods +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/Pods/Target Support Files/Pods-UILogicTests/Pods-UILogicTests-Info.plist b/Pods/Target Support Files/Pods-UILogicTests/Pods-UILogicTests-Info.plist new file mode 100644 index 0000000..2243fe6 --- /dev/null +++ b/Pods/Target Support Files/Pods-UILogicTests/Pods-UILogicTests-Info.plist @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIdentifier + ${PRODUCT_BUNDLE_IDENTIFIER} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0.0 + CFBundleSignature + ???? + CFBundleVersion + ${CURRENT_PROJECT_VERSION} + NSPrincipalClass + + + diff --git a/Pods/Target Support Files/Pods-UILogicTests/Pods-UILogicTests-acknowledgements.markdown b/Pods/Target Support Files/Pods-UILogicTests/Pods-UILogicTests-acknowledgements.markdown new file mode 100644 index 0000000..304ac4e --- /dev/null +++ b/Pods/Target Support Files/Pods-UILogicTests/Pods-UILogicTests-acknowledgements.markdown @@ -0,0 +1,80 @@ +# Acknowledgements +This application makes use of the following third party libraries: + +## RxCocoa + +**The MIT License** +**Copyright © 2015 Krunoslav Zaher, Shai Mishali** +**All rights reserved.** + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + +## RxRelay + +**The MIT License** +**Copyright © 2015 Krunoslav Zaher, Shai Mishali** +**All rights reserved.** + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + +## RxSwift + +**The MIT License** +**Copyright © 2015 Krunoslav Zaher, Shai Mishali** +**All rights reserved.** + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + +## Unio + +MIT License + +Copyright (c) 2019 AbemaTV + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + + +## RxTest + +**The MIT License** +**Copyright © 2015 Krunoslav Zaher, Shai Mishali** +**All rights reserved.** + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +Generated by CocoaPods - https://cocoapods.org diff --git a/Pods/Target Support Files/Pods-UILogicTests/Pods-UILogicTests-acknowledgements.plist b/Pods/Target Support Files/Pods-UILogicTests/Pods-UILogicTests-acknowledgements.plist new file mode 100644 index 0000000..ca9329c --- /dev/null +++ b/Pods/Target Support Files/Pods-UILogicTests/Pods-UILogicTests-acknowledgements.plist @@ -0,0 +1,136 @@ + + + + + PreferenceSpecifiers + + + FooterText + This application makes use of the following third party libraries: + Title + Acknowledgements + Type + PSGroupSpecifier + + + FooterText + **The MIT License** +**Copyright © 2015 Krunoslav Zaher, Shai Mishali** +**All rights reserved.** + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + License + MIT + Title + RxCocoa + Type + PSGroupSpecifier + + + FooterText + **The MIT License** +**Copyright © 2015 Krunoslav Zaher, Shai Mishali** +**All rights reserved.** + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + License + MIT + Title + RxRelay + Type + PSGroupSpecifier + + + FooterText + **The MIT License** +**Copyright © 2015 Krunoslav Zaher, Shai Mishali** +**All rights reserved.** + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + License + MIT + Title + RxSwift + Type + PSGroupSpecifier + + + FooterText + MIT License + +Copyright (c) 2019 AbemaTV + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + + License + MIT + Title + Unio + Type + PSGroupSpecifier + + + FooterText + **The MIT License** +**Copyright © 2015 Krunoslav Zaher, Shai Mishali** +**All rights reserved.** + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + License + MIT + Title + RxTest + Type + PSGroupSpecifier + + + FooterText + Generated by CocoaPods - https://cocoapods.org + Title + + Type + PSGroupSpecifier + + + StringsTable + Acknowledgements + Title + Acknowledgements + + diff --git a/Pods/Target Support Files/Pods-UILogicTests/Pods-UILogicTests-dummy.m b/Pods/Target Support Files/Pods-UILogicTests/Pods-UILogicTests-dummy.m new file mode 100644 index 0000000..8021f1d --- /dev/null +++ b/Pods/Target Support Files/Pods-UILogicTests/Pods-UILogicTests-dummy.m @@ -0,0 +1,5 @@ +#import +@interface PodsDummy_Pods_UILogicTests : NSObject +@end +@implementation PodsDummy_Pods_UILogicTests +@end diff --git a/Pods/Target Support Files/Pods-UILogicTests/Pods-UILogicTests-umbrella.h b/Pods/Target Support Files/Pods-UILogicTests/Pods-UILogicTests-umbrella.h new file mode 100644 index 0000000..815f1e3 --- /dev/null +++ b/Pods/Target Support Files/Pods-UILogicTests/Pods-UILogicTests-umbrella.h @@ -0,0 +1,16 @@ +#ifdef __OBJC__ +#import +#else +#ifndef FOUNDATION_EXPORT +#if defined(__cplusplus) +#define FOUNDATION_EXPORT extern "C" +#else +#define FOUNDATION_EXPORT extern +#endif +#endif +#endif + + +FOUNDATION_EXPORT double Pods_UILogicTestsVersionNumber; +FOUNDATION_EXPORT const unsigned char Pods_UILogicTestsVersionString[]; + diff --git a/Pods/Target Support Files/Pods-UILogicTests/Pods-UILogicTests.debug.xcconfig b/Pods/Target Support Files/Pods-UILogicTests/Pods-UILogicTests.debug.xcconfig new file mode 100644 index 0000000..5cc1029 --- /dev/null +++ b/Pods/Target Support Files/Pods-UILogicTests/Pods-UILogicTests.debug.xcconfig @@ -0,0 +1,15 @@ +ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO +FRAMEWORK_SEARCH_PATHS = $(inherited) "$(PLATFORM_DIR)/Developer/Library/Frameworks" "${PODS_CONFIGURATION_BUILD_DIR}/RxCocoa" "${PODS_CONFIGURATION_BUILD_DIR}/RxRelay" "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift" "${PODS_CONFIGURATION_BUILD_DIR}/RxTest" "${PODS_CONFIGURATION_BUILD_DIR}/Unio" +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/RxCocoa/RxCocoa.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/RxRelay/RxRelay.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift/RxSwift.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/RxTest/RxTest.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/Unio/Unio.framework/Headers" +LIBRARY_SEARCH_PATHS = $(inherited) "${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift +OTHER_CFLAGS = $(inherited) -isystem "${PODS_CONFIGURATION_BUILD_DIR}/RxCocoa/RxCocoa.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/RxRelay/RxRelay.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift/RxSwift.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/Unio/Unio.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/RxTest/RxTest.framework/Headers" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/RxCocoa" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/RxRelay" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/Unio" -iframework "$(PLATFORM_DIR)/Developer/Library/Frameworks" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/RxTest" +OTHER_LDFLAGS = $(inherited) -ObjC -framework "RxCocoa" -framework "RxRelay" -framework "RxSwift" -framework "RxTest" -framework "Unio" -framework "XCTest" +OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_PODFILE_DIR_PATH = ${SRCROOT}/. +PODS_ROOT = ${SRCROOT}/Pods +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/Pods/Target Support Files/Pods-UILogicTests/Pods-UILogicTests.modulemap b/Pods/Target Support Files/Pods-UILogicTests/Pods-UILogicTests.modulemap new file mode 100644 index 0000000..c5a543c --- /dev/null +++ b/Pods/Target Support Files/Pods-UILogicTests/Pods-UILogicTests.modulemap @@ -0,0 +1,6 @@ +framework module Pods_UILogicTests { + umbrella header "Pods-UILogicTests-umbrella.h" + + export * + module * { export * } +} diff --git a/Pods/Target Support Files/Pods-UILogicTests/Pods-UILogicTests.release.xcconfig b/Pods/Target Support Files/Pods-UILogicTests/Pods-UILogicTests.release.xcconfig new file mode 100644 index 0000000..5cc1029 --- /dev/null +++ b/Pods/Target Support Files/Pods-UILogicTests/Pods-UILogicTests.release.xcconfig @@ -0,0 +1,15 @@ +ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO +FRAMEWORK_SEARCH_PATHS = $(inherited) "$(PLATFORM_DIR)/Developer/Library/Frameworks" "${PODS_CONFIGURATION_BUILD_DIR}/RxCocoa" "${PODS_CONFIGURATION_BUILD_DIR}/RxRelay" "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift" "${PODS_CONFIGURATION_BUILD_DIR}/RxTest" "${PODS_CONFIGURATION_BUILD_DIR}/Unio" +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/RxCocoa/RxCocoa.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/RxRelay/RxRelay.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift/RxSwift.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/RxTest/RxTest.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/Unio/Unio.framework/Headers" +LIBRARY_SEARCH_PATHS = $(inherited) "${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift +OTHER_CFLAGS = $(inherited) -isystem "${PODS_CONFIGURATION_BUILD_DIR}/RxCocoa/RxCocoa.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/RxRelay/RxRelay.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift/RxSwift.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/Unio/Unio.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/RxTest/RxTest.framework/Headers" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/RxCocoa" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/RxRelay" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/Unio" -iframework "$(PLATFORM_DIR)/Developer/Library/Frameworks" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/RxTest" +OTHER_LDFLAGS = $(inherited) -ObjC -framework "RxCocoa" -framework "RxRelay" -framework "RxSwift" -framework "RxTest" -framework "Unio" -framework "XCTest" +OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_PODFILE_DIR_PATH = ${SRCROOT}/. +PODS_ROOT = ${SRCROOT}/Pods +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/Pods/Target Support Files/Pods-UseCase/Pods-UseCase-Info.plist b/Pods/Target Support Files/Pods-UseCase/Pods-UseCase-Info.plist new file mode 100644 index 0000000..2243fe6 --- /dev/null +++ b/Pods/Target Support Files/Pods-UseCase/Pods-UseCase-Info.plist @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIdentifier + ${PRODUCT_BUNDLE_IDENTIFIER} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0.0 + CFBundleSignature + ???? + CFBundleVersion + ${CURRENT_PROJECT_VERSION} + NSPrincipalClass + + + diff --git a/Pods/Target Support Files/Pods-UseCase/Pods-UseCase-acknowledgements.markdown b/Pods/Target Support Files/Pods-UseCase/Pods-UseCase-acknowledgements.markdown new file mode 100644 index 0000000..a259938 --- /dev/null +++ b/Pods/Target Support Files/Pods-UseCase/Pods-UseCase-acknowledgements.markdown @@ -0,0 +1,29 @@ +# Acknowledgements +This application makes use of the following third party libraries: + +## RxRelay + +**The MIT License** +**Copyright © 2015 Krunoslav Zaher, Shai Mishali** +**All rights reserved.** + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + +## RxSwift + +**The MIT License** +**Copyright © 2015 Krunoslav Zaher, Shai Mishali** +**All rights reserved.** + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +Generated by CocoaPods - https://cocoapods.org diff --git a/Pods/Target Support Files/Pods-UseCase/Pods-UseCase-acknowledgements.plist b/Pods/Target Support Files/Pods-UseCase/Pods-UseCase-acknowledgements.plist new file mode 100644 index 0000000..29c07ff --- /dev/null +++ b/Pods/Target Support Files/Pods-UseCase/Pods-UseCase-acknowledgements.plist @@ -0,0 +1,67 @@ + + + + + PreferenceSpecifiers + + + FooterText + This application makes use of the following third party libraries: + Title + Acknowledgements + Type + PSGroupSpecifier + + + FooterText + **The MIT License** +**Copyright © 2015 Krunoslav Zaher, Shai Mishali** +**All rights reserved.** + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + License + MIT + Title + RxRelay + Type + PSGroupSpecifier + + + FooterText + **The MIT License** +**Copyright © 2015 Krunoslav Zaher, Shai Mishali** +**All rights reserved.** + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + License + MIT + Title + RxSwift + Type + PSGroupSpecifier + + + FooterText + Generated by CocoaPods - https://cocoapods.org + Title + + Type + PSGroupSpecifier + + + StringsTable + Acknowledgements + Title + Acknowledgements + + diff --git a/Pods/Target Support Files/Pods-UseCase/Pods-UseCase-dummy.m b/Pods/Target Support Files/Pods-UseCase/Pods-UseCase-dummy.m new file mode 100644 index 0000000..e15ac6c --- /dev/null +++ b/Pods/Target Support Files/Pods-UseCase/Pods-UseCase-dummy.m @@ -0,0 +1,5 @@ +#import +@interface PodsDummy_Pods_UseCase : NSObject +@end +@implementation PodsDummy_Pods_UseCase +@end diff --git a/Pods/Target Support Files/Pods-UseCase/Pods-UseCase-umbrella.h b/Pods/Target Support Files/Pods-UseCase/Pods-UseCase-umbrella.h new file mode 100644 index 0000000..ac706cc --- /dev/null +++ b/Pods/Target Support Files/Pods-UseCase/Pods-UseCase-umbrella.h @@ -0,0 +1,16 @@ +#ifdef __OBJC__ +#import +#else +#ifndef FOUNDATION_EXPORT +#if defined(__cplusplus) +#define FOUNDATION_EXPORT extern "C" +#else +#define FOUNDATION_EXPORT extern +#endif +#endif +#endif + + +FOUNDATION_EXPORT double Pods_UseCaseVersionNumber; +FOUNDATION_EXPORT const unsigned char Pods_UseCaseVersionString[]; + diff --git a/Pods/Target Support Files/Pods-UseCase/Pods-UseCase.debug.xcconfig b/Pods/Target Support Files/Pods-UseCase/Pods-UseCase.debug.xcconfig new file mode 100644 index 0000000..ab3377b --- /dev/null +++ b/Pods/Target Support Files/Pods-UseCase/Pods-UseCase.debug.xcconfig @@ -0,0 +1,15 @@ +ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/RxRelay" "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift" +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/RxRelay/RxRelay.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift/RxSwift.framework/Headers" +LIBRARY_SEARCH_PATHS = $(inherited) "${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift +OTHER_CFLAGS = $(inherited) -isystem "${PODS_CONFIGURATION_BUILD_DIR}/RxRelay/RxRelay.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift/RxSwift.framework/Headers" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/RxRelay" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift" +OTHER_LDFLAGS = $(inherited) -ObjC -framework "RxRelay" -framework "RxSwift" +OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_PODFILE_DIR_PATH = ${SRCROOT}/. +PODS_ROOT = ${SRCROOT}/Pods +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/Pods/Target Support Files/Pods-UseCase/Pods-UseCase.modulemap b/Pods/Target Support Files/Pods-UseCase/Pods-UseCase.modulemap new file mode 100644 index 0000000..efc1f95 --- /dev/null +++ b/Pods/Target Support Files/Pods-UseCase/Pods-UseCase.modulemap @@ -0,0 +1,6 @@ +framework module Pods_UseCase { + umbrella header "Pods-UseCase-umbrella.h" + + export * + module * { export * } +} diff --git a/Pods/Target Support Files/Pods-UseCase/Pods-UseCase.release.xcconfig b/Pods/Target Support Files/Pods-UseCase/Pods-UseCase.release.xcconfig new file mode 100644 index 0000000..ab3377b --- /dev/null +++ b/Pods/Target Support Files/Pods-UseCase/Pods-UseCase.release.xcconfig @@ -0,0 +1,15 @@ +ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/RxRelay" "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift" +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/RxRelay/RxRelay.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift/RxSwift.framework/Headers" +LIBRARY_SEARCH_PATHS = $(inherited) "${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift +OTHER_CFLAGS = $(inherited) -isystem "${PODS_CONFIGURATION_BUILD_DIR}/RxRelay/RxRelay.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift/RxSwift.framework/Headers" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/RxRelay" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift" +OTHER_LDFLAGS = $(inherited) -ObjC -framework "RxRelay" -framework "RxSwift" +OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_PODFILE_DIR_PATH = ${SRCROOT}/. +PODS_ROOT = ${SRCROOT}/Pods +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/Pods/Target Support Files/Pods-UseCaseInterface/Pods-UseCaseInterface-Info.plist b/Pods/Target Support Files/Pods-UseCaseInterface/Pods-UseCaseInterface-Info.plist new file mode 100644 index 0000000..2243fe6 --- /dev/null +++ b/Pods/Target Support Files/Pods-UseCaseInterface/Pods-UseCaseInterface-Info.plist @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIdentifier + ${PRODUCT_BUNDLE_IDENTIFIER} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0.0 + CFBundleSignature + ???? + CFBundleVersion + ${CURRENT_PROJECT_VERSION} + NSPrincipalClass + + + diff --git a/Pods/Target Support Files/Pods-UseCaseInterface/Pods-UseCaseInterface-acknowledgements.markdown b/Pods/Target Support Files/Pods-UseCaseInterface/Pods-UseCaseInterface-acknowledgements.markdown new file mode 100644 index 0000000..a259938 --- /dev/null +++ b/Pods/Target Support Files/Pods-UseCaseInterface/Pods-UseCaseInterface-acknowledgements.markdown @@ -0,0 +1,29 @@ +# Acknowledgements +This application makes use of the following third party libraries: + +## RxRelay + +**The MIT License** +**Copyright © 2015 Krunoslav Zaher, Shai Mishali** +**All rights reserved.** + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + +## RxSwift + +**The MIT License** +**Copyright © 2015 Krunoslav Zaher, Shai Mishali** +**All rights reserved.** + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +Generated by CocoaPods - https://cocoapods.org diff --git a/Pods/Target Support Files/Pods-UseCaseInterface/Pods-UseCaseInterface-acknowledgements.plist b/Pods/Target Support Files/Pods-UseCaseInterface/Pods-UseCaseInterface-acknowledgements.plist new file mode 100644 index 0000000..29c07ff --- /dev/null +++ b/Pods/Target Support Files/Pods-UseCaseInterface/Pods-UseCaseInterface-acknowledgements.plist @@ -0,0 +1,67 @@ + + + + + PreferenceSpecifiers + + + FooterText + This application makes use of the following third party libraries: + Title + Acknowledgements + Type + PSGroupSpecifier + + + FooterText + **The MIT License** +**Copyright © 2015 Krunoslav Zaher, Shai Mishali** +**All rights reserved.** + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + License + MIT + Title + RxRelay + Type + PSGroupSpecifier + + + FooterText + **The MIT License** +**Copyright © 2015 Krunoslav Zaher, Shai Mishali** +**All rights reserved.** + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + License + MIT + Title + RxSwift + Type + PSGroupSpecifier + + + FooterText + Generated by CocoaPods - https://cocoapods.org + Title + + Type + PSGroupSpecifier + + + StringsTable + Acknowledgements + Title + Acknowledgements + + diff --git a/Pods/Target Support Files/Pods-UseCaseInterface/Pods-UseCaseInterface-dummy.m b/Pods/Target Support Files/Pods-UseCaseInterface/Pods-UseCaseInterface-dummy.m new file mode 100644 index 0000000..10cadb9 --- /dev/null +++ b/Pods/Target Support Files/Pods-UseCaseInterface/Pods-UseCaseInterface-dummy.m @@ -0,0 +1,5 @@ +#import +@interface PodsDummy_Pods_UseCaseInterface : NSObject +@end +@implementation PodsDummy_Pods_UseCaseInterface +@end diff --git a/Pods/Target Support Files/Pods-UseCaseInterface/Pods-UseCaseInterface-umbrella.h b/Pods/Target Support Files/Pods-UseCaseInterface/Pods-UseCaseInterface-umbrella.h new file mode 100644 index 0000000..b149641 --- /dev/null +++ b/Pods/Target Support Files/Pods-UseCaseInterface/Pods-UseCaseInterface-umbrella.h @@ -0,0 +1,16 @@ +#ifdef __OBJC__ +#import +#else +#ifndef FOUNDATION_EXPORT +#if defined(__cplusplus) +#define FOUNDATION_EXPORT extern "C" +#else +#define FOUNDATION_EXPORT extern +#endif +#endif +#endif + + +FOUNDATION_EXPORT double Pods_UseCaseInterfaceVersionNumber; +FOUNDATION_EXPORT const unsigned char Pods_UseCaseInterfaceVersionString[]; + diff --git a/Pods/Target Support Files/Pods-UseCaseInterface/Pods-UseCaseInterface.debug.xcconfig b/Pods/Target Support Files/Pods-UseCaseInterface/Pods-UseCaseInterface.debug.xcconfig new file mode 100644 index 0000000..ab3377b --- /dev/null +++ b/Pods/Target Support Files/Pods-UseCaseInterface/Pods-UseCaseInterface.debug.xcconfig @@ -0,0 +1,15 @@ +ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/RxRelay" "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift" +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/RxRelay/RxRelay.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift/RxSwift.framework/Headers" +LIBRARY_SEARCH_PATHS = $(inherited) "${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift +OTHER_CFLAGS = $(inherited) -isystem "${PODS_CONFIGURATION_BUILD_DIR}/RxRelay/RxRelay.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift/RxSwift.framework/Headers" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/RxRelay" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift" +OTHER_LDFLAGS = $(inherited) -ObjC -framework "RxRelay" -framework "RxSwift" +OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_PODFILE_DIR_PATH = ${SRCROOT}/. +PODS_ROOT = ${SRCROOT}/Pods +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/Pods/Target Support Files/Pods-UseCaseInterface/Pods-UseCaseInterface.modulemap b/Pods/Target Support Files/Pods-UseCaseInterface/Pods-UseCaseInterface.modulemap new file mode 100644 index 0000000..ce0da70 --- /dev/null +++ b/Pods/Target Support Files/Pods-UseCaseInterface/Pods-UseCaseInterface.modulemap @@ -0,0 +1,6 @@ +framework module Pods_UseCaseInterface { + umbrella header "Pods-UseCaseInterface-umbrella.h" + + export * + module * { export * } +} diff --git a/Pods/Target Support Files/Pods-UseCaseInterface/Pods-UseCaseInterface.release.xcconfig b/Pods/Target Support Files/Pods-UseCaseInterface/Pods-UseCaseInterface.release.xcconfig new file mode 100644 index 0000000..ab3377b --- /dev/null +++ b/Pods/Target Support Files/Pods-UseCaseInterface/Pods-UseCaseInterface.release.xcconfig @@ -0,0 +1,15 @@ +ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/RxRelay" "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift" +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/RxRelay/RxRelay.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift/RxSwift.framework/Headers" +LIBRARY_SEARCH_PATHS = $(inherited) "${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift +OTHER_CFLAGS = $(inherited) -isystem "${PODS_CONFIGURATION_BUILD_DIR}/RxRelay/RxRelay.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift/RxSwift.framework/Headers" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/RxRelay" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift" +OTHER_LDFLAGS = $(inherited) -ObjC -framework "RxRelay" -framework "RxSwift" +OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_PODFILE_DIR_PATH = ${SRCROOT}/. +PODS_ROOT = ${SRCROOT}/Pods +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/Pods/Target Support Files/Pods-UseCaseTests/Pods-UseCaseTests-Info.plist b/Pods/Target Support Files/Pods-UseCaseTests/Pods-UseCaseTests-Info.plist new file mode 100644 index 0000000..2243fe6 --- /dev/null +++ b/Pods/Target Support Files/Pods-UseCaseTests/Pods-UseCaseTests-Info.plist @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIdentifier + ${PRODUCT_BUNDLE_IDENTIFIER} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0.0 + CFBundleSignature + ???? + CFBundleVersion + ${CURRENT_PROJECT_VERSION} + NSPrincipalClass + + + diff --git a/Pods/Target Support Files/Pods-UseCaseTests/Pods-UseCaseTests-acknowledgements.markdown b/Pods/Target Support Files/Pods-UseCaseTests/Pods-UseCaseTests-acknowledgements.markdown new file mode 100644 index 0000000..df46876 --- /dev/null +++ b/Pods/Target Support Files/Pods-UseCaseTests/Pods-UseCaseTests-acknowledgements.markdown @@ -0,0 +1,42 @@ +# Acknowledgements +This application makes use of the following third party libraries: + +## RxRelay + +**The MIT License** +**Copyright © 2015 Krunoslav Zaher, Shai Mishali** +**All rights reserved.** + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + +## RxSwift + +**The MIT License** +**Copyright © 2015 Krunoslav Zaher, Shai Mishali** +**All rights reserved.** + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + +## RxTest + +**The MIT License** +**Copyright © 2015 Krunoslav Zaher, Shai Mishali** +**All rights reserved.** + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +Generated by CocoaPods - https://cocoapods.org diff --git a/Pods/Target Support Files/Pods-UseCaseTests/Pods-UseCaseTests-acknowledgements.plist b/Pods/Target Support Files/Pods-UseCaseTests/Pods-UseCaseTests-acknowledgements.plist new file mode 100644 index 0000000..87c8631 --- /dev/null +++ b/Pods/Target Support Files/Pods-UseCaseTests/Pods-UseCaseTests-acknowledgements.plist @@ -0,0 +1,86 @@ + + + + + PreferenceSpecifiers + + + FooterText + This application makes use of the following third party libraries: + Title + Acknowledgements + Type + PSGroupSpecifier + + + FooterText + **The MIT License** +**Copyright © 2015 Krunoslav Zaher, Shai Mishali** +**All rights reserved.** + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + License + MIT + Title + RxRelay + Type + PSGroupSpecifier + + + FooterText + **The MIT License** +**Copyright © 2015 Krunoslav Zaher, Shai Mishali** +**All rights reserved.** + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + License + MIT + Title + RxSwift + Type + PSGroupSpecifier + + + FooterText + **The MIT License** +**Copyright © 2015 Krunoslav Zaher, Shai Mishali** +**All rights reserved.** + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + License + MIT + Title + RxTest + Type + PSGroupSpecifier + + + FooterText + Generated by CocoaPods - https://cocoapods.org + Title + + Type + PSGroupSpecifier + + + StringsTable + Acknowledgements + Title + Acknowledgements + + diff --git a/Pods/Target Support Files/Pods-UseCaseTests/Pods-UseCaseTests-dummy.m b/Pods/Target Support Files/Pods-UseCaseTests/Pods-UseCaseTests-dummy.m new file mode 100644 index 0000000..7750bb9 --- /dev/null +++ b/Pods/Target Support Files/Pods-UseCaseTests/Pods-UseCaseTests-dummy.m @@ -0,0 +1,5 @@ +#import +@interface PodsDummy_Pods_UseCaseTests : NSObject +@end +@implementation PodsDummy_Pods_UseCaseTests +@end diff --git a/Pods/Target Support Files/Pods-UseCaseTests/Pods-UseCaseTests-umbrella.h b/Pods/Target Support Files/Pods-UseCaseTests/Pods-UseCaseTests-umbrella.h new file mode 100644 index 0000000..18734f1 --- /dev/null +++ b/Pods/Target Support Files/Pods-UseCaseTests/Pods-UseCaseTests-umbrella.h @@ -0,0 +1,16 @@ +#ifdef __OBJC__ +#import +#else +#ifndef FOUNDATION_EXPORT +#if defined(__cplusplus) +#define FOUNDATION_EXPORT extern "C" +#else +#define FOUNDATION_EXPORT extern +#endif +#endif +#endif + + +FOUNDATION_EXPORT double Pods_UseCaseTestsVersionNumber; +FOUNDATION_EXPORT const unsigned char Pods_UseCaseTestsVersionString[]; + diff --git a/Pods/Target Support Files/Pods-UseCaseTests/Pods-UseCaseTests.debug.xcconfig b/Pods/Target Support Files/Pods-UseCaseTests/Pods-UseCaseTests.debug.xcconfig new file mode 100644 index 0000000..8000a84 --- /dev/null +++ b/Pods/Target Support Files/Pods-UseCaseTests/Pods-UseCaseTests.debug.xcconfig @@ -0,0 +1,15 @@ +ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO +FRAMEWORK_SEARCH_PATHS = $(inherited) "$(PLATFORM_DIR)/Developer/Library/Frameworks" "${PODS_CONFIGURATION_BUILD_DIR}/RxRelay" "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift" "${PODS_CONFIGURATION_BUILD_DIR}/RxTest" +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/RxRelay/RxRelay.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift/RxSwift.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/RxTest/RxTest.framework/Headers" +LIBRARY_SEARCH_PATHS = $(inherited) "${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift +OTHER_CFLAGS = $(inherited) -isystem "${PODS_CONFIGURATION_BUILD_DIR}/RxRelay/RxRelay.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift/RxSwift.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/RxTest/RxTest.framework/Headers" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/RxRelay" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift" -iframework "$(PLATFORM_DIR)/Developer/Library/Frameworks" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/RxTest" +OTHER_LDFLAGS = $(inherited) -ObjC -framework "RxRelay" -framework "RxSwift" -framework "RxTest" -framework "XCTest" +OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_PODFILE_DIR_PATH = ${SRCROOT}/. +PODS_ROOT = ${SRCROOT}/Pods +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/Pods/Target Support Files/Pods-UseCaseTests/Pods-UseCaseTests.modulemap b/Pods/Target Support Files/Pods-UseCaseTests/Pods-UseCaseTests.modulemap new file mode 100644 index 0000000..395fd43 --- /dev/null +++ b/Pods/Target Support Files/Pods-UseCaseTests/Pods-UseCaseTests.modulemap @@ -0,0 +1,6 @@ +framework module Pods_UseCaseTests { + umbrella header "Pods-UseCaseTests-umbrella.h" + + export * + module * { export * } +} diff --git a/Pods/Target Support Files/Pods-UseCaseTests/Pods-UseCaseTests.release.xcconfig b/Pods/Target Support Files/Pods-UseCaseTests/Pods-UseCaseTests.release.xcconfig new file mode 100644 index 0000000..8000a84 --- /dev/null +++ b/Pods/Target Support Files/Pods-UseCaseTests/Pods-UseCaseTests.release.xcconfig @@ -0,0 +1,15 @@ +ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO +FRAMEWORK_SEARCH_PATHS = $(inherited) "$(PLATFORM_DIR)/Developer/Library/Frameworks" "${PODS_CONFIGURATION_BUILD_DIR}/RxRelay" "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift" "${PODS_CONFIGURATION_BUILD_DIR}/RxTest" +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/RxRelay/RxRelay.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift/RxSwift.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/RxTest/RxTest.framework/Headers" +LIBRARY_SEARCH_PATHS = $(inherited) "${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift +OTHER_CFLAGS = $(inherited) -isystem "${PODS_CONFIGURATION_BUILD_DIR}/RxRelay/RxRelay.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift/RxSwift.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/RxTest/RxTest.framework/Headers" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/RxRelay" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift" -iframework "$(PLATFORM_DIR)/Developer/Library/Frameworks" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/RxTest" +OTHER_LDFLAGS = $(inherited) -ObjC -framework "RxRelay" -framework "RxSwift" -framework "RxTest" -framework "XCTest" +OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_PODFILE_DIR_PATH = ${SRCROOT}/. +PODS_ROOT = ${SRCROOT}/Pods +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/Pods/Target Support Files/Pods-XcodePreviews/Pods-XcodePreviews-Info.plist b/Pods/Target Support Files/Pods-XcodePreviews/Pods-XcodePreviews-Info.plist new file mode 100644 index 0000000..2243fe6 --- /dev/null +++ b/Pods/Target Support Files/Pods-XcodePreviews/Pods-XcodePreviews-Info.plist @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIdentifier + ${PRODUCT_BUNDLE_IDENTIFIER} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0.0 + CFBundleSignature + ???? + CFBundleVersion + ${CURRENT_PROJECT_VERSION} + NSPrincipalClass + + + diff --git a/Pods/Target Support Files/Pods-XcodePreviews/Pods-XcodePreviews-acknowledgements.markdown b/Pods/Target Support Files/Pods-XcodePreviews/Pods-XcodePreviews-acknowledgements.markdown new file mode 100644 index 0000000..adce18b --- /dev/null +++ b/Pods/Target Support Files/Pods-XcodePreviews/Pods-XcodePreviews-acknowledgements.markdown @@ -0,0 +1,67 @@ +# Acknowledgements +This application makes use of the following third party libraries: + +## RxCocoa + +**The MIT License** +**Copyright © 2015 Krunoslav Zaher, Shai Mishali** +**All rights reserved.** + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + +## RxRelay + +**The MIT License** +**Copyright © 2015 Krunoslav Zaher, Shai Mishali** +**All rights reserved.** + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + +## RxSwift + +**The MIT License** +**Copyright © 2015 Krunoslav Zaher, Shai Mishali** +**All rights reserved.** + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + +## Unio + +MIT License + +Copyright (c) 2019 AbemaTV + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +Generated by CocoaPods - https://cocoapods.org diff --git a/Pods/Target Support Files/Pods-XcodePreviews/Pods-XcodePreviews-acknowledgements.plist b/Pods/Target Support Files/Pods-XcodePreviews/Pods-XcodePreviews-acknowledgements.plist new file mode 100644 index 0000000..33fbe5a --- /dev/null +++ b/Pods/Target Support Files/Pods-XcodePreviews/Pods-XcodePreviews-acknowledgements.plist @@ -0,0 +1,117 @@ + + + + + PreferenceSpecifiers + + + FooterText + This application makes use of the following third party libraries: + Title + Acknowledgements + Type + PSGroupSpecifier + + + FooterText + **The MIT License** +**Copyright © 2015 Krunoslav Zaher, Shai Mishali** +**All rights reserved.** + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + License + MIT + Title + RxCocoa + Type + PSGroupSpecifier + + + FooterText + **The MIT License** +**Copyright © 2015 Krunoslav Zaher, Shai Mishali** +**All rights reserved.** + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + License + MIT + Title + RxRelay + Type + PSGroupSpecifier + + + FooterText + **The MIT License** +**Copyright © 2015 Krunoslav Zaher, Shai Mishali** +**All rights reserved.** + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + License + MIT + Title + RxSwift + Type + PSGroupSpecifier + + + FooterText + MIT License + +Copyright (c) 2019 AbemaTV + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + + License + MIT + Title + Unio + Type + PSGroupSpecifier + + + FooterText + Generated by CocoaPods - https://cocoapods.org + Title + + Type + PSGroupSpecifier + + + StringsTable + Acknowledgements + Title + Acknowledgements + + diff --git a/Pods/Target Support Files/Pods-XcodePreviews/Pods-XcodePreviews-dummy.m b/Pods/Target Support Files/Pods-XcodePreviews/Pods-XcodePreviews-dummy.m new file mode 100644 index 0000000..3de91f0 --- /dev/null +++ b/Pods/Target Support Files/Pods-XcodePreviews/Pods-XcodePreviews-dummy.m @@ -0,0 +1,5 @@ +#import +@interface PodsDummy_Pods_XcodePreviews : NSObject +@end +@implementation PodsDummy_Pods_XcodePreviews +@end diff --git a/Pods/Target Support Files/Pods-XcodePreviews/Pods-XcodePreviews-umbrella.h b/Pods/Target Support Files/Pods-XcodePreviews/Pods-XcodePreviews-umbrella.h new file mode 100644 index 0000000..d6d7bec --- /dev/null +++ b/Pods/Target Support Files/Pods-XcodePreviews/Pods-XcodePreviews-umbrella.h @@ -0,0 +1,16 @@ +#ifdef __OBJC__ +#import +#else +#ifndef FOUNDATION_EXPORT +#if defined(__cplusplus) +#define FOUNDATION_EXPORT extern "C" +#else +#define FOUNDATION_EXPORT extern +#endif +#endif +#endif + + +FOUNDATION_EXPORT double Pods_XcodePreviewsVersionNumber; +FOUNDATION_EXPORT const unsigned char Pods_XcodePreviewsVersionString[]; + diff --git a/Pods/Target Support Files/Pods-XcodePreviews/Pods-XcodePreviews.debug.xcconfig b/Pods/Target Support Files/Pods-XcodePreviews/Pods-XcodePreviews.debug.xcconfig new file mode 100644 index 0000000..7e30c25 --- /dev/null +++ b/Pods/Target Support Files/Pods-XcodePreviews/Pods-XcodePreviews.debug.xcconfig @@ -0,0 +1,14 @@ +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/RxCocoa" "${PODS_CONFIGURATION_BUILD_DIR}/RxRelay" "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift" "${PODS_CONFIGURATION_BUILD_DIR}/Unio" +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/RxCocoa/RxCocoa.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/RxRelay/RxRelay.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift/RxSwift.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/Unio/Unio.framework/Headers" +LIBRARY_SEARCH_PATHS = $(inherited) "${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift +OTHER_CFLAGS = $(inherited) -isystem "${PODS_CONFIGURATION_BUILD_DIR}/RxCocoa/RxCocoa.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/RxRelay/RxRelay.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift/RxSwift.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/Unio/Unio.framework/Headers" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/RxCocoa" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/RxRelay" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/Unio" +OTHER_LDFLAGS = $(inherited) -ObjC -framework "RxCocoa" -framework "RxRelay" -framework "RxSwift" -framework "Unio" +OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_PODFILE_DIR_PATH = ${SRCROOT}/. +PODS_ROOT = ${SRCROOT}/Pods +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/Pods/Target Support Files/Pods-XcodePreviews/Pods-XcodePreviews.modulemap b/Pods/Target Support Files/Pods-XcodePreviews/Pods-XcodePreviews.modulemap new file mode 100644 index 0000000..6df37bc --- /dev/null +++ b/Pods/Target Support Files/Pods-XcodePreviews/Pods-XcodePreviews.modulemap @@ -0,0 +1,6 @@ +framework module Pods_XcodePreviews { + umbrella header "Pods-XcodePreviews-umbrella.h" + + export * + module * { export * } +} diff --git a/Pods/Target Support Files/Pods-XcodePreviews/Pods-XcodePreviews.release.xcconfig b/Pods/Target Support Files/Pods-XcodePreviews/Pods-XcodePreviews.release.xcconfig new file mode 100644 index 0000000..7e30c25 --- /dev/null +++ b/Pods/Target Support Files/Pods-XcodePreviews/Pods-XcodePreviews.release.xcconfig @@ -0,0 +1,14 @@ +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO +FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/RxCocoa" "${PODS_CONFIGURATION_BUILD_DIR}/RxRelay" "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift" "${PODS_CONFIGURATION_BUILD_DIR}/Unio" +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/RxCocoa/RxCocoa.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/RxRelay/RxRelay.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift/RxSwift.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/Unio/Unio.framework/Headers" +LIBRARY_SEARCH_PATHS = $(inherited) "${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift +OTHER_CFLAGS = $(inherited) -isystem "${PODS_CONFIGURATION_BUILD_DIR}/RxCocoa/RxCocoa.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/RxRelay/RxRelay.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift/RxSwift.framework/Headers" -isystem "${PODS_CONFIGURATION_BUILD_DIR}/Unio/Unio.framework/Headers" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/RxCocoa" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/RxRelay" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift" -iframework "${PODS_CONFIGURATION_BUILD_DIR}/Unio" +OTHER_LDFLAGS = $(inherited) -ObjC -framework "RxCocoa" -framework "RxRelay" -framework "RxSwift" -framework "Unio" +OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS +PODS_BUILD_DIR = ${BUILD_DIR} +PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) +PODS_PODFILE_DIR_PATH = ${SRCROOT}/. +PODS_ROOT = ${SRCROOT}/Pods +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/README.md b/README.md new file mode 100644 index 0000000..7933c49 --- /dev/null +++ b/README.md @@ -0,0 +1,191 @@ +# ABEMA iOS Tutorial + +## 概要 + +このプロジェクトは、ABEMA の iOS アプリ開発で用いられている開発環境やライブラリ、開発フローに慣れるためのサンプルプロジェクトです。 + +## 開発環境 + +- Xcode 14.0.1 + +### ツール + +- [Homebrew](https://brew.sh) (推奨) +- [XcodeGen](https://github.com/yonaskolb/XcodeGen) +- [SwiftLint](https://github.com/realm/SwiftLint) + +### ライブラリ + +- [RxSwift](https://github.com/ReactiveX/RxSwift) +- [Unio](https://github.com/cats-oss/Unio) + +ツールやライブラリの導入は [開発をはじめる](#開発をはじめる) を参考にしてください。 + +## 設計 + +```mermaid +classDiagram + AbemaTutorial ..> UIComponent + UIComponent ..> UILogicInterface + UILogicInterface <|-- UILogic + UILogic ..> UseCaseInterface + UseCaseInterface <|-- UseCase + UseCase ..> RepositoryInteface + RepositoryInteface <|-- Repository + Repository ..> Domain + RepositoryInteface ..> Domain + UseCase ..> Domain +``` + +(全モジュールから依存可能な Extension は略) + +## チュートリアル + +[チュートリアルの進め方](#チュートリアルの進め方) を参考に開発環境を整え、下記のタスクに取り組んでください。 + +### タスク 1. + +master ブランチの実装には不具合があり、一部動作しない機能があります。 + ++Uでテストを実行すると、失敗している箇所があるはずです。 + +テストが通るように実装を修正してください。 + +### タスク 2. + +- セルにリポジトリの説明文を追加してください。 +- 追加したロジックについてのユニットテストを追加してください。 + + + +### タスク 3. + +`APIClient`は、時々エラーを返します。 + +- エラーが返ってきたときにアラートを表示するようにしてください。 + - 文言の定義は導入済みの[SwiftGen](https://github.com/SwiftGen/SwiftGen)を用いてください。 +- アラートを閉じたときに、データを再取得するようにしてください。 +- 追加したロジックについてのユニットテストを追加してください。 + + + +### タスク 4. + +- 以下の仕様を満たすお気に入り機能を実装してください、 + - セルか、セル上のボタンをタップしてお気に入りに追加/削除できるようにしてください。 + - 同じセルは一度のみお気に入りに追加できるようにしてください。 + - お気に入りに追加したリポジトリのみを表示する機能を追加してください。 + - 別のタブにするかフィルタを付けるかなど、表示方法は任意です。 + - アプリを再起動しても、お気に入りデータが消えないようにしてください。 + - 保存方法は任意です。 +- Issue に仕様や基礎設計がある程度わかるような説明文を書いてください。 +- 追加したロジックについてのユニットテストを追加してください。 + +## チュートリアルの進め方 + +### 開発をはじめる + +#### プロジェクトのクローン + +以下のコマンドで、本リポジトリを Clone できます。 + +```sh +$ git clone https://github.com/abema/abema-ios-tutorial-public.git +``` + +#### ツールのインストール + +[brew.sh](https://brew.sh) に記載の手順に従って **Homebrew** をインストールしてください。 + +また、以下のコマンドで各種ツールをインストールしてください。 + +```sh +$ make brew-install + +$ rbenv init # 表示される内容に従う +$ rbenv install + +$ brew install mint +``` + +`make brew-install` によって実行されるコマンドの中身は、`Makefile` に書かれています。 + +#### プロジェクトのクローン + +以下のコマンドで、本リポジトリを Clone できます。 + +```sh +$ git clone https://github.com/abema/abema-ios-tutorial-public.git +``` + +#### ライブラリの取得・ビルド + +以下のコマンドで、ビルドに必要なライブラリを取得できます。 + +```sh +$ make bootstrap +``` + +取得が終わったら、`AbemaTutorial.xcodeproj`を開いてプロジェクトを実行できるはずです。 + +#### 自分用の master ブランチを作成 + +チュートリアルに取り組む際は、**自分用の master ブランチ**を作成してください。 + +**例:** + +```sh +$ git checkout -b akkyie-master master # <自分の名前>-master で作成してください +$ git push +``` + +### チュートリアルのタスクを進める + +#### Issue を作成 + +[Issues](https://github.com/abema/abema-ios-tutorial/issues) から、自分が取り組むタスクについての **Issue**(チケット)を作成してください。 +Issue には、以下の項目を記入・設定してください。 + +- **タイトル**: 取り組むタスクの内容を簡潔に記述してください。 +- **説明文**: テンプレートを参考に、不具合の修正であれば**不具合の原因と対応**を、機能追加であれば**追加する機能の仕様**についてなるべくわかりやすく記述してください。 +- **Asignees**: 自分を設定してください。 +- **Labels**: 不具合の修正なら**バグ**、機能追加なら**機能追加**など、適切なラベルを設定してください。また、作業時間の見込み(見積もり)に応じて、`1` `3` `5` の中から適切なストーリーポイントを設定してください(おおよそ 1 ポイント= 1 営業日以内に完了するタスクです)。 +- **Milestone**: 実装が完了する見込みのスプリントを設定してください。 + +![Issue](Documents/Images/issue.png) + +#### Feature ブランチ を作成 + +実装は、自分用の master ブランチから切ったブランチ(**Feature ブランチ**)で行います。 + +Feature ブランチの名前は、 `IOS-` または `IOS--<わかりやすい名前>` としてください。 + +**例:** + +```sh +$ git checkout -b IOS-123-fix-layout akkyie-master +$ git push +``` + +#### Pull Request を作成 + +いくつかコミットを行ったら、作業中でも Pull Request を作成しましょう。 + +この時、**base ブランチが自分用の master ブランチになっていることを確認してください。** + +![PR base branch](Documents/Images/pr-base.png) + +Issue と同様に、Pull Request にも **Assignees**・**Labels**・**Milestone** を設定しましょう。また、作業中の Pull Request には必ず **WIP** (Work in progress) ラベルを付けましょう。 + +タイトルに `[WIP]` と入れたり、[Draft Pull Request](https://github.blog/jp/2019-02-19-introducing-draft-pull-requests/)にしたりするとより分かりやすいですが、これらは任意です。 + +#### レビュー + +実装が完了し、自分自身のレビューも完了したら、WIP ラベルを外して **Reviewers** に自分のトレーナー(もしくはトレーナーが指定した誰か)を指定しましょう。 +レビューを受けて修正する必要がある場合、もし修正に時間がかかりそうであれば、修正を行う旨をコメントして再度 WIP ラベルを付けた上で作業を行いましょう。 + +コードに修正を加える際は、なるべく force push を避けましょう。これは再度レビューしてもらうときに差分を分かりやすくするためです。 +ただし、実装方法をまるっきり変える場合など、コミットを追加することでむしろ差分が見づらくなる場合は、force push して履歴を見やすくしてもよいです。 + +レビュー対応が終わって Approve されたら、自分でその PR をマージします。 +PR をマージしたら、対応する Issue も合わせてクローズしましょう。 diff --git a/Targets/AbemaTutorial/AbemaTutorial/Configs/Info.plist b/Targets/AbemaTutorial/AbemaTutorial/Configs/Info.plist new file mode 100644 index 0000000..4222ac2 --- /dev/null +++ b/Targets/AbemaTutorial/AbemaTutorial/Configs/Info.plist @@ -0,0 +1,43 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + APPL + CFBundleShortVersionString + 1.0 + CFBundleVersion + 1 + LSRequiresIPhoneOS + + UILaunchStoryboardName + LaunchScreen + UIRequiredDeviceCapabilities + + armv7 + + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UISupportedInterfaceOrientations~ipad + + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + + diff --git a/Targets/AbemaTutorial/AbemaTutorial/Resources/Assets.xcassets/AppIcon.appiconset/Contents.json b/Targets/AbemaTutorial/AbemaTutorial/Resources/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 0000000..d8db8d6 --- /dev/null +++ b/Targets/AbemaTutorial/AbemaTutorial/Resources/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,98 @@ +{ + "images" : [ + { + "idiom" : "iphone", + "size" : "20x20", + "scale" : "2x" + }, + { + "idiom" : "iphone", + "size" : "20x20", + "scale" : "3x" + }, + { + "idiom" : "iphone", + "size" : "29x29", + "scale" : "2x" + }, + { + "idiom" : "iphone", + "size" : "29x29", + "scale" : "3x" + }, + { + "idiom" : "iphone", + "size" : "40x40", + "scale" : "2x" + }, + { + "idiom" : "iphone", + "size" : "40x40", + "scale" : "3x" + }, + { + "idiom" : "iphone", + "size" : "60x60", + "scale" : "2x" + }, + { + "idiom" : "iphone", + "size" : "60x60", + "scale" : "3x" + }, + { + "idiom" : "ipad", + "size" : "20x20", + "scale" : "1x" + }, + { + "idiom" : "ipad", + "size" : "20x20", + "scale" : "2x" + }, + { + "idiom" : "ipad", + "size" : "29x29", + "scale" : "1x" + }, + { + "idiom" : "ipad", + "size" : "29x29", + "scale" : "2x" + }, + { + "idiom" : "ipad", + "size" : "40x40", + "scale" : "1x" + }, + { + "idiom" : "ipad", + "size" : "40x40", + "scale" : "2x" + }, + { + "idiom" : "ipad", + "size" : "76x76", + "scale" : "1x" + }, + { + "idiom" : "ipad", + "size" : "76x76", + "scale" : "2x" + }, + { + "idiom" : "ipad", + "size" : "83.5x83.5", + "scale" : "2x" + }, + { + "idiom" : "ios-marketing", + "size" : "1024x1024", + "scale" : "1x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Targets/AbemaTutorial/AbemaTutorial/Resources/Assets.xcassets/Contents.json b/Targets/AbemaTutorial/AbemaTutorial/Resources/Assets.xcassets/Contents.json new file mode 100644 index 0000000..da4a164 --- /dev/null +++ b/Targets/AbemaTutorial/AbemaTutorial/Resources/Assets.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Targets/AbemaTutorial/AbemaTutorial/Resources/Base.lproj/LaunchScreen.storyboard b/Targets/AbemaTutorial/AbemaTutorial/Resources/Base.lproj/LaunchScreen.storyboard new file mode 100644 index 0000000..a3249f2 --- /dev/null +++ b/Targets/AbemaTutorial/AbemaTutorial/Resources/Base.lproj/LaunchScreen.storyboard @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Targets/AbemaTutorial/AbemaTutorial/Resources/repositories.json b/Targets/AbemaTutorial/AbemaTutorial/Resources/repositories.json new file mode 100644 index 0000000..0fcddb6 --- /dev/null +++ b/Targets/AbemaTutorial/AbemaTutorial/Resources/repositories.json @@ -0,0 +1,3020 @@ +[ + { + "id": 21700699, + "node_id": "MDEwOlJlcG9zaXRvcnkyMTcwMDY5OQ==", + "name": "awesome-ios", + "full_name": "vsouza/awesome-ios", + "private": false, + "owner": { + "login": "vsouza", + "id": 484656, + "node_id": "MDQ6VXNlcjQ4NDY1Ng==", + "avatar_url": "https://avatars2.githubusercontent.com/u/484656?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/vsouza", + "html_url": "https://github.com/vsouza", + "followers_url": "https://api.github.com/users/vsouza/followers", + "following_url": "https://api.github.com/users/vsouza/following{/other_user}", + "gists_url": "https://api.github.com/users/vsouza/gists{/gist_id}", + "starred_url": "https://api.github.com/users/vsouza/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/vsouza/subscriptions", + "organizations_url": "https://api.github.com/users/vsouza/orgs", + "repos_url": "https://api.github.com/users/vsouza/repos", + "events_url": "https://api.github.com/users/vsouza/events{/privacy}", + "received_events_url": "https://api.github.com/users/vsouza/received_events", + "type": "User", + "site_admin": false + }, + "html_url": "https://github.com/vsouza/awesome-ios", + "description": "A curated list of awesome iOS ecosystem, including Objective-C and Swift Projects ", + "fork": false, + "url": "https://api.github.com/repos/vsouza/awesome-ios", + "forks_url": "https://api.github.com/repos/vsouza/awesome-ios/forks", + "keys_url": "https://api.github.com/repos/vsouza/awesome-ios/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/vsouza/awesome-ios/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/vsouza/awesome-ios/teams", + "hooks_url": "https://api.github.com/repos/vsouza/awesome-ios/hooks", + "issue_events_url": "https://api.github.com/repos/vsouza/awesome-ios/issues/events{/number}", + "events_url": "https://api.github.com/repos/vsouza/awesome-ios/events", + "assignees_url": "https://api.github.com/repos/vsouza/awesome-ios/assignees{/user}", + "branches_url": "https://api.github.com/repos/vsouza/awesome-ios/branches{/branch}", + "tags_url": "https://api.github.com/repos/vsouza/awesome-ios/tags", + "blobs_url": "https://api.github.com/repos/vsouza/awesome-ios/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/vsouza/awesome-ios/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/vsouza/awesome-ios/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/vsouza/awesome-ios/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/vsouza/awesome-ios/statuses/{sha}", + "languages_url": "https://api.github.com/repos/vsouza/awesome-ios/languages", + "stargazers_url": "https://api.github.com/repos/vsouza/awesome-ios/stargazers", + "contributors_url": "https://api.github.com/repos/vsouza/awesome-ios/contributors", + "subscribers_url": "https://api.github.com/repos/vsouza/awesome-ios/subscribers", + "subscription_url": "https://api.github.com/repos/vsouza/awesome-ios/subscription", + "commits_url": "https://api.github.com/repos/vsouza/awesome-ios/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/vsouza/awesome-ios/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/vsouza/awesome-ios/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/vsouza/awesome-ios/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/vsouza/awesome-ios/contents/{+path}", + "compare_url": "https://api.github.com/repos/vsouza/awesome-ios/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/vsouza/awesome-ios/merges", + "archive_url": "https://api.github.com/repos/vsouza/awesome-ios/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/vsouza/awesome-ios/downloads", + "issues_url": "https://api.github.com/repos/vsouza/awesome-ios/issues{/number}", + "pulls_url": "https://api.github.com/repos/vsouza/awesome-ios/pulls{/number}", + "milestones_url": "https://api.github.com/repos/vsouza/awesome-ios/milestones{/number}", + "notifications_url": "https://api.github.com/repos/vsouza/awesome-ios/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/vsouza/awesome-ios/labels{/name}", + "releases_url": "https://api.github.com/repos/vsouza/awesome-ios/releases{/id}", + "deployments_url": "https://api.github.com/repos/vsouza/awesome-ios/deployments", + "created_at": "2014-07-10T16:03:45Z", + "updated_at": "2019-08-19T16:40:03Z", + "pushed_at": "2019-08-13T18:33:04Z", + "git_url": "git://github.com/vsouza/awesome-ios.git", + "ssh_url": "git@github.com:vsouza/awesome-ios.git", + "clone_url": "https://github.com/vsouza/awesome-ios.git", + "svn_url": "https://github.com/vsouza/awesome-ios", + "homepage": "http://awesomeios.com", + "size": 10123, + "stargazers_count": 32667, + "watchers_count": 32667, + "language": "Swift", + "has_issues": true, + "has_projects": false, + "has_downloads": true, + "has_wiki": false, + "has_pages": false, + "forks_count": 5492, + "mirror_url": null, + "archived": false, + "disabled": false, + "open_issues_count": 2, + "license": { + "key": "mit", + "name": "MIT License", + "spdx_id": "MIT", + "url": "https://api.github.com/licenses/mit", + "node_id": "MDc6TGljZW5zZTEz" + }, + "forks": 5492, + "open_issues": 2, + "watchers": 32667, + "default_branch": "master", + "score": 1 + }, + { + "id": 22458259, + "node_id": "MDEwOlJlcG9zaXRvcnkyMjQ1ODI1OQ==", + "name": "Alamofire", + "full_name": "Alamofire/Alamofire", + "private": false, + "owner": { + "login": "Alamofire", + "id": 7774181, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjc3NzQxODE=", + "avatar_url": "https://avatars3.githubusercontent.com/u/7774181?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Alamofire", + "html_url": "https://github.com/Alamofire", + "followers_url": "https://api.github.com/users/Alamofire/followers", + "following_url": "https://api.github.com/users/Alamofire/following{/other_user}", + "gists_url": "https://api.github.com/users/Alamofire/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Alamofire/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Alamofire/subscriptions", + "organizations_url": "https://api.github.com/users/Alamofire/orgs", + "repos_url": "https://api.github.com/users/Alamofire/repos", + "events_url": "https://api.github.com/users/Alamofire/events{/privacy}", + "received_events_url": "https://api.github.com/users/Alamofire/received_events", + "type": "Organization", + "site_admin": false + }, + "html_url": "https://github.com/Alamofire/Alamofire", + "description": "Elegant HTTP Networking in Swift", + "fork": false, + "url": "https://api.github.com/repos/Alamofire/Alamofire", + "forks_url": "https://api.github.com/repos/Alamofire/Alamofire/forks", + "keys_url": "https://api.github.com/repos/Alamofire/Alamofire/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/Alamofire/Alamofire/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/Alamofire/Alamofire/teams", + "hooks_url": "https://api.github.com/repos/Alamofire/Alamofire/hooks", + "issue_events_url": "https://api.github.com/repos/Alamofire/Alamofire/issues/events{/number}", + "events_url": "https://api.github.com/repos/Alamofire/Alamofire/events", + "assignees_url": "https://api.github.com/repos/Alamofire/Alamofire/assignees{/user}", + "branches_url": "https://api.github.com/repos/Alamofire/Alamofire/branches{/branch}", + "tags_url": "https://api.github.com/repos/Alamofire/Alamofire/tags", + "blobs_url": "https://api.github.com/repos/Alamofire/Alamofire/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/Alamofire/Alamofire/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/Alamofire/Alamofire/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/Alamofire/Alamofire/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/Alamofire/Alamofire/statuses/{sha}", + "languages_url": "https://api.github.com/repos/Alamofire/Alamofire/languages", + "stargazers_url": "https://api.github.com/repos/Alamofire/Alamofire/stargazers", + "contributors_url": "https://api.github.com/repos/Alamofire/Alamofire/contributors", + "subscribers_url": "https://api.github.com/repos/Alamofire/Alamofire/subscribers", + "subscription_url": "https://api.github.com/repos/Alamofire/Alamofire/subscription", + "commits_url": "https://api.github.com/repos/Alamofire/Alamofire/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/Alamofire/Alamofire/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/Alamofire/Alamofire/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/Alamofire/Alamofire/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/Alamofire/Alamofire/contents/{+path}", + "compare_url": "https://api.github.com/repos/Alamofire/Alamofire/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/Alamofire/Alamofire/merges", + "archive_url": "https://api.github.com/repos/Alamofire/Alamofire/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/Alamofire/Alamofire/downloads", + "issues_url": "https://api.github.com/repos/Alamofire/Alamofire/issues{/number}", + "pulls_url": "https://api.github.com/repos/Alamofire/Alamofire/pulls{/number}", + "milestones_url": "https://api.github.com/repos/Alamofire/Alamofire/milestones{/number}", + "notifications_url": "https://api.github.com/repos/Alamofire/Alamofire/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/Alamofire/Alamofire/labels{/name}", + "releases_url": "https://api.github.com/repos/Alamofire/Alamofire/releases{/id}", + "deployments_url": "https://api.github.com/repos/Alamofire/Alamofire/deployments", + "created_at": "2014-07-31T05:56:19Z", + "updated_at": "2019-08-19T19:10:22Z", + "pushed_at": "2019-08-18T09:42:09Z", + "git_url": "git://github.com/Alamofire/Alamofire.git", + "ssh_url": "git@github.com:Alamofire/Alamofire.git", + "clone_url": "https://github.com/Alamofire/Alamofire.git", + "svn_url": "https://github.com/Alamofire/Alamofire", + "homepage": "", + "size": 11401, + "stargazers_count": 31701, + "watchers_count": 31701, + "language": "Swift", + "has_issues": true, + "has_projects": true, + "has_downloads": true, + "has_wiki": false, + "has_pages": true, + "forks_count": 5691, + "mirror_url": null, + "archived": false, + "disabled": false, + "open_issues_count": 43, + "license": { + "key": "mit", + "name": "MIT License", + "spdx_id": "MIT", + "url": "https://api.github.com/licenses/mit", + "node_id": "MDc6TGljZW5zZTEz" + }, + "forks": 5691, + "open_issues": 43, + "watchers": 31701, + "default_branch": "master", + "score": 1 + }, + { + "id": 60844036, + "node_id": "MDEwOlJlcG9zaXRvcnk2MDg0NDAzNg==", + "name": "ShadowsocksX-NG", + "full_name": "shadowsocks/ShadowsocksX-NG", + "private": false, + "owner": { + "login": "shadowsocks", + "id": 3006190, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjMwMDYxOTA=", + "avatar_url": "https://avatars1.githubusercontent.com/u/3006190?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/shadowsocks", + "html_url": "https://github.com/shadowsocks", + "followers_url": "https://api.github.com/users/shadowsocks/followers", + "following_url": "https://api.github.com/users/shadowsocks/following{/other_user}", + "gists_url": "https://api.github.com/users/shadowsocks/gists{/gist_id}", + "starred_url": "https://api.github.com/users/shadowsocks/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/shadowsocks/subscriptions", + "organizations_url": "https://api.github.com/users/shadowsocks/orgs", + "repos_url": "https://api.github.com/users/shadowsocks/repos", + "events_url": "https://api.github.com/users/shadowsocks/events{/privacy}", + "received_events_url": "https://api.github.com/users/shadowsocks/received_events", + "type": "Organization", + "site_admin": false + }, + "html_url": "https://github.com/shadowsocks/ShadowsocksX-NG", + "description": "Next Generation of ShadowsocksX", + "fork": false, + "url": "https://api.github.com/repos/shadowsocks/ShadowsocksX-NG", + "forks_url": "https://api.github.com/repos/shadowsocks/ShadowsocksX-NG/forks", + "keys_url": "https://api.github.com/repos/shadowsocks/ShadowsocksX-NG/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/shadowsocks/ShadowsocksX-NG/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/shadowsocks/ShadowsocksX-NG/teams", + "hooks_url": "https://api.github.com/repos/shadowsocks/ShadowsocksX-NG/hooks", + "issue_events_url": "https://api.github.com/repos/shadowsocks/ShadowsocksX-NG/issues/events{/number}", + "events_url": "https://api.github.com/repos/shadowsocks/ShadowsocksX-NG/events", + "assignees_url": "https://api.github.com/repos/shadowsocks/ShadowsocksX-NG/assignees{/user}", + "branches_url": "https://api.github.com/repos/shadowsocks/ShadowsocksX-NG/branches{/branch}", + "tags_url": "https://api.github.com/repos/shadowsocks/ShadowsocksX-NG/tags", + "blobs_url": "https://api.github.com/repos/shadowsocks/ShadowsocksX-NG/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/shadowsocks/ShadowsocksX-NG/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/shadowsocks/ShadowsocksX-NG/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/shadowsocks/ShadowsocksX-NG/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/shadowsocks/ShadowsocksX-NG/statuses/{sha}", + "languages_url": "https://api.github.com/repos/shadowsocks/ShadowsocksX-NG/languages", + "stargazers_url": "https://api.github.com/repos/shadowsocks/ShadowsocksX-NG/stargazers", + "contributors_url": "https://api.github.com/repos/shadowsocks/ShadowsocksX-NG/contributors", + "subscribers_url": "https://api.github.com/repos/shadowsocks/ShadowsocksX-NG/subscribers", + "subscription_url": "https://api.github.com/repos/shadowsocks/ShadowsocksX-NG/subscription", + "commits_url": "https://api.github.com/repos/shadowsocks/ShadowsocksX-NG/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/shadowsocks/ShadowsocksX-NG/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/shadowsocks/ShadowsocksX-NG/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/shadowsocks/ShadowsocksX-NG/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/shadowsocks/ShadowsocksX-NG/contents/{+path}", + "compare_url": "https://api.github.com/repos/shadowsocks/ShadowsocksX-NG/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/shadowsocks/ShadowsocksX-NG/merges", + "archive_url": "https://api.github.com/repos/shadowsocks/ShadowsocksX-NG/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/shadowsocks/ShadowsocksX-NG/downloads", + "issues_url": "https://api.github.com/repos/shadowsocks/ShadowsocksX-NG/issues{/number}", + "pulls_url": "https://api.github.com/repos/shadowsocks/ShadowsocksX-NG/pulls{/number}", + "milestones_url": "https://api.github.com/repos/shadowsocks/ShadowsocksX-NG/milestones{/number}", + "notifications_url": "https://api.github.com/repos/shadowsocks/ShadowsocksX-NG/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/shadowsocks/ShadowsocksX-NG/labels{/name}", + "releases_url": "https://api.github.com/repos/shadowsocks/ShadowsocksX-NG/releases{/id}", + "deployments_url": "https://api.github.com/repos/shadowsocks/ShadowsocksX-NG/deployments", + "created_at": "2016-06-10T11:49:00Z", + "updated_at": "2019-08-20T01:46:30Z", + "pushed_at": "2019-08-19T09:55:23Z", + "git_url": "git://github.com/shadowsocks/ShadowsocksX-NG.git", + "ssh_url": "git@github.com:shadowsocks/ShadowsocksX-NG.git", + "clone_url": "https://github.com/shadowsocks/ShadowsocksX-NG.git", + "svn_url": "https://github.com/shadowsocks/ShadowsocksX-NG", + "homepage": "", + "size": 19065, + "stargazers_count": 22788, + "watchers_count": 22788, + "language": "Swift", + "has_issues": true, + "has_projects": false, + "has_downloads": true, + "has_wiki": true, + "has_pages": true, + "forks_count": 6329, + "mirror_url": null, + "archived": false, + "disabled": false, + "open_issues_count": 203, + "license": { + "key": "gpl-3.0", + "name": "GNU General Public License v3.0", + "spdx_id": "GPL-3.0", + "url": "https://api.github.com/licenses/gpl-3.0", + "node_id": "MDc6TGljZW5zZTk=" + }, + "forks": 6329, + "open_issues": 203, + "watchers": 22788, + "default_branch": "develop", + "score": 1 + }, + { + "id": 32578467, + "node_id": "MDEwOlJlcG9zaXRvcnkzMjU3ODQ2Nw==", + "name": "Charts", + "full_name": "danielgindi/Charts", + "private": false, + "owner": { + "login": "danielgindi", + "id": 366926, + "node_id": "MDQ6VXNlcjM2NjkyNg==", + "avatar_url": "https://avatars1.githubusercontent.com/u/366926?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/danielgindi", + "html_url": "https://github.com/danielgindi", + "followers_url": "https://api.github.com/users/danielgindi/followers", + "following_url": "https://api.github.com/users/danielgindi/following{/other_user}", + "gists_url": "https://api.github.com/users/danielgindi/gists{/gist_id}", + "starred_url": "https://api.github.com/users/danielgindi/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/danielgindi/subscriptions", + "organizations_url": "https://api.github.com/users/danielgindi/orgs", + "repos_url": "https://api.github.com/users/danielgindi/repos", + "events_url": "https://api.github.com/users/danielgindi/events{/privacy}", + "received_events_url": "https://api.github.com/users/danielgindi/received_events", + "type": "User", + "site_admin": false + }, + "html_url": "https://github.com/danielgindi/Charts", + "description": "Beautiful charts for iOS/tvOS/OSX! The Apple side of the crossplatform MPAndroidChart.", + "fork": false, + "url": "https://api.github.com/repos/danielgindi/Charts", + "forks_url": "https://api.github.com/repos/danielgindi/Charts/forks", + "keys_url": "https://api.github.com/repos/danielgindi/Charts/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/danielgindi/Charts/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/danielgindi/Charts/teams", + "hooks_url": "https://api.github.com/repos/danielgindi/Charts/hooks", + "issue_events_url": "https://api.github.com/repos/danielgindi/Charts/issues/events{/number}", + "events_url": "https://api.github.com/repos/danielgindi/Charts/events", + "assignees_url": "https://api.github.com/repos/danielgindi/Charts/assignees{/user}", + "branches_url": "https://api.github.com/repos/danielgindi/Charts/branches{/branch}", + "tags_url": "https://api.github.com/repos/danielgindi/Charts/tags", + "blobs_url": "https://api.github.com/repos/danielgindi/Charts/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/danielgindi/Charts/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/danielgindi/Charts/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/danielgindi/Charts/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/danielgindi/Charts/statuses/{sha}", + "languages_url": "https://api.github.com/repos/danielgindi/Charts/languages", + "stargazers_url": "https://api.github.com/repos/danielgindi/Charts/stargazers", + "contributors_url": "https://api.github.com/repos/danielgindi/Charts/contributors", + "subscribers_url": "https://api.github.com/repos/danielgindi/Charts/subscribers", + "subscription_url": "https://api.github.com/repos/danielgindi/Charts/subscription", + "commits_url": "https://api.github.com/repos/danielgindi/Charts/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/danielgindi/Charts/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/danielgindi/Charts/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/danielgindi/Charts/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/danielgindi/Charts/contents/{+path}", + "compare_url": "https://api.github.com/repos/danielgindi/Charts/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/danielgindi/Charts/merges", + "archive_url": "https://api.github.com/repos/danielgindi/Charts/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/danielgindi/Charts/downloads", + "issues_url": "https://api.github.com/repos/danielgindi/Charts/issues{/number}", + "pulls_url": "https://api.github.com/repos/danielgindi/Charts/pulls{/number}", + "milestones_url": "https://api.github.com/repos/danielgindi/Charts/milestones{/number}", + "notifications_url": "https://api.github.com/repos/danielgindi/Charts/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/danielgindi/Charts/labels{/name}", + "releases_url": "https://api.github.com/repos/danielgindi/Charts/releases{/id}", + "deployments_url": "https://api.github.com/repos/danielgindi/Charts/deployments", + "created_at": "2015-03-20T10:49:12Z", + "updated_at": "2019-08-19T20:24:57Z", + "pushed_at": "2019-08-16T15:51:26Z", + "git_url": "git://github.com/danielgindi/Charts.git", + "ssh_url": "git@github.com:danielgindi/Charts.git", + "clone_url": "https://github.com/danielgindi/Charts.git", + "svn_url": "https://github.com/danielgindi/Charts", + "homepage": "", + "size": 159428, + "stargazers_count": 21469, + "watchers_count": 21469, + "language": "Swift", + "has_issues": true, + "has_projects": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 4189, + "mirror_url": null, + "archived": false, + "disabled": false, + "open_issues_count": 472, + "license": { + "key": "apache-2.0", + "name": "Apache License 2.0", + "spdx_id": "Apache-2.0", + "url": "https://api.github.com/licenses/apache-2.0", + "node_id": "MDc6TGljZW5zZTI=" + }, + "forks": 4189, + "open_issues": 472, + "watchers": 21469, + "default_branch": "master", + "score": 1 + }, + { + "id": 50447720, + "node_id": "MDEwOlJlcG9zaXRvcnk1MDQ0NzcyMA==", + "name": "swift-algorithm-club", + "full_name": "raywenderlich/swift-algorithm-club", + "private": false, + "owner": { + "login": "raywenderlich", + "id": 4722515, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjQ3MjI1MTU=", + "avatar_url": "https://avatars1.githubusercontent.com/u/4722515?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/raywenderlich", + "html_url": "https://github.com/raywenderlich", + "followers_url": "https://api.github.com/users/raywenderlich/followers", + "following_url": "https://api.github.com/users/raywenderlich/following{/other_user}", + "gists_url": "https://api.github.com/users/raywenderlich/gists{/gist_id}", + "starred_url": "https://api.github.com/users/raywenderlich/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/raywenderlich/subscriptions", + "organizations_url": "https://api.github.com/users/raywenderlich/orgs", + "repos_url": "https://api.github.com/users/raywenderlich/repos", + "events_url": "https://api.github.com/users/raywenderlich/events{/privacy}", + "received_events_url": "https://api.github.com/users/raywenderlich/received_events", + "type": "Organization", + "site_admin": false + }, + "html_url": "https://github.com/raywenderlich/swift-algorithm-club", + "description": "Algorithms and data structures in Swift, with explanations!", + "fork": false, + "url": "https://api.github.com/repos/raywenderlich/swift-algorithm-club", + "forks_url": "https://api.github.com/repos/raywenderlich/swift-algorithm-club/forks", + "keys_url": "https://api.github.com/repos/raywenderlich/swift-algorithm-club/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/raywenderlich/swift-algorithm-club/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/raywenderlich/swift-algorithm-club/teams", + "hooks_url": "https://api.github.com/repos/raywenderlich/swift-algorithm-club/hooks", + "issue_events_url": "https://api.github.com/repos/raywenderlich/swift-algorithm-club/issues/events{/number}", + "events_url": "https://api.github.com/repos/raywenderlich/swift-algorithm-club/events", + "assignees_url": "https://api.github.com/repos/raywenderlich/swift-algorithm-club/assignees{/user}", + "branches_url": "https://api.github.com/repos/raywenderlich/swift-algorithm-club/branches{/branch}", + "tags_url": "https://api.github.com/repos/raywenderlich/swift-algorithm-club/tags", + "blobs_url": "https://api.github.com/repos/raywenderlich/swift-algorithm-club/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/raywenderlich/swift-algorithm-club/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/raywenderlich/swift-algorithm-club/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/raywenderlich/swift-algorithm-club/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/raywenderlich/swift-algorithm-club/statuses/{sha}", + "languages_url": "https://api.github.com/repos/raywenderlich/swift-algorithm-club/languages", + "stargazers_url": "https://api.github.com/repos/raywenderlich/swift-algorithm-club/stargazers", + "contributors_url": "https://api.github.com/repos/raywenderlich/swift-algorithm-club/contributors", + "subscribers_url": "https://api.github.com/repos/raywenderlich/swift-algorithm-club/subscribers", + "subscription_url": "https://api.github.com/repos/raywenderlich/swift-algorithm-club/subscription", + "commits_url": "https://api.github.com/repos/raywenderlich/swift-algorithm-club/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/raywenderlich/swift-algorithm-club/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/raywenderlich/swift-algorithm-club/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/raywenderlich/swift-algorithm-club/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/raywenderlich/swift-algorithm-club/contents/{+path}", + "compare_url": "https://api.github.com/repos/raywenderlich/swift-algorithm-club/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/raywenderlich/swift-algorithm-club/merges", + "archive_url": "https://api.github.com/repos/raywenderlich/swift-algorithm-club/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/raywenderlich/swift-algorithm-club/downloads", + "issues_url": "https://api.github.com/repos/raywenderlich/swift-algorithm-club/issues{/number}", + "pulls_url": "https://api.github.com/repos/raywenderlich/swift-algorithm-club/pulls{/number}", + "milestones_url": "https://api.github.com/repos/raywenderlich/swift-algorithm-club/milestones{/number}", + "notifications_url": "https://api.github.com/repos/raywenderlich/swift-algorithm-club/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/raywenderlich/swift-algorithm-club/labels{/name}", + "releases_url": "https://api.github.com/repos/raywenderlich/swift-algorithm-club/releases{/id}", + "deployments_url": "https://api.github.com/repos/raywenderlich/swift-algorithm-club/deployments", + "created_at": "2016-01-26T17:56:12Z", + "updated_at": "2019-08-20T00:47:42Z", + "pushed_at": "2019-08-15T12:35:35Z", + "git_url": "git://github.com/raywenderlich/swift-algorithm-club.git", + "ssh_url": "git@github.com:raywenderlich/swift-algorithm-club.git", + "clone_url": "https://github.com/raywenderlich/swift-algorithm-club.git", + "svn_url": "https://github.com/raywenderlich/swift-algorithm-club", + "homepage": null, + "size": 13537, + "stargazers_count": 21086, + "watchers_count": 21086, + "language": "Swift", + "has_issues": true, + "has_projects": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": true, + "forks_count": 3569, + "mirror_url": null, + "archived": false, + "disabled": false, + "open_issues_count": 42, + "license": { + "key": "mit", + "name": "MIT License", + "spdx_id": "MIT", + "url": "https://api.github.com/licenses/mit", + "node_id": "MDc6TGljZW5zZTEz" + }, + "forks": 3569, + "open_issues": 42, + "watchers": 21086, + "default_branch": "master", + "score": 1 + }, + { + "id": 29887499, + "node_id": "MDEwOlJlcG9zaXRvcnkyOTg4NzQ5OQ==", + "name": "open-source-ios-apps", + "full_name": "dkhamsing/open-source-ios-apps", + "private": false, + "owner": { + "login": "dkhamsing", + "id": 4723115, + "node_id": "MDQ6VXNlcjQ3MjMxMTU=", + "avatar_url": "https://avatars0.githubusercontent.com/u/4723115?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/dkhamsing", + "html_url": "https://github.com/dkhamsing", + "followers_url": "https://api.github.com/users/dkhamsing/followers", + "following_url": "https://api.github.com/users/dkhamsing/following{/other_user}", + "gists_url": "https://api.github.com/users/dkhamsing/gists{/gist_id}", + "starred_url": "https://api.github.com/users/dkhamsing/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/dkhamsing/subscriptions", + "organizations_url": "https://api.github.com/users/dkhamsing/orgs", + "repos_url": "https://api.github.com/users/dkhamsing/repos", + "events_url": "https://api.github.com/users/dkhamsing/events{/privacy}", + "received_events_url": "https://api.github.com/users/dkhamsing/received_events", + "type": "User", + "site_admin": false + }, + "html_url": "https://github.com/dkhamsing/open-source-ios-apps", + "description": ":iphone: Collaborative List of Open-Source iOS Apps", + "fork": false, + "url": "https://api.github.com/repos/dkhamsing/open-source-ios-apps", + "forks_url": "https://api.github.com/repos/dkhamsing/open-source-ios-apps/forks", + "keys_url": "https://api.github.com/repos/dkhamsing/open-source-ios-apps/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/dkhamsing/open-source-ios-apps/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/dkhamsing/open-source-ios-apps/teams", + "hooks_url": "https://api.github.com/repos/dkhamsing/open-source-ios-apps/hooks", + "issue_events_url": "https://api.github.com/repos/dkhamsing/open-source-ios-apps/issues/events{/number}", + "events_url": "https://api.github.com/repos/dkhamsing/open-source-ios-apps/events", + "assignees_url": "https://api.github.com/repos/dkhamsing/open-source-ios-apps/assignees{/user}", + "branches_url": "https://api.github.com/repos/dkhamsing/open-source-ios-apps/branches{/branch}", + "tags_url": "https://api.github.com/repos/dkhamsing/open-source-ios-apps/tags", + "blobs_url": "https://api.github.com/repos/dkhamsing/open-source-ios-apps/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/dkhamsing/open-source-ios-apps/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/dkhamsing/open-source-ios-apps/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/dkhamsing/open-source-ios-apps/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/dkhamsing/open-source-ios-apps/statuses/{sha}", + "languages_url": "https://api.github.com/repos/dkhamsing/open-source-ios-apps/languages", + "stargazers_url": "https://api.github.com/repos/dkhamsing/open-source-ios-apps/stargazers", + "contributors_url": "https://api.github.com/repos/dkhamsing/open-source-ios-apps/contributors", + "subscribers_url": "https://api.github.com/repos/dkhamsing/open-source-ios-apps/subscribers", + "subscription_url": "https://api.github.com/repos/dkhamsing/open-source-ios-apps/subscription", + "commits_url": "https://api.github.com/repos/dkhamsing/open-source-ios-apps/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/dkhamsing/open-source-ios-apps/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/dkhamsing/open-source-ios-apps/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/dkhamsing/open-source-ios-apps/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/dkhamsing/open-source-ios-apps/contents/{+path}", + "compare_url": "https://api.github.com/repos/dkhamsing/open-source-ios-apps/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/dkhamsing/open-source-ios-apps/merges", + "archive_url": "https://api.github.com/repos/dkhamsing/open-source-ios-apps/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/dkhamsing/open-source-ios-apps/downloads", + "issues_url": "https://api.github.com/repos/dkhamsing/open-source-ios-apps/issues{/number}", + "pulls_url": "https://api.github.com/repos/dkhamsing/open-source-ios-apps/pulls{/number}", + "milestones_url": "https://api.github.com/repos/dkhamsing/open-source-ios-apps/milestones{/number}", + "notifications_url": "https://api.github.com/repos/dkhamsing/open-source-ios-apps/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/dkhamsing/open-source-ios-apps/labels{/name}", + "releases_url": "https://api.github.com/repos/dkhamsing/open-source-ios-apps/releases{/id}", + "deployments_url": "https://api.github.com/repos/dkhamsing/open-source-ios-apps/deployments", + "created_at": "2015-01-26T23:32:34Z", + "updated_at": "2019-08-19T18:09:21Z", + "pushed_at": "2019-08-13T00:03:21Z", + "git_url": "git://github.com/dkhamsing/open-source-ios-apps.git", + "ssh_url": "git@github.com:dkhamsing/open-source-ios-apps.git", + "clone_url": "https://github.com/dkhamsing/open-source-ios-apps.git", + "svn_url": "https://github.com/dkhamsing/open-source-ios-apps", + "homepage": "", + "size": 9018, + "stargazers_count": 20939, + "watchers_count": 20939, + "language": "Swift", + "has_issues": true, + "has_projects": false, + "has_downloads": true, + "has_wiki": true, + "has_pages": true, + "forks_count": 3455, + "mirror_url": null, + "archived": false, + "disabled": false, + "open_issues_count": 1, + "license": { + "key": "mit", + "name": "MIT License", + "spdx_id": "MIT", + "url": "https://api.github.com/licenses/mit", + "node_id": "MDc6TGljZW5zZTEz" + }, + "forks": 3455, + "open_issues": 1, + "watchers": 20939, + "default_branch": "master", + "score": 1 + }, + { + "id": 76838017, + "node_id": "MDEwOlJlcG9zaXRvcnk3NjgzODAxNw==", + "name": "iina", + "full_name": "iina/iina", + "private": false, + "owner": { + "login": "iina", + "id": 35151645, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjM1MTUxNjQ1", + "avatar_url": "https://avatars1.githubusercontent.com/u/35151645?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/iina", + "html_url": "https://github.com/iina", + "followers_url": "https://api.github.com/users/iina/followers", + "following_url": "https://api.github.com/users/iina/following{/other_user}", + "gists_url": "https://api.github.com/users/iina/gists{/gist_id}", + "starred_url": "https://api.github.com/users/iina/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/iina/subscriptions", + "organizations_url": "https://api.github.com/users/iina/orgs", + "repos_url": "https://api.github.com/users/iina/repos", + "events_url": "https://api.github.com/users/iina/events{/privacy}", + "received_events_url": "https://api.github.com/users/iina/received_events", + "type": "Organization", + "site_admin": false + }, + "html_url": "https://github.com/iina/iina", + "description": "The modern video player for macOS.", + "fork": false, + "url": "https://api.github.com/repos/iina/iina", + "forks_url": "https://api.github.com/repos/iina/iina/forks", + "keys_url": "https://api.github.com/repos/iina/iina/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/iina/iina/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/iina/iina/teams", + "hooks_url": "https://api.github.com/repos/iina/iina/hooks", + "issue_events_url": "https://api.github.com/repos/iina/iina/issues/events{/number}", + "events_url": "https://api.github.com/repos/iina/iina/events", + "assignees_url": "https://api.github.com/repos/iina/iina/assignees{/user}", + "branches_url": "https://api.github.com/repos/iina/iina/branches{/branch}", + "tags_url": "https://api.github.com/repos/iina/iina/tags", + "blobs_url": "https://api.github.com/repos/iina/iina/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/iina/iina/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/iina/iina/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/iina/iina/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/iina/iina/statuses/{sha}", + "languages_url": "https://api.github.com/repos/iina/iina/languages", + "stargazers_url": "https://api.github.com/repos/iina/iina/stargazers", + "contributors_url": "https://api.github.com/repos/iina/iina/contributors", + "subscribers_url": "https://api.github.com/repos/iina/iina/subscribers", + "subscription_url": "https://api.github.com/repos/iina/iina/subscription", + "commits_url": "https://api.github.com/repos/iina/iina/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/iina/iina/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/iina/iina/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/iina/iina/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/iina/iina/contents/{+path}", + "compare_url": "https://api.github.com/repos/iina/iina/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/iina/iina/merges", + "archive_url": "https://api.github.com/repos/iina/iina/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/iina/iina/downloads", + "issues_url": "https://api.github.com/repos/iina/iina/issues{/number}", + "pulls_url": "https://api.github.com/repos/iina/iina/pulls{/number}", + "milestones_url": "https://api.github.com/repos/iina/iina/milestones{/number}", + "notifications_url": "https://api.github.com/repos/iina/iina/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/iina/iina/labels{/name}", + "releases_url": "https://api.github.com/repos/iina/iina/releases{/id}", + "deployments_url": "https://api.github.com/repos/iina/iina/deployments", + "created_at": "2016-12-19T07:18:45Z", + "updated_at": "2019-08-20T02:14:41Z", + "pushed_at": "2019-08-12T16:19:14Z", + "git_url": "git://github.com/iina/iina.git", + "ssh_url": "git@github.com:iina/iina.git", + "clone_url": "https://github.com/iina/iina.git", + "svn_url": "https://github.com/iina/iina", + "homepage": "https://iina.io", + "size": 202644, + "stargazers_count": 20243, + "watchers_count": 20243, + "language": "Swift", + "has_issues": true, + "has_projects": false, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 1510, + "mirror_url": null, + "archived": false, + "disabled": false, + "open_issues_count": 682, + "license": { + "key": "gpl-3.0", + "name": "GNU General Public License v3.0", + "spdx_id": "GPL-3.0", + "url": "https://api.github.com/licenses/gpl-3.0", + "node_id": "MDc6TGljZW5zZTk=" + }, + "forks": 1510, + "open_issues": 682, + "watchers": 20243, + "default_branch": "develop", + "score": 1 + }, + { + "id": 3606624, + "node_id": "MDEwOlJlcG9zaXRvcnkzNjA2NjI0", + "name": "ReactiveCocoa", + "full_name": "ReactiveCocoa/ReactiveCocoa", + "private": false, + "owner": { + "login": "ReactiveCocoa", + "id": 3422977, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjM0MjI5Nzc=", + "avatar_url": "https://avatars0.githubusercontent.com/u/3422977?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/ReactiveCocoa", + "html_url": "https://github.com/ReactiveCocoa", + "followers_url": "https://api.github.com/users/ReactiveCocoa/followers", + "following_url": "https://api.github.com/users/ReactiveCocoa/following{/other_user}", + "gists_url": "https://api.github.com/users/ReactiveCocoa/gists{/gist_id}", + "starred_url": "https://api.github.com/users/ReactiveCocoa/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/ReactiveCocoa/subscriptions", + "organizations_url": "https://api.github.com/users/ReactiveCocoa/orgs", + "repos_url": "https://api.github.com/users/ReactiveCocoa/repos", + "events_url": "https://api.github.com/users/ReactiveCocoa/events{/privacy}", + "received_events_url": "https://api.github.com/users/ReactiveCocoa/received_events", + "type": "Organization", + "site_admin": false + }, + "html_url": "https://github.com/ReactiveCocoa/ReactiveCocoa", + "description": "Reactive extensions to Cocoa frameworks, built on top of ReactiveSwift", + "fork": false, + "url": "https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa", + "forks_url": "https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/forks", + "keys_url": "https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/teams", + "hooks_url": "https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/hooks", + "issue_events_url": "https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/issues/events{/number}", + "events_url": "https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/events", + "assignees_url": "https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/assignees{/user}", + "branches_url": "https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/branches{/branch}", + "tags_url": "https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/tags", + "blobs_url": "https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/statuses/{sha}", + "languages_url": "https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/languages", + "stargazers_url": "https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/stargazers", + "contributors_url": "https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/contributors", + "subscribers_url": "https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/subscribers", + "subscription_url": "https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/subscription", + "commits_url": "https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/contents/{+path}", + "compare_url": "https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/merges", + "archive_url": "https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/downloads", + "issues_url": "https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/issues{/number}", + "pulls_url": "https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/pulls{/number}", + "milestones_url": "https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/milestones{/number}", + "notifications_url": "https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/labels{/name}", + "releases_url": "https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/releases{/id}", + "deployments_url": "https://api.github.com/repos/ReactiveCocoa/ReactiveCocoa/deployments", + "created_at": "2012-03-02T22:11:24Z", + "updated_at": "2019-08-19T03:20:47Z", + "pushed_at": "2019-08-06T12:29:35Z", + "git_url": "git://github.com/ReactiveCocoa/ReactiveCocoa.git", + "ssh_url": "git@github.com:ReactiveCocoa/ReactiveCocoa.git", + "clone_url": "https://github.com/ReactiveCocoa/ReactiveCocoa.git", + "svn_url": "https://github.com/ReactiveCocoa/ReactiveCocoa", + "homepage": "", + "size": 17234, + "stargazers_count": 19623, + "watchers_count": 19623, + "language": "Swift", + "has_issues": true, + "has_projects": true, + "has_downloads": true, + "has_wiki": false, + "has_pages": false, + "forks_count": 3529, + "mirror_url": null, + "archived": false, + "disabled": false, + "open_issues_count": 47, + "license": { + "key": "other", + "name": "Other", + "spdx_id": "NOASSERTION", + "url": null, + "node_id": "MDc6TGljZW5zZTA=" + }, + "forks": 3529, + "open_issues": 47, + "watchers": 19623, + "default_branch": "master", + "score": 1 + }, + { + "id": 20965586, + "node_id": "MDEwOlJlcG9zaXRvcnkyMDk2NTU4Ng==", + "name": "SwiftyJSON", + "full_name": "SwiftyJSON/SwiftyJSON", + "private": false, + "owner": { + "login": "SwiftyJSON", + "id": 8858017, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjg4NTgwMTc=", + "avatar_url": "https://avatars1.githubusercontent.com/u/8858017?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/SwiftyJSON", + "html_url": "https://github.com/SwiftyJSON", + "followers_url": "https://api.github.com/users/SwiftyJSON/followers", + "following_url": "https://api.github.com/users/SwiftyJSON/following{/other_user}", + "gists_url": "https://api.github.com/users/SwiftyJSON/gists{/gist_id}", + "starred_url": "https://api.github.com/users/SwiftyJSON/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/SwiftyJSON/subscriptions", + "organizations_url": "https://api.github.com/users/SwiftyJSON/orgs", + "repos_url": "https://api.github.com/users/SwiftyJSON/repos", + "events_url": "https://api.github.com/users/SwiftyJSON/events{/privacy}", + "received_events_url": "https://api.github.com/users/SwiftyJSON/received_events", + "type": "Organization", + "site_admin": false + }, + "html_url": "https://github.com/SwiftyJSON/SwiftyJSON", + "description": "The better way to deal with JSON data in Swift.", + "fork": false, + "url": "https://api.github.com/repos/SwiftyJSON/SwiftyJSON", + "forks_url": "https://api.github.com/repos/SwiftyJSON/SwiftyJSON/forks", + "keys_url": "https://api.github.com/repos/SwiftyJSON/SwiftyJSON/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/SwiftyJSON/SwiftyJSON/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/SwiftyJSON/SwiftyJSON/teams", + "hooks_url": "https://api.github.com/repos/SwiftyJSON/SwiftyJSON/hooks", + "issue_events_url": "https://api.github.com/repos/SwiftyJSON/SwiftyJSON/issues/events{/number}", + "events_url": "https://api.github.com/repos/SwiftyJSON/SwiftyJSON/events", + "assignees_url": "https://api.github.com/repos/SwiftyJSON/SwiftyJSON/assignees{/user}", + "branches_url": "https://api.github.com/repos/SwiftyJSON/SwiftyJSON/branches{/branch}", + "tags_url": "https://api.github.com/repos/SwiftyJSON/SwiftyJSON/tags", + "blobs_url": "https://api.github.com/repos/SwiftyJSON/SwiftyJSON/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/SwiftyJSON/SwiftyJSON/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/SwiftyJSON/SwiftyJSON/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/SwiftyJSON/SwiftyJSON/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/SwiftyJSON/SwiftyJSON/statuses/{sha}", + "languages_url": "https://api.github.com/repos/SwiftyJSON/SwiftyJSON/languages", + "stargazers_url": "https://api.github.com/repos/SwiftyJSON/SwiftyJSON/stargazers", + "contributors_url": "https://api.github.com/repos/SwiftyJSON/SwiftyJSON/contributors", + "subscribers_url": "https://api.github.com/repos/SwiftyJSON/SwiftyJSON/subscribers", + "subscription_url": "https://api.github.com/repos/SwiftyJSON/SwiftyJSON/subscription", + "commits_url": "https://api.github.com/repos/SwiftyJSON/SwiftyJSON/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/SwiftyJSON/SwiftyJSON/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/SwiftyJSON/SwiftyJSON/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/SwiftyJSON/SwiftyJSON/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/SwiftyJSON/SwiftyJSON/contents/{+path}", + "compare_url": "https://api.github.com/repos/SwiftyJSON/SwiftyJSON/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/SwiftyJSON/SwiftyJSON/merges", + "archive_url": "https://api.github.com/repos/SwiftyJSON/SwiftyJSON/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/SwiftyJSON/SwiftyJSON/downloads", + "issues_url": "https://api.github.com/repos/SwiftyJSON/SwiftyJSON/issues{/number}", + "pulls_url": "https://api.github.com/repos/SwiftyJSON/SwiftyJSON/pulls{/number}", + "milestones_url": "https://api.github.com/repos/SwiftyJSON/SwiftyJSON/milestones{/number}", + "notifications_url": "https://api.github.com/repos/SwiftyJSON/SwiftyJSON/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/SwiftyJSON/SwiftyJSON/labels{/name}", + "releases_url": "https://api.github.com/repos/SwiftyJSON/SwiftyJSON/releases{/id}", + "deployments_url": "https://api.github.com/repos/SwiftyJSON/SwiftyJSON/deployments", + "created_at": "2014-06-18T14:41:15Z", + "updated_at": "2019-08-19T21:27:19Z", + "pushed_at": "2019-07-05T18:21:59Z", + "git_url": "git://github.com/SwiftyJSON/SwiftyJSON.git", + "ssh_url": "git@github.com:SwiftyJSON/SwiftyJSON.git", + "clone_url": "https://github.com/SwiftyJSON/SwiftyJSON.git", + "svn_url": "https://github.com/SwiftyJSON/SwiftyJSON", + "homepage": "", + "size": 1105, + "stargazers_count": 18796, + "watchers_count": 18796, + "language": "Swift", + "has_issues": true, + "has_projects": true, + "has_downloads": true, + "has_wiki": false, + "has_pages": false, + "forks_count": 3019, + "mirror_url": null, + "archived": false, + "disabled": false, + "open_issues_count": 88, + "license": { + "key": "mit", + "name": "MIT License", + "spdx_id": "MIT", + "url": "https://api.github.com/licenses/mit", + "node_id": "MDc6TGljZW5zZTEz" + }, + "forks": 3019, + "open_issues": 88, + "watchers": 18796, + "default_branch": "master", + "score": 1 + }, + { + "id": 109343098, + "node_id": "MDEwOlJlcG9zaXRvcnkxMDkzNDMwOTg=", + "name": "open-source-mac-os-apps", + "full_name": "serhii-londar/open-source-mac-os-apps", + "private": false, + "owner": { + "login": "serhii-londar", + "id": 15808174, + "node_id": "MDQ6VXNlcjE1ODA4MTc0", + "avatar_url": "https://avatars0.githubusercontent.com/u/15808174?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/serhii-londar", + "html_url": "https://github.com/serhii-londar", + "followers_url": "https://api.github.com/users/serhii-londar/followers", + "following_url": "https://api.github.com/users/serhii-londar/following{/other_user}", + "gists_url": "https://api.github.com/users/serhii-londar/gists{/gist_id}", + "starred_url": "https://api.github.com/users/serhii-londar/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/serhii-londar/subscriptions", + "organizations_url": "https://api.github.com/users/serhii-londar/orgs", + "repos_url": "https://api.github.com/users/serhii-londar/repos", + "events_url": "https://api.github.com/users/serhii-londar/events{/privacy}", + "received_events_url": "https://api.github.com/users/serhii-londar/received_events", + "type": "User", + "site_admin": false + }, + "html_url": "https://github.com/serhii-londar/open-source-mac-os-apps", + "description": "🚀 Awesome list of open source applications for macOS.", + "fork": false, + "url": "https://api.github.com/repos/serhii-londar/open-source-mac-os-apps", + "forks_url": "https://api.github.com/repos/serhii-londar/open-source-mac-os-apps/forks", + "keys_url": "https://api.github.com/repos/serhii-londar/open-source-mac-os-apps/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/serhii-londar/open-source-mac-os-apps/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/serhii-londar/open-source-mac-os-apps/teams", + "hooks_url": "https://api.github.com/repos/serhii-londar/open-source-mac-os-apps/hooks", + "issue_events_url": "https://api.github.com/repos/serhii-londar/open-source-mac-os-apps/issues/events{/number}", + "events_url": "https://api.github.com/repos/serhii-londar/open-source-mac-os-apps/events", + "assignees_url": "https://api.github.com/repos/serhii-londar/open-source-mac-os-apps/assignees{/user}", + "branches_url": "https://api.github.com/repos/serhii-londar/open-source-mac-os-apps/branches{/branch}", + "tags_url": "https://api.github.com/repos/serhii-londar/open-source-mac-os-apps/tags", + "blobs_url": "https://api.github.com/repos/serhii-londar/open-source-mac-os-apps/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/serhii-londar/open-source-mac-os-apps/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/serhii-londar/open-source-mac-os-apps/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/serhii-londar/open-source-mac-os-apps/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/serhii-londar/open-source-mac-os-apps/statuses/{sha}", + "languages_url": "https://api.github.com/repos/serhii-londar/open-source-mac-os-apps/languages", + "stargazers_url": "https://api.github.com/repos/serhii-londar/open-source-mac-os-apps/stargazers", + "contributors_url": "https://api.github.com/repos/serhii-londar/open-source-mac-os-apps/contributors", + "subscribers_url": "https://api.github.com/repos/serhii-londar/open-source-mac-os-apps/subscribers", + "subscription_url": "https://api.github.com/repos/serhii-londar/open-source-mac-os-apps/subscription", + "commits_url": "https://api.github.com/repos/serhii-londar/open-source-mac-os-apps/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/serhii-londar/open-source-mac-os-apps/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/serhii-londar/open-source-mac-os-apps/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/serhii-londar/open-source-mac-os-apps/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/serhii-londar/open-source-mac-os-apps/contents/{+path}", + "compare_url": "https://api.github.com/repos/serhii-londar/open-source-mac-os-apps/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/serhii-londar/open-source-mac-os-apps/merges", + "archive_url": "https://api.github.com/repos/serhii-londar/open-source-mac-os-apps/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/serhii-londar/open-source-mac-os-apps/downloads", + "issues_url": "https://api.github.com/repos/serhii-londar/open-source-mac-os-apps/issues{/number}", + "pulls_url": "https://api.github.com/repos/serhii-londar/open-source-mac-os-apps/pulls{/number}", + "milestones_url": "https://api.github.com/repos/serhii-londar/open-source-mac-os-apps/milestones{/number}", + "notifications_url": "https://api.github.com/repos/serhii-londar/open-source-mac-os-apps/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/serhii-londar/open-source-mac-os-apps/labels{/name}", + "releases_url": "https://api.github.com/repos/serhii-londar/open-source-mac-os-apps/releases{/id}", + "deployments_url": "https://api.github.com/repos/serhii-londar/open-source-mac-os-apps/deployments", + "created_at": "2017-11-03T02:35:33Z", + "updated_at": "2019-08-20T02:11:55Z", + "pushed_at": "2019-08-08T10:06:58Z", + "git_url": "git://github.com/serhii-londar/open-source-mac-os-apps.git", + "ssh_url": "git@github.com:serhii-londar/open-source-mac-os-apps.git", + "clone_url": "https://github.com/serhii-londar/open-source-mac-os-apps.git", + "svn_url": "https://github.com/serhii-londar/open-source-mac-os-apps", + "homepage": "", + "size": 4068, + "stargazers_count": 18015, + "watchers_count": 18015, + "language": "Swift", + "has_issues": true, + "has_projects": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": true, + "forks_count": 1193, + "mirror_url": null, + "archived": false, + "disabled": false, + "open_issues_count": 13, + "license": { + "key": "cc0-1.0", + "name": "Creative Commons Zero v1.0 Universal", + "spdx_id": "CC0-1.0", + "url": "https://api.github.com/licenses/cc0-1.0", + "node_id": "MDc6TGljZW5zZTY=" + }, + "forks": 1193, + "open_issues": 13, + "watchers": 18015, + "default_branch": "master", + "score": 1 + }, + { + "id": 70198664, + "node_id": "MDEwOlJlcG9zaXRvcnk3MDE5ODY2NA==", + "name": "lottie-ios", + "full_name": "airbnb/lottie-ios", + "private": false, + "owner": { + "login": "airbnb", + "id": 698437, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjY5ODQzNw==", + "avatar_url": "https://avatars3.githubusercontent.com/u/698437?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/airbnb", + "html_url": "https://github.com/airbnb", + "followers_url": "https://api.github.com/users/airbnb/followers", + "following_url": "https://api.github.com/users/airbnb/following{/other_user}", + "gists_url": "https://api.github.com/users/airbnb/gists{/gist_id}", + "starred_url": "https://api.github.com/users/airbnb/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/airbnb/subscriptions", + "organizations_url": "https://api.github.com/users/airbnb/orgs", + "repos_url": "https://api.github.com/users/airbnb/repos", + "events_url": "https://api.github.com/users/airbnb/events{/privacy}", + "received_events_url": "https://api.github.com/users/airbnb/received_events", + "type": "Organization", + "site_admin": false + }, + "html_url": "https://github.com/airbnb/lottie-ios", + "description": "An iOS library to natively render After Effects vector animations", + "fork": false, + "url": "https://api.github.com/repos/airbnb/lottie-ios", + "forks_url": "https://api.github.com/repos/airbnb/lottie-ios/forks", + "keys_url": "https://api.github.com/repos/airbnb/lottie-ios/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/airbnb/lottie-ios/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/airbnb/lottie-ios/teams", + "hooks_url": "https://api.github.com/repos/airbnb/lottie-ios/hooks", + "issue_events_url": "https://api.github.com/repos/airbnb/lottie-ios/issues/events{/number}", + "events_url": "https://api.github.com/repos/airbnb/lottie-ios/events", + "assignees_url": "https://api.github.com/repos/airbnb/lottie-ios/assignees{/user}", + "branches_url": "https://api.github.com/repos/airbnb/lottie-ios/branches{/branch}", + "tags_url": "https://api.github.com/repos/airbnb/lottie-ios/tags", + "blobs_url": "https://api.github.com/repos/airbnb/lottie-ios/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/airbnb/lottie-ios/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/airbnb/lottie-ios/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/airbnb/lottie-ios/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/airbnb/lottie-ios/statuses/{sha}", + "languages_url": "https://api.github.com/repos/airbnb/lottie-ios/languages", + "stargazers_url": "https://api.github.com/repos/airbnb/lottie-ios/stargazers", + "contributors_url": "https://api.github.com/repos/airbnb/lottie-ios/contributors", + "subscribers_url": "https://api.github.com/repos/airbnb/lottie-ios/subscribers", + "subscription_url": "https://api.github.com/repos/airbnb/lottie-ios/subscription", + "commits_url": "https://api.github.com/repos/airbnb/lottie-ios/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/airbnb/lottie-ios/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/airbnb/lottie-ios/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/airbnb/lottie-ios/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/airbnb/lottie-ios/contents/{+path}", + "compare_url": "https://api.github.com/repos/airbnb/lottie-ios/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/airbnb/lottie-ios/merges", + "archive_url": "https://api.github.com/repos/airbnb/lottie-ios/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/airbnb/lottie-ios/downloads", + "issues_url": "https://api.github.com/repos/airbnb/lottie-ios/issues{/number}", + "pulls_url": "https://api.github.com/repos/airbnb/lottie-ios/pulls{/number}", + "milestones_url": "https://api.github.com/repos/airbnb/lottie-ios/milestones{/number}", + "notifications_url": "https://api.github.com/repos/airbnb/lottie-ios/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/airbnb/lottie-ios/labels{/name}", + "releases_url": "https://api.github.com/repos/airbnb/lottie-ios/releases{/id}", + "deployments_url": "https://api.github.com/repos/airbnb/lottie-ios/deployments", + "created_at": "2016-10-06T22:38:38Z", + "updated_at": "2019-08-19T22:02:06Z", + "pushed_at": "2019-08-20T02:15:48Z", + "git_url": "git://github.com/airbnb/lottie-ios.git", + "ssh_url": "git@github.com:airbnb/lottie-ios.git", + "clone_url": "https://github.com/airbnb/lottie-ios.git", + "svn_url": "https://github.com/airbnb/lottie-ios", + "homepage": "http://airbnb.io/lottie/", + "size": 36396, + "stargazers_count": 17932, + "watchers_count": 17932, + "language": "Swift", + "has_issues": true, + "has_projects": false, + "has_downloads": true, + "has_wiki": false, + "has_pages": false, + "forks_count": 2499, + "mirror_url": null, + "archived": false, + "disabled": false, + "open_issues_count": 93, + "license": { + "key": "apache-2.0", + "name": "Apache License 2.0", + "spdx_id": "Apache-2.0", + "url": "https://api.github.com/licenses/apache-2.0", + "node_id": "MDc6TGljZW5zZTI=" + }, + "forks": 2499, + "open_issues": 93, + "watchers": 17932, + "default_branch": "master", + "score": 1 + }, + { + "id": 21696302, + "node_id": "MDEwOlJlcG9zaXRvcnkyMTY5NjMwMg==", + "name": "awesome-swift", + "full_name": "matteocrippa/awesome-swift", + "private": false, + "owner": { + "login": "matteocrippa", + "id": 475463, + "node_id": "MDQ6VXNlcjQ3NTQ2Mw==", + "avatar_url": "https://avatars2.githubusercontent.com/u/475463?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/matteocrippa", + "html_url": "https://github.com/matteocrippa", + "followers_url": "https://api.github.com/users/matteocrippa/followers", + "following_url": "https://api.github.com/users/matteocrippa/following{/other_user}", + "gists_url": "https://api.github.com/users/matteocrippa/gists{/gist_id}", + "starred_url": "https://api.github.com/users/matteocrippa/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/matteocrippa/subscriptions", + "organizations_url": "https://api.github.com/users/matteocrippa/orgs", + "repos_url": "https://api.github.com/users/matteocrippa/repos", + "events_url": "https://api.github.com/users/matteocrippa/events{/privacy}", + "received_events_url": "https://api.github.com/users/matteocrippa/received_events", + "type": "User", + "site_admin": false + }, + "html_url": "https://github.com/matteocrippa/awesome-swift", + "description": "A collaborative list of awesome Swift libraries and resources. Feel free to contribute!", + "fork": false, + "url": "https://api.github.com/repos/matteocrippa/awesome-swift", + "forks_url": "https://api.github.com/repos/matteocrippa/awesome-swift/forks", + "keys_url": "https://api.github.com/repos/matteocrippa/awesome-swift/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/matteocrippa/awesome-swift/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/matteocrippa/awesome-swift/teams", + "hooks_url": "https://api.github.com/repos/matteocrippa/awesome-swift/hooks", + "issue_events_url": "https://api.github.com/repos/matteocrippa/awesome-swift/issues/events{/number}", + "events_url": "https://api.github.com/repos/matteocrippa/awesome-swift/events", + "assignees_url": "https://api.github.com/repos/matteocrippa/awesome-swift/assignees{/user}", + "branches_url": "https://api.github.com/repos/matteocrippa/awesome-swift/branches{/branch}", + "tags_url": "https://api.github.com/repos/matteocrippa/awesome-swift/tags", + "blobs_url": "https://api.github.com/repos/matteocrippa/awesome-swift/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/matteocrippa/awesome-swift/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/matteocrippa/awesome-swift/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/matteocrippa/awesome-swift/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/matteocrippa/awesome-swift/statuses/{sha}", + "languages_url": "https://api.github.com/repos/matteocrippa/awesome-swift/languages", + "stargazers_url": "https://api.github.com/repos/matteocrippa/awesome-swift/stargazers", + "contributors_url": "https://api.github.com/repos/matteocrippa/awesome-swift/contributors", + "subscribers_url": "https://api.github.com/repos/matteocrippa/awesome-swift/subscribers", + "subscription_url": "https://api.github.com/repos/matteocrippa/awesome-swift/subscription", + "commits_url": "https://api.github.com/repos/matteocrippa/awesome-swift/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/matteocrippa/awesome-swift/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/matteocrippa/awesome-swift/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/matteocrippa/awesome-swift/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/matteocrippa/awesome-swift/contents/{+path}", + "compare_url": "https://api.github.com/repos/matteocrippa/awesome-swift/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/matteocrippa/awesome-swift/merges", + "archive_url": "https://api.github.com/repos/matteocrippa/awesome-swift/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/matteocrippa/awesome-swift/downloads", + "issues_url": "https://api.github.com/repos/matteocrippa/awesome-swift/issues{/number}", + "pulls_url": "https://api.github.com/repos/matteocrippa/awesome-swift/pulls{/number}", + "milestones_url": "https://api.github.com/repos/matteocrippa/awesome-swift/milestones{/number}", + "notifications_url": "https://api.github.com/repos/matteocrippa/awesome-swift/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/matteocrippa/awesome-swift/labels{/name}", + "releases_url": "https://api.github.com/repos/matteocrippa/awesome-swift/releases{/id}", + "deployments_url": "https://api.github.com/repos/matteocrippa/awesome-swift/deployments", + "created_at": "2014-07-10T14:04:09Z", + "updated_at": "2019-08-20T01:31:50Z", + "pushed_at": "2019-08-17T05:21:51Z", + "git_url": "git://github.com/matteocrippa/awesome-swift.git", + "ssh_url": "git@github.com:matteocrippa/awesome-swift.git", + "clone_url": "https://github.com/matteocrippa/awesome-swift.git", + "svn_url": "https://github.com/matteocrippa/awesome-swift", + "homepage": "", + "size": 5026, + "stargazers_count": 17756, + "watchers_count": 17756, + "language": "Swift", + "has_issues": true, + "has_projects": true, + "has_downloads": true, + "has_wiki": false, + "has_pages": true, + "forks_count": 2492, + "mirror_url": null, + "archived": false, + "disabled": false, + "open_issues_count": 6, + "license": { + "key": "cc0-1.0", + "name": "Creative Commons Zero v1.0 Universal", + "spdx_id": "CC0-1.0", + "url": "https://api.github.com/licenses/cc0-1.0", + "node_id": "MDc6TGljZW5zZTY=" + }, + "forks": 2492, + "open_issues": 6, + "watchers": 17756, + "default_branch": "master", + "score": 1 + }, + { + "id": 74697963, + "node_id": "MDEwOlJlcG9zaXRvcnk3NDY5Nzk2Mw==", + "name": "Hero", + "full_name": "HeroTransitions/Hero", + "private": false, + "owner": { + "login": "HeroTransitions", + "id": 40681391, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjQwNjgxMzkx", + "avatar_url": "https://avatars3.githubusercontent.com/u/40681391?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/HeroTransitions", + "html_url": "https://github.com/HeroTransitions", + "followers_url": "https://api.github.com/users/HeroTransitions/followers", + "following_url": "https://api.github.com/users/HeroTransitions/following{/other_user}", + "gists_url": "https://api.github.com/users/HeroTransitions/gists{/gist_id}", + "starred_url": "https://api.github.com/users/HeroTransitions/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/HeroTransitions/subscriptions", + "organizations_url": "https://api.github.com/users/HeroTransitions/orgs", + "repos_url": "https://api.github.com/users/HeroTransitions/repos", + "events_url": "https://api.github.com/users/HeroTransitions/events{/privacy}", + "received_events_url": "https://api.github.com/users/HeroTransitions/received_events", + "type": "Organization", + "site_admin": false + }, + "html_url": "https://github.com/HeroTransitions/Hero", + "description": "Elegant transition library for iOS & tvOS", + "fork": false, + "url": "https://api.github.com/repos/HeroTransitions/Hero", + "forks_url": "https://api.github.com/repos/HeroTransitions/Hero/forks", + "keys_url": "https://api.github.com/repos/HeroTransitions/Hero/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/HeroTransitions/Hero/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/HeroTransitions/Hero/teams", + "hooks_url": "https://api.github.com/repos/HeroTransitions/Hero/hooks", + "issue_events_url": "https://api.github.com/repos/HeroTransitions/Hero/issues/events{/number}", + "events_url": "https://api.github.com/repos/HeroTransitions/Hero/events", + "assignees_url": "https://api.github.com/repos/HeroTransitions/Hero/assignees{/user}", + "branches_url": "https://api.github.com/repos/HeroTransitions/Hero/branches{/branch}", + "tags_url": "https://api.github.com/repos/HeroTransitions/Hero/tags", + "blobs_url": "https://api.github.com/repos/HeroTransitions/Hero/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/HeroTransitions/Hero/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/HeroTransitions/Hero/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/HeroTransitions/Hero/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/HeroTransitions/Hero/statuses/{sha}", + "languages_url": "https://api.github.com/repos/HeroTransitions/Hero/languages", + "stargazers_url": "https://api.github.com/repos/HeroTransitions/Hero/stargazers", + "contributors_url": "https://api.github.com/repos/HeroTransitions/Hero/contributors", + "subscribers_url": "https://api.github.com/repos/HeroTransitions/Hero/subscribers", + "subscription_url": "https://api.github.com/repos/HeroTransitions/Hero/subscription", + "commits_url": "https://api.github.com/repos/HeroTransitions/Hero/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/HeroTransitions/Hero/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/HeroTransitions/Hero/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/HeroTransitions/Hero/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/HeroTransitions/Hero/contents/{+path}", + "compare_url": "https://api.github.com/repos/HeroTransitions/Hero/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/HeroTransitions/Hero/merges", + "archive_url": "https://api.github.com/repos/HeroTransitions/Hero/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/HeroTransitions/Hero/downloads", + "issues_url": "https://api.github.com/repos/HeroTransitions/Hero/issues{/number}", + "pulls_url": "https://api.github.com/repos/HeroTransitions/Hero/pulls{/number}", + "milestones_url": "https://api.github.com/repos/HeroTransitions/Hero/milestones{/number}", + "notifications_url": "https://api.github.com/repos/HeroTransitions/Hero/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/HeroTransitions/Hero/labels{/name}", + "releases_url": "https://api.github.com/repos/HeroTransitions/Hero/releases{/id}", + "deployments_url": "https://api.github.com/repos/HeroTransitions/Hero/deployments", + "created_at": "2016-11-24T18:49:37Z", + "updated_at": "2019-08-19T23:18:13Z", + "pushed_at": "2019-07-24T23:05:39Z", + "git_url": "git://github.com/HeroTransitions/Hero.git", + "ssh_url": "git@github.com:HeroTransitions/Hero.git", + "clone_url": "https://github.com/HeroTransitions/Hero.git", + "svn_url": "https://github.com/HeroTransitions/Hero", + "homepage": "", + "size": 28723, + "stargazers_count": 17159, + "watchers_count": 17159, + "language": "Swift", + "has_issues": true, + "has_projects": false, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 1360, + "mirror_url": null, + "archived": false, + "disabled": false, + "open_issues_count": 180, + "license": { + "key": "mit", + "name": "MIT License", + "spdx_id": "MIT", + "url": "https://api.github.com/licenses/mit", + "node_id": "MDc6TGljZW5zZTEz" + }, + "forks": 1360, + "open_issues": 180, + "watchers": 17159, + "default_branch": "master", + "score": 1 + }, + { + "id": 49910095, + "node_id": "MDEwOlJlcG9zaXRvcnk0OTkxMDA5NQ==", + "name": "vapor", + "full_name": "vapor/vapor", + "private": false, + "owner": { + "login": "vapor", + "id": 17364220, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjE3MzY0MjIw", + "avatar_url": "https://avatars1.githubusercontent.com/u/17364220?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/vapor", + "html_url": "https://github.com/vapor", + "followers_url": "https://api.github.com/users/vapor/followers", + "following_url": "https://api.github.com/users/vapor/following{/other_user}", + "gists_url": "https://api.github.com/users/vapor/gists{/gist_id}", + "starred_url": "https://api.github.com/users/vapor/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/vapor/subscriptions", + "organizations_url": "https://api.github.com/users/vapor/orgs", + "repos_url": "https://api.github.com/users/vapor/repos", + "events_url": "https://api.github.com/users/vapor/events{/privacy}", + "received_events_url": "https://api.github.com/users/vapor/received_events", + "type": "Organization", + "site_admin": false + }, + "html_url": "https://github.com/vapor/vapor", + "description": "💧 A server-side Swift web framework.", + "fork": false, + "url": "https://api.github.com/repos/vapor/vapor", + "forks_url": "https://api.github.com/repos/vapor/vapor/forks", + "keys_url": "https://api.github.com/repos/vapor/vapor/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/vapor/vapor/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/vapor/vapor/teams", + "hooks_url": "https://api.github.com/repos/vapor/vapor/hooks", + "issue_events_url": "https://api.github.com/repos/vapor/vapor/issues/events{/number}", + "events_url": "https://api.github.com/repos/vapor/vapor/events", + "assignees_url": "https://api.github.com/repos/vapor/vapor/assignees{/user}", + "branches_url": "https://api.github.com/repos/vapor/vapor/branches{/branch}", + "tags_url": "https://api.github.com/repos/vapor/vapor/tags", + "blobs_url": "https://api.github.com/repos/vapor/vapor/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/vapor/vapor/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/vapor/vapor/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/vapor/vapor/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/vapor/vapor/statuses/{sha}", + "languages_url": "https://api.github.com/repos/vapor/vapor/languages", + "stargazers_url": "https://api.github.com/repos/vapor/vapor/stargazers", + "contributors_url": "https://api.github.com/repos/vapor/vapor/contributors", + "subscribers_url": "https://api.github.com/repos/vapor/vapor/subscribers", + "subscription_url": "https://api.github.com/repos/vapor/vapor/subscription", + "commits_url": "https://api.github.com/repos/vapor/vapor/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/vapor/vapor/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/vapor/vapor/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/vapor/vapor/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/vapor/vapor/contents/{+path}", + "compare_url": "https://api.github.com/repos/vapor/vapor/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/vapor/vapor/merges", + "archive_url": "https://api.github.com/repos/vapor/vapor/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/vapor/vapor/downloads", + "issues_url": "https://api.github.com/repos/vapor/vapor/issues{/number}", + "pulls_url": "https://api.github.com/repos/vapor/vapor/pulls{/number}", + "milestones_url": "https://api.github.com/repos/vapor/vapor/milestones{/number}", + "notifications_url": "https://api.github.com/repos/vapor/vapor/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/vapor/vapor/labels{/name}", + "releases_url": "https://api.github.com/repos/vapor/vapor/releases{/id}", + "deployments_url": "https://api.github.com/repos/vapor/vapor/deployments", + "created_at": "2016-01-18T22:37:52Z", + "updated_at": "2019-08-20T01:33:52Z", + "pushed_at": "2019-08-08T20:55:51Z", + "git_url": "git://github.com/vapor/vapor.git", + "ssh_url": "git@github.com:vapor/vapor.git", + "clone_url": "https://github.com/vapor/vapor.git", + "svn_url": "https://github.com/vapor/vapor", + "homepage": "https://vapor.codes", + "size": 15055, + "stargazers_count": 17040, + "watchers_count": 17040, + "language": "Swift", + "has_issues": true, + "has_projects": false, + "has_downloads": true, + "has_wiki": false, + "has_pages": false, + "forks_count": 1007, + "mirror_url": null, + "archived": false, + "disabled": false, + "open_issues_count": 97, + "license": { + "key": "mit", + "name": "MIT License", + "spdx_id": "MIT", + "url": "https://api.github.com/licenses/mit", + "node_id": "MDc6TGljZW5zZTEz" + }, + "forks": 1007, + "open_issues": 97, + "watchers": 17040, + "default_branch": "master", + "score": 1 + }, + { + "id": 33569135, + "node_id": "MDEwOlJlcG9zaXRvcnkzMzU2OTEzNQ==", + "name": "RxSwift", + "full_name": "ReactiveX/RxSwift", + "private": false, + "owner": { + "login": "ReactiveX", + "id": 6407041, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjY0MDcwNDE=", + "avatar_url": "https://avatars1.githubusercontent.com/u/6407041?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/ReactiveX", + "html_url": "https://github.com/ReactiveX", + "followers_url": "https://api.github.com/users/ReactiveX/followers", + "following_url": "https://api.github.com/users/ReactiveX/following{/other_user}", + "gists_url": "https://api.github.com/users/ReactiveX/gists{/gist_id}", + "starred_url": "https://api.github.com/users/ReactiveX/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/ReactiveX/subscriptions", + "organizations_url": "https://api.github.com/users/ReactiveX/orgs", + "repos_url": "https://api.github.com/users/ReactiveX/repos", + "events_url": "https://api.github.com/users/ReactiveX/events{/privacy}", + "received_events_url": "https://api.github.com/users/ReactiveX/received_events", + "type": "Organization", + "site_admin": false + }, + "html_url": "https://github.com/ReactiveX/RxSwift", + "description": "Reactive Programming in Swift", + "fork": false, + "url": "https://api.github.com/repos/ReactiveX/RxSwift", + "forks_url": "https://api.github.com/repos/ReactiveX/RxSwift/forks", + "keys_url": "https://api.github.com/repos/ReactiveX/RxSwift/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/ReactiveX/RxSwift/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/ReactiveX/RxSwift/teams", + "hooks_url": "https://api.github.com/repos/ReactiveX/RxSwift/hooks", + "issue_events_url": "https://api.github.com/repos/ReactiveX/RxSwift/issues/events{/number}", + "events_url": "https://api.github.com/repos/ReactiveX/RxSwift/events", + "assignees_url": "https://api.github.com/repos/ReactiveX/RxSwift/assignees{/user}", + "branches_url": "https://api.github.com/repos/ReactiveX/RxSwift/branches{/branch}", + "tags_url": "https://api.github.com/repos/ReactiveX/RxSwift/tags", + "blobs_url": "https://api.github.com/repos/ReactiveX/RxSwift/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/ReactiveX/RxSwift/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/ReactiveX/RxSwift/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/ReactiveX/RxSwift/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/ReactiveX/RxSwift/statuses/{sha}", + "languages_url": "https://api.github.com/repos/ReactiveX/RxSwift/languages", + "stargazers_url": "https://api.github.com/repos/ReactiveX/RxSwift/stargazers", + "contributors_url": "https://api.github.com/repos/ReactiveX/RxSwift/contributors", + "subscribers_url": "https://api.github.com/repos/ReactiveX/RxSwift/subscribers", + "subscription_url": "https://api.github.com/repos/ReactiveX/RxSwift/subscription", + "commits_url": "https://api.github.com/repos/ReactiveX/RxSwift/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/ReactiveX/RxSwift/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/ReactiveX/RxSwift/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/ReactiveX/RxSwift/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/ReactiveX/RxSwift/contents/{+path}", + "compare_url": "https://api.github.com/repos/ReactiveX/RxSwift/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/ReactiveX/RxSwift/merges", + "archive_url": "https://api.github.com/repos/ReactiveX/RxSwift/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/ReactiveX/RxSwift/downloads", + "issues_url": "https://api.github.com/repos/ReactiveX/RxSwift/issues{/number}", + "pulls_url": "https://api.github.com/repos/ReactiveX/RxSwift/pulls{/number}", + "milestones_url": "https://api.github.com/repos/ReactiveX/RxSwift/milestones{/number}", + "notifications_url": "https://api.github.com/repos/ReactiveX/RxSwift/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/ReactiveX/RxSwift/labels{/name}", + "releases_url": "https://api.github.com/repos/ReactiveX/RxSwift/releases{/id}", + "deployments_url": "https://api.github.com/repos/ReactiveX/RxSwift/deployments", + "created_at": "2015-04-07T21:25:17Z", + "updated_at": "2019-08-19T14:50:39Z", + "pushed_at": "2019-08-16T21:09:49Z", + "git_url": "git://github.com/ReactiveX/RxSwift.git", + "ssh_url": "git@github.com:ReactiveX/RxSwift.git", + "clone_url": "https://github.com/ReactiveX/RxSwift.git", + "svn_url": "https://github.com/ReactiveX/RxSwift", + "homepage": "", + "size": 14170, + "stargazers_count": 16996, + "watchers_count": 16996, + "language": "Swift", + "has_issues": true, + "has_projects": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 2864, + "mirror_url": null, + "archived": false, + "disabled": false, + "open_issues_count": 41, + "license": { + "key": "other", + "name": "Other", + "spdx_id": "NOASSERTION", + "url": null, + "node_id": "MDc6TGljZW5zZTA=" + }, + "forks": 2864, + "open_issues": 41, + "watchers": 16996, + "default_branch": "master", + "score": 1 + }, + { + "id": 20541795, + "node_id": "MDEwOlJlcG9zaXRvcnkyMDU0MTc5NQ==", + "name": "SnapKit", + "full_name": "SnapKit/SnapKit", + "private": false, + "owner": { + "login": "SnapKit", + "id": 7809696, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjc4MDk2OTY=", + "avatar_url": "https://avatars1.githubusercontent.com/u/7809696?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/SnapKit", + "html_url": "https://github.com/SnapKit", + "followers_url": "https://api.github.com/users/SnapKit/followers", + "following_url": "https://api.github.com/users/SnapKit/following{/other_user}", + "gists_url": "https://api.github.com/users/SnapKit/gists{/gist_id}", + "starred_url": "https://api.github.com/users/SnapKit/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/SnapKit/subscriptions", + "organizations_url": "https://api.github.com/users/SnapKit/orgs", + "repos_url": "https://api.github.com/users/SnapKit/repos", + "events_url": "https://api.github.com/users/SnapKit/events{/privacy}", + "received_events_url": "https://api.github.com/users/SnapKit/received_events", + "type": "Organization", + "site_admin": false + }, + "html_url": "https://github.com/SnapKit/SnapKit", + "description": "A Swift Autolayout DSL for iOS & OS X", + "fork": false, + "url": "https://api.github.com/repos/SnapKit/SnapKit", + "forks_url": "https://api.github.com/repos/SnapKit/SnapKit/forks", + "keys_url": "https://api.github.com/repos/SnapKit/SnapKit/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/SnapKit/SnapKit/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/SnapKit/SnapKit/teams", + "hooks_url": "https://api.github.com/repos/SnapKit/SnapKit/hooks", + "issue_events_url": "https://api.github.com/repos/SnapKit/SnapKit/issues/events{/number}", + "events_url": "https://api.github.com/repos/SnapKit/SnapKit/events", + "assignees_url": "https://api.github.com/repos/SnapKit/SnapKit/assignees{/user}", + "branches_url": "https://api.github.com/repos/SnapKit/SnapKit/branches{/branch}", + "tags_url": "https://api.github.com/repos/SnapKit/SnapKit/tags", + "blobs_url": "https://api.github.com/repos/SnapKit/SnapKit/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/SnapKit/SnapKit/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/SnapKit/SnapKit/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/SnapKit/SnapKit/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/SnapKit/SnapKit/statuses/{sha}", + "languages_url": "https://api.github.com/repos/SnapKit/SnapKit/languages", + "stargazers_url": "https://api.github.com/repos/SnapKit/SnapKit/stargazers", + "contributors_url": "https://api.github.com/repos/SnapKit/SnapKit/contributors", + "subscribers_url": "https://api.github.com/repos/SnapKit/SnapKit/subscribers", + "subscription_url": "https://api.github.com/repos/SnapKit/SnapKit/subscription", + "commits_url": "https://api.github.com/repos/SnapKit/SnapKit/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/SnapKit/SnapKit/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/SnapKit/SnapKit/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/SnapKit/SnapKit/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/SnapKit/SnapKit/contents/{+path}", + "compare_url": "https://api.github.com/repos/SnapKit/SnapKit/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/SnapKit/SnapKit/merges", + "archive_url": "https://api.github.com/repos/SnapKit/SnapKit/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/SnapKit/SnapKit/downloads", + "issues_url": "https://api.github.com/repos/SnapKit/SnapKit/issues{/number}", + "pulls_url": "https://api.github.com/repos/SnapKit/SnapKit/pulls{/number}", + "milestones_url": "https://api.github.com/repos/SnapKit/SnapKit/milestones{/number}", + "notifications_url": "https://api.github.com/repos/SnapKit/SnapKit/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/SnapKit/SnapKit/labels{/name}", + "releases_url": "https://api.github.com/repos/SnapKit/SnapKit/releases{/id}", + "deployments_url": "https://api.github.com/repos/SnapKit/SnapKit/deployments", + "created_at": "2014-06-05T21:13:40Z", + "updated_at": "2019-08-20T00:20:20Z", + "pushed_at": "2019-08-05T08:39:19Z", + "git_url": "git://github.com/SnapKit/SnapKit.git", + "ssh_url": "git@github.com:SnapKit/SnapKit.git", + "clone_url": "https://github.com/SnapKit/SnapKit.git", + "svn_url": "https://github.com/SnapKit/SnapKit", + "homepage": "http://snapkit.io", + "size": 2808, + "stargazers_count": 15423, + "watchers_count": 15423, + "language": "Swift", + "has_issues": true, + "has_projects": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": true, + "forks_count": 1495, + "mirror_url": null, + "archived": false, + "disabled": false, + "open_issues_count": 63, + "license": { + "key": "mit", + "name": "MIT License", + "spdx_id": "MIT", + "url": "https://api.github.com/licenses/mit", + "node_id": "MDc6TGljZW5zZTEz" + }, + "forks": 1495, + "open_issues": 63, + "watchers": 15423, + "default_branch": "develop", + "score": 1 + }, + { + "id": 44998092, + "node_id": "MDEwOlJlcG9zaXRvcnk0NDk5ODA5Mg==", + "name": "Aerial", + "full_name": "JohnCoates/Aerial", + "private": false, + "owner": { + "login": "JohnCoates", + "id": 967800, + "node_id": "MDQ6VXNlcjk2NzgwMA==", + "avatar_url": "https://avatars1.githubusercontent.com/u/967800?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/JohnCoates", + "html_url": "https://github.com/JohnCoates", + "followers_url": "https://api.github.com/users/JohnCoates/followers", + "following_url": "https://api.github.com/users/JohnCoates/following{/other_user}", + "gists_url": "https://api.github.com/users/JohnCoates/gists{/gist_id}", + "starred_url": "https://api.github.com/users/JohnCoates/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/JohnCoates/subscriptions", + "organizations_url": "https://api.github.com/users/JohnCoates/orgs", + "repos_url": "https://api.github.com/users/JohnCoates/repos", + "events_url": "https://api.github.com/users/JohnCoates/events{/privacy}", + "received_events_url": "https://api.github.com/users/JohnCoates/received_events", + "type": "User", + "site_admin": false + }, + "html_url": "https://github.com/JohnCoates/Aerial", + "description": "Apple TV Aerial Screensaver for Mac", + "fork": false, + "url": "https://api.github.com/repos/JohnCoates/Aerial", + "forks_url": "https://api.github.com/repos/JohnCoates/Aerial/forks", + "keys_url": "https://api.github.com/repos/JohnCoates/Aerial/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/JohnCoates/Aerial/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/JohnCoates/Aerial/teams", + "hooks_url": "https://api.github.com/repos/JohnCoates/Aerial/hooks", + "issue_events_url": "https://api.github.com/repos/JohnCoates/Aerial/issues/events{/number}", + "events_url": "https://api.github.com/repos/JohnCoates/Aerial/events", + "assignees_url": "https://api.github.com/repos/JohnCoates/Aerial/assignees{/user}", + "branches_url": "https://api.github.com/repos/JohnCoates/Aerial/branches{/branch}", + "tags_url": "https://api.github.com/repos/JohnCoates/Aerial/tags", + "blobs_url": "https://api.github.com/repos/JohnCoates/Aerial/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/JohnCoates/Aerial/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/JohnCoates/Aerial/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/JohnCoates/Aerial/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/JohnCoates/Aerial/statuses/{sha}", + "languages_url": "https://api.github.com/repos/JohnCoates/Aerial/languages", + "stargazers_url": "https://api.github.com/repos/JohnCoates/Aerial/stargazers", + "contributors_url": "https://api.github.com/repos/JohnCoates/Aerial/contributors", + "subscribers_url": "https://api.github.com/repos/JohnCoates/Aerial/subscribers", + "subscription_url": "https://api.github.com/repos/JohnCoates/Aerial/subscription", + "commits_url": "https://api.github.com/repos/JohnCoates/Aerial/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/JohnCoates/Aerial/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/JohnCoates/Aerial/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/JohnCoates/Aerial/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/JohnCoates/Aerial/contents/{+path}", + "compare_url": "https://api.github.com/repos/JohnCoates/Aerial/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/JohnCoates/Aerial/merges", + "archive_url": "https://api.github.com/repos/JohnCoates/Aerial/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/JohnCoates/Aerial/downloads", + "issues_url": "https://api.github.com/repos/JohnCoates/Aerial/issues{/number}", + "pulls_url": "https://api.github.com/repos/JohnCoates/Aerial/pulls{/number}", + "milestones_url": "https://api.github.com/repos/JohnCoates/Aerial/milestones{/number}", + "notifications_url": "https://api.github.com/repos/JohnCoates/Aerial/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/JohnCoates/Aerial/labels{/name}", + "releases_url": "https://api.github.com/repos/JohnCoates/Aerial/releases{/id}", + "deployments_url": "https://api.github.com/repos/JohnCoates/Aerial/deployments", + "created_at": "2015-10-26T21:21:31Z", + "updated_at": "2019-08-20T00:55:44Z", + "pushed_at": "2019-08-18T17:02:30Z", + "git_url": "git://github.com/JohnCoates/Aerial.git", + "ssh_url": "git@github.com:JohnCoates/Aerial.git", + "clone_url": "https://github.com/JohnCoates/Aerial.git", + "svn_url": "https://github.com/JohnCoates/Aerial", + "homepage": null, + "size": 12663, + "stargazers_count": 15090, + "watchers_count": 15090, + "language": "Swift", + "has_issues": true, + "has_projects": true, + "has_downloads": true, + "has_wiki": false, + "has_pages": false, + "forks_count": 800, + "mirror_url": null, + "archived": false, + "disabled": false, + "open_issues_count": 18, + "license": { + "key": "mit", + "name": "MIT License", + "spdx_id": "MIT", + "url": "https://api.github.com/licenses/mit", + "node_id": "MDc6TGljZW5zZTEz" + }, + "forks": 800, + "open_issues": 18, + "watchers": 15090, + "default_branch": "master", + "score": 1 + }, + { + "id": 33486016, + "node_id": "MDEwOlJlcG9zaXRvcnkzMzQ4NjAxNg==", + "name": "Kingfisher", + "full_name": "onevcat/Kingfisher", + "private": false, + "owner": { + "login": "onevcat", + "id": 1019875, + "node_id": "MDQ6VXNlcjEwMTk4NzU=", + "avatar_url": "https://avatars0.githubusercontent.com/u/1019875?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/onevcat", + "html_url": "https://github.com/onevcat", + "followers_url": "https://api.github.com/users/onevcat/followers", + "following_url": "https://api.github.com/users/onevcat/following{/other_user}", + "gists_url": "https://api.github.com/users/onevcat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/onevcat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/onevcat/subscriptions", + "organizations_url": "https://api.github.com/users/onevcat/orgs", + "repos_url": "https://api.github.com/users/onevcat/repos", + "events_url": "https://api.github.com/users/onevcat/events{/privacy}", + "received_events_url": "https://api.github.com/users/onevcat/received_events", + "type": "User", + "site_admin": false + }, + "html_url": "https://github.com/onevcat/Kingfisher", + "description": "A lightweight, pure-Swift library for downloading and caching images from the web.", + "fork": false, + "url": "https://api.github.com/repos/onevcat/Kingfisher", + "forks_url": "https://api.github.com/repos/onevcat/Kingfisher/forks", + "keys_url": "https://api.github.com/repos/onevcat/Kingfisher/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/onevcat/Kingfisher/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/onevcat/Kingfisher/teams", + "hooks_url": "https://api.github.com/repos/onevcat/Kingfisher/hooks", + "issue_events_url": "https://api.github.com/repos/onevcat/Kingfisher/issues/events{/number}", + "events_url": "https://api.github.com/repos/onevcat/Kingfisher/events", + "assignees_url": "https://api.github.com/repos/onevcat/Kingfisher/assignees{/user}", + "branches_url": "https://api.github.com/repos/onevcat/Kingfisher/branches{/branch}", + "tags_url": "https://api.github.com/repos/onevcat/Kingfisher/tags", + "blobs_url": "https://api.github.com/repos/onevcat/Kingfisher/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/onevcat/Kingfisher/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/onevcat/Kingfisher/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/onevcat/Kingfisher/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/onevcat/Kingfisher/statuses/{sha}", + "languages_url": "https://api.github.com/repos/onevcat/Kingfisher/languages", + "stargazers_url": "https://api.github.com/repos/onevcat/Kingfisher/stargazers", + "contributors_url": "https://api.github.com/repos/onevcat/Kingfisher/contributors", + "subscribers_url": "https://api.github.com/repos/onevcat/Kingfisher/subscribers", + "subscription_url": "https://api.github.com/repos/onevcat/Kingfisher/subscription", + "commits_url": "https://api.github.com/repos/onevcat/Kingfisher/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/onevcat/Kingfisher/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/onevcat/Kingfisher/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/onevcat/Kingfisher/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/onevcat/Kingfisher/contents/{+path}", + "compare_url": "https://api.github.com/repos/onevcat/Kingfisher/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/onevcat/Kingfisher/merges", + "archive_url": "https://api.github.com/repos/onevcat/Kingfisher/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/onevcat/Kingfisher/downloads", + "issues_url": "https://api.github.com/repos/onevcat/Kingfisher/issues{/number}", + "pulls_url": "https://api.github.com/repos/onevcat/Kingfisher/pulls{/number}", + "milestones_url": "https://api.github.com/repos/onevcat/Kingfisher/milestones{/number}", + "notifications_url": "https://api.github.com/repos/onevcat/Kingfisher/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/onevcat/Kingfisher/labels{/name}", + "releases_url": "https://api.github.com/repos/onevcat/Kingfisher/releases{/id}", + "deployments_url": "https://api.github.com/repos/onevcat/Kingfisher/deployments", + "created_at": "2015-04-06T14:26:21Z", + "updated_at": "2019-08-20T01:16:43Z", + "pushed_at": "2019-08-19T11:39:27Z", + "git_url": "git://github.com/onevcat/Kingfisher.git", + "ssh_url": "git@github.com:onevcat/Kingfisher.git", + "clone_url": "https://github.com/onevcat/Kingfisher.git", + "svn_url": "https://github.com/onevcat/Kingfisher", + "homepage": "", + "size": 18604, + "stargazers_count": 14708, + "watchers_count": 14708, + "language": "Swift", + "has_issues": true, + "has_projects": false, + "has_downloads": true, + "has_wiki": true, + "has_pages": true, + "forks_count": 1655, + "mirror_url": null, + "archived": false, + "disabled": false, + "open_issues_count": 40, + "license": { + "key": "mit", + "name": "MIT License", + "spdx_id": "MIT", + "url": "https://api.github.com/licenses/mit", + "node_id": "MDc6TGljZW5zZTEz" + }, + "forks": 1655, + "open_issues": 40, + "watchers": 14708, + "default_branch": "master", + "score": 1 + }, + { + "id": 20822291, + "node_id": "MDEwOlJlcG9zaXRvcnkyMDgyMjI5MQ==", + "name": "SwiftGuide", + "full_name": "ipader/SwiftGuide", + "private": false, + "owner": { + "login": "ipader", + "id": 373016, + "node_id": "MDQ6VXNlcjM3MzAxNg==", + "avatar_url": "https://avatars3.githubusercontent.com/u/373016?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/ipader", + "html_url": "https://github.com/ipader", + "followers_url": "https://api.github.com/users/ipader/followers", + "following_url": "https://api.github.com/users/ipader/following{/other_user}", + "gists_url": "https://api.github.com/users/ipader/gists{/gist_id}", + "starred_url": "https://api.github.com/users/ipader/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/ipader/subscriptions", + "organizations_url": "https://api.github.com/users/ipader/orgs", + "repos_url": "https://api.github.com/users/ipader/repos", + "events_url": "https://api.github.com/users/ipader/events{/privacy}", + "received_events_url": "https://api.github.com/users/ipader/received_events", + "type": "User", + "site_admin": false + }, + "html_url": "https://github.com/ipader/SwiftGuide", + "description": "Swift Featured Projects in brain Mapping", + "fork": false, + "url": "https://api.github.com/repos/ipader/SwiftGuide", + "forks_url": "https://api.github.com/repos/ipader/SwiftGuide/forks", + "keys_url": "https://api.github.com/repos/ipader/SwiftGuide/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/ipader/SwiftGuide/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/ipader/SwiftGuide/teams", + "hooks_url": "https://api.github.com/repos/ipader/SwiftGuide/hooks", + "issue_events_url": "https://api.github.com/repos/ipader/SwiftGuide/issues/events{/number}", + "events_url": "https://api.github.com/repos/ipader/SwiftGuide/events", + "assignees_url": "https://api.github.com/repos/ipader/SwiftGuide/assignees{/user}", + "branches_url": "https://api.github.com/repos/ipader/SwiftGuide/branches{/branch}", + "tags_url": "https://api.github.com/repos/ipader/SwiftGuide/tags", + "blobs_url": "https://api.github.com/repos/ipader/SwiftGuide/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/ipader/SwiftGuide/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/ipader/SwiftGuide/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/ipader/SwiftGuide/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/ipader/SwiftGuide/statuses/{sha}", + "languages_url": "https://api.github.com/repos/ipader/SwiftGuide/languages", + "stargazers_url": "https://api.github.com/repos/ipader/SwiftGuide/stargazers", + "contributors_url": "https://api.github.com/repos/ipader/SwiftGuide/contributors", + "subscribers_url": "https://api.github.com/repos/ipader/SwiftGuide/subscribers", + "subscription_url": "https://api.github.com/repos/ipader/SwiftGuide/subscription", + "commits_url": "https://api.github.com/repos/ipader/SwiftGuide/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/ipader/SwiftGuide/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/ipader/SwiftGuide/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/ipader/SwiftGuide/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/ipader/SwiftGuide/contents/{+path}", + "compare_url": "https://api.github.com/repos/ipader/SwiftGuide/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/ipader/SwiftGuide/merges", + "archive_url": "https://api.github.com/repos/ipader/SwiftGuide/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/ipader/SwiftGuide/downloads", + "issues_url": "https://api.github.com/repos/ipader/SwiftGuide/issues{/number}", + "pulls_url": "https://api.github.com/repos/ipader/SwiftGuide/pulls{/number}", + "milestones_url": "https://api.github.com/repos/ipader/SwiftGuide/milestones{/number}", + "notifications_url": "https://api.github.com/repos/ipader/SwiftGuide/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/ipader/SwiftGuide/labels{/name}", + "releases_url": "https://api.github.com/repos/ipader/SwiftGuide/releases{/id}", + "deployments_url": "https://api.github.com/repos/ipader/SwiftGuide/deployments", + "created_at": "2014-06-14T01:17:57Z", + "updated_at": "2019-08-20T01:59:59Z", + "pushed_at": "2019-07-28T10:00:41Z", + "git_url": "git://github.com/ipader/SwiftGuide.git", + "ssh_url": "git@github.com:ipader/SwiftGuide.git", + "clone_url": "https://github.com/ipader/SwiftGuide.git", + "svn_url": "https://github.com/ipader/SwiftGuide", + "homepage": "", + "size": 78170, + "stargazers_count": 14619, + "watchers_count": 14619, + "language": "Swift", + "has_issues": true, + "has_projects": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": true, + "forks_count": 3524, + "mirror_url": null, + "archived": false, + "disabled": false, + "open_issues_count": 0, + "license": null, + "forks": 3524, + "open_issues": 0, + "watchers": 14619, + "default_branch": "master", + "score": 1 + }, + { + "id": 43568832, + "node_id": "MDEwOlJlcG9zaXRvcnk0MzU2ODgzMg==", + "name": "Perfect", + "full_name": "PerfectlySoft/Perfect", + "private": false, + "owner": { + "login": "PerfectlySoft", + "id": 14945043, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjE0OTQ1MDQz", + "avatar_url": "https://avatars1.githubusercontent.com/u/14945043?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/PerfectlySoft", + "html_url": "https://github.com/PerfectlySoft", + "followers_url": "https://api.github.com/users/PerfectlySoft/followers", + "following_url": "https://api.github.com/users/PerfectlySoft/following{/other_user}", + "gists_url": "https://api.github.com/users/PerfectlySoft/gists{/gist_id}", + "starred_url": "https://api.github.com/users/PerfectlySoft/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/PerfectlySoft/subscriptions", + "organizations_url": "https://api.github.com/users/PerfectlySoft/orgs", + "repos_url": "https://api.github.com/users/PerfectlySoft/repos", + "events_url": "https://api.github.com/users/PerfectlySoft/events{/privacy}", + "received_events_url": "https://api.github.com/users/PerfectlySoft/received_events", + "type": "Organization", + "site_admin": false + }, + "html_url": "https://github.com/PerfectlySoft/Perfect", + "description": "Server-side Swift. The Perfect core toolset and framework for Swift Developers. (For mobile back-end development, website and API development, and more…)", + "fork": false, + "url": "https://api.github.com/repos/PerfectlySoft/Perfect", + "forks_url": "https://api.github.com/repos/PerfectlySoft/Perfect/forks", + "keys_url": "https://api.github.com/repos/PerfectlySoft/Perfect/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/PerfectlySoft/Perfect/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/PerfectlySoft/Perfect/teams", + "hooks_url": "https://api.github.com/repos/PerfectlySoft/Perfect/hooks", + "issue_events_url": "https://api.github.com/repos/PerfectlySoft/Perfect/issues/events{/number}", + "events_url": "https://api.github.com/repos/PerfectlySoft/Perfect/events", + "assignees_url": "https://api.github.com/repos/PerfectlySoft/Perfect/assignees{/user}", + "branches_url": "https://api.github.com/repos/PerfectlySoft/Perfect/branches{/branch}", + "tags_url": "https://api.github.com/repos/PerfectlySoft/Perfect/tags", + "blobs_url": "https://api.github.com/repos/PerfectlySoft/Perfect/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/PerfectlySoft/Perfect/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/PerfectlySoft/Perfect/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/PerfectlySoft/Perfect/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/PerfectlySoft/Perfect/statuses/{sha}", + "languages_url": "https://api.github.com/repos/PerfectlySoft/Perfect/languages", + "stargazers_url": "https://api.github.com/repos/PerfectlySoft/Perfect/stargazers", + "contributors_url": "https://api.github.com/repos/PerfectlySoft/Perfect/contributors", + "subscribers_url": "https://api.github.com/repos/PerfectlySoft/Perfect/subscribers", + "subscription_url": "https://api.github.com/repos/PerfectlySoft/Perfect/subscription", + "commits_url": "https://api.github.com/repos/PerfectlySoft/Perfect/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/PerfectlySoft/Perfect/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/PerfectlySoft/Perfect/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/PerfectlySoft/Perfect/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/PerfectlySoft/Perfect/contents/{+path}", + "compare_url": "https://api.github.com/repos/PerfectlySoft/Perfect/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/PerfectlySoft/Perfect/merges", + "archive_url": "https://api.github.com/repos/PerfectlySoft/Perfect/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/PerfectlySoft/Perfect/downloads", + "issues_url": "https://api.github.com/repos/PerfectlySoft/Perfect/issues{/number}", + "pulls_url": "https://api.github.com/repos/PerfectlySoft/Perfect/pulls{/number}", + "milestones_url": "https://api.github.com/repos/PerfectlySoft/Perfect/milestones{/number}", + "notifications_url": "https://api.github.com/repos/PerfectlySoft/Perfect/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/PerfectlySoft/Perfect/labels{/name}", + "releases_url": "https://api.github.com/repos/PerfectlySoft/Perfect/releases{/id}", + "deployments_url": "https://api.github.com/repos/PerfectlySoft/Perfect/deployments", + "created_at": "2015-10-02T18:20:08Z", + "updated_at": "2019-08-19T14:26:02Z", + "pushed_at": "2019-06-06T18:13:43Z", + "git_url": "git://github.com/PerfectlySoft/Perfect.git", + "ssh_url": "git@github.com:PerfectlySoft/Perfect.git", + "clone_url": "https://github.com/PerfectlySoft/Perfect.git", + "svn_url": "https://github.com/PerfectlySoft/Perfect", + "homepage": "https://www.perfect.org", + "size": 5448, + "stargazers_count": 13548, + "watchers_count": 13548, + "language": "Swift", + "has_issues": true, + "has_projects": false, + "has_downloads": true, + "has_wiki": false, + "has_pages": false, + "forks_count": 967, + "mirror_url": null, + "archived": false, + "disabled": false, + "open_issues_count": 58, + "license": { + "key": "other", + "name": "Other", + "spdx_id": "NOASSERTION", + "url": null, + "node_id": "MDc6TGljZW5zZTA=" + }, + "forks": 967, + "open_issues": 58, + "watchers": 13548, + "default_branch": "master", + "score": 1 + }, + { + "id": 28513398, + "node_id": "MDEwOlJlcG9zaXRvcnkyODUxMzM5OA==", + "name": "Spring", + "full_name": "MengTo/Spring", + "private": false, + "owner": { + "login": "MengTo", + "id": 1065452, + "node_id": "MDQ6VXNlcjEwNjU0NTI=", + "avatar_url": "https://avatars1.githubusercontent.com/u/1065452?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/MengTo", + "html_url": "https://github.com/MengTo", + "followers_url": "https://api.github.com/users/MengTo/followers", + "following_url": "https://api.github.com/users/MengTo/following{/other_user}", + "gists_url": "https://api.github.com/users/MengTo/gists{/gist_id}", + "starred_url": "https://api.github.com/users/MengTo/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/MengTo/subscriptions", + "organizations_url": "https://api.github.com/users/MengTo/orgs", + "repos_url": "https://api.github.com/users/MengTo/repos", + "events_url": "https://api.github.com/users/MengTo/events{/privacy}", + "received_events_url": "https://api.github.com/users/MengTo/received_events", + "type": "User", + "site_admin": false + }, + "html_url": "https://github.com/MengTo/Spring", + "description": "A library to simplify iOS animations in Swift.", + "fork": false, + "url": "https://api.github.com/repos/MengTo/Spring", + "forks_url": "https://api.github.com/repos/MengTo/Spring/forks", + "keys_url": "https://api.github.com/repos/MengTo/Spring/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/MengTo/Spring/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/MengTo/Spring/teams", + "hooks_url": "https://api.github.com/repos/MengTo/Spring/hooks", + "issue_events_url": "https://api.github.com/repos/MengTo/Spring/issues/events{/number}", + "events_url": "https://api.github.com/repos/MengTo/Spring/events", + "assignees_url": "https://api.github.com/repos/MengTo/Spring/assignees{/user}", + "branches_url": "https://api.github.com/repos/MengTo/Spring/branches{/branch}", + "tags_url": "https://api.github.com/repos/MengTo/Spring/tags", + "blobs_url": "https://api.github.com/repos/MengTo/Spring/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/MengTo/Spring/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/MengTo/Spring/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/MengTo/Spring/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/MengTo/Spring/statuses/{sha}", + "languages_url": "https://api.github.com/repos/MengTo/Spring/languages", + "stargazers_url": "https://api.github.com/repos/MengTo/Spring/stargazers", + "contributors_url": "https://api.github.com/repos/MengTo/Spring/contributors", + "subscribers_url": "https://api.github.com/repos/MengTo/Spring/subscribers", + "subscription_url": "https://api.github.com/repos/MengTo/Spring/subscription", + "commits_url": "https://api.github.com/repos/MengTo/Spring/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/MengTo/Spring/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/MengTo/Spring/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/MengTo/Spring/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/MengTo/Spring/contents/{+path}", + "compare_url": "https://api.github.com/repos/MengTo/Spring/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/MengTo/Spring/merges", + "archive_url": "https://api.github.com/repos/MengTo/Spring/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/MengTo/Spring/downloads", + "issues_url": "https://api.github.com/repos/MengTo/Spring/issues{/number}", + "pulls_url": "https://api.github.com/repos/MengTo/Spring/pulls{/number}", + "milestones_url": "https://api.github.com/repos/MengTo/Spring/milestones{/number}", + "notifications_url": "https://api.github.com/repos/MengTo/Spring/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/MengTo/Spring/labels{/name}", + "releases_url": "https://api.github.com/repos/MengTo/Spring/releases{/id}", + "deployments_url": "https://api.github.com/repos/MengTo/Spring/deployments", + "created_at": "2014-12-26T14:57:02Z", + "updated_at": "2019-08-20T00:18:26Z", + "pushed_at": "2019-08-14T18:39:13Z", + "git_url": "git://github.com/MengTo/Spring.git", + "ssh_url": "git@github.com:MengTo/Spring.git", + "clone_url": "https://github.com/MengTo/Spring.git", + "svn_url": "https://github.com/MengTo/Spring", + "homepage": "http://designcode.io", + "size": 925, + "stargazers_count": 13254, + "watchers_count": 13254, + "language": "Swift", + "has_issues": true, + "has_projects": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 1588, + "mirror_url": null, + "archived": false, + "disabled": false, + "open_issues_count": 161, + "license": { + "key": "mit", + "name": "MIT License", + "spdx_id": "MIT", + "url": "https://api.github.com/licenses/mit", + "node_id": "MDc6TGljZW5zZTEz" + }, + "forks": 1588, + "open_issues": 161, + "watchers": 13254, + "default_branch": "master", + "score": 1 + }, + { + "id": 25050844, + "node_id": "MDEwOlJlcG9zaXRvcnkyNTA1MDg0NA==", + "name": "Carthage", + "full_name": "Carthage/Carthage", + "private": false, + "owner": { + "login": "Carthage", + "id": 9146792, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjkxNDY3OTI=", + "avatar_url": "https://avatars1.githubusercontent.com/u/9146792?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Carthage", + "html_url": "https://github.com/Carthage", + "followers_url": "https://api.github.com/users/Carthage/followers", + "following_url": "https://api.github.com/users/Carthage/following{/other_user}", + "gists_url": "https://api.github.com/users/Carthage/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Carthage/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Carthage/subscriptions", + "organizations_url": "https://api.github.com/users/Carthage/orgs", + "repos_url": "https://api.github.com/users/Carthage/repos", + "events_url": "https://api.github.com/users/Carthage/events{/privacy}", + "received_events_url": "https://api.github.com/users/Carthage/received_events", + "type": "Organization", + "site_admin": false + }, + "html_url": "https://github.com/Carthage/Carthage", + "description": "A simple, decentralized dependency manager for Cocoa", + "fork": false, + "url": "https://api.github.com/repos/Carthage/Carthage", + "forks_url": "https://api.github.com/repos/Carthage/Carthage/forks", + "keys_url": "https://api.github.com/repos/Carthage/Carthage/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/Carthage/Carthage/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/Carthage/Carthage/teams", + "hooks_url": "https://api.github.com/repos/Carthage/Carthage/hooks", + "issue_events_url": "https://api.github.com/repos/Carthage/Carthage/issues/events{/number}", + "events_url": "https://api.github.com/repos/Carthage/Carthage/events", + "assignees_url": "https://api.github.com/repos/Carthage/Carthage/assignees{/user}", + "branches_url": "https://api.github.com/repos/Carthage/Carthage/branches{/branch}", + "tags_url": "https://api.github.com/repos/Carthage/Carthage/tags", + "blobs_url": "https://api.github.com/repos/Carthage/Carthage/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/Carthage/Carthage/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/Carthage/Carthage/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/Carthage/Carthage/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/Carthage/Carthage/statuses/{sha}", + "languages_url": "https://api.github.com/repos/Carthage/Carthage/languages", + "stargazers_url": "https://api.github.com/repos/Carthage/Carthage/stargazers", + "contributors_url": "https://api.github.com/repos/Carthage/Carthage/contributors", + "subscribers_url": "https://api.github.com/repos/Carthage/Carthage/subscribers", + "subscription_url": "https://api.github.com/repos/Carthage/Carthage/subscription", + "commits_url": "https://api.github.com/repos/Carthage/Carthage/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/Carthage/Carthage/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/Carthage/Carthage/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/Carthage/Carthage/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/Carthage/Carthage/contents/{+path}", + "compare_url": "https://api.github.com/repos/Carthage/Carthage/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/Carthage/Carthage/merges", + "archive_url": "https://api.github.com/repos/Carthage/Carthage/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/Carthage/Carthage/downloads", + "issues_url": "https://api.github.com/repos/Carthage/Carthage/issues{/number}", + "pulls_url": "https://api.github.com/repos/Carthage/Carthage/pulls{/number}", + "milestones_url": "https://api.github.com/repos/Carthage/Carthage/milestones{/number}", + "notifications_url": "https://api.github.com/repos/Carthage/Carthage/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/Carthage/Carthage/labels{/name}", + "releases_url": "https://api.github.com/repos/Carthage/Carthage/releases{/id}", + "deployments_url": "https://api.github.com/repos/Carthage/Carthage/deployments", + "created_at": "2014-10-10T19:54:55Z", + "updated_at": "2019-08-19T08:51:29Z", + "pushed_at": "2019-08-08T11:37:35Z", + "git_url": "git://github.com/Carthage/Carthage.git", + "ssh_url": "git@github.com:Carthage/Carthage.git", + "clone_url": "https://github.com/Carthage/Carthage.git", + "svn_url": "https://github.com/Carthage/Carthage", + "homepage": "", + "size": 19028, + "stargazers_count": 13111, + "watchers_count": 13111, + "language": "Swift", + "has_issues": true, + "has_projects": true, + "has_downloads": true, + "has_wiki": false, + "has_pages": false, + "forks_count": 1306, + "mirror_url": null, + "archived": false, + "disabled": false, + "open_issues_count": 158, + "license": { + "key": "other", + "name": "Other", + "spdx_id": "NOASSERTION", + "url": null, + "node_id": "MDc6TGljZW5zZTA=" + }, + "forks": 1306, + "open_issues": 158, + "watchers": 13111, + "default_branch": "master", + "score": 1 + }, + { + "id": 35732214, + "node_id": "MDEwOlJlcG9zaXRvcnkzNTczMjIxNA==", + "name": "SwiftLint", + "full_name": "realm/SwiftLint", + "private": false, + "owner": { + "login": "realm", + "id": 7575099, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjc1NzUwOTk=", + "avatar_url": "https://avatars0.githubusercontent.com/u/7575099?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/realm", + "html_url": "https://github.com/realm", + "followers_url": "https://api.github.com/users/realm/followers", + "following_url": "https://api.github.com/users/realm/following{/other_user}", + "gists_url": "https://api.github.com/users/realm/gists{/gist_id}", + "starred_url": "https://api.github.com/users/realm/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/realm/subscriptions", + "organizations_url": "https://api.github.com/users/realm/orgs", + "repos_url": "https://api.github.com/users/realm/repos", + "events_url": "https://api.github.com/users/realm/events{/privacy}", + "received_events_url": "https://api.github.com/users/realm/received_events", + "type": "Organization", + "site_admin": false + }, + "html_url": "https://github.com/realm/SwiftLint", + "description": "A tool to enforce Swift style and conventions.", + "fork": false, + "url": "https://api.github.com/repos/realm/SwiftLint", + "forks_url": "https://api.github.com/repos/realm/SwiftLint/forks", + "keys_url": "https://api.github.com/repos/realm/SwiftLint/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/realm/SwiftLint/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/realm/SwiftLint/teams", + "hooks_url": "https://api.github.com/repos/realm/SwiftLint/hooks", + "issue_events_url": "https://api.github.com/repos/realm/SwiftLint/issues/events{/number}", + "events_url": "https://api.github.com/repos/realm/SwiftLint/events", + "assignees_url": "https://api.github.com/repos/realm/SwiftLint/assignees{/user}", + "branches_url": "https://api.github.com/repos/realm/SwiftLint/branches{/branch}", + "tags_url": "https://api.github.com/repos/realm/SwiftLint/tags", + "blobs_url": "https://api.github.com/repos/realm/SwiftLint/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/realm/SwiftLint/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/realm/SwiftLint/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/realm/SwiftLint/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/realm/SwiftLint/statuses/{sha}", + "languages_url": "https://api.github.com/repos/realm/SwiftLint/languages", + "stargazers_url": "https://api.github.com/repos/realm/SwiftLint/stargazers", + "contributors_url": "https://api.github.com/repos/realm/SwiftLint/contributors", + "subscribers_url": "https://api.github.com/repos/realm/SwiftLint/subscribers", + "subscription_url": "https://api.github.com/repos/realm/SwiftLint/subscription", + "commits_url": "https://api.github.com/repos/realm/SwiftLint/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/realm/SwiftLint/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/realm/SwiftLint/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/realm/SwiftLint/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/realm/SwiftLint/contents/{+path}", + "compare_url": "https://api.github.com/repos/realm/SwiftLint/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/realm/SwiftLint/merges", + "archive_url": "https://api.github.com/repos/realm/SwiftLint/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/realm/SwiftLint/downloads", + "issues_url": "https://api.github.com/repos/realm/SwiftLint/issues{/number}", + "pulls_url": "https://api.github.com/repos/realm/SwiftLint/pulls{/number}", + "milestones_url": "https://api.github.com/repos/realm/SwiftLint/milestones{/number}", + "notifications_url": "https://api.github.com/repos/realm/SwiftLint/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/realm/SwiftLint/labels{/name}", + "releases_url": "https://api.github.com/repos/realm/SwiftLint/releases{/id}", + "deployments_url": "https://api.github.com/repos/realm/SwiftLint/deployments", + "created_at": "2015-05-16T16:59:31Z", + "updated_at": "2019-08-20T02:17:17Z", + "pushed_at": "2019-08-19T20:53:26Z", + "git_url": "git://github.com/realm/SwiftLint.git", + "ssh_url": "git@github.com:realm/SwiftLint.git", + "clone_url": "https://github.com/realm/SwiftLint.git", + "svn_url": "https://github.com/realm/SwiftLint", + "homepage": "https://realm.io", + "size": 9772, + "stargazers_count": 12246, + "watchers_count": 12246, + "language": "Swift", + "has_issues": true, + "has_projects": false, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 1337, + "mirror_url": null, + "archived": false, + "disabled": false, + "open_issues_count": 319, + "license": { + "key": "mit", + "name": "MIT License", + "spdx_id": "MIT", + "url": "https://api.github.com/licenses/mit", + "node_id": "MDc6TGljZW5zZTEz" + }, + "forks": 1337, + "open_issues": 319, + "watchers": 12246, + "default_branch": "master", + "score": 1 + }, + { + "id": 18440563, + "node_id": "MDEwOlJlcG9zaXRvcnkxODQ0MDU2Mw==", + "name": "PromiseKit", + "full_name": "mxcl/PromiseKit", + "private": false, + "owner": { + "login": "mxcl", + "id": 58962, + "node_id": "MDQ6VXNlcjU4OTYy", + "avatar_url": "https://avatars2.githubusercontent.com/u/58962?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/mxcl", + "html_url": "https://github.com/mxcl", + "followers_url": "https://api.github.com/users/mxcl/followers", + "following_url": "https://api.github.com/users/mxcl/following{/other_user}", + "gists_url": "https://api.github.com/users/mxcl/gists{/gist_id}", + "starred_url": "https://api.github.com/users/mxcl/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/mxcl/subscriptions", + "organizations_url": "https://api.github.com/users/mxcl/orgs", + "repos_url": "https://api.github.com/users/mxcl/repos", + "events_url": "https://api.github.com/users/mxcl/events{/privacy}", + "received_events_url": "https://api.github.com/users/mxcl/received_events", + "type": "User", + "site_admin": false + }, + "html_url": "https://github.com/mxcl/PromiseKit", + "description": "Promises for Swift & ObjC.", + "fork": false, + "url": "https://api.github.com/repos/mxcl/PromiseKit", + "forks_url": "https://api.github.com/repos/mxcl/PromiseKit/forks", + "keys_url": "https://api.github.com/repos/mxcl/PromiseKit/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/mxcl/PromiseKit/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/mxcl/PromiseKit/teams", + "hooks_url": "https://api.github.com/repos/mxcl/PromiseKit/hooks", + "issue_events_url": "https://api.github.com/repos/mxcl/PromiseKit/issues/events{/number}", + "events_url": "https://api.github.com/repos/mxcl/PromiseKit/events", + "assignees_url": "https://api.github.com/repos/mxcl/PromiseKit/assignees{/user}", + "branches_url": "https://api.github.com/repos/mxcl/PromiseKit/branches{/branch}", + "tags_url": "https://api.github.com/repos/mxcl/PromiseKit/tags", + "blobs_url": "https://api.github.com/repos/mxcl/PromiseKit/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/mxcl/PromiseKit/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/mxcl/PromiseKit/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/mxcl/PromiseKit/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/mxcl/PromiseKit/statuses/{sha}", + "languages_url": "https://api.github.com/repos/mxcl/PromiseKit/languages", + "stargazers_url": "https://api.github.com/repos/mxcl/PromiseKit/stargazers", + "contributors_url": "https://api.github.com/repos/mxcl/PromiseKit/contributors", + "subscribers_url": "https://api.github.com/repos/mxcl/PromiseKit/subscribers", + "subscription_url": "https://api.github.com/repos/mxcl/PromiseKit/subscription", + "commits_url": "https://api.github.com/repos/mxcl/PromiseKit/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/mxcl/PromiseKit/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/mxcl/PromiseKit/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/mxcl/PromiseKit/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/mxcl/PromiseKit/contents/{+path}", + "compare_url": "https://api.github.com/repos/mxcl/PromiseKit/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/mxcl/PromiseKit/merges", + "archive_url": "https://api.github.com/repos/mxcl/PromiseKit/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/mxcl/PromiseKit/downloads", + "issues_url": "https://api.github.com/repos/mxcl/PromiseKit/issues{/number}", + "pulls_url": "https://api.github.com/repos/mxcl/PromiseKit/pulls{/number}", + "milestones_url": "https://api.github.com/repos/mxcl/PromiseKit/milestones{/number}", + "notifications_url": "https://api.github.com/repos/mxcl/PromiseKit/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/mxcl/PromiseKit/labels{/name}", + "releases_url": "https://api.github.com/repos/mxcl/PromiseKit/releases{/id}", + "deployments_url": "https://api.github.com/repos/mxcl/PromiseKit/deployments", + "created_at": "2014-04-04T13:54:37Z", + "updated_at": "2019-08-19T20:25:34Z", + "pushed_at": "2019-08-13T11:27:30Z", + "git_url": "git://github.com/mxcl/PromiseKit.git", + "ssh_url": "git@github.com:mxcl/PromiseKit.git", + "clone_url": "https://github.com/mxcl/PromiseKit.git", + "svn_url": "https://github.com/mxcl/PromiseKit", + "homepage": "", + "size": 4887, + "stargazers_count": 11857, + "watchers_count": 11857, + "language": "Swift", + "has_issues": true, + "has_projects": false, + "has_downloads": true, + "has_wiki": false, + "has_pages": true, + "forks_count": 1151, + "mirror_url": null, + "archived": false, + "disabled": false, + "open_issues_count": 12, + "license": { + "key": "mit", + "name": "MIT License", + "spdx_id": "MIT", + "url": "https://api.github.com/licenses/mit", + "node_id": "MDc6TGljZW5zZTEz" + }, + "forks": 1151, + "open_issues": 12, + "watchers": 11857, + "default_branch": "master", + "score": 1 + }, + { + "id": 41215439, + "node_id": "MDEwOlJlcG9zaXRvcnk0MTIxNTQzOQ==", + "name": "Material", + "full_name": "CosmicMind/Material", + "private": false, + "owner": { + "login": "CosmicMind", + "id": 10069574, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjEwMDY5NTc0", + "avatar_url": "https://avatars1.githubusercontent.com/u/10069574?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/CosmicMind", + "html_url": "https://github.com/CosmicMind", + "followers_url": "https://api.github.com/users/CosmicMind/followers", + "following_url": "https://api.github.com/users/CosmicMind/following{/other_user}", + "gists_url": "https://api.github.com/users/CosmicMind/gists{/gist_id}", + "starred_url": "https://api.github.com/users/CosmicMind/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/CosmicMind/subscriptions", + "organizations_url": "https://api.github.com/users/CosmicMind/orgs", + "repos_url": "https://api.github.com/users/CosmicMind/repos", + "events_url": "https://api.github.com/users/CosmicMind/events{/privacy}", + "received_events_url": "https://api.github.com/users/CosmicMind/received_events", + "type": "Organization", + "site_admin": false + }, + "html_url": "https://github.com/CosmicMind/Material", + "description": "A UI/UX framework for creating beautiful applications.", + "fork": false, + "url": "https://api.github.com/repos/CosmicMind/Material", + "forks_url": "https://api.github.com/repos/CosmicMind/Material/forks", + "keys_url": "https://api.github.com/repos/CosmicMind/Material/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/CosmicMind/Material/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/CosmicMind/Material/teams", + "hooks_url": "https://api.github.com/repos/CosmicMind/Material/hooks", + "issue_events_url": "https://api.github.com/repos/CosmicMind/Material/issues/events{/number}", + "events_url": "https://api.github.com/repos/CosmicMind/Material/events", + "assignees_url": "https://api.github.com/repos/CosmicMind/Material/assignees{/user}", + "branches_url": "https://api.github.com/repos/CosmicMind/Material/branches{/branch}", + "tags_url": "https://api.github.com/repos/CosmicMind/Material/tags", + "blobs_url": "https://api.github.com/repos/CosmicMind/Material/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/CosmicMind/Material/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/CosmicMind/Material/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/CosmicMind/Material/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/CosmicMind/Material/statuses/{sha}", + "languages_url": "https://api.github.com/repos/CosmicMind/Material/languages", + "stargazers_url": "https://api.github.com/repos/CosmicMind/Material/stargazers", + "contributors_url": "https://api.github.com/repos/CosmicMind/Material/contributors", + "subscribers_url": "https://api.github.com/repos/CosmicMind/Material/subscribers", + "subscription_url": "https://api.github.com/repos/CosmicMind/Material/subscription", + "commits_url": "https://api.github.com/repos/CosmicMind/Material/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/CosmicMind/Material/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/CosmicMind/Material/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/CosmicMind/Material/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/CosmicMind/Material/contents/{+path}", + "compare_url": "https://api.github.com/repos/CosmicMind/Material/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/CosmicMind/Material/merges", + "archive_url": "https://api.github.com/repos/CosmicMind/Material/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/CosmicMind/Material/downloads", + "issues_url": "https://api.github.com/repos/CosmicMind/Material/issues{/number}", + "pulls_url": "https://api.github.com/repos/CosmicMind/Material/pulls{/number}", + "milestones_url": "https://api.github.com/repos/CosmicMind/Material/milestones{/number}", + "notifications_url": "https://api.github.com/repos/CosmicMind/Material/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/CosmicMind/Material/labels{/name}", + "releases_url": "https://api.github.com/repos/CosmicMind/Material/releases{/id}", + "deployments_url": "https://api.github.com/repos/CosmicMind/Material/deployments", + "created_at": "2015-08-22T16:21:53Z", + "updated_at": "2019-08-19T23:22:19Z", + "pushed_at": "2019-06-27T19:49:15Z", + "git_url": "git://github.com/CosmicMind/Material.git", + "ssh_url": "git@github.com:CosmicMind/Material.git", + "clone_url": "https://github.com/CosmicMind/Material.git", + "svn_url": "https://github.com/CosmicMind/Material", + "homepage": "http://cosmicmind.com", + "size": 34052, + "stargazers_count": 11115, + "watchers_count": 11115, + "language": "Swift", + "has_issues": true, + "has_projects": false, + "has_downloads": true, + "has_wiki": false, + "has_pages": false, + "forks_count": 1216, + "mirror_url": null, + "archived": false, + "disabled": false, + "open_issues_count": 9, + "license": { + "key": "mit", + "name": "MIT License", + "spdx_id": "MIT", + "url": "https://api.github.com/licenses/mit", + "node_id": "MDc6TGljZW5zZTEz" + }, + "forks": 1216, + "open_issues": 9, + "watchers": 11115, + "default_branch": "development", + "score": 1 + }, + { + "id": 23013268, + "node_id": "MDEwOlJlcG9zaXRvcnkyMzAxMzI2OA==", + "name": "Moya", + "full_name": "Moya/Moya", + "private": false, + "owner": { + "login": "Moya", + "id": 13662162, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjEzNjYyMTYy", + "avatar_url": "https://avatars3.githubusercontent.com/u/13662162?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Moya", + "html_url": "https://github.com/Moya", + "followers_url": "https://api.github.com/users/Moya/followers", + "following_url": "https://api.github.com/users/Moya/following{/other_user}", + "gists_url": "https://api.github.com/users/Moya/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Moya/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Moya/subscriptions", + "organizations_url": "https://api.github.com/users/Moya/orgs", + "repos_url": "https://api.github.com/users/Moya/repos", + "events_url": "https://api.github.com/users/Moya/events{/privacy}", + "received_events_url": "https://api.github.com/users/Moya/received_events", + "type": "Organization", + "site_admin": false + }, + "html_url": "https://github.com/Moya/Moya", + "description": "Network abstraction layer written in Swift.", + "fork": false, + "url": "https://api.github.com/repos/Moya/Moya", + "forks_url": "https://api.github.com/repos/Moya/Moya/forks", + "keys_url": "https://api.github.com/repos/Moya/Moya/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/Moya/Moya/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/Moya/Moya/teams", + "hooks_url": "https://api.github.com/repos/Moya/Moya/hooks", + "issue_events_url": "https://api.github.com/repos/Moya/Moya/issues/events{/number}", + "events_url": "https://api.github.com/repos/Moya/Moya/events", + "assignees_url": "https://api.github.com/repos/Moya/Moya/assignees{/user}", + "branches_url": "https://api.github.com/repos/Moya/Moya/branches{/branch}", + "tags_url": "https://api.github.com/repos/Moya/Moya/tags", + "blobs_url": "https://api.github.com/repos/Moya/Moya/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/Moya/Moya/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/Moya/Moya/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/Moya/Moya/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/Moya/Moya/statuses/{sha}", + "languages_url": "https://api.github.com/repos/Moya/Moya/languages", + "stargazers_url": "https://api.github.com/repos/Moya/Moya/stargazers", + "contributors_url": "https://api.github.com/repos/Moya/Moya/contributors", + "subscribers_url": "https://api.github.com/repos/Moya/Moya/subscribers", + "subscription_url": "https://api.github.com/repos/Moya/Moya/subscription", + "commits_url": "https://api.github.com/repos/Moya/Moya/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/Moya/Moya/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/Moya/Moya/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/Moya/Moya/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/Moya/Moya/contents/{+path}", + "compare_url": "https://api.github.com/repos/Moya/Moya/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/Moya/Moya/merges", + "archive_url": "https://api.github.com/repos/Moya/Moya/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/Moya/Moya/downloads", + "issues_url": "https://api.github.com/repos/Moya/Moya/issues{/number}", + "pulls_url": "https://api.github.com/repos/Moya/Moya/pulls{/number}", + "milestones_url": "https://api.github.com/repos/Moya/Moya/milestones{/number}", + "notifications_url": "https://api.github.com/repos/Moya/Moya/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/Moya/Moya/labels{/name}", + "releases_url": "https://api.github.com/repos/Moya/Moya/releases{/id}", + "deployments_url": "https://api.github.com/repos/Moya/Moya/deployments", + "created_at": "2014-08-16T07:41:21Z", + "updated_at": "2019-08-19T15:57:59Z", + "pushed_at": "2019-08-17T12:28:51Z", + "git_url": "git://github.com/Moya/Moya.git", + "ssh_url": "git@github.com:Moya/Moya.git", + "clone_url": "https://github.com/Moya/Moya.git", + "svn_url": "https://github.com/Moya/Moya", + "homepage": "https://moya.github.io", + "size": 17562, + "stargazers_count": 11096, + "watchers_count": 11096, + "language": "Swift", + "has_issues": true, + "has_projects": true, + "has_downloads": true, + "has_wiki": false, + "has_pages": false, + "forks_count": 1328, + "mirror_url": null, + "archived": false, + "disabled": false, + "open_issues_count": 47, + "license": { + "key": "mit", + "name": "MIT License", + "spdx_id": "MIT", + "url": "https://api.github.com/licenses/mit", + "node_id": "MDc6TGljZW5zZTEz" + }, + "forks": 1328, + "open_issues": 47, + "watchers": 11096, + "default_branch": "master", + "score": 1 + }, + { + "id": 21796955, + "node_id": "MDEwOlJlcG9zaXRvcnkyMTc5Njk1NQ==", + "name": "Design-Patterns-In-Swift", + "full_name": "ochococo/Design-Patterns-In-Swift", + "private": false, + "owner": { + "login": "ochococo", + "id": 3382607, + "node_id": "MDQ6VXNlcjMzODI2MDc=", + "avatar_url": "https://avatars2.githubusercontent.com/u/3382607?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/ochococo", + "html_url": "https://github.com/ochococo", + "followers_url": "https://api.github.com/users/ochococo/followers", + "following_url": "https://api.github.com/users/ochococo/following{/other_user}", + "gists_url": "https://api.github.com/users/ochococo/gists{/gist_id}", + "starred_url": "https://api.github.com/users/ochococo/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/ochococo/subscriptions", + "organizations_url": "https://api.github.com/users/ochococo/orgs", + "repos_url": "https://api.github.com/users/ochococo/repos", + "events_url": "https://api.github.com/users/ochococo/events{/privacy}", + "received_events_url": "https://api.github.com/users/ochococo/received_events", + "type": "User", + "site_admin": false + }, + "html_url": "https://github.com/ochococo/Design-Patterns-In-Swift", + "description": "📖 Design Patterns implemented in Swift 5.0", + "fork": false, + "url": "https://api.github.com/repos/ochococo/Design-Patterns-In-Swift", + "forks_url": "https://api.github.com/repos/ochococo/Design-Patterns-In-Swift/forks", + "keys_url": "https://api.github.com/repos/ochococo/Design-Patterns-In-Swift/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/ochococo/Design-Patterns-In-Swift/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/ochococo/Design-Patterns-In-Swift/teams", + "hooks_url": "https://api.github.com/repos/ochococo/Design-Patterns-In-Swift/hooks", + "issue_events_url": "https://api.github.com/repos/ochococo/Design-Patterns-In-Swift/issues/events{/number}", + "events_url": "https://api.github.com/repos/ochococo/Design-Patterns-In-Swift/events", + "assignees_url": "https://api.github.com/repos/ochococo/Design-Patterns-In-Swift/assignees{/user}", + "branches_url": "https://api.github.com/repos/ochococo/Design-Patterns-In-Swift/branches{/branch}", + "tags_url": "https://api.github.com/repos/ochococo/Design-Patterns-In-Swift/tags", + "blobs_url": "https://api.github.com/repos/ochococo/Design-Patterns-In-Swift/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/ochococo/Design-Patterns-In-Swift/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/ochococo/Design-Patterns-In-Swift/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/ochococo/Design-Patterns-In-Swift/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/ochococo/Design-Patterns-In-Swift/statuses/{sha}", + "languages_url": "https://api.github.com/repos/ochococo/Design-Patterns-In-Swift/languages", + "stargazers_url": "https://api.github.com/repos/ochococo/Design-Patterns-In-Swift/stargazers", + "contributors_url": "https://api.github.com/repos/ochococo/Design-Patterns-In-Swift/contributors", + "subscribers_url": "https://api.github.com/repos/ochococo/Design-Patterns-In-Swift/subscribers", + "subscription_url": "https://api.github.com/repos/ochococo/Design-Patterns-In-Swift/subscription", + "commits_url": "https://api.github.com/repos/ochococo/Design-Patterns-In-Swift/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/ochococo/Design-Patterns-In-Swift/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/ochococo/Design-Patterns-In-Swift/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/ochococo/Design-Patterns-In-Swift/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/ochococo/Design-Patterns-In-Swift/contents/{+path}", + "compare_url": "https://api.github.com/repos/ochococo/Design-Patterns-In-Swift/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/ochococo/Design-Patterns-In-Swift/merges", + "archive_url": "https://api.github.com/repos/ochococo/Design-Patterns-In-Swift/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/ochococo/Design-Patterns-In-Swift/downloads", + "issues_url": "https://api.github.com/repos/ochococo/Design-Patterns-In-Swift/issues{/number}", + "pulls_url": "https://api.github.com/repos/ochococo/Design-Patterns-In-Swift/pulls{/number}", + "milestones_url": "https://api.github.com/repos/ochococo/Design-Patterns-In-Swift/milestones{/number}", + "notifications_url": "https://api.github.com/repos/ochococo/Design-Patterns-In-Swift/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/ochococo/Design-Patterns-In-Swift/labels{/name}", + "releases_url": "https://api.github.com/repos/ochococo/Design-Patterns-In-Swift/releases{/id}", + "deployments_url": "https://api.github.com/repos/ochococo/Design-Patterns-In-Swift/deployments", + "created_at": "2014-07-13T18:15:14Z", + "updated_at": "2019-08-19T19:33:07Z", + "pushed_at": "2019-06-19T19:44:41Z", + "git_url": "git://github.com/ochococo/Design-Patterns-In-Swift.git", + "ssh_url": "git@github.com:ochococo/Design-Patterns-In-Swift.git", + "clone_url": "https://github.com/ochococo/Design-Patterns-In-Swift.git", + "svn_url": "https://github.com/ochococo/Design-Patterns-In-Swift", + "homepage": "", + "size": 1111, + "stargazers_count": 10963, + "watchers_count": 10963, + "language": "Swift", + "has_issues": true, + "has_projects": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 1229, + "mirror_url": null, + "archived": false, + "disabled": false, + "open_issues_count": 2, + "license": { + "key": "gpl-3.0", + "name": "GNU General Public License v3.0", + "spdx_id": "GPL-3.0", + "url": "https://api.github.com/licenses/gpl-3.0", + "node_id": "MDc6TGljZW5zZTk=" + }, + "forks": 1229, + "open_issues": 2, + "watchers": 10963, + "default_branch": "master", + "score": 1 + }, + { + "id": 51648174, + "node_id": "MDEwOlJlcG9zaXRvcnk1MTY0ODE3NA==", + "name": "30DaysofSwift", + "full_name": "allenwong/30DaysofSwift", + "private": false, + "owner": { + "login": "allenwong", + "id": 698982, + "node_id": "MDQ6VXNlcjY5ODk4Mg==", + "avatar_url": "https://avatars0.githubusercontent.com/u/698982?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/allenwong", + "html_url": "https://github.com/allenwong", + "followers_url": "https://api.github.com/users/allenwong/followers", + "following_url": "https://api.github.com/users/allenwong/following{/other_user}", + "gists_url": "https://api.github.com/users/allenwong/gists{/gist_id}", + "starred_url": "https://api.github.com/users/allenwong/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/allenwong/subscriptions", + "organizations_url": "https://api.github.com/users/allenwong/orgs", + "repos_url": "https://api.github.com/users/allenwong/repos", + "events_url": "https://api.github.com/users/allenwong/events{/privacy}", + "received_events_url": "https://api.github.com/users/allenwong/received_events", + "type": "User", + "site_admin": false + }, + "html_url": "https://github.com/allenwong/30DaysofSwift", + "description": "A self-taught project to learn Swift.", + "fork": false, + "url": "https://api.github.com/repos/allenwong/30DaysofSwift", + "forks_url": "https://api.github.com/repos/allenwong/30DaysofSwift/forks", + "keys_url": "https://api.github.com/repos/allenwong/30DaysofSwift/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/allenwong/30DaysofSwift/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/allenwong/30DaysofSwift/teams", + "hooks_url": "https://api.github.com/repos/allenwong/30DaysofSwift/hooks", + "issue_events_url": "https://api.github.com/repos/allenwong/30DaysofSwift/issues/events{/number}", + "events_url": "https://api.github.com/repos/allenwong/30DaysofSwift/events", + "assignees_url": "https://api.github.com/repos/allenwong/30DaysofSwift/assignees{/user}", + "branches_url": "https://api.github.com/repos/allenwong/30DaysofSwift/branches{/branch}", + "tags_url": "https://api.github.com/repos/allenwong/30DaysofSwift/tags", + "blobs_url": "https://api.github.com/repos/allenwong/30DaysofSwift/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/allenwong/30DaysofSwift/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/allenwong/30DaysofSwift/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/allenwong/30DaysofSwift/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/allenwong/30DaysofSwift/statuses/{sha}", + "languages_url": "https://api.github.com/repos/allenwong/30DaysofSwift/languages", + "stargazers_url": "https://api.github.com/repos/allenwong/30DaysofSwift/stargazers", + "contributors_url": "https://api.github.com/repos/allenwong/30DaysofSwift/contributors", + "subscribers_url": "https://api.github.com/repos/allenwong/30DaysofSwift/subscribers", + "subscription_url": "https://api.github.com/repos/allenwong/30DaysofSwift/subscription", + "commits_url": "https://api.github.com/repos/allenwong/30DaysofSwift/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/allenwong/30DaysofSwift/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/allenwong/30DaysofSwift/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/allenwong/30DaysofSwift/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/allenwong/30DaysofSwift/contents/{+path}", + "compare_url": "https://api.github.com/repos/allenwong/30DaysofSwift/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/allenwong/30DaysofSwift/merges", + "archive_url": "https://api.github.com/repos/allenwong/30DaysofSwift/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/allenwong/30DaysofSwift/downloads", + "issues_url": "https://api.github.com/repos/allenwong/30DaysofSwift/issues{/number}", + "pulls_url": "https://api.github.com/repos/allenwong/30DaysofSwift/pulls{/number}", + "milestones_url": "https://api.github.com/repos/allenwong/30DaysofSwift/milestones{/number}", + "notifications_url": "https://api.github.com/repos/allenwong/30DaysofSwift/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/allenwong/30DaysofSwift/labels{/name}", + "releases_url": "https://api.github.com/repos/allenwong/30DaysofSwift/releases{/id}", + "deployments_url": "https://api.github.com/repos/allenwong/30DaysofSwift/deployments", + "created_at": "2016-02-13T14:02:12Z", + "updated_at": "2019-08-19T12:49:58Z", + "pushed_at": "2019-02-06T06:45:40Z", + "git_url": "git://github.com/allenwong/30DaysofSwift.git", + "ssh_url": "git@github.com:allenwong/30DaysofSwift.git", + "clone_url": "https://github.com/allenwong/30DaysofSwift.git", + "svn_url": "https://github.com/allenwong/30DaysofSwift", + "homepage": "", + "size": 169847, + "stargazers_count": 10810, + "watchers_count": 10810, + "language": "Swift", + "has_issues": true, + "has_projects": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 2024, + "mirror_url": null, + "archived": false, + "disabled": false, + "open_issues_count": 7, + "license": null, + "forks": 2024, + "open_issues": 7, + "watchers": 10810, + "default_branch": "master", + "score": 1 + }, + { + "id": 26481815, + "node_id": "MDEwOlJlcG9zaXRvcnkyNjQ4MTgxNQ==", + "name": "animated-tab-bar", + "full_name": "Ramotion/animated-tab-bar", + "private": false, + "owner": { + "login": "Ramotion", + "id": 6028820, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjYwMjg4MjA=", + "avatar_url": "https://avatars3.githubusercontent.com/u/6028820?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/Ramotion", + "html_url": "https://github.com/Ramotion", + "followers_url": "https://api.github.com/users/Ramotion/followers", + "following_url": "https://api.github.com/users/Ramotion/following{/other_user}", + "gists_url": "https://api.github.com/users/Ramotion/gists{/gist_id}", + "starred_url": "https://api.github.com/users/Ramotion/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Ramotion/subscriptions", + "organizations_url": "https://api.github.com/users/Ramotion/orgs", + "repos_url": "https://api.github.com/users/Ramotion/repos", + "events_url": "https://api.github.com/users/Ramotion/events{/privacy}", + "received_events_url": "https://api.github.com/users/Ramotion/received_events", + "type": "Organization", + "site_admin": false + }, + "html_url": "https://github.com/Ramotion/animated-tab-bar", + "description": ":octocat: RAMAnimatedTabBarController is a Swift UI module library for adding animation to iOS tabbar items and icons. iOS library made by @Ramotion - https://github.com/Ramotion/swift-ui-animation-components-and-libraries", + "fork": false, + "url": "https://api.github.com/repos/Ramotion/animated-tab-bar", + "forks_url": "https://api.github.com/repos/Ramotion/animated-tab-bar/forks", + "keys_url": "https://api.github.com/repos/Ramotion/animated-tab-bar/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/Ramotion/animated-tab-bar/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/Ramotion/animated-tab-bar/teams", + "hooks_url": "https://api.github.com/repos/Ramotion/animated-tab-bar/hooks", + "issue_events_url": "https://api.github.com/repos/Ramotion/animated-tab-bar/issues/events{/number}", + "events_url": "https://api.github.com/repos/Ramotion/animated-tab-bar/events", + "assignees_url": "https://api.github.com/repos/Ramotion/animated-tab-bar/assignees{/user}", + "branches_url": "https://api.github.com/repos/Ramotion/animated-tab-bar/branches{/branch}", + "tags_url": "https://api.github.com/repos/Ramotion/animated-tab-bar/tags", + "blobs_url": "https://api.github.com/repos/Ramotion/animated-tab-bar/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/Ramotion/animated-tab-bar/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/Ramotion/animated-tab-bar/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/Ramotion/animated-tab-bar/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/Ramotion/animated-tab-bar/statuses/{sha}", + "languages_url": "https://api.github.com/repos/Ramotion/animated-tab-bar/languages", + "stargazers_url": "https://api.github.com/repos/Ramotion/animated-tab-bar/stargazers", + "contributors_url": "https://api.github.com/repos/Ramotion/animated-tab-bar/contributors", + "subscribers_url": "https://api.github.com/repos/Ramotion/animated-tab-bar/subscribers", + "subscription_url": "https://api.github.com/repos/Ramotion/animated-tab-bar/subscription", + "commits_url": "https://api.github.com/repos/Ramotion/animated-tab-bar/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/Ramotion/animated-tab-bar/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/Ramotion/animated-tab-bar/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/Ramotion/animated-tab-bar/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/Ramotion/animated-tab-bar/contents/{+path}", + "compare_url": "https://api.github.com/repos/Ramotion/animated-tab-bar/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/Ramotion/animated-tab-bar/merges", + "archive_url": "https://api.github.com/repos/Ramotion/animated-tab-bar/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/Ramotion/animated-tab-bar/downloads", + "issues_url": "https://api.github.com/repos/Ramotion/animated-tab-bar/issues{/number}", + "pulls_url": "https://api.github.com/repos/Ramotion/animated-tab-bar/pulls{/number}", + "milestones_url": "https://api.github.com/repos/Ramotion/animated-tab-bar/milestones{/number}", + "notifications_url": "https://api.github.com/repos/Ramotion/animated-tab-bar/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/Ramotion/animated-tab-bar/labels{/name}", + "releases_url": "https://api.github.com/repos/Ramotion/animated-tab-bar/releases{/id}", + "deployments_url": "https://api.github.com/repos/Ramotion/animated-tab-bar/deployments", + "created_at": "2014-11-11T11:20:04Z", + "updated_at": "2019-08-19T23:18:02Z", + "pushed_at": "2019-07-08T06:52:22Z", + "git_url": "git://github.com/Ramotion/animated-tab-bar.git", + "ssh_url": "git@github.com:Ramotion/animated-tab-bar.git", + "clone_url": "https://github.com/Ramotion/animated-tab-bar.git", + "svn_url": "https://github.com/Ramotion/animated-tab-bar", + "homepage": "", + "size": 9602, + "stargazers_count": 10106, + "watchers_count": 10106, + "language": "Swift", + "has_issues": true, + "has_projects": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 1287, + "mirror_url": null, + "archived": false, + "disabled": false, + "open_issues_count": 9, + "license": { + "key": "mit", + "name": "MIT License", + "spdx_id": "MIT", + "url": "https://api.github.com/licenses/mit", + "node_id": "MDc6TGljZW5zZTEz" + }, + "forks": 1287, + "open_issues": 9, + "watchers": 10106, + "default_branch": "master", + "score": 1 + }, + { + "id": 43330374, + "node_id": "MDEwOlJlcG9zaXRvcnk0MzMzMDM3NA==", + "name": "Eureka", + "full_name": "xmartlabs/Eureka", + "private": false, + "owner": { + "login": "xmartlabs", + "id": 2227731, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjIyMjc3MzE=", + "avatar_url": "https://avatars0.githubusercontent.com/u/2227731?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/xmartlabs", + "html_url": "https://github.com/xmartlabs", + "followers_url": "https://api.github.com/users/xmartlabs/followers", + "following_url": "https://api.github.com/users/xmartlabs/following{/other_user}", + "gists_url": "https://api.github.com/users/xmartlabs/gists{/gist_id}", + "starred_url": "https://api.github.com/users/xmartlabs/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/xmartlabs/subscriptions", + "organizations_url": "https://api.github.com/users/xmartlabs/orgs", + "repos_url": "https://api.github.com/users/xmartlabs/repos", + "events_url": "https://api.github.com/users/xmartlabs/events{/privacy}", + "received_events_url": "https://api.github.com/users/xmartlabs/received_events", + "type": "Organization", + "site_admin": false + }, + "html_url": "https://github.com/xmartlabs/Eureka", + "description": "Elegant iOS form builder in Swift", + "fork": false, + "url": "https://api.github.com/repos/xmartlabs/Eureka", + "forks_url": "https://api.github.com/repos/xmartlabs/Eureka/forks", + "keys_url": "https://api.github.com/repos/xmartlabs/Eureka/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/xmartlabs/Eureka/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/xmartlabs/Eureka/teams", + "hooks_url": "https://api.github.com/repos/xmartlabs/Eureka/hooks", + "issue_events_url": "https://api.github.com/repos/xmartlabs/Eureka/issues/events{/number}", + "events_url": "https://api.github.com/repos/xmartlabs/Eureka/events", + "assignees_url": "https://api.github.com/repos/xmartlabs/Eureka/assignees{/user}", + "branches_url": "https://api.github.com/repos/xmartlabs/Eureka/branches{/branch}", + "tags_url": "https://api.github.com/repos/xmartlabs/Eureka/tags", + "blobs_url": "https://api.github.com/repos/xmartlabs/Eureka/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/xmartlabs/Eureka/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/xmartlabs/Eureka/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/xmartlabs/Eureka/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/xmartlabs/Eureka/statuses/{sha}", + "languages_url": "https://api.github.com/repos/xmartlabs/Eureka/languages", + "stargazers_url": "https://api.github.com/repos/xmartlabs/Eureka/stargazers", + "contributors_url": "https://api.github.com/repos/xmartlabs/Eureka/contributors", + "subscribers_url": "https://api.github.com/repos/xmartlabs/Eureka/subscribers", + "subscription_url": "https://api.github.com/repos/xmartlabs/Eureka/subscription", + "commits_url": "https://api.github.com/repos/xmartlabs/Eureka/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/xmartlabs/Eureka/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/xmartlabs/Eureka/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/xmartlabs/Eureka/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/xmartlabs/Eureka/contents/{+path}", + "compare_url": "https://api.github.com/repos/xmartlabs/Eureka/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/xmartlabs/Eureka/merges", + "archive_url": "https://api.github.com/repos/xmartlabs/Eureka/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/xmartlabs/Eureka/downloads", + "issues_url": "https://api.github.com/repos/xmartlabs/Eureka/issues{/number}", + "pulls_url": "https://api.github.com/repos/xmartlabs/Eureka/pulls{/number}", + "milestones_url": "https://api.github.com/repos/xmartlabs/Eureka/milestones{/number}", + "notifications_url": "https://api.github.com/repos/xmartlabs/Eureka/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/xmartlabs/Eureka/labels{/name}", + "releases_url": "https://api.github.com/repos/xmartlabs/Eureka/releases{/id}", + "deployments_url": "https://api.github.com/repos/xmartlabs/Eureka/deployments", + "created_at": "2015-09-28T22:20:53Z", + "updated_at": "2019-08-20T01:51:07Z", + "pushed_at": "2019-08-17T02:11:12Z", + "git_url": "git://github.com/xmartlabs/Eureka.git", + "ssh_url": "git@github.com:xmartlabs/Eureka.git", + "clone_url": "https://github.com/xmartlabs/Eureka.git", + "svn_url": "https://github.com/xmartlabs/Eureka", + "homepage": "https://eurekacommunity.github.io", + "size": 20845, + "stargazers_count": 10084, + "watchers_count": 10084, + "language": "Swift", + "has_issues": true, + "has_projects": true, + "has_downloads": true, + "has_wiki": true, + "has_pages": false, + "forks_count": 1147, + "mirror_url": null, + "archived": false, + "disabled": false, + "open_issues_count": 130, + "license": { + "key": "mit", + "name": "MIT License", + "spdx_id": "MIT", + "url": "https://api.github.com/licenses/mit", + "node_id": "MDc6TGljZW5zZTEz" + }, + "forks": 1147, + "open_issues": 130, + "watchers": 10084, + "default_branch": "master", + "score": 1 + } +] diff --git a/Targets/AbemaTutorial/AbemaTutorial/Sources/App/AppDelegate.swift b/Targets/AbemaTutorial/AbemaTutorial/Sources/App/AppDelegate.swift new file mode 100644 index 0000000..0ecf6ab --- /dev/null +++ b/Targets/AbemaTutorial/AbemaTutorial/Sources/App/AppDelegate.swift @@ -0,0 +1,27 @@ +import UIKit +import Repository +import UIComponent +import UILogic +import UseCase + +@UIApplicationMain +class AppDelegate: UIResponder, UIApplicationDelegate { + + var window: UIWindow? + + func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { + window = { + let window = UIWindow() + window.rootViewController = RepositoryListViewController( + viewStream: RepositoryListViewStream( + repositoryListUseCase: RepositoryListUseCase( + repositoryRepository: RepositoryRepository() + ) + ) + ) + window.makeKeyAndVisible() + return window + }() + return true + } +} diff --git a/Targets/AbemaTutorial/AbemaTutorial/scripts/before-compile.sh b/Targets/AbemaTutorial/AbemaTutorial/scripts/before-compile.sh new file mode 100644 index 0000000..bfa9dbe --- /dev/null +++ b/Targets/AbemaTutorial/AbemaTutorial/scripts/before-compile.sh @@ -0,0 +1,15 @@ +#!/bin/bash + +set -e + +# SwiftLint +if [[ ! -z ${CI} ]] +then + echo skipping swiftlint +else + echo excute swiftlint + + $PODS_ROOT/SwiftLint/swiftlint lint --strict + + make mockolo +fi diff --git a/Targets/AbemaTutorial/AbemaTutorialTests/Info.plist b/Targets/AbemaTutorial/AbemaTutorialTests/Info.plist new file mode 100644 index 0000000..6c40a6c --- /dev/null +++ b/Targets/AbemaTutorial/AbemaTutorialTests/Info.plist @@ -0,0 +1,22 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + BNDL + CFBundleShortVersionString + 1.0 + CFBundleVersion + 1 + + diff --git a/Targets/AbemaTutorial/targets.yml b/Targets/AbemaTutorial/targets.yml new file mode 100644 index 0000000..57b7aec --- /dev/null +++ b/Targets/AbemaTutorial/targets.yml @@ -0,0 +1,24 @@ +targets: + AbemaTutorial: + templates: [CocoaPods] + type: application + platform: iOS + deploymentTarget: "13.0" + sources: + - path: Targets/AbemaTutorial/AbemaTutorial + createIntermediateGroups: true + schemes: + AbemaTutorial: + testTargetName: AbemaTutorialTests + dependencies: + - target: Domain + - target: Extension + - target: Repository + - target: UIComponent + - target: UILogic + - target: UILogicInterface + - target: UseCaseInterface + - target: UseCase + preBuildScripts: + - script: bash Targets/AbemaTutorial/AbemaTutorial/scripts/before-compile.sh + name: before-compile diff --git a/Targets/Domain/Domain/Configs/Info.plist b/Targets/Domain/Domain/Configs/Info.plist new file mode 100644 index 0000000..9bcb244 --- /dev/null +++ b/Targets/Domain/Domain/Configs/Info.plist @@ -0,0 +1,22 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + $(PRODUCT_BUNDLE_PACKAGE_TYPE) + CFBundleShortVersionString + 1.0 + CFBundleVersion + $(CURRENT_PROJECT_VERSION) + + diff --git a/Targets/Domain/Domain/Sources/Generated/zzz.mockolo.swift b/Targets/Domain/Domain/Sources/Generated/zzz.mockolo.swift new file mode 100644 index 0000000..a3bed4f --- /dev/null +++ b/Targets/Domain/Domain/Sources/Generated/zzz.mockolo.swift @@ -0,0 +1,25 @@ +/// +/// @Generated by Mockolo +/// + +#if DEBUG + +import RxSwift + + +public class RepositoryRepositoryTypeMock: RepositoryRepositoryType { + public init() { } + + + public private(set) var fetchRepositoriesCallCount = 0 + public var fetchRepositoriesHandler: ((Int, Int) -> (Single<[Repository]>))? + public func fetchRepositories(limit: Int, offset: Int) -> Single<[Repository]> { + fetchRepositoriesCallCount += 1 + if let fetchRepositoriesHandler = fetchRepositoriesHandler { + return fetchRepositoriesHandler(limit, offset) + } + fatalError("fetchRepositoriesHandler returns can't have a default value thus its handler must be set") + } +} + +#endif \ No newline at end of file diff --git a/Targets/Domain/Domain/Sources/Repository.swift b/Targets/Domain/Domain/Sources/Repository.swift new file mode 100644 index 0000000..7346851 --- /dev/null +++ b/Targets/Domain/Domain/Sources/Repository.swift @@ -0,0 +1,38 @@ +public struct Repository: Decodable, Equatable { + public let id: Int64 + public let name: String + public let description: String + public let owner: User + + public init( + id: Int64, + name: String, + description: String, + owner: User + ) { + self.id = id + self.name = name + self.description = description + self.owner = owner + } + + enum CodingKeys: String, CodingKey { + case id + case name + case description + case owner + } +} + +public extension Repository { + + static func mock( + id: Int64 = 123, + name: String = "mock-repo", + description: String = "mock repository", + owner: User = .mock() + ) -> Repository { + .init(id: id, name: name, description: description, owner: owner) + } +} + diff --git a/Targets/Domain/Domain/Sources/RepositoryInterface/RepositoryRepositoryType.swift b/Targets/Domain/Domain/Sources/RepositoryInterface/RepositoryRepositoryType.swift new file mode 100644 index 0000000..0fb7828 --- /dev/null +++ b/Targets/Domain/Domain/Sources/RepositoryInterface/RepositoryRepositoryType.swift @@ -0,0 +1,10 @@ +import RxSwift + +/// @mockable +public protocol RepositoryRepositoryType: AnyObject { + func fetchRepositories(limit: Int, offset: Int) -> Single<[Repository]> +} + +public enum RepositoryRepositoryError: Error { + case fetchError +} diff --git a/Targets/Domain/Domain/Sources/User.swift b/Targets/Domain/Domain/Sources/User.swift new file mode 100644 index 0000000..ac591a9 --- /dev/null +++ b/Targets/Domain/Domain/Sources/User.swift @@ -0,0 +1,24 @@ +public struct User: Decodable, Equatable { + public let id: Int64 + public let login: String + + public init(id: Int64, login: String) { + self.id = id + self.login = login + } + + enum CodingKeys: String, CodingKey { + case id + case login + } +} + +public extension User { + + static func mock( + id: Int64 = 123, + login: String = "mockowner" + ) -> User { + .init(id: id, login: login) + } +} diff --git a/Targets/Domain/DomainTests/Configs/Info.plist b/Targets/Domain/DomainTests/Configs/Info.plist new file mode 100644 index 0000000..9bcb244 --- /dev/null +++ b/Targets/Domain/DomainTests/Configs/Info.plist @@ -0,0 +1,22 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + $(PRODUCT_BUNDLE_PACKAGE_TYPE) + CFBundleShortVersionString + 1.0 + CFBundleVersion + $(CURRENT_PROJECT_VERSION) + + diff --git a/Targets/Domain/Makefile b/Targets/Domain/Makefile new file mode 100644 index 0000000..25e9f84 --- /dev/null +++ b/Targets/Domain/Makefile @@ -0,0 +1,8 @@ +include ../../Config/Makefile/shared.mk + +.PHONY: mockolo +mockolo: $(MOCKOLO) + $(MOCKOLO) \ + --sourcedirs ./Domain/Sources \ + --destination ./Domain/Sources/Generated/zzz.mockolo.swift \ + --macro DEBUG \ No newline at end of file diff --git a/Targets/Domain/targets.yml b/Targets/Domain/targets.yml new file mode 100644 index 0000000..71569ad --- /dev/null +++ b/Targets/Domain/targets.yml @@ -0,0 +1,20 @@ +targets: + Domain: + templates: [ComponentFramework, CocoaPods] + templateAttributes: + componentName: Domain + dependencies: + - target: Extension + + DomainTests: + templates: [ComponentFrameworkTests, CocoaPods] + templateAttributes: + componentName: Domain + dependencies: + - target: Domain + - target: Extension + - target: TestExtension + +schemes: + Domain: + templates: [ComponentFrameworkScheme] diff --git a/Targets/Extension/Extension/Confings/Info.plist b/Targets/Extension/Extension/Confings/Info.plist new file mode 100644 index 0000000..9bcb244 --- /dev/null +++ b/Targets/Extension/Extension/Confings/Info.plist @@ -0,0 +1,22 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + $(PRODUCT_BUNDLE_PACKAGE_TYPE) + CFBundleShortVersionString + 1.0 + CFBundleVersion + $(CURRENT_PROJECT_VERSION) + + diff --git a/Targets/Extension/Extension/Sources/CollectionExtension.swift b/Targets/Extension/Extension/Sources/CollectionExtension.swift new file mode 100644 index 0000000..31e4565 --- /dev/null +++ b/Targets/Extension/Extension/Sources/CollectionExtension.swift @@ -0,0 +1,8 @@ +public extension Collection { + subscript(safe index: Index) -> Element? { + guard indices.contains(index) else { + return nil + } + return self[index] + } +} diff --git a/Targets/Extension/Extension/Sources/ObservableTypeExtension.swift b/Targets/Extension/Extension/Sources/ObservableTypeExtension.swift new file mode 100644 index 0000000..8e930c8 --- /dev/null +++ b/Targets/Extension/Extension/Sources/ObservableTypeExtension.swift @@ -0,0 +1,19 @@ +import Foundation +import RxSwift + +// MARK: ObservableType where Element: OptionalType +// ObservableのEがOptionalだった場合 +extension ObservableType where Element: OptionalType { + + /// Filters out the nil elements of a sequence of optional elements + /// - returns: An observable sequence of only the non-nil elements + public func filterNil() -> Observable { + return flatMap { item -> Observable in + if let value = item.value { + return Observable.just(value) + } else { + return Observable.empty() + } + } + } +} diff --git a/Targets/Extension/Extension/Sources/ObservableWrappers.swift b/Targets/Extension/Extension/Sources/ObservableWrappers.swift new file mode 100644 index 0000000..b99283c --- /dev/null +++ b/Targets/Extension/Extension/Sources/ObservableWrappers.swift @@ -0,0 +1,68 @@ +import Foundation +import RxSwift +import RxRelay + +/// @PublishWrapper() +/// private(set) var count: Observable +/// _count.accept(1) // <- アンダースコアでacceptにアクセス可能 +public typealias PublishWrapper = RelayWrapper, T> + +/// @BehaviorWrapper(value: 0) +/// private(set) var count: Property +/// _count.accept(1) // <- アンダースコアでacceptにアクセス可能 +public typealias BehaviorWrapper = RelayWrapper, T> + +@propertyWrapper +public struct RelayWrapper { + + public let wrappedValue: Wrapped + + /// 宣言した型内でしかアクセスできない値を更新するためのclosure + public let accept: (Element) -> Void + + private init(wrapped: Wrapped, accept: @escaping (Element) -> Void) { + self.wrappedValue = wrapped + self.accept = accept + } +} + +public extension RelayWrapper where Wrapped == Observable { + init() { + let relay = PublishRelay() + self.init(wrapped: relay.asObservable(), accept: { relay.accept($0) }) + } +} + +public extension RelayWrapper where Wrapped == Property { + init(value: Element) { + let relay = BehaviorRelay(value: value) + self.init(wrapped: Property(relay), accept: { relay.accept($0) }) + } +} + +/// - seealso: https://github.com/ReactiveX/RxSwift/blob/5.0.1/RxRelay/Observable+Bind.swift +public extension ObservableType { + + func bind(to relays: RelayWrapper...) -> Disposable { + self.bind(to: relays) + } + + func bind(to relays: RelayWrapper...) -> Disposable { + self.map { $0 as Element? }.bind(to: relays) + } + + private func bind(to relays: [RelayWrapper]) -> Disposable { + self.subscribe { e in + switch e { + case let .next(element): + relays.forEach { + $0.accept(element) + } + case let .error(error): + developmentFatalError("Binding error to RelayWrapper: \(error)") + case .completed: + break + } + } + } +} diff --git a/Targets/Extension/Extension/Sources/OptionalType.swift b/Targets/Extension/Extension/Sources/OptionalType.swift new file mode 100644 index 0000000..4c08c52 --- /dev/null +++ b/Targets/Extension/Extension/Sources/OptionalType.swift @@ -0,0 +1,14 @@ +/// Protocol type for Optionals. +/// Used for extensions to protocols with associated types. +/// Can restrict the extension to only when the associated tye is Optional +public protocol OptionalType { + associatedtype Wrapped + + static var none: Self { get } + static func some(_ wrapped: Wrapped) -> Self + var value: Wrapped? { get } +} + +extension Optional: OptionalType { + public var value: Wrapped? { return self } +} diff --git a/Targets/Extension/Extension/Sources/RxProperty.swift b/Targets/Extension/Extension/Sources/RxProperty.swift new file mode 100644 index 0000000..50734a2 --- /dev/null +++ b/Targets/Extension/Extension/Sources/RxProperty.swift @@ -0,0 +1,27 @@ +import RxRelay +import RxSwift + +final public class Property { + + public typealias E = Element + + private let _behaviorRelay: BehaviorRelay + + public var value: E { + get { + return _behaviorRelay.value + } + } + + public init(_ value: E) { + self._behaviorRelay = BehaviorRelay(value: value) + } + + public init(_ behaviorRelay: BehaviorRelay) { + self._behaviorRelay = behaviorRelay + } + + public func asObservable() -> Observable { + return _behaviorRelay.asObservable() + } +} diff --git a/Targets/Extension/Extension/Sources/UITableViewExtension.swift b/Targets/Extension/Extension/Sources/UITableViewExtension.swift new file mode 100644 index 0000000..e55b9f9 --- /dev/null +++ b/Targets/Extension/Extension/Sources/UITableViewExtension.swift @@ -0,0 +1,20 @@ +import UIKit + +public extension UITableView { + func register(_ cellType: Cell.Type) { + register(cellType, forCellReuseIdentifier: cellType.reuseIdentifier) + } + + func dequeue(_ cellType: Cell.Type, for indexPath: IndexPath) -> Cell? { + guard let cell = dequeueReusableCell(withIdentifier: cellType.reuseIdentifier, for: indexPath) as? Cell else { + return nil + } + return cell + } +} + +public extension UITableViewCell { + static var reuseIdentifier: String { + return NSStringFromClass(self) + } +} diff --git a/Targets/Extension/Extension/Sources/developmentFatalError.swift b/Targets/Extension/Extension/Sources/developmentFatalError.swift new file mode 100644 index 0000000..e5ecee2 --- /dev/null +++ b/Targets/Extension/Extension/Sources/developmentFatalError.swift @@ -0,0 +1,10 @@ +public func developmentFatalError(_ message: String = "", + file: StaticString = #file, + line: UInt = #line, + function: StaticString = #function) { + print("[FATAL] \(file):\(line) \(function): \(message)") + + #if DEBUG + fatalError(message, file: file, line: line) + #endif +} diff --git a/Targets/Extension/Extension/Sources/void.swift b/Targets/Extension/Extension/Sources/void.swift new file mode 100644 index 0000000..d70800a --- /dev/null +++ b/Targets/Extension/Extension/Sources/void.swift @@ -0,0 +1 @@ +public func void(_: T) {} diff --git a/Targets/Extension/ExtensionTests/Configs/Info.plist b/Targets/Extension/ExtensionTests/Configs/Info.plist new file mode 100644 index 0000000..9bcb244 --- /dev/null +++ b/Targets/Extension/ExtensionTests/Configs/Info.plist @@ -0,0 +1,22 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + $(PRODUCT_BUNDLE_PACKAGE_TYPE) + CFBundleShortVersionString + 1.0 + CFBundleVersion + $(CURRENT_PROJECT_VERSION) + + diff --git a/Targets/Extension/ExtensionTests/Tests/TestExtension/WatchStackTests.swift b/Targets/Extension/ExtensionTests/Tests/TestExtension/WatchStackTests.swift new file mode 100644 index 0000000..c625c8b --- /dev/null +++ b/Targets/Extension/ExtensionTests/Tests/TestExtension/WatchStackTests.swift @@ -0,0 +1,75 @@ +import TestExtension +import RxSwift +import RxTest +import XCTest + +class WatchStackTests: XCTestCase { + func test_PublishSubject_empty() { + let subject = PublishSubject() + let stack = WatchStack(subject) + XCTAssertEqual(stack.count, 0) + XCTAssertEqual(stack.value, nil) + XCTAssertNil(stack.error) + } + + func test_PublishSubject_single_event() { + let subject = PublishSubject() + let stack = WatchStack(subject) + + subject.onNext(100) + + XCTAssertEqual(stack.count, 1) + XCTAssertEqual(stack.value, 100) + XCTAssertNil(stack.error) + } + + func test_PublishSubject_multiple_event() { + let subject = PublishSubject() + let stack = WatchStack(subject) + + subject.onNext(100) + subject.onNext(200) + subject.onNext(300) + + XCTAssertEqual(stack.count, 3) + XCTAssertEqual(stack.first, 100) + XCTAssertEqual(stack.last, 300) + XCTAssertEqual(stack.value, 300) + XCTAssertNil(stack.error) + } + + func test_PublishSubject_error() { + let subject = PublishSubject() + let stack = WatchStack(subject) + + subject.onNext(100) + subject.onNext(200) + subject.onNext(300) + subject.onError(RxError.timeout) + + XCTAssertEqual(stack.count, 3) + XCTAssertEqual(stack.first, 100) + XCTAssertEqual(stack.last, 300) + XCTAssertEqual(stack.value, 300) + XCTAssertNotNil(stack.error) + } + + func test_PublishSubject_async_event() { + let disposeBag = DisposeBag() + let scheduler = TestScheduler(initialClock: 0) + let subject = PublishSubject() + let stack = WatchStack(subject, scheduler: scheduler) + + Observable + .just(123) + .delay(.seconds(10), scheduler: scheduler) + .subscribe(subject) + .disposed(by: disposeBag) + + scheduler.advanceTo(20) + + XCTAssertEqual(stack.count, 1) + XCTAssertEqual(stack.value, 123) + XCTAssertNil(stack.error) + } +} diff --git a/Targets/Extension/TestExtension/Configs/Info.plist b/Targets/Extension/TestExtension/Configs/Info.plist new file mode 100644 index 0000000..9bcb244 --- /dev/null +++ b/Targets/Extension/TestExtension/Configs/Info.plist @@ -0,0 +1,22 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + $(PRODUCT_BUNDLE_PACKAGE_TYPE) + CFBundleShortVersionString + 1.0 + CFBundleVersion + $(CURRENT_PROJECT_VERSION) + + diff --git a/Targets/Extension/TestExtension/Sources/Rx/WatchStack.swift b/Targets/Extension/TestExtension/Sources/Rx/WatchStack.swift new file mode 100644 index 0000000..5790798 --- /dev/null +++ b/Targets/Extension/TestExtension/Sources/Rx/WatchStack.swift @@ -0,0 +1,43 @@ +import RxSwift +import RxTest + +@dynamicMemberLookup +public final class WatchStack { + private let disposeBag = DisposeBag() + private let observer: TestableObserver + + public init( + _ observable: O, + scheduler: TestScheduler = .init(initialClock: 0) + ) where Element == O.Element { + observer = scheduler.createObserver(Element.self) + observable.subscribe(observer).disposed(by: disposeBag) + } + + /// `first` `last` `count` などのプロパティを `observer.events` にプロキシする + /// - NOTE: `completed` や `error` は含まれない + public subscript(dynamicMember keyPath: KeyPath<[Element], T>) -> T { + let elements = observer.events.compactMap { $0.value.element } + return elements[keyPath: keyPath] + } +} + +extension WatchStack { + /// - Returns: タイミング情報を持たないイベントの一覧 + public var events: [Event] { + observer.events.map { $0.value } + } + + /// - Returns: 最後の `next` の値 + /// - NOTE: `last` のエイリアス。 + /// `completed` や `error` が流れていても、最後の `next` の値を返す。 + public var value: Element? { self.last } + + /// - Returns: `error` の値 + public var error: Error? { + guard case let .error(error)? = observer.events.last?.value else { + return nil + } + return error + } +} diff --git a/Targets/Extension/targets.yml b/Targets/Extension/targets.yml new file mode 100644 index 0000000..6f4551b --- /dev/null +++ b/Targets/Extension/targets.yml @@ -0,0 +1,36 @@ +targets: + Extension: + templates: [ComponentFramework, CocoaPods] + templateAttributes: + componentName: Extension + + TestExtension: + templates: [ComponentFramework, CocoaPods] + templateAttributes: + componentName: Extension + sources: + - path: Targets/Extension/TestExtension + createIntermediateGroups: true + dependencies: + - target: Extension + - sdk: PLATFORM_DIR/Developer/Library/Frameworks/XCTest + root: DEVELOPER_DIR + settings: + base: + FRAMEWORK_SEARCH_PATHS: "$(inherited) $(PLATFORM_DIR)/Developer/Library/Frameworks" + + ExtensionTests: + templates: [ComponentFrameworkTests, CocoaPods] + templateAttributes: + componentName: Extension + dependencies: + - target: Extension + - target: TestExtension + +schemes: + Extension: + templates: [ComponentFrameworkScheme] + build: + targets: + Extension: all + TestExtension: all diff --git a/Targets/Repository/Repository/Configs/Info.plist b/Targets/Repository/Repository/Configs/Info.plist new file mode 100644 index 0000000..9bcb244 --- /dev/null +++ b/Targets/Repository/Repository/Configs/Info.plist @@ -0,0 +1,22 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + $(PRODUCT_BUNDLE_PACKAGE_TYPE) + CFBundleShortVersionString + 1.0 + CFBundleVersion + $(CURRENT_PROJECT_VERSION) + + diff --git a/Targets/Repository/Repository/Sources/RepositoryRepository.swift b/Targets/Repository/Repository/Sources/RepositoryRepository.swift new file mode 100644 index 0000000..724df34 --- /dev/null +++ b/Targets/Repository/Repository/Sources/RepositoryRepository.swift @@ -0,0 +1,33 @@ +import Foundation +import RxSwift +import Domain + +public final class RepositoryRepository: RepositoryRepositoryType { + + public init() {} + + public func fetchRepositories(limit: Int, offset: Int) -> Single<[Repository]> { + return stubFetchRepositories(limit: limit, offset: offset) + } +} + +extension RepositoryRepository { + /// スタブ実装. 課題遂行のために変更してはいけません. + private func stubFetchRepositories(limit: Int, offset: Int) -> Single<[Repository]> { + let decoder = JSONDecoder() + // repositories.jsonは、Repositoryに置きたいが、static frameworkであるために、置くことができないので、AbemaTutorialに定義する + guard + let url = Bundle.main.url(forResource: "repositories", withExtension: "json"), + let data = try? Data(contentsOf: url), + let repositories = try? decoder.decode([Repository].self, from: data) + else { fatalError("Stub data could not be found or malformed") } + + return Single + .just(()) + .delay(.seconds(1), scheduler: SerialDispatchQueueScheduler(qos: .default)) + .map { _ in Array(repositories[offset ..< offset + limit]) } + .flatMap { repositories -> Single<[Repository]> in + Int.random(in: 0 ..< 10) > 0 ? .just(repositories) : .error(RepositoryRepositoryError.fetchError) + } + } +} diff --git a/Targets/Repository/RepositoryTests/Configs/Info.plist b/Targets/Repository/RepositoryTests/Configs/Info.plist new file mode 100644 index 0000000..9bcb244 --- /dev/null +++ b/Targets/Repository/RepositoryTests/Configs/Info.plist @@ -0,0 +1,22 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + $(PRODUCT_BUNDLE_PACKAGE_TYPE) + CFBundleShortVersionString + 1.0 + CFBundleVersion + $(CURRENT_PROJECT_VERSION) + + diff --git a/Targets/Repository/targets.yml b/Targets/Repository/targets.yml new file mode 100644 index 0000000..a622936 --- /dev/null +++ b/Targets/Repository/targets.yml @@ -0,0 +1,21 @@ +targets: + Repository: + templates: [ComponentFramework, CocoaPods] + templateAttributes: + componentName: Repository + dependencies: + - target: Domain + - target: Extension + + RepositoryTests: + templates: [ComponentFrameworkTests, CocoaPods] + templateAttributes: + componentName: Repository + dependencies: + - target: Repository + - target: Extension + - target: TestExtension + +schemes: + Repository: + templates: [ComponentFrameworkScheme] diff --git a/Targets/UIComponent/UIComponent/Configs/Info.plist b/Targets/UIComponent/UIComponent/Configs/Info.plist new file mode 100644 index 0000000..d334b7a --- /dev/null +++ b/Targets/UIComponent/UIComponent/Configs/Info.plist @@ -0,0 +1,22 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + $(PRODUCT_BUNDLE_PACKAGE_TYPE) + CFBundleShortVersionString + 1.0 + CFBundleVersion + $(CURRENT_PROJECT_VERSION) + + \ No newline at end of file diff --git a/Targets/UIComponent/UIComponent/Resources/Preview/Placeholders.xcassets/Contents.json b/Targets/UIComponent/UIComponent/Resources/Preview/Placeholders.xcassets/Contents.json new file mode 100644 index 0000000..da4a164 --- /dev/null +++ b/Targets/UIComponent/UIComponent/Resources/Preview/Placeholders.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Targets/UIComponent/UIComponent/Sources/Preview/PreviewProvider.swift b/Targets/UIComponent/UIComponent/Sources/Preview/PreviewProvider.swift new file mode 100644 index 0000000..eceb93d --- /dev/null +++ b/Targets/UIComponent/UIComponent/Sources/Preview/PreviewProvider.swift @@ -0,0 +1,351 @@ +import UIKit +import SwiftUI +import RxSwift + +#if ENABLE_PREVIEW + +// MARK: - Preview Group + +@available(iOS 13.0, *) +public protocol PreviewProvider: SwiftUI.PreviewProvider { + static var previews: AnyPreviewGroup { get } +} + +public protocol _Previewable {} +extension UIView: _Previewable {} +extension UIViewController: _Previewable {} + +public enum AnyPreviewGroup { + case view(PreviewGroup) + case viewController(PreviewGroup) + + public var name: String { + switch self { + case let .view(group): return group.name + case let .viewController(group): return group.name + } + } +} + +public struct PreviewGroup { + public let name: String + + public fileprivate(set) var previews: [Preview] + public fileprivate(set) var width: PreviewSize = .intrinsic + public fileprivate(set) var height: PreviewSize = .intrinsic + public fileprivate(set) var backgroundColor: UIColor = .darkCheckPattern + public fileprivate(set) var device: PreviewDevice = .iPhone_X +} + +extension PreviewGroup where T == UIView { + + public static func view( + name: String? = nil, + file: String = #file, + @PreviewGroupBuilder builder: () -> [Preview] + ) -> AnyPreviewGroup { + return .view(self.init(name: name ?? Self.defaultName(file), previews: builder())) + } +} + +extension PreviewGroup where T == UIViewController { + + public static func viewController( + name: String? = nil, + file: String = #file, + @PreviewGroupBuilder builder: () -> [Preview] + ) -> AnyPreviewGroup { + return .viewController(self.init(name: name ?? Self.defaultName(file), previews: builder())) + } +} + +extension PreviewGroup { + private static func defaultName(_ file: String) -> String { + var fileName = URL(string: file)?.lastPathComponent ?? file + let suffix = "_Preview.swift" + if fileName.hasSuffix(suffix) { + fileName.removeLast(suffix.count) + } + return fileName + } +} + +@available(iOS 13.0, *) +extension AnyPreviewGroup: View { + public var body: AnyView { + switch self { + case let .view(group): + return AnyView(ForEach(group.previews, id: \.name) { preview in + preview.makeView(group: group) + .previewDisplayName(preview.name) + .previewDevice((preview.device ?? group.device)?.swiftUI) + }) + case let .viewController(group): + return AnyView(ForEach(group.previews, id: \.name) { preview in + preview.makeView(group: group) + .previewDisplayName(preview.name) + .previewDevice((preview.device ?? group.device)?.swiftUI) + }) + } + } +} + +@resultBuilder +public enum PreviewGroupBuilder { + public static func buildBlock(_ previews: Preview...) -> [Preview] { previews } +} + +// MARK: - Preview + +public struct Preview { + public let name: String + public let factory: () -> T + + // nilのときPreviewGroupの指定にフォールバック + public fileprivate(set) var width: PreviewSize? + public fileprivate(set) var height: PreviewSize? + public fileprivate(set) var backgroundColor: UIColor? + public fileprivate(set) var device: PreviewDevice? +} + +// WORKAROUND: UIViewとUIViewControllerそれぞれで定義しないと推論ができない +// (`where T: _Previewable` 指定だと `Preview("name") { ... }` が ambiguous になる) + +extension Preview where T == UIView { + public init(_ name: String = "Default", factory: @escaping () -> T) { + self.name = name + self.factory = factory + } +} + +extension Preview where T == UIViewController { + public init(_ name: String = "Default", factory: @escaping () -> T) { + self.name = name + self.factory = factory + } +} + +// MARK: - SwiftUI + +@available(iOS 13.0, *) +fileprivate extension Preview where T: UIView { + struct SwiftUIView: View, UIViewRepresentable { + let preview: Preview + let group: PreviewGroup + + func makeUIView(context: Context) -> UIView { UIView() } + + func updateUIView(_ containerView: UIView, context: Context) { + let previewView = preview.factory() + previewView.translatesAutoresizingMaskIntoConstraints = false + + containerView.backgroundColor = (preview.backgroundColor ?? group.backgroundColor) + containerView.addSubview(previewView) + + NSLayoutConstraint.activate([ + previewView.centerXAnchor.constraint(equalTo: containerView.centerXAnchor), + previewView.centerYAnchor.constraint(equalTo: containerView.centerYAnchor), + (preview.width ?? group.width).makeConstraint( + viewAnchor: previewView.widthAnchor, + containerViewAnchor: containerView.widthAnchor + ), + (preview.height ?? group.height).makeConstraint( + viewAnchor: previewView.heightAnchor, + containerViewAnchor: containerView.heightAnchor + ), + ].compactMap { $0 }) + } + } + + func makeView(group: PreviewGroup) -> SwiftUIView { + SwiftUIView(preview: self, group: group) + } +} + +@available(iOS 13.0, *) +fileprivate extension Preview where T: UIViewController { + struct SwiftUIViewController: View, UIViewControllerRepresentable { + let preview: Preview + let group: PreviewGroup + + func makeUIViewController(context: Context) -> UIViewController { + preview.factory() + } + + func updateUIViewController(_: UIViewController, context: Context) {} + } + + func makeView(group: PreviewGroup) -> SwiftUIViewController { + SwiftUIViewController(preview: self, group: group) + } +} + +// MARK: - Preview Configuration + +public enum PreviewSize { + // 固定のサイズ (pt) + case constant(CGFloat) + + // 親ビューのサイズに対する割合 + case multiplier(CGFloat) + + // Auto Layoutに従ったサイズ (制約を作らない) + case intrinsic + + // 親ビューと一致させる + public static var full: Self { .multiplier(1) } + + public func makeConstraint(viewAnchor: NSLayoutDimension, + containerViewAnchor: NSLayoutDimension) -> NSLayoutConstraint? { + switch self { + case .constant(let constant): + return viewAnchor.constraint(equalToConstant: constant) + case .multiplier(let multiplier): + return viewAnchor.constraint(equalTo: containerViewAnchor, multiplier: multiplier) + case .intrinsic: + return nil + } + } +} + +extension Preview { + func previewWidth(_ size: PreviewSize) -> Self { + var preview = self + preview.width = size + return preview + } + + func previewHeight(_ size: PreviewSize) -> Self { + var preview = self + preview.height = size + return preview + } + + func previewSize(width: PreviewSize, height: PreviewSize) -> Self { + return self.previewWidth(width).previewHeight(height) + } + + func previewBackground(_ color: UIColor) -> Self { + var preview = self + preview.backgroundColor = color + return preview + } + + func previewDevice(_ device: PreviewDevice?) -> Self { + var preview = self + preview.device = device + return preview + } +} + +extension AnyPreviewGroup { + func previewWidth(_ size: PreviewSize) -> Self { + switch self { + case var .view(group): + group.width = size + return .view(group) + case var .viewController(group): + group.width = size + return .viewController(group) + } + } + + func previewHeight(_ size: PreviewSize) -> Self { + switch self { + case var .view(group): + group.height = size + return .view(group) + case var .viewController(group): + group.height = size + return .viewController(group) + } + } + + func previewSize(width: PreviewSize, height: PreviewSize) -> Self { + return self.previewWidth(width).previewHeight(height) + } + + func previewBackground(_ color: UIColor) -> Self { + switch self { + case var .view(group): + group.backgroundColor = color + return .view(group) + case var .viewController(group): + group.backgroundColor = color + return .viewController(group) + } + } + + func previewDevice(_ device: PreviewDevice) -> Self { + switch self { + case var .view(group): + group.device = device + return .view(group) + case var .viewController(group): + group.device = device + return .viewController(group) + } + } +} + +// MARK: Preview Device + +/// - seealso: https://developer.apple.com/documentation/swiftui/securefield/3289399-previewdevice +public enum PreviewDevice: String { + case iPhone_7 = "iPhone 7" + case iPhone_7_Plus = "iPhone 7 Plus" + case iPhone_8 = "iPhone 8" + case iPhone_8_Plus = "iPhone 8 Plus" + case iPhone_SE = "iPhone SE" + case iPhone_X = "iPhone X" + case iPhone_Xs = "iPhone Xs" + case iPhone_Xs_Max = "iPhone Xs Max" + case iPhone_XR = "iPhone Xʀ" + case iPad_mini_4 = "iPad mini 4" + case iPad_Air_2 = "iPad Air 2" + case iPad_Pro_9_7 = "iPad Pro (9.7-inch)" + case iPad_Pro_12_9 = "iPad Pro (12.9-inch)" + case iPad_5G = "iPad (5th generation)" + case iPad_Pro_12_9_2G = "iPad Pro (12.9-inch) (2nd generation)" + case iPad_Pro_10_5 = "iPad Pro (10.5-inch)" + case iPad_6G = "iPad (6th generation)" + case iPad_Pro_11 = "iPad Pro (11-inch)" + case iPad_Pro_12_9_3G = "iPad Pro (12.9-inch) (3rd generation)" + case iPad_mini_5G = "iPad mini (5th generation)" + case iPad_Air_3G = "iPad Air (3rd generation)" + + @available(iOS 13.0, *) + var swiftUI: SwiftUI.PreviewDevice { + .init(rawValue: rawValue) + } +} + +// MARK: - Utility Extentions + +extension UIColor { + private static func makeCheckPattern(size: CGFloat = 20, base: CGFloat, delta: CGFloat) -> UIColor { + let renderer = UIGraphicsImageRenderer(size: CGSize(width: size, height: size)) + let image = renderer.image { context in + context.cgContext.setFillColor(gray: base, alpha: 1.0) + context.fill(CGRect(x: 0, y: 0, width: size, height: size)) + + context.cgContext.setFillColor(gray: base + delta, alpha: 1.0) + context.fill(CGRect(x: 0, y: 0, width: size / 2, height: size / 2)) + context.fill(CGRect(x: size / 2, y: size / 2, width: size / 2, height: size / 2)) + } + return UIColor(patternImage: image) + } + + static var lightCheckPattern = makeCheckPattern(base: 1, delta: -0.05) + static var darkCheckPattern = makeCheckPattern(base: 0, delta: 0.05) +} + +extension NSObject { + static func loadImage(named name: String, to imageView: UIImageView) -> Disposable { + let image = UIImage(named: name, in: Bundle(for: self), compatibleWith: nil) + imageView.image = image + return Disposables.create() + } +} + +#endif diff --git a/Targets/UIComponent/UIComponent/Sources/Views/RepositoryList/Cell/RepositoryListCell.swift b/Targets/UIComponent/UIComponent/Sources/Views/RepositoryList/Cell/RepositoryListCell.swift new file mode 100644 index 0000000..06731f7 --- /dev/null +++ b/Targets/UIComponent/UIComponent/Sources/Views/RepositoryList/Cell/RepositoryListCell.swift @@ -0,0 +1,16 @@ +import UIKit + +final class RepositoryListCell: UITableViewCell { + + override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) { + super.init(style: .subtitle, reuseIdentifier: reuseIdentifier) + } + + required init?(coder aDecoder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } + + func configure(title: String) { + textLabel?.text = title + } +} diff --git a/Targets/UIComponent/UIComponent/Sources/Views/RepositoryList/Previews/RepositoryListCell_Preview.swift b/Targets/UIComponent/UIComponent/Sources/Views/RepositoryList/Previews/RepositoryListCell_Preview.swift new file mode 100644 index 0000000..9086ba1 --- /dev/null +++ b/Targets/UIComponent/UIComponent/Sources/Views/RepositoryList/Previews/RepositoryListCell_Preview.swift @@ -0,0 +1,18 @@ +#if ENABLE_PREVIEW +import SwiftUI + +@available(iOS 13.0, *) +enum VideoRankingCellView_Preview: PreviewProvider { + + public static let previews = PreviewGroup.view { + Preview("RepositoryListCell") { + let view = RepositoryListCell() + view.configure(title: "owner / name") + view.backgroundColor = .white + return view + } + } + .previewWidth(.full) + .previewHeight(.constant(44)) +} +#endif diff --git a/Targets/UIComponent/UIComponent/Sources/Views/RepositoryList/Previews/RepositoryListViewController_Preview.swift b/Targets/UIComponent/UIComponent/Sources/Views/RepositoryList/Previews/RepositoryListViewController_Preview.swift new file mode 100644 index 0000000..508677e --- /dev/null +++ b/Targets/UIComponent/UIComponent/Sources/Views/RepositoryList/Previews/RepositoryListViewController_Preview.swift @@ -0,0 +1,36 @@ +#if ENABLE_PREVIEW +import SwiftUI +import UIKit +import UILogicInterface + +@available(iOS 13.0, *) +enum RepositoryListViewController_Preview: PreviewProvider { + + // RunするまでStatus Barが表示されずTableViewが意図する位置にいないが、一旦許容する + public static let previews = PreviewGroup.viewController { + Preview { + let titles = [ + "owner1 / name1", + "owner2 / name2", + ] + + let input = RepositoryListViewStreamInput() + + let output = RepositoryListViewStreamOutput( + titles: .init(value: titles), + reloadData: .init(), + isRefreshControlRefreshing: .init(value: false) + ) + + let vs = RepositoryListViewStreamTypeMock( + input: .init(input), + output: .init(output) + ) + let vc = RepositoryListViewController(viewStream: vs) + + return vc + } + } + .previewSize(width: .full, height: .full) +} +#endif diff --git a/Targets/UIComponent/UIComponent/Sources/Views/RepositoryList/RepositoryListViewController.swift b/Targets/UIComponent/UIComponent/Sources/Views/RepositoryList/RepositoryListViewController.swift new file mode 100644 index 0000000..4189053 --- /dev/null +++ b/Targets/UIComponent/UIComponent/Sources/Views/RepositoryList/RepositoryListViewController.swift @@ -0,0 +1,68 @@ +import RxCocoa +import RxSwift +import UIKit +import UILogicInterface + +public final class RepositoryListViewController: UIViewController { + + private let viewStream: RepositoryListViewStreamType + + private lazy var dataSource = RepositoryListViewDataSource(viewStream: viewStream) + + private let disposeBag = DisposeBag() + + // MARK: UI + + private lazy var tableView: UITableView = { + let tableView = UITableView() + tableView.translatesAutoresizingMaskIntoConstraints = false + tableView.dataSource = dataSource + tableView.refreshControl = refreshControl + tableView.register(RepositoryListCell.self) + tableView.register(UITableViewCell.self) // フォールバック用 + return tableView + }() + + private let refreshControl = UIRefreshControl() + + public init(viewStream: RepositoryListViewStreamType) { + self.viewStream = viewStream + + super.init(nibName: nil, bundle: nil) + + // Layout + view.addSubview(tableView) + + NSLayoutConstraint.activate([ + tableView.topAnchor.constraint(equalTo: view.topAnchor), + tableView.leadingAnchor.constraint(equalTo: view.leadingAnchor), + tableView.trailingAnchor.constraint(equalTo: view.trailingAnchor), + tableView.bottomAnchor.constraint(equalTo: view.bottomAnchor), + ]) + + // Bind + viewStream.output.reloadData + .bind(to: Binder(tableView) { tableView, _ in + tableView.reloadData() + }) + .disposed(by: disposeBag) + + viewStream.output.isRefreshControlRefreshing + .bind(to: refreshControl.rx.isRefreshing) + .disposed(by: disposeBag) + + refreshControl.rx.controlEvent(.valueChanged) + .bind(to: viewStream.input.refreshControlValueChanged) + .disposed(by: disposeBag) + } + + required init?(coder aDecoder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } + + public override func viewWillAppear(_ animated: Bool) { + super.viewWillAppear(animated) + + viewStream.input.viewWillAppear(()) + } +} diff --git a/Targets/UIComponent/UIComponent/Sources/Views/RepositoryList/RepositoryListViewDataSource.swift b/Targets/UIComponent/UIComponent/Sources/Views/RepositoryList/RepositoryListViewDataSource.swift new file mode 100644 index 0000000..0e4d7dc --- /dev/null +++ b/Targets/UIComponent/UIComponent/Sources/Views/RepositoryList/RepositoryListViewDataSource.swift @@ -0,0 +1,36 @@ +import Extension +import UILogicInterface +import UIKit + +final class RepositoryListViewDataSource: NSObject { + + private let viewStream: RepositoryListViewStreamType + + init(viewStream: RepositoryListViewStreamType) { + self.viewStream = viewStream + } +} + +extension RepositoryListViewDataSource: UITableViewDataSource { + func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { + viewStream.output.titles.value.count + } + + func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { + let titles = viewStream.output.titles.value + + guard let title = titles[safe: indexPath.row] else { + developmentFatalError("Index is out of bounds") + return UITableViewCell() + } + + guard let cell = tableView.dequeue(RepositoryListCell.self, for: indexPath) else { + developmentFatalError("Cell is not registered") + return UITableViewCell() + } + + cell.configure(title: title) + + return cell + } +} diff --git a/Targets/UIComponent/UIResource/Configs/Info.plist b/Targets/UIComponent/UIResource/Configs/Info.plist new file mode 100644 index 0000000..9bcb244 --- /dev/null +++ b/Targets/UIComponent/UIResource/Configs/Info.plist @@ -0,0 +1,22 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + $(PRODUCT_BUNDLE_PACKAGE_TYPE) + CFBundleShortVersionString + 1.0 + CFBundleVersion + $(CURRENT_PROJECT_VERSION) + + diff --git a/Targets/UIComponent/UIResource/Configs/swiftgen.yml b/Targets/UIComponent/UIResource/Configs/swiftgen.yml new file mode 100644 index 0000000..57f6330 --- /dev/null +++ b/Targets/UIComponent/UIResource/Configs/swiftgen.yml @@ -0,0 +1,7 @@ +strings: + inputs: ../Resources/Localizable.strings + outputs: + - templateName: flat-swift4 + output: ../Sources/Generated/StringsGen.swift + params: + publicAccess: true diff --git a/Targets/UIComponent/UIResource/Resources/Localizable.strings b/Targets/UIComponent/UIResource/Resources/Localizable.strings new file mode 100644 index 0000000..0b4137a --- /dev/null +++ b/Targets/UIComponent/UIResource/Resources/Localizable.strings @@ -0,0 +1,2 @@ +// MARK: - Button +"Close" = "閉じる"; diff --git a/Targets/UIComponent/UIResource/Scripts/swiftgen.sh b/Targets/UIComponent/UIResource/Scripts/swiftgen.sh new file mode 100644 index 0000000..4a75e05 --- /dev/null +++ b/Targets/UIComponent/UIResource/Scripts/swiftgen.sh @@ -0,0 +1,25 @@ +#!/bin/bash + +set -e + +# SwiftGen +if [[ ! -z ${CI} ]] +then + echo skipping swiftgen +else + echo excute swiftgen + + # not git-added (manual `bundle exec pod install` is required) + #---------------------------------------- + PODS_ROOT=Pods + SWIFTGEN="${PODS_ROOT}"/SwiftGen/bin/swiftgen + if [ -x "${SWIFTGEN}" ]; then + "${SWIFTGEN}" --version + "${SWIFTGEN}" config run \ + --config ${PROJECT_DIR}/Targets/UIComponent/UIResource/Configs/swiftgen.yml + else + rm -rf "${PODS_ROOT}"/SwiftGen # clean up for next install + echo "error: SwiftGen is not installed. Run \`make bootstrap\`." + exit 1 + fi +fi diff --git a/Targets/UIComponent/UIResource/Sources/Generated/StringsGen.swift b/Targets/UIComponent/UIResource/Sources/Generated/StringsGen.swift new file mode 100644 index 0000000..efa272b --- /dev/null +++ b/Targets/UIComponent/UIResource/Sources/Generated/StringsGen.swift @@ -0,0 +1,36 @@ +// swiftlint:disable all +// Generated using SwiftGen — https://github.com/SwiftGen/SwiftGen + +import Foundation + +// swiftlint:disable superfluous_disable_command file_length implicit_return + +// MARK: - Strings + +// swiftlint:disable function_parameter_count identifier_name line_length type_body_length +public enum L10n { + /// 閉じる + public static let close = L10n.tr("Localizable", "Close") +} +// swiftlint:enable function_parameter_count identifier_name line_length type_body_length + +// MARK: - Implementation Details + +extension L10n { + private static func tr(_ table: String, _ key: String, _ args: CVarArg...) -> String { + let format = BundleToken.bundle.localizedString(forKey: key, value: nil, table: table) + return String(format: format, locale: Locale.current, arguments: args) + } +} + +// swiftlint:disable convenience_type +private final class BundleToken { + static let bundle: Bundle = { + #if SWIFT_PACKAGE + return Bundle.module + #else + return Bundle(for: BundleToken.self) + #endif + }() +} +// swiftlint:enable convenience_type diff --git a/Targets/UIComponent/targets.yml b/Targets/UIComponent/targets.yml new file mode 100644 index 0000000..4184fd3 --- /dev/null +++ b/Targets/UIComponent/targets.yml @@ -0,0 +1,58 @@ +targetTemplates: + UIComponent: + platform: iOS + sources: + - path: Targets/UIComponent/UIComponent + createIntermediateGroups: true + settings: + base: + DEVELOPMENT_ASSET_PATHS: $(SRCROOT)/Targets/UIComponent/UIComponent/Resources/Preview/Placeholders.xcassets + +targets: + UIComponent: + templates: [UIComponent, CocoaPods] + type: framework.static + + # NOTE: 依存はXcodePreviewsと合わせる + dependencies: + - target: UIResource + - target: UILogicInterface + - target: Extension + + XcodePreviews: # Xcode Previews用ターゲット + templates: [UIComponent, CocoaPods] + type: framework + settings: + base: + DEVELOPMENT_ASSET_PATHS: > + $(SRCROOT)/Targets/UIComponent/UIComponent/Resources/Preview/Placeholders.xcassets + ENABLE_PREVIEWS: true + SWIFT_ACTIVE_COMPILATION_CONDITIONS: $(inherited) ENABLE_PREVIEW + + # NOTE: 依存はUIComponentと合わせる + # フレームワークはデフォルトだとStatic Frameworkをリンクしないが、 + # プレビュー時はフレームワーク単体で(親アプリなしで)使われるため、 + # `link: true` を指定してリンクする + dependencies: + - target: UIResource + - target: UILogicInterface + link: true + - target: Extension + link: true + + UIResource: + type: framework + platform: iOS + sources: + - path: Targets/UIComponent/UIResource + excludes: [Scripts, "Configs/*.yml"] + createIntermediateGroups: true + preBuildScripts: + - script: bash Targets/UIComponent/UIResource/scripts/swiftgen.sh + name: SwiftGen + +schemes: + XcodePreviews: + build: + targets: + XcodePreviews: all diff --git a/Targets/UILogic/UILogic/Configs/Info.plist b/Targets/UILogic/UILogic/Configs/Info.plist new file mode 100644 index 0000000..9bcb244 --- /dev/null +++ b/Targets/UILogic/UILogic/Configs/Info.plist @@ -0,0 +1,22 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + $(PRODUCT_BUNDLE_PACKAGE_TYPE) + CFBundleShortVersionString + 1.0 + CFBundleVersion + $(CURRENT_PROJECT_VERSION) + + diff --git a/Targets/UILogic/UILogic/Sources/RepositoryList/RepositoryListViewStream.swift b/Targets/UILogic/UILogic/Sources/RepositoryList/RepositoryListViewStream.swift new file mode 100644 index 0000000..4a08053 --- /dev/null +++ b/Targets/UILogic/UILogic/Sources/RepositoryList/RepositoryListViewStream.swift @@ -0,0 +1,85 @@ +import Extension +import RxRelay +import RxSwift +import UILogicInterface +import Unio +import UseCaseInterface + +public final class RepositoryListViewStream: UnioStream, RepositoryListViewStreamType { + + public typealias Input = RepositoryListViewStreamInput + public typealias Output = RepositoryListViewStreamOutput + public typealias UseCaseModel = RepositoryListUseCaseModel + + public convenience init( + repositoryListUseCase: RepositoryListUseCaseType + ) { + self.init( + input: Input(), + state: State(), + extra: Extra( + repositoryListUseCase: repositoryListUseCase + ) + ) + } + + public struct State: StateType { + let repositories = BehaviorRelay<[UseCaseModel.Repository]>(value: []) + let isRefreshControlRefreshing = BehaviorRelay(value: false) + let titles = BehaviorRelay<[String]>(value: []) + } + + public struct Extra: ExtraType { + let repositoryListUseCase: RepositoryListUseCaseType + } + + public static func bind( + from dependency: Dependency, + disposeBag: DisposeBag + ) -> Output { + let state = dependency.state + let extra = dependency.extra + let repositoryListUseCase = extra.repositoryListUseCase + + let viewWillAppear = dependency.inputObservables.viewWillAppear + let refreshControlValueChanged = dependency.inputObservables.refreshControlValueChanged + + /// 画面表示時に取得したリポジトリ一覧 + let resultOfViewWillAppear: Observable<[UseCaseModel.Repository]> = viewWillAppear + .flatMap { _ -> Single<[UseCaseModel.Repository]> in + repositoryListUseCase.showRepositoryList() + } + .share() + + /// 再取得したリポジトリ一覧 + let resultOfRefresh: Observable<[UseCaseModel.Repository]> = refreshControlValueChanged + .flatMap { _ -> Single<[UseCaseModel.Repository]> in + repositoryListUseCase.reloadRepositoryList() + } + .share() + + Observable.merge(resultOfViewWillAppear, resultOfRefresh) + .bind(to: state.repositories) + .disposed(by: disposeBag) + + let reloadData = PublishRelay() + + state.repositories + .map(void) + .bind(to: reloadData) + .disposed(by: disposeBag) + + state.repositories + .map { + $0.map { repository in + "\(repository.owner.login) / \(repository.name)" + } + } + .bind(to: state.titles) + .disposed(by: disposeBag) + + return Output(titles: state.titles, + reloadData: reloadData, + isRefreshControlRefreshing: state.isRefreshControlRefreshing) + } +} diff --git a/Targets/UILogic/UILogicTests/Configs/Info.plist b/Targets/UILogic/UILogicTests/Configs/Info.plist new file mode 100644 index 0000000..9bcb244 --- /dev/null +++ b/Targets/UILogic/UILogicTests/Configs/Info.plist @@ -0,0 +1,22 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + $(PRODUCT_BUNDLE_PACKAGE_TYPE) + CFBundleShortVersionString + 1.0 + CFBundleVersion + $(CURRENT_PROJECT_VERSION) + + diff --git a/Targets/UILogic/UILogicTests/Tests/RepositoryList/RepositoryListViewStreamTests.swift b/Targets/UILogic/UILogicTests/Tests/RepositoryList/RepositoryListViewStreamTests.swift new file mode 100644 index 0000000..38a856b --- /dev/null +++ b/Targets/UILogic/UILogicTests/Tests/RepositoryList/RepositoryListViewStreamTests.swift @@ -0,0 +1,106 @@ +import XCTest +import RxSwift +import RxTest +import TestExtension +import UILogic +import UseCaseInterface + +final class RepositoryListViewStreamTests: XCTestCase { + + func test_reloadData() { + let mockRepository = RepositoryListUseCaseModel.Repository.mock() + + let dependency = Dependency() + dependency.useCase.showRepositoryListHandler = { + .just([mockRepository]) + } + dependency.useCase.reloadRepositoryListHandler = { + .just([mockRepository, mockRepository]) + } + let testTarget = dependency.testTarget + + let reloadData = WatchStack(testTarget.output.reloadData) + + // 初期状態 + XCTAssertEqual(reloadData.count, 0) + + // viewWillAppearの後 + testTarget.input.viewWillAppear(()) + XCTAssertEqual(reloadData.count, 1) + + // リフレッシュ後 + testTarget.input.refreshControlValueChanged(()) + XCTAssertEqual(reloadData.count, 2) + } + + func test_isRefreshControlRefreshing() { + let mockRepository = RepositoryListUseCaseModel.Repository.mock() + + let dependency = Dependency() + dependency.useCase.showRepositoryListHandler = { + .just([mockRepository]) + } + dependency.useCase.reloadRepositoryListHandler = { + .just([mockRepository, mockRepository]) + } + let testTarget = dependency.testTarget + + let isRefreshControlRefreshing = WatchStack(testTarget.output.isRefreshControlRefreshing) + + // 初期状態 + XCTAssertEqual(isRefreshControlRefreshing.events, [.next(false)]) + + // viewWillAppearの後 + testTarget.input.viewWillAppear(()) + XCTAssertEqual(isRefreshControlRefreshing.events, [.next(false), .next(true), .next(false)]) + + // リフレッシュ後 + testTarget.input.refreshControlValueChanged(()) + XCTAssertEqual(isRefreshControlRefreshing.events, [.next(false), .next(true), .next(false), .next(true), .next(false)]) + } + + func test_titles() { + let owner = RepositoryListUseCaseModel.User.mock(login: "owner") + let repository = RepositoryListUseCaseModel.Repository.mock(name: "name", owner: owner) + + let dependency = Dependency() + dependency.useCase.showRepositoryListHandler = { + .just([repository]) + } + dependency.useCase.reloadRepositoryListHandler = { + .just([repository, repository]) + } + + let testTarget = dependency.testTarget + + let titles = WatchStack(testTarget.output.titles) + + // 初期状態 + XCTAssertEqual(titles.value, []) + + // viewWillAppearの後 + testTarget.input.viewWillAppear(()) + + XCTAssertEqual(titles.value, ["owner / name"]) + + // リフレッシュ後 + testTarget.input.refreshControlValueChanged(()) + XCTAssertEqual(titles.value, ["owner / name", "owner / name"]) + } +} + +extension RepositoryListViewStreamTests { + struct Dependency { + let testTarget: RepositoryListViewStream + + let useCase: RepositoryListUseCaseTypeMock + + init() { + useCase = RepositoryListUseCaseTypeMock() + testTarget = RepositoryListViewStream(repositoryListUseCase: useCase) + + useCase.showRepositoryListHandler = { Single.just([.mock()]) } + useCase.reloadRepositoryListHandler = { Single.just([.mock()]) } + } + } +} diff --git a/Targets/UILogic/targets.yml b/Targets/UILogic/targets.yml new file mode 100644 index 0000000..a74a62e --- /dev/null +++ b/Targets/UILogic/targets.yml @@ -0,0 +1,23 @@ +targets: + UILogic: + templates: [ComponentFramework, CocoaPods] + templateAttributes: + componentName: UILogic + dependencies: + - target: Extension + - target: UseCaseInterface + - target: UILogicInterface + - target: UIResource + + UILogicTests: + templates: [ComponentFrameworkTests, CocoaPods] + templateAttributes: + componentName: UILogic + dependencies: + - target: UILogic + - target: Extension + - target: TestExtension + +schemes: + UILogic: + templates: [ComponentFrameworkScheme] diff --git a/Targets/UILogicInterface/Makefile b/Targets/UILogicInterface/Makefile new file mode 100644 index 0000000..fb8a947 --- /dev/null +++ b/Targets/UILogicInterface/Makefile @@ -0,0 +1,8 @@ +include ../../Config/Makefile/shared.mk + +.PHONY: mockolo +mockolo: $(MOCKOLO) + $(MOCKOLO) \ + --sourcedirs ./UILogicInterface/Sources \ + --destination ./UILogicInterface/Sources/Generated/zzz.mockolo.swift \ + --macro DEBUG \ No newline at end of file diff --git a/Targets/UILogicInterface/UILogicInterface/Configs/Info.plist b/Targets/UILogicInterface/UILogicInterface/Configs/Info.plist new file mode 100644 index 0000000..d334b7a --- /dev/null +++ b/Targets/UILogicInterface/UILogicInterface/Configs/Info.plist @@ -0,0 +1,22 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + $(PRODUCT_BUNDLE_PACKAGE_TYPE) + CFBundleShortVersionString + 1.0 + CFBundleVersion + $(CURRENT_PROJECT_VERSION) + + \ No newline at end of file diff --git a/Targets/UILogicInterface/UILogicInterface/Sources/Generated/zzz.mockolo.swift b/Targets/UILogicInterface/UILogicInterface/Sources/Generated/zzz.mockolo.swift new file mode 100644 index 0000000..faede7b --- /dev/null +++ b/Targets/UILogicInterface/UILogicInterface/Sources/Generated/zzz.mockolo.swift @@ -0,0 +1,36 @@ +/// +/// @Generated by Mockolo +/// + +#if DEBUG + +import RxRelay +import RxSwift +import Unio +import UseCaseInterface + + +public class RepositoryListViewStreamTypeMock: RepositoryListViewStreamType { + public init() { } + public init(input: InputWrapper, output: OutputWrapper) { + self._input = input + self._output = output + } + + + public private(set) var inputSetCallCount = 0 + private var _input: InputWrapper! { didSet { inputSetCallCount += 1 } } + public var input: InputWrapper { + get { return _input } + set { _input = newValue } + } + + public private(set) var outputSetCallCount = 0 + private var _output: OutputWrapper! { didSet { outputSetCallCount += 1 } } + public var output: OutputWrapper { + get { return _output } + set { _output = newValue } + } +} + +#endif \ No newline at end of file diff --git a/Targets/UILogicInterface/UILogicInterface/Sources/RepositoryList/RepositoryListViewStreamType.swift b/Targets/UILogicInterface/UILogicInterface/Sources/RepositoryList/RepositoryListViewStreamType.swift new file mode 100644 index 0000000..40d726e --- /dev/null +++ b/Targets/UILogicInterface/UILogicInterface/Sources/RepositoryList/RepositoryListViewStreamType.swift @@ -0,0 +1,33 @@ +import RxRelay +import RxSwift +import Unio +import UseCaseInterface + +/// @mockable +public protocol RepositoryListViewStreamType: AnyObject { + var input: InputWrapper { get } + var output: OutputWrapper { get } +} + +public struct RepositoryListViewStreamInput: InputType { + public let viewWillAppear = PublishRelay() + public let refreshControlValueChanged = PublishRelay() + + public init() {} +} + +public struct RepositoryListViewStreamOutput: OutputType { + public let titles: BehaviorRelay<[String]> + public let reloadData: PublishRelay + public let isRefreshControlRefreshing: BehaviorRelay + + public init( + titles: BehaviorRelay<[String]>, + reloadData: PublishRelay, + isRefreshControlRefreshing: BehaviorRelay + ) { + self.titles = titles + self.reloadData = reloadData + self.isRefreshControlRefreshing = isRefreshControlRefreshing + } +} diff --git a/Targets/UILogicInterface/targets.yml b/Targets/UILogicInterface/targets.yml new file mode 100644 index 0000000..b2e061f --- /dev/null +++ b/Targets/UILogicInterface/targets.yml @@ -0,0 +1,7 @@ +targets: + UILogicInterface: + templates: [ComponentFramework, CocoaPods] + templateAttributes: + componentName: UILogicInterface + dependencies: + - target: UseCaseInterface diff --git a/Targets/UseCase/UseCase/Configs/Info.plist b/Targets/UseCase/UseCase/Configs/Info.plist new file mode 100644 index 0000000..9bcb244 --- /dev/null +++ b/Targets/UseCase/UseCase/Configs/Info.plist @@ -0,0 +1,22 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + $(PRODUCT_BUNDLE_PACKAGE_TYPE) + CFBundleShortVersionString + 1.0 + CFBundleVersion + $(CURRENT_PROJECT_VERSION) + + diff --git a/Targets/UseCase/UseCase/Sources/RepositoryListUseCase.swift b/Targets/UseCase/UseCase/Sources/RepositoryListUseCase.swift new file mode 100644 index 0000000..8f4e286 --- /dev/null +++ b/Targets/UseCase/UseCase/Sources/RepositoryListUseCase.swift @@ -0,0 +1,41 @@ +import Domain +import RxSwift +import UseCaseInterface + +public final class RepositoryListUseCase: RepositoryListUseCaseType { + + private let repositoryRepository: RepositoryRepositoryType + + public init(repositoryRepository: RepositoryRepositoryType) { + self.repositoryRepository = repositoryRepository + } + + public func showRepositoryList() -> Single<[UseCaseModel.Repository]> { + _fetchRepositories(limit: 20, offset: 0) + } + + public func reloadRepositoryList() -> Single<[UseCaseModel.Repository]> { + _fetchRepositories(limit: 20, offset: 0) + } + + private func _fetchRepositories(limit: Int, offset: Int) -> Single<[UseCaseModel.Repository]> { + repositoryRepository.fetchRepositories(limit: limit, offset: offset) + .map { repositories -> [UseCaseModel.Repository] in + if repositories.isEmpty { + return [] + } + + return repositories.map { repository in + let owner = repository.owner + + return UseCaseModel.Repository( + id: repository.id, + name: repository.name, + description: repository.description, + owner: .init(id: owner.id, login: owner.login) + ) + } + } + .catchAndReturn([]) + } +} diff --git a/Targets/UseCase/UseCaseTests/Configs/Info.plist b/Targets/UseCase/UseCaseTests/Configs/Info.plist new file mode 100644 index 0000000..9bcb244 --- /dev/null +++ b/Targets/UseCase/UseCaseTests/Configs/Info.plist @@ -0,0 +1,22 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + $(PRODUCT_BUNDLE_PACKAGE_TYPE) + CFBundleShortVersionString + 1.0 + CFBundleVersion + $(CURRENT_PROJECT_VERSION) + + diff --git a/Targets/UseCase/UseCaseTests/Tests/RepositoryListUseCaseTests.swift b/Targets/UseCase/UseCaseTests/Tests/RepositoryListUseCaseTests.swift new file mode 100644 index 0000000..97e3ffe --- /dev/null +++ b/Targets/UseCase/UseCaseTests/Tests/RepositoryListUseCaseTests.swift @@ -0,0 +1,120 @@ +import Domain +import XCTest +import RxSwift +import RxTest +import UseCase +import UseCaseInterface +import TestExtension + +final class RepositoryListUseCaseTests: XCTestCase { + + func testShowRepositoryList() { + let owner: User = .mock(id: 421, login: "mockowner") + let repository: Repository = .mock( + id: 421, + name: "mock-repo", + description: "mock repository", + owner: owner + ) + + let dependency = Dependency(repositoryListResult: [repository]) + let testTarget = dependency.testTarget + + let result = WatchStack( + testTarget + .showRepositoryList() + .asObservable() + ) + + XCTAssertEqual(dependency.repositoryRepository.fetchRepositoriesCallCount, 1) + XCTAssertEqual(result.value?.count, 1) + XCTAssertEqual(result.value?.first?.id, repository.id) + XCTAssertEqual(result.value?.first?.name, repository.name) + XCTAssertEqual(result.value?.first?.description, repository.description) + XCTAssertEqual(result.value?.first?.owner.id, repository.owner.id) + XCTAssertEqual(result.value?.first?.owner.login, repository.owner.login) + } + + func testFailToShowRepositoryList() { + // リポジトリ一覧の取得に失敗する場合 + let dependency = Dependency() + dependency.repositoryRepository.fetchRepositoriesHandler = { _, _ in + Single.error(RepositoryRepositoryError.fetchError) + } + + let result = WatchStack( + dependency.testTarget + .reloadRepositoryList() + .asObservable() + ) + + XCTAssertEqual(dependency.repositoryRepository.fetchRepositoriesCallCount, 1) + XCTAssertEqual(result.value, []) + } + + func testReloadRepositoryList() { + let owner: User = .mock(id: 421, login: "mockowner") + let repository: Repository = .mock( + id: 421, + name: "mock-repo", + description: "mock repository", + owner: owner + ) + + let dependency = Dependency(repositoryListResult: [repository]) + let testTarget = dependency.testTarget + + let result = WatchStack( + testTarget + .reloadRepositoryList() + .asObservable() + ) + + XCTAssertEqual(dependency.repositoryRepository.fetchRepositoriesCallCount, 1) + XCTAssertEqual(result.value?.count, 1) + XCTAssertEqual(result.value?.first?.id, repository.id) + XCTAssertEqual(result.value?.first?.name, repository.name) + XCTAssertEqual(result.value?.first?.description, repository.description) + XCTAssertEqual(result.value?.first?.owner.id, repository.owner.id) + XCTAssertEqual(result.value?.first?.owner.login, repository.owner.login) + } + + func testFailToReloadRepositoryList() { + // リポジトリ一覧の取得に失敗する場合 + let dependency = Dependency() + dependency.repositoryRepository.fetchRepositoriesHandler = { _, _ in + Single.error(RepositoryRepositoryError.fetchError) + } + + let result = WatchStack( + dependency.testTarget + .reloadRepositoryList() + .asObservable() + ) + + XCTAssertEqual(dependency.repositoryRepository.fetchRepositoriesCallCount, 1) + XCTAssertEqual(result.value, []) + } +} + +extension RepositoryListUseCaseTests { + struct Dependency { + let testTarget: UseCase.RepositoryListUseCase + + let repositoryRepository = RepositoryRepositoryTypeMock() + + var repositoryListResult: [Repository] + + init( + repositoryListResult: [Repository] = [.mock()] + ) { + self.repositoryListResult = repositoryListResult + + testTarget = RepositoryListUseCase(repositoryRepository: repositoryRepository) + + repositoryRepository.fetchRepositoriesHandler = { _, _ in + Single.just(repositoryListResult) + } + } + } +} diff --git a/Targets/UseCase/targets.yml b/Targets/UseCase/targets.yml new file mode 100644 index 0000000..96dce2b --- /dev/null +++ b/Targets/UseCase/targets.yml @@ -0,0 +1,22 @@ +targets: + UseCase: + templates: [ComponentFramework, CocoaPods] + templateAttributes: + componentName: UseCase + dependencies: + - target: Domain + - target: Extension + - target: UseCaseInterface + + UseCaseTests: + templates: [ComponentFrameworkTests, CocoaPods] + templateAttributes: + componentName: UseCase + dependencies: + - target: UseCase + - target: Extension + - target: TestExtension + +schemes: + UseCase: + templates: [ComponentFrameworkScheme] diff --git a/Targets/UseCaseInterface/Makefile b/Targets/UseCaseInterface/Makefile new file mode 100644 index 0000000..2c53c31 --- /dev/null +++ b/Targets/UseCaseInterface/Makefile @@ -0,0 +1,8 @@ +include ../../Config/Makefile/shared.mk + +.PHONY: mockolo +mockolo: $(MOCKOLO) + $(MOCKOLO) \ + --sourcedirs ./UseCaseInterface/Sources \ + --destination ./UseCaseInterface/Sources/Generated/zzz.mockolo.swift \ + --macro DEBUG \ No newline at end of file diff --git a/Targets/UseCaseInterface/UseCaseInterface/Configs/Info.plist b/Targets/UseCaseInterface/UseCaseInterface/Configs/Info.plist new file mode 100644 index 0000000..9bcb244 --- /dev/null +++ b/Targets/UseCaseInterface/UseCaseInterface/Configs/Info.plist @@ -0,0 +1,22 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + $(PRODUCT_BUNDLE_PACKAGE_TYPE) + CFBundleShortVersionString + 1.0 + CFBundleVersion + $(CURRENT_PROJECT_VERSION) + + diff --git a/Targets/UseCaseInterface/UseCaseInterface/Sources/Generated/zzz.mockolo.swift b/Targets/UseCaseInterface/UseCaseInterface/Sources/Generated/zzz.mockolo.swift new file mode 100644 index 0000000..6cfd9c4 --- /dev/null +++ b/Targets/UseCaseInterface/UseCaseInterface/Sources/Generated/zzz.mockolo.swift @@ -0,0 +1,36 @@ +/// +/// @Generated by Mockolo +/// + +#if DEBUG + +import RxSwift + + +public class RepositoryListUseCaseTypeMock: RepositoryListUseCaseType { + public init() { } + + public typealias UseCaseModel = RepositoryListUseCaseModel + + public private(set) var showRepositoryListCallCount = 0 + public var showRepositoryListHandler: (() -> (Single<[UseCaseModel.Repository]>))? + public func showRepositoryList() -> Single<[UseCaseModel.Repository]> { + showRepositoryListCallCount += 1 + if let showRepositoryListHandler = showRepositoryListHandler { + return showRepositoryListHandler() + } + fatalError("showRepositoryListHandler returns can't have a default value thus its handler must be set") + } + + public private(set) var reloadRepositoryListCallCount = 0 + public var reloadRepositoryListHandler: (() -> (Single<[UseCaseModel.Repository]>))? + public func reloadRepositoryList() -> Single<[UseCaseModel.Repository]> { + reloadRepositoryListCallCount += 1 + if let reloadRepositoryListHandler = reloadRepositoryListHandler { + return reloadRepositoryListHandler() + } + fatalError("reloadRepositoryListHandler returns can't have a default value thus its handler must be set") + } +} + +#endif \ No newline at end of file diff --git a/Targets/UseCaseInterface/UseCaseInterface/Sources/RepositoryListUseCaseType.swift b/Targets/UseCaseInterface/UseCaseInterface/Sources/RepositoryListUseCaseType.swift new file mode 100644 index 0000000..738fb7c --- /dev/null +++ b/Targets/UseCaseInterface/UseCaseInterface/Sources/RepositoryListUseCaseType.swift @@ -0,0 +1,67 @@ +import RxSwift + +/// @mockable +public protocol RepositoryListUseCaseType: AnyObject { + typealias UseCaseModel = RepositoryListUseCaseModel + + /// リポジトリ一覧を取得する + func showRepositoryList() -> Single<[UseCaseModel.Repository]> + + /// リポジトリ一覧を再取得する + func reloadRepositoryList() -> Single<[UseCaseModel.Repository]> +} + +// MARK: UseCaseModels + +public enum RepositoryListUseCaseModel { + public struct Repository: Equatable { + public let id: Int64 + public let name: String + public let description: String + public let owner: User + + public init( + id: Int64, + name: String, + description: String, + owner: User + ) { + self.id = id + self.name = name + self.description = description + self.owner = owner + } + } + + public struct User: Equatable { + public let id: Int64 + public let login: String + + public init(id: Int64, login: String) { + self.id = id + self.login = login + } + } +} + +public extension RepositoryListUseCaseModel.Repository { + + static func mock( + id: Int64 = 123, + name: String = "mock-repo", + description: String = "mock repository", + owner: RepositoryListUseCaseModel.User = .mock() + ) -> RepositoryListUseCaseModel.Repository { + .init(id: id, name: name, description: description, owner: owner) + } +} + +public extension RepositoryListUseCaseModel.User { + + static func mock( + id: Int64 = 123, + login: String = "mockowner" + ) -> RepositoryListUseCaseModel.User { + .init(id: id, login: login) + } +} diff --git a/Targets/UseCaseInterface/targets.yml b/Targets/UseCaseInterface/targets.yml new file mode 100644 index 0000000..c78b2bf --- /dev/null +++ b/Targets/UseCaseInterface/targets.yml @@ -0,0 +1,7 @@ +targets: + UseCaseInterface: + templates: [ComponentFramework, CocoaPods] + templateAttributes: + componentName: UseCaseInterface + dependencies: + - target: Extension diff --git a/fastlane/Fastfile b/fastlane/Fastfile new file mode 100644 index 0000000..e69de29 diff --git a/fastlane/actions/check_cocoapods_templates.rb b/fastlane/actions/check_cocoapods_templates.rb new file mode 100644 index 0000000..a8fa5f1 --- /dev/null +++ b/fastlane/actions/check_cocoapods_templates.rb @@ -0,0 +1,64 @@ +require 'json' + +module Fastlane + module Actions + class CheckCocoapodsTemplatesAction < Action + + def self.run(params) + unless system "diff", "Podfile.lock", "Pods/Manifest.lock" + UI.user_error! 'Pods ディレクトリが最新ではありません。 `make pod-install` を実行してください' + end + + failed = false + + xcodegen = JSON.parse(`make xcodegen-dump`) + xcodegen_targets = xcodegen["targets"] + + support_files_template = "Pods/Target Support Files/Pods-" + support_files = Dir.glob("#{support_files_template}*") + for support_file in support_files do + target_name = support_file.delete_prefix support_files_template + has_frameworks = ! Dir.glob("#{support_file}/Pods-#{target_name}-frameworks-*.xcfilelist").empty? + has_resources = ! Dir.glob("#{support_file}/Pods-#{target_name}-resources-*.xcfilelist").empty? + + unless xcodegen_targets.key? target_name + UI.important "ターゲット '#{target_name}' が定義されていません" + next + end + + target = xcodegen_targets[target_name] + templates = target.fetch("templates", []) + + unless templates.include? "CocoaPods" + UI.error "ターゲット '#{target_name}' に 'CocoaPods' テンプレートを追加してください" + failed = true + end + + if has_frameworks && !(templates.include? "CocoaPodsFrameworks") + UI.error "ターゲット '#{target_name}' に 'CocoaPodsFrameworks' テンプレートを追加してください" + failed = true + end + + if has_resources && !(templates.include? "CocoaPodsResources") + UI.error "ターゲット '#{target_name}' に 'CocoaPodsResources' テンプレートを追加してください" + failed = true + end + end + + if failed + UI.user_error! "不足しているテンプレートがあります" + else + UI.success "テンプレートは正しく設定されています" + end + end + + ##################################################### + # @!group Documentation + ##################################################### + + def self.description + "XcodeGen用のプロジェクト定義にCocoaPodsテンプレートが正しく設定されているかを確認する" + end + end + end +end diff --git a/fastlane/actions/update_cocoapods.rb b/fastlane/actions/update_cocoapods.rb new file mode 100644 index 0000000..130f8aa --- /dev/null +++ b/fastlane/actions/update_cocoapods.rb @@ -0,0 +1,75 @@ +require 'json' + +module Fastlane + module Actions + class UpdateCocoapodsAction < Action + + def self.run(params) + + sh("make", "pod-install") + + target_options = get_target_options + if target_options.nil? + return + end + + sh({ "PODS_BUILD_TARGETS" => target_options }, "make", "pod-build") + + if params[:push] + other_action.git_add(path: ["Podfile.lock", "Pods"]) + other_action.git_commit(path: ["Podfile.lock", "Pods"], message: "[CI] Update Pods") + other_action.push_to_git_remote(tags: false) + end + end + + def self.get_target_options + alltargets = "" + nothing = nil + + unless File.exist? "Pods/xcodebuild.version" + UI.important "Pods/xcodebuild.version が見つかりません" + return alltargets + end + + unless system "git", "diff", "--quiet", "--exit-code", "Pods/xcodebuild.version" + UI.important 'Pods/xcodebuild.version に変更があります' + return alltargets + end + + changed = [] + result = `ruby scripts/cocoapods/pod-checksum.rb` + result.lines do |line| + podname = line.split(" ").first + changed.push(podname) unless podname.empty? + end + + if changed.empty? + UI.success "Pods は最新の状態です" + return nothing + end + + return changed.map { |podname| "#{podname}" }.join(" ") + end + + def self.available_options + [ + FastlaneCore::ConfigItem.new( + key: :push, + description: "trueを指定した場合は自動的にcommitとpushを行う", + optional: true, + default_value: false, + is_string: false + ), + ] + end + + ##################################################### + # @!group Documentation + ##################################################### + + def self.description + "XcodeGen用のプロジェクト定義にCocoaPodsテンプレートが正しく設定されているかを確認する" + end + end + end +end diff --git a/project.yml b/project.yml new file mode 100644 index 0000000..40bf188 --- /dev/null +++ b/project.yml @@ -0,0 +1,35 @@ +name: AbemaTutorial +options: + bundleIdPrefix: tv.abema + minimumXcodeGenVersion: 2.10.1 + deploymentTarget: + iOS: 13.0 + +include: + - path: Config/xcodegen/ComponentTemplates.yml + - path: Config/xcodegen/CocoaPods.yml + + # XcodeGenが解決する相対パスはデフォルトでincludeしたymlのパス基準になるが、 + # ビルド設定などで指定されたパスはプロジェクト基準のため、統一するために + # relativePaths: false を指定する + - path: Targets/AbemaTutorial/targets.yml + relativePaths: false + - path: Targets/Domain/targets.yml + relativePaths: false + - path: Targets/Extension/targets.yml + relativePaths: false + - path: Targets/Repository/targets.yml + relativePaths: false + - path: Targets/UIComponent/targets.yml + relativePaths: false + - path: Targets/UILogic/targets.yml + relativePaths: false + - path: Targets/UILogicInterface/targets.yml + relativePaths: false + - path: Targets/UseCase/targets.yml + relativePaths: false + - path: Targets/UseCaseInterface/targets.yml + relativePaths: false +settings: + # - workaround for fat binary (https://developer.apple.com/forums/thread/669274) + VALIDATE_WORKSPACE: true diff --git a/scripts/ci/git-deepen.sh b/scripts/ci/git-deepen.sh new file mode 100755 index 0000000..e749661 --- /dev/null +++ b/scripts/ci/git-deepen.sh @@ -0,0 +1,93 @@ +#!/bin/bash +# +# shallow checkoutされたブランチを、base branchとの分岐地点まで遡ってcheckoutする +# base branchが指定されていない場合、GitHub APIから取得する(要 GITHUB_API_TOKEN) +# + +USAGE=$(cat <<'USAGE' +Usage: + git-deepen.sh -p -r abema/abema-ios-tutorial-public + or + git-deepen.sh -b -r abema/abema-ios-tutorial-public +USAGE +) + +set -euo pipefail + +PULL_REQUEST_NUMBER= +BASE_BRANCH= +REPO= + +while getopts p:b:r: OPT +do + case $OPT in + "p" ) PULL_REQUEST_NUMBER="$OPTARG" ;; + "b" ) BASE_BRANCH="$OPTARG" ;; + "r" ) REPO="$OPTARG" ;; + esac +done + +if [ -z "$REPO" ]; then + echo "error: specify repository owner and name" >&2 + echo "$USAGE" >&2 + exit 1 +fi + +if [ -z "$PULL_REQUEST_NUMBER" ] && [ -z "$BASE_BRANCH" ]; then + echo "error: specify PR number (-p) or the base branch name (-b)" >&2 + echo "$USAGE" >&2 + exit 1 +fi + +REPO_OWNER=$(cut -d'/' -f1 <<<$REPO) +REPO_NAME=$(cut -d'/' -f2 <<<$REPO) + +if [ -n "$PULL_REQUEST_NUMBER" ] && [ -z "$BASE_BRANCH" ]; then + QUERY=$(cat <&2 + + QUERY_RESULT=$( + echo $QUERY \ + | curl -Ss -X POST https://api.github.com/graphql \ + -H "Authorization: bearer $GITHUB_API_TOKEN" \ + -d @- + ) + + echo "==> $QUERY_RESULT" >&2 + + BASE_BRANCH=$( + echo $QUERY_RESULT \ + | sed -nE 's/{"data":{"repository":{"pullRequest":{"baseRef":{"name":"(.+)"}}}}}/\1/p' + ) + + echo "Fetched target branch: $BASE_BRANCH" >&2 +fi + +if [ -z "$BASE_BRANCH" ]; then + echo "The target branch not found; skipping" >&2 +else + BRANCH=$(git branch --show-current) + git config --local --add remote.origin.fetch +refs/heads/$BASE_BRANCH:refs/remotes/origin/$BASE_BRANCH + git fetch --depth=1 origin $BASE_BRANCH + while [ -z "$(git merge-base $BRANCH origin/$BASE_BRANCH || true)" ]; do + echo "Fetching an additional commit..." >&2 + git fetch -q --deepen=1 + done +fi diff --git a/scripts/cocoapods/pod-checksum.rb b/scripts/cocoapods/pod-checksum.rb new file mode 100755 index 0000000..eda9025 --- /dev/null +++ b/scripts/cocoapods/pod-checksum.rb @@ -0,0 +1,39 @@ +#!/usr/bin/env ruby + +require "optparse" +require "YAML" + +params = {} + +opt = OptionParser.new +opt.on("--update", "Update checksum files") +opt.parse!(ARGV, into: params) + +podnames = ARGV +remaining = podnames.clone + +YAML.load(File.read("Pods/Manifest.lock"))["SPEC CHECKSUMS"].each { |podname, updated| + next unless podnames.empty? || podnames.include?(podname) + + remaining.delete(podname) + + Dir.mkdir "Pods/.checksums" unless Dir.exist?("Pods/.checksums") + hashfile = "Pods/.checksums/#{podname}" + + current = File.exists?(hashfile) ? File.read(hashfile) : "" + if current.empty? + puts "#{podname} NEW #{updated}" + elsif current != updated + puts "#{podname} #{current} => #{updated}" + end + + if params[:update] + f = File.new(hashfile, "w") + f.write(updated) + end +} + +remaining.each { |podname| + puts "Pod '#{podname}' not found" + exit 1 +} diff --git a/scripts/install-bundler.sh b/scripts/install-bundler.sh new file mode 100755 index 0000000..3806376 --- /dev/null +++ b/scripts/install-bundler.sh @@ -0,0 +1,18 @@ +#!/bin/bash + +set -euxo pipefail + +GEMFILE_LOCK="Gemfile.lock" + +if [ -f "${GEMFILE_LOCK}" ]; then + + extract_version() { tr -cd "[:digit:]\."; } + BUNDLED_WITH=$(tail -n 1 "${GEMFILE_LOCK}" | extract_version) + unset -f extract_version + GEM="gem" + if command -v rbenv &> /dev/null; then + GEM="rbenv exec gem" + fi + $GEM install bundler -v "${BUNDLED_WITH}" -N --force + bundle "_${BUNDLED_WITH}_" install +fi