在好例子网,分享、交流、成长!
您当前所在位置:首页Others 开发实例一般编程问题 → RxSwift Reactive Programming with Swift4

RxSwift Reactive Programming with Swift4

一般编程问题

下载此实例
  • 开发语言:Others
  • 实例大小:84.89M
  • 下载次数:2
  • 浏览次数:65
  • 发布时间:2021-03-10
  • 实例类别:一般编程问题
  • 发 布 人:好学IT男
  • 文件格式:.zip
  • 所需积分:2
 

实例介绍

【实例简介】
Raywenderlich出品 RxSwift Reactive Programming With Swift 包含Source code 最新版本Swift4
【实例截图】
【核心代码】
4943cbde-af8b-4929-9cd1-d91cd2c5c43b
├── 02-observable-pg
│   ├── challenge
│   │   ├── Challenge1-Finished
│   │   │   └── RxPlayground
│   │   │   ├── bootstrap.sh
│   │   │   ├── RxSwiftPlayground.playground
│   │   │   │   ├── Contents.swift
│   │   │   │   ├── contents.xcplayground
│   │   │   │   └── Sources
│   │   │   │   └── SupportCode.swift
│   │   │   └── RxSwiftPlayground.xcworkspace
│   │   │   ├── contents.xcworkspacedata
│   │   │   └── xcshareddata
│   │   │   └── IDEWorkspaceChecks.plist
│   │   ├── Challenge1-Starter
│   │   │   └── RxPlayground
│   │   │   ├── bootstrap.sh
│   │   │   ├── RxSwiftPlayground.playground
│   │   │   │   ├── Contents.swift
│   │   │   │   ├── contents.xcplayground
│   │   │   │   └── Sources
│   │   │   │   └── SupportCode.swift
│   │   │   └── RxSwiftPlayground.xcworkspace
│   │   │   ├── contents.xcworkspacedata
│   │   │   └── xcshareddata
│   │   │   └── IDEWorkspaceChecks.plist
│   │   ├── Challenge2-Finished
│   │   │   └── RxPlayground
│   │   │   ├── bootstrap.sh
│   │   │   ├── RxSwiftPlayground.playground
│   │   │   │   ├── Contents.swift
│   │   │   │   ├── contents.xcplayground
│   │   │   │   └── Sources
│   │   │   │   └── SupportCode.swift
│   │   │   └── RxSwiftPlayground.xcworkspace
│   │   │   ├── contents.xcworkspacedata
│   │   │   └── xcshareddata
│   │   │   └── IDEWorkspaceChecks.plist
│   │   └── Challenge2-Starter
│   │   └── RxPlayground
│   │   ├── bootstrap.sh
│   │   ├── RxSwiftPlayground.playground
│   │   │   ├── Contents.swift
│   │   │   ├── contents.xcplayground
│   │   │   └── Sources
│   │   │   └── SupportCode.swift
│   │   └── RxSwiftPlayground.xcworkspace
│   │   ├── contents.xcworkspacedata
│   │   └── xcshareddata
│   │   └── IDEWorkspaceChecks.plist
│   ├── final
│   │   └── RxPlayground
│   │   ├── bootstrap.sh
│   │   ├── RxSwiftPlayground.playground
│   │   │   ├── Contents.swift
│   │   │   ├── contents.xcplayground
│   │   │   ├── Resources
│   │   │   │   └── Copyright.txt
│   │   │   └── Sources
│   │   │   └── SupportCode.swift
│   │   └── RxSwiftPlayground.xcworkspace
│   │   ├── contents.xcworkspacedata
│   │   └── xcshareddata
│   │   └── IDEWorkspaceChecks.plist
│   ├── projects
│   │   ├── challenge
│   │   │   ├── Challenge1-Finished
│   │   │   │   └── RxPlayground
│   │   │   │   ├── bootstrap.sh
│   │   │   │   ├── RxSwiftPlayground.playground
│   │   │   │   │   ├── Contents.swift
│   │   │   │   │   ├── contents.xcplayground
│   │   │   │   │   └── Sources
│   │   │   │   │   └── SupportCode.swift
│   │   │   │   └── RxSwiftPlayground.xcworkspace
│   │   │   │   ├── contents.xcworkspacedata
│   │   │   │   └── xcshareddata
│   │   │   │   └── IDEWorkspaceChecks.plist
│   │   │   ├── Challenge1-Starter
│   │   │   │   └── RxPlayground
│   │   │   │   ├── bootstrap.sh
│   │   │   │   ├── RxSwiftPlayground.playground
│   │   │   │   │   ├── Contents.swift
│   │   │   │   │   ├── contents.xcplayground
│   │   │   │   │   └── Sources
│   │   │   │   │   └── SupportCode.swift
│   │   │   │   └── RxSwiftPlayground.xcworkspace
│   │   │   │   ├── contents.xcworkspacedata
│   │   │   │   └── xcshareddata
│   │   │   │   └── IDEWorkspaceChecks.plist
│   │   │   ├── Challenge2-Finished
│   │   │   │   └── RxPlayground
│   │   │   │   ├── bootstrap.sh
│   │   │   │   ├── RxSwiftPlayground.playground
│   │   │   │   │   ├── Contents.swift
│   │   │   │   │   ├── contents.xcplayground
│   │   │   │   │   └── Sources
│   │   │   │   │   └── SupportCode.swift
│   │   │   │   └── RxSwiftPlayground.xcworkspace
│   │   │   │   ├── contents.xcworkspacedata
│   │   │   │   └── xcshareddata
│   │   │   │   └── IDEWorkspaceChecks.plist
│   │   │   └── Challenge2-Starter
│   │   │   └── RxPlayground
│   │   │   ├── bootstrap.sh
│   │   │   ├── RxSwiftPlayground.playground
│   │   │   │   ├── Contents.swift
│   │   │   │   ├── contents.xcplayground
│   │   │   │   └── Sources
│   │   │   │   └── SupportCode.swift
│   │   │   └── RxSwiftPlayground.xcworkspace
│   │   │   ├── contents.xcworkspacedata
│   │   │   └── xcshareddata
│   │   │   └── IDEWorkspaceChecks.plist
│   │   ├── final
│   │   │   └── RxPlayground
│   │   │   ├── bootstrap.sh
│   │   │   ├── RxSwiftPlayground.playground
│   │   │   │   ├── Contents.swift
│   │   │   │   ├── contents.xcplayground
│   │   │   │   ├── Resources
│   │   │   │   │   └── Copyright.txt
│   │   │   │   └── Sources
│   │   │   │   └── SupportCode.swift
│   │   │   └── RxSwiftPlayground.xcworkspace
│   │   │   ├── contents.xcworkspacedata
│   │   │   └── xcshareddata
│   │   │   └── IDEWorkspaceChecks.plist
│   │   └── starter
│   │   └── RxPlayground
│   │   ├── bootstrap.sh
│   │   ├── RxSwiftPlayground.playground
│   │   │   ├── Contents.swift
│   │   │   ├── contents.xcplayground
│   │   │   ├── Resources
│   │   │   │   └── Copyright.txt
│   │   │   └── Sources
│   │   │   └── SupportCode.swift
│   │   └── RxSwiftPlayground.xcworkspace
│   │   ├── contents.xcworkspacedata
│   │   └── xcshareddata
│   │   └── IDEWorkspaceChecks.plist
│   └── starter
│   └── RxPlayground
│   ├── bootstrap.sh
│   ├── RxSwiftPlayground.playground
│   │   ├── Contents.swift
│   │   ├── contents.xcplayground
│   │   ├── Resources
│   │   │   └── Copyright.txt
│   │   └── Sources
│   │   └── SupportCode.swift
│   └── RxSwiftPlayground.xcworkspace
│   ├── contents.xcworkspacedata
│   └── xcshareddata
│   └── IDEWorkspaceChecks.plist
├── 03-subjects
│   ├── challenge
│   │   ├── Challenge1-Finished
│   │   │   └── RxPlayground
│   │   │   ├── bootstrap.sh
│   │   │   ├── RxSwiftPlayground.playground
│   │   │   │   ├── Contents.swift
│   │   │   │   ├── contents.xcplayground
│   │   │   │   └── Sources
│   │   │   │   └── SupportCode.swift
│   │   │   └── RxSwiftPlayground.xcworkspace
│   │   │   ├── contents.xcworkspacedata
│   │   │   └── xcshareddata
│   │   │   └── IDEWorkspaceChecks.plist
│   │   ├── Challenge1-Starter
│   │   │   └── RxPlayground
│   │   │   ├── bootstrap.sh
│   │   │   ├── RxSwiftPlayground.playground
│   │   │   │   ├── Contents.swift
│   │   │   │   ├── contents.xcplayground
│   │   │   │   └── Sources
│   │   │   │   └── SupportCode.swift
│   │   │   └── RxSwiftPlayground.xcworkspace
│   │   │   ├── contents.xcworkspacedata
│   │   │   └── xcshareddata
│   │   │   └── IDEWorkspaceChecks.plist
│   │   ├── Challenge2-Finished
│   │   │   └── RxPlayground
│   │   │   ├── bootstrap.sh
│   │   │   ├── RxSwiftPlayground.playground
│   │   │   │   ├── Contents.swift
│   │   │   │   ├── contents.xcplayground
│   │   │   │   └── Sources
│   │   │   │   └── SupportCode.swift
│   │   │   └── RxSwiftPlayground.xcworkspace
│   │   │   ├── contents.xcworkspacedata
│   │   │   └── xcshareddata
│   │   │   └── IDEWorkspaceChecks.plist
│   │   └── Challenge2-Starter
│   │   └── RxPlayground
│   │   ├── bootstrap.sh
│   │   ├── RxSwiftPlayground.playground
│   │   │   ├── Contents.swift
│   │   │   ├── contents.xcplayground
│   │   │   └── Sources
│   │   │   └── SupportCode.swift
│   │   └── RxSwiftPlayground.xcworkspace
│   │   ├── contents.xcworkspacedata
│   │   └── xcshareddata
│   │   └── IDEWorkspaceChecks.plist
│   ├── final
│   │   └── RxPlayground
│   │   ├── bootstrap.sh
│   │   ├── RxSwiftPlayground.playground
│   │   │   ├── Contents.swift
│   │   │   ├── contents.xcplayground
│   │   │   └── Sources
│   │   │   └── SupportCode.swift
│   │   └── RxSwiftPlayground.xcworkspace
│   │   ├── contents.xcworkspacedata
│   │   └── xcshareddata
│   │   └── IDEWorkspaceChecks.plist
│   └── starter
│   └── RxPlayground
│   ├── bootstrap.sh
│   ├── RxSwiftPlayground.playground
│   │   ├── Contents.swift
│   │   ├── contents.xcplayground
│   │   └── Sources
│   │   └── SupportCode.swift
│   └── RxSwiftPlayground.xcworkspace
│   ├── contents.xcworkspacedata
│   └── xcshareddata
│   └── IDEWorkspaceChecks.plist
├── 04-observables-in-practice
│   ├── challenges
│   │   ├── Combinestagram
│   │   │   ├── AppDelegate.swift
│   │   │   ├── Assets.xcassets
│   │   │   │   ├── AppIcon.appiconset
│   │   │   │   │   ├── Contents.json
│   │   │   │   │   ├── Icon-1024.png
│   │   │   │   │   ├── Icon-60@2x.png
│   │   │   │   │   ├── Icon-60@3x.png
│   │   │   │   │   ├── Icon-Small@2x.png
│   │   │   │   │   ├── Icon-Small@3x.png
│   │   │   │   │   ├── Icon-Spotlight-40@2x.png
│   │   │   │   │   ├── Icon-Spotlight-40@3x.png
│   │   │   │   │   └── Icon-Spotlight-40.png
│   │   │   │   ├── Contents.json
│   │   │   │   └── IMG_1907.imageset
│   │   │   │   ├── Contents.json
│   │   │   │   └── IMG_1907.jpg
│   │   │   ├── Base.lproj
│   │   │   │   ├── LaunchScreen.storyboard
│   │   │   │   └── Main.storyboard
│   │   │   ├── Info.plist
│   │   │   ├── MainViewController.swift
│   │   │   ├── PhotoCell.swift
│   │   │   ├── PhotosViewController.swift
│   │   │   ├── PhotoWriter.swift
│   │   │   ├── UIImage+Collage.swift
│   │   │   └── UIViewController+rx.swift
│   │   ├── Combinestagram.xcodeproj
│   │   │   ├── project.pbxproj
│   │   │   └── project.xcworkspace
│   │   │   └── contents.xcworkspacedata
│   │   └── Podfile
│   ├── final
│   │   ├── Combinestagram
│   │   │   ├── AppDelegate.swift
│   │   │   ├── Assets.xcassets
│   │   │   │   ├── AppIcon.appiconset
│   │   │   │   │   ├── Contents.json
│   │   │   │   │   ├── Icon-1024.png
│   │   │   │   │   ├── Icon-60@2x.png
│   │   │   │   │   ├── Icon-60@3x.png
│   │   │   │   │   ├── Icon-Small@2x.png
│   │   │   │   │   ├── Icon-Small@3x.png
│   │   │   │   │   ├── Icon-Spotlight-40@2x.png
│   │   │   │   │   ├── Icon-Spotlight-40@3x.png
│   │   │   │   │   └── Icon-Spotlight-40.png
│   │   │   │   ├── Contents.json
│   │   │   │   └── IMG_1907.imageset
│   │   │   │   ├── Contents.json
│   │   │   │   └── IMG_1907.jpg
│   │   │   ├── Base.lproj
│   │   │   │   ├── LaunchScreen.storyboard
│   │   │   │   └── Main.storyboard
│   │   │   ├── Info.plist
│   │   │   ├── MainViewController.swift
│   │   │   ├── PhotoCell.swift
│   │   │   ├── PhotosViewController.swift
│   │   │   ├── PhotoWriter.swift
│   │   │   └── UIImage+Collage.swift
│   │   ├── Combinestagram.xcodeproj
│   │   │   ├── project.pbxproj
│   │   │   └── project.xcworkspace
│   │   │   └── contents.xcworkspacedata
│   │   └── Podfile
│   └── starter
│   ├── Combinestagram
│   │   ├── AppDelegate.swift
│   │   ├── Assets.xcassets
│   │   │   ├── AppIcon.appiconset
│   │   │   │   ├── Contents.json
│   │   │   │   ├── Icon-1024.png
│   │   │   │   ├── Icon-60@2x.png
│   │   │   │   ├── Icon-60@3x.png
│   │   │   │   ├── Icon-Small@2x.png
│   │   │   │   ├── Icon-Small@3x.png
│   │   │   │   ├── Icon-Spotlight-40@2x.png
│   │   │   │   ├── Icon-Spotlight-40@3x.png
│   │   │   │   └── Icon-Spotlight-40.png
│   │   │   ├── Contents.json
│   │   │   └── IMG_1907.imageset
│   │   │   ├── Contents.json
│   │   │   └── IMG_1907.jpg
│   │   ├── Base.lproj
│   │   │   ├── LaunchScreen.storyboard
│   │   │   └── Main.storyboard
│   │   ├── Info.plist
│   │   ├── MainViewController.swift
│   │   ├── PhotoCell.swift
│   │   ├── PhotosViewController.swift
│   │   ├── PhotoWriter.swift
│   │   └── UIImage+Collage.swift
│   ├── Combinestagram.xcodeproj
│   │   ├── project.pbxproj
│   │   └── project.xcworkspace
│   │   ├── contents.xcworkspacedata
│   │   └── xcshareddata
│   │   └── IDEWorkspaceChecks.plist
│   └── Podfile
├── 05-filtering-operators
│   ├── challenge
│   │   ├── Challenge1-Finished
│   │   │   └── RxPlayground
│   │   │   ├── bootstrap.sh
│   │   │   ├── RxSwiftPlayground.playground
│   │   │   │   ├── Contents.swift
│   │   │   │   ├── contents.xcplayground
│   │   │   │   └── Sources
│   │   │   │   └── SupportCode.swift
│   │   │   └── RxSwiftPlayground.xcworkspace
│   │   │   ├── contents.xcworkspacedata
│   │   │   └── xcshareddata
│   │   │   └── IDEWorkspaceChecks.plist
│   │   └── Challenge1-Starter
│   │   └── RxPlayground
│   │   ├── bootstrap.sh
│   │   ├── RxSwiftPlayground.playground
│   │   │   ├── Contents.swift
│   │   │   ├── contents.xcplayground
│   │   │   └── Sources
│   │   │   └── SupportCode.swift
│   │   └── RxSwiftPlayground.xcworkspace
│   │   ├── contents.xcworkspacedata
│   │   └── xcshareddata
│   │   └── IDEWorkspaceChecks.plist
│   ├── final
│   │   └── RxPlayground
│   │   ├── bootstrap.sh
│   │   ├── RxSwiftPlayground.playground
│   │   │   ├── Contents.swift
│   │   │   ├── contents.xcplayground
│   │   │   └── Sources
│   │   │   └── SupportCode.swift
│   │   └── RxSwiftPlayground.xcworkspace
│   │   ├── contents.xcworkspacedata
│   │   └── xcshareddata
│   │   └── IDEWorkspaceChecks.plist
│   └── starter
│   └── RxPlayground
│   ├── bootstrap.sh
│   ├── RxSwiftPlayground.playground
│   │   ├── Contents.swift
│   │   ├── contents.xcplayground
│   │   └── Sources
│   │   └── SupportCode.swift
│   └── RxSwiftPlayground.xcworkspace
│   ├── contents.xcworkspacedata
│   └── xcshareddata
│   └── IDEWorkspaceChecks.plist
├── 06-filtering-operators-in-practice
│   ├── final
│   │   ├── Combinestagram
│   │   │   ├── AppDelegate.swift
│   │   │   ├── Assets.xcassets
│   │   │   │   ├── AppIcon.appiconset
│   │   │   │   │   ├── Contents.json
│   │   │   │   │   ├── Icon-1024.png
│   │   │   │   │   ├── Icon-60@2x.png
│   │   │   │   │   ├── Icon-60@3x.png
│   │   │   │   │   ├── Icon-Small@2x.png
│   │   │   │   │   ├── Icon-Small@3x.png
│   │   │   │   │   ├── Icon-Spotlight-40@2x.png
│   │   │   │   │   ├── Icon-Spotlight-40@3x.png
│   │   │   │   │   └── Icon-Spotlight-40.png
│   │   │   │   ├── Contents.json
│   │   │   │   └── IMG_1907.imageset
│   │   │   │   ├── Contents.json
│   │   │   │   └── IMG_1907.jpg
│   │   │   ├── Base.lproj
│   │   │   │   ├── LaunchScreen.storyboard
│   │   │   │   └── Main.storyboard
│   │   │   ├── Info.plist
│   │   │   ├── MainViewController.swift
│   │   │   ├── PhotoCell.swift
│   │   │   ├── PhotosViewController.swift
│   │   │   ├── PhotoWriter.swift
│   │   │   ├── PHPhotoLibrary+Rx.swift
│   │   │   ├── UIImage+Collage.swift
│   │   │   └── UIViewController+Rx.swift
│   │   ├── Combinestagram.xcodeproj
│   │   │   ├── project.pbxproj
│   │   │   └── project.xcworkspace
│   │   │   └── contents.xcworkspacedata
│   │   └── Podfile
│   └── starter
│   ├── Combinestagram
│   │   ├── AppDelegate.swift
│   │   ├── Assets.xcassets
│   │   │   ├── AppIcon.appiconset
│   │   │   │   ├── Contents.json
│   │   │   │   ├── Icon-1024.png
│   │   │   │   ├── Icon-60@2x.png
│   │   │   │   ├── Icon-60@3x.png
│   │   │   │   ├── Icon-Small@2x.png
│   │   │   │   ├── Icon-Small@3x.png
│   │   │   │   ├── Icon-Spotlight-40@2x.png
│   │   │   │   ├── Icon-Spotlight-40@3x.png
│   │   │   │   └── Icon-Spotlight-40.png
│   │   │   ├── Contents.json
│   │   │   └── IMG_1907.imageset
│   │   │   ├── Contents.json
│   │   │   └── IMG_1907.jpg
│   │   ├── Base.lproj
│   │   │   ├── LaunchScreen.storyboard
│   │   │   └── Main.storyboard
│   │   ├── Info.plist
│   │   ├── MainViewController.swift
│   │   ├── PhotoCell.swift
│   │   ├── PhotosViewController.swift
│   │   ├── PhotoWriter.swift
│   │   ├── UIImage+Collage.swift
│   │   └── UIViewController+Rx.swift
│   ├── Combinestagram.xcodeproj
│   │   ├── project.pbxproj
│   │   └── project.xcworkspace
│   │   └── contents.xcworkspacedata
│   └── Podfile
├── 07-transforming-operators
│   ├── challenge
│   │   ├── Challenge1-Finished
│   │   │   └── RxPlayground
│   │   │   ├── bootstrap.sh
│   │   │   ├── RxSwiftPlayground.playground
│   │   │   │   ├── Contents.swift
│   │   │   │   ├── contents.xcplayground
│   │   │   │   └── Sources
│   │   │   │   ├── SupportCode.swift
│   │   │   │   └── Unwrap.swift
│   │   │   └── RxSwiftPlayground.xcworkspace
│   │   │   ├── contents.xcworkspacedata
│   │   │   └── xcshareddata
│   │   │   └── IDEWorkspaceChecks.plist
│   │   └── Challenge1-Starter
│   │   └── RxPlayground
│   │   ├── bootstrap.sh
│   │   ├── RxSwiftPlayground.playground
│   │   │   ├── Contents.swift
│   │   │   ├── contents.xcplayground
│   │   │   └── Sources
│   │   │   ├── SupportCode.swift
│   │   │   └── Unwrap.swift
│   │   └── RxSwiftPlayground.xcworkspace
│   │   ├── contents.xcworkspacedata
│   │   └── xcshareddata
│   │   └── IDEWorkspaceChecks.plist
│   ├── final
│   │   └── RxPlayground
│   │   ├── bootstrap.sh
│   │   ├── RxSwiftPlayground.playground
│   │   │   ├── Contents.swift
│   │   │   ├── contents.xcplayground
│   │   │   └── Sources
│   │   │   └── SupportCode.swift
│   │   └── RxSwiftPlayground.xcworkspace
│   │   ├── contents.xcworkspacedata
│   │   └── xcshareddata
│   │   └── IDEWorkspaceChecks.plist
│   └── starter
│   └── RxPlayground
│   ├── bootstrap.sh
│   ├── RxSwiftPlayground.playground
│   │   ├── Contents.swift
│   │   ├── contents.xcplayground
│   │   └── Sources
│   │   └── SupportCode.swift
│   └── RxSwiftPlayground.xcworkspace
│   ├── contents.xcworkspacedata
│   └── xcshareddata
│   └── IDEWorkspaceChecks.plist
├── 08-transforming-operators-in-practice
│   ├── challenges
│   │   ├── GitFeed
│   │   │   ├── ActivityController.swift
│   │   │   ├── AppDelegate.swift
│   │   │   ├── Assets.xcassets
│   │   │   │   ├── AppIcon.appiconset
│   │   │   │   │   └── Contents.json
│   │   │   │   ├── blank-avatar.imageset
│   │   │   │   │   ├── blank-avatar@2x.png
│   │   │   │   │   └── Contents.json
│   │   │   │   └── Contents.json
│   │   │   ├── Base.lproj
│   │   │   │   ├── LaunchScreen.storyboard
│   │   │   │   └── Main.storyboard
│   │   │   ├── Event.swift
│   │   │   └── Info.plist
│   │   ├── GitFeed.xcodeproj
│   │   │   ├── project.pbxproj
│   │   │   └── project.xcworkspace
│   │   │   └── contents.xcworkspacedata
│   │   └── Podfile
│   ├── final
│   │   ├── GitFeed
│   │   │   ├── ActivityController.swift
│   │   │   ├── AppDelegate.swift
│   │   │   ├── Assets.xcassets
│   │   │   │   ├── AppIcon.appiconset
│   │   │   │   │   └── Contents.json
│   │   │   │   ├── blank-avatar.imageset
│   │   │   │   │   ├── blank-avatar@2x.png
│   │   │   │   │   └── Contents.json
│   │   │   │   └── Contents.json
│   │   │   ├── Base.lproj
│   │   │   │   ├── LaunchScreen.storyboard
│   │   │   │   └── Main.storyboard
│   │   │   ├── Event.swift
│   │   │   └── Info.plist
│   │   ├── GitFeed.xcodeproj
│   │   │   ├── project.pbxproj
│   │   │   └── project.xcworkspace
│   │   │   └── contents.xcworkspacedata
│   │   └── Podfile
│   └── starter
│   ├── GitFeed
│   │   ├── ActivityController.swift
│   │   ├── AppDelegate.swift
│   │   ├── Assets.xcassets
│   │   │   ├── AppIcon.appiconset
│   │   │   │   └── Contents.json
│   │   │   ├── blank-avatar.imageset
│   │   │   │   ├── blank-avatar@2x.png
│   │   │   │   └── Contents.json
│   │   │   └── Contents.json
│   │   ├── Base.lproj
│   │   │   ├── LaunchScreen.storyboard
│   │   │   └── Main.storyboard
│   │   ├── Event.swift
│   │   └── Info.plist
│   ├── GitFeed.xcodeproj
│   │   ├── project.pbxproj
│   │   └── project.xcworkspace
│   │   └── contents.xcworkspacedata
│   └── Podfile
├── 09-combining-operators
│   ├── challenge
│   │   ├── Challenge1-Finished
│   │   │   ├── bootstrap.sh
│   │   │   ├── RxSwiftPlayground.playground
│   │   │   │   ├── Contents.swift
│   │   │   │   ├── contents.xcplayground
│   │   │   │   ├── Resources
│   │   │   │   │   └── Copyright.txt
│   │   │   │   └── Sources
│   │   │   │   └── Helpers.swift
│   │   │   └── RxSwiftPlayground.xcworkspace
│   │   │   ├── contents.xcworkspacedata
│   │   │   └── xcshareddata
│   │   │   └── IDEWorkspaceChecks.plist
│   │   └── Challenge1-Starter
│   │   ├── bootstrap.sh
│   │   ├── RxSwiftPlayground.playground
│   │   │   ├── Contents.swift
│   │   │   ├── contents.xcplayground
│   │   │   ├── Resources
│   │   │   │   └── Copyright.txt
│   │   │   └── Sources
│   │   │   └── Helpers.swift
│   │   └── RxSwiftPlayground.xcworkspace
│   │   ├── contents.xcworkspacedata
│   │   └── xcshareddata
│   │   └── IDEWorkspaceChecks.plist
│   ├── final
│   │   ├── bootstrap.sh
│   │   ├── RxSwiftPlayground.playground
│   │   │   ├── Contents.swift
│   │   │   ├── contents.xcplayground
│   │   │   ├── Resources
│   │   │   │   └── Copyright.txt
│   │   │   └── Sources
│   │   │   └── Helpers.swift
│   │   └── RxSwiftPlayground.xcworkspace
│   │   ├── contents.xcworkspacedata
│   │   └── xcshareddata
│   │   └── IDEWorkspaceChecks.plist
│   └── starter
│   ├── bootstrap.sh
│   ├── RxSwiftPlayground.playground
│   │   ├── Contents.swift
│   │   ├── contents.xcplayground
│   │   ├── Resources
│   │   │   └── Copyright.txt
│   │   └── Sources
│   │   └── Helpers.swift
│   └── RxSwiftPlayground.xcworkspace
│   ├── contents.xcworkspacedata
│   └── xcshareddata
│   └── IDEWorkspaceChecks.plist
├── 10-combining-operators-in-practice
│   ├── challenge
│   │   ├── challenge1
│   │   │   └── OurPlanet
│   │   │   ├── OurPlanet
│   │   │   │   ├── AppDelegate.swift
│   │   │   │   ├── Assets.xcassets
│   │   │   │   │   ├── AppIcon.appiconset
│   │   │   │   │   │   └── Contents.json
│   │   │   │   │   ├── background.imageset
│   │   │   │   │   │   ├── background.jpg
│   │   │   │   │   │   └── Contents.json
│   │   │   │   │   └── Contents.json
│   │   │   │   ├── Base.lproj
│   │   │   │   │   ├── LaunchScreen.storyboard
│   │   │   │   │   └── Main.storyboard
│   │   │   │   ├── CategoriesViewController.swift
│   │   │   │   ├── EventCell.swift
│   │   │   │   ├── EventsViewController.swift
│   │   │   │   ├── Info.plist
│   │   │   │   ├── Model
│   │   │   │   │   ├── EOCategory.swift
│   │   │   │   │   ├── EOEnvelope.swift
│   │   │   │   │   ├── EOError.swift
│   │   │   │   │   ├── EOEvent.swift
│   │   │   │   │   ├── EOLocation.swift
│   │   │   │   │   └── EONET.swift
│   │   │   │   └── Resources
│   │   │   │   └── nasa-logo.png
│   │   │   ├── OurPlanet.xcodeproj
│   │   │   │   ├── project.pbxproj
│   │   │   │   └── project.xcworkspace
│   │   │   │   └── contents.xcworkspacedata
│   │   │   └── Podfile
│   │   ├── challenge2-1
│   │   │   └── OurPlanet
│   │   │   ├── OurPlanet
│   │   │   │   ├── AppDelegate.swift
│   │   │   │   ├── Assets.xcassets
│   │   │   │   │   ├── AppIcon.appiconset
│   │   │   │   │   │   └── Contents.json
│   │   │   │   │   ├── background.imageset
│   │   │   │   │   │   ├── background.jpg
│   │   │   │   │   │   └── Contents.json
│   │   │   │   │   └── Contents.json
│   │   │   │   ├── Base.lproj
│   │   │   │   │   ├── LaunchScreen.storyboard
│   │   │   │   │   └── Main.storyboard
│   │   │   │   ├── CategoriesViewController.swift
│   │   │   │   ├── DownloadView.swift
│   │   │   │   ├── EventCell.swift
│   │   │   │   ├── EventsViewController.swift
│   │   │   │   ├── Info.plist
│   │   │   │   ├── Model
│   │   │   │   │   ├── EOCategory.swift
│   │   │   │   │   ├── EOEnvelope.swift
│   │   │   │   │   ├── EOError.swift
│   │   │   │   │   ├── EOEvent.swift
│   │   │   │   │   ├── EOLocation.swift
│   │   │   │   │   └── EONET.swift
│   │   │   │   └── Resources
│   │   │   │   └── nasa-logo.png
│   │   │   ├── OurPlanet.xcodeproj
│   │   │   │   ├── project.pbxproj
│   │   │   │   └── project.xcworkspace
│   │   │   │   └── contents.xcworkspacedata
│   │   │   └── Podfile
│   │   └── challenge2-2
│   │   └── OurPlanet
│   │   ├── OurPlanet
│   │   │   ├── AppDelegate.swift
│   │   │   ├── Assets.xcassets
│   │   │   │   ├── AppIcon.appiconset
│   │   │   │   │   └── Contents.json
│   │   │   │   ├── background.imageset
│   │   │   │   │   ├── background.jpg
│   │   │   │   │   └── Contents.json
│   │   │   │   └── Contents.json
│   │   │   ├── Base.lproj
│   │   │   │   ├── LaunchScreen.storyboard
│   │   │   │   └── Main.storyboard
│   │   │   ├── CategoriesViewController.swift
│   │   │   ├── DownloadView.swift
│   │   │   ├── EventCell.swift
│   │   │   ├── EventsViewController.swift
│   │   │   ├── Info.plist
│   │   │   ├── Model
│   │   │   │   ├── EOCategory.swift
│   │   │   │   ├── EOEnvelope.swift
│   │   │   │   ├── EOError.swift
│   │   │   │   ├── EOEvent.swift
│   │   │   │   ├── EOLocation.swift
│   │   │   │   └── EONET.swift
│   │   │   └── Resources
│   │   │   └── nasa-logo.png
│   │   ├── OurPlanet.xcodeproj
│   │   │   ├── project.pbxproj
│   │   │   └── project.xcworkspace
│   │   │   └── contents.xcworkspacedata
│   │   └── Podfile
│   ├── final
│   │   └── OurPlanet
│   │   ├── OurPlanet
│   │   │   ├── AppDelegate.swift
│   │   │   ├── Assets.xcassets
│   │   │   │   ├── AppIcon.appiconset
│   │   │   │   │   └── Contents.json
│   │   │   │   ├── background.imageset
│   │   │   │   │   ├── background.jpg
│   │   │   │   │   └── Contents.json
│   │   │   │   └── Contents.json
│   │   │   ├── Base.lproj
│   │   │   │   ├── LaunchScreen.storyboard
│   │   │   │   └── Main.storyboard
│   │   │   ├── CategoriesViewController.swift
│   │   │   ├── EventCell.swift
│   │   │   ├── EventsViewController.swift
│   │   │   ├── Info.plist
│   │   │   ├── Model
│   │   │   │   ├── EOCategory.swift
│   │   │   │   ├── EOEnvelope.swift
│   │   │   │   ├── EOError.swift
│   │   │   │   ├── EOEvent.swift
│   │   │   │   ├── EOLocation.swift
│   │   │   │   └── EONET.swift
│   │   │   └── Resources
│   │   │   └── nasa-logo.png
│   │   ├── OurPlanet.xcodeproj
│   │   │   ├── project.pbxproj
│   │   │   └── project.xcworkspace
│   │   │   ├── contents.xcworkspacedata
│   │   │   └── xcshareddata
│   │   │   └── IDEWorkspaceChecks.plist
│   │   └── Podfile
│   └── starter
│   └── OurPlanet
│   ├── OurPlanet
│   │   ├── AppDelegate.swift
│   │   ├── Assets.xcassets
│   │   │   ├── AppIcon.appiconset
│   │   │   │   └── Contents.json
│   │   │   ├── background.imageset
│   │   │   │   ├── background.jpg
│   │   │   │   └── Contents.json
│   │   │   └── Contents.json
│   │   ├── Base.lproj
│   │   │   ├── LaunchScreen.storyboard
│   │   │   └── Main.storyboard
│   │   ├── CategoriesViewController.swift
│   │   ├── EventCell.swift
│   │   ├── EventsViewController.swift
│   │   ├── Info.plist
│   │   ├── Model
│   │   │   ├── EOCategory.swift
│   │   │   ├── EOEnvelope.swift
│   │   │   ├── EOError.swift
│   │   │   ├── EOEvent.swift
│   │   │   ├── EOLocation.swift
│   │   │   └── EONET.swift
│   │   └── Resources
│   │   └── nasa-logo.png
│   ├── OurPlanet.xcodeproj
│   │   ├── project.pbxproj
│   │   └── project.xcworkspace
│   │   ├── contents.xcworkspacedata
│   │   └── xcshareddata
│   │   └── IDEWorkspaceChecks.plist
│   └── Podfile
├── 11-time-based-operators
│   ├── challenge
│   │   ├── bootstrap.sh
│   │   ├── RxSwiftPlayground.playground
│   │   │   ├── Contents.swift
│   │   │   ├── contents.xcplayground
│   │   │   ├── Pages
│   │   │   │   ├── buffer.xcplaygroundpage
│   │   │   │   │   └── Contents.swift
│   │   │   │   ├── delay.xcplaygroundpage
│   │   │   │   │   └── Contents.swift
│   │   │   │   ├── replay.xcplaygroundpage
│   │   │   │   │   └── Contents.swift
│   │   │   │   ├── timeout.xcplaygroundpage
│   │   │   │   │   └── Contents.swift
│   │   │   │   └── window.xcplaygroundpage
│   │   │   │   └── Contents.swift
│   │   │   └── Sources
│   │   │   ├── HostView.swift
│   │   │   ├── Label.swift
│   │   │   ├── StackView.swift
│   │   │   ├── SupportCode.swift
│   │   │   ├── TimelineViewBase.swift
│   │   │   └── Timer.swift
│   │   └── RxSwiftPlayground.xcworkspace
│   │   ├── contents.xcworkspacedata
│   │   └── xcshareddata
│   │   └── IDEWorkspaceChecks.plist
│   ├── final
│   │   ├── bootstrap.sh
│   │   ├── RxSwiftPlayground.playground
│   │   │   ├── Contents.swift
│   │   │   ├── contents.xcplayground
│   │   │   ├── Pages
│   │   │   │   ├── buffer.xcplaygroundpage
│   │   │   │   │   └── Contents.swift
│   │   │   │   ├── delay.xcplaygroundpage
│   │   │   │   │   └── Contents.swift
│   │   │   │   ├── replay.xcplaygroundpage
│   │   │   │   │   └── Contents.swift
│   │   │   │   ├── timeout.xcplaygroundpage
│   │   │   │   │   └── Contents.swift
│   │   │   │   └── window.xcplaygroundpage
│   │   │   │   └── Contents.swift
│   │   │   └── Sources
│   │   │   ├── HostView.swift
│   │   │   ├── Label.swift
│   │   │   ├── StackView.swift
│   │   │   ├── SupportCode.swift
│   │   │   ├── TimelineViewBase.swift
│   │   │   └── Timer.swift
│   │   └── RxSwiftPlayground.xcworkspace
│   │   ├── contents.xcworkspacedata
│   │   └── xcshareddata
│   │   └── IDEWorkspaceChecks.plist
│   └── starter
│   ├── bootstrap.sh
│   ├── RxSwiftPlayground.playground
│   │   ├── Contents.swift
│   │   ├── contents.xcplayground
│   │   ├── Pages
│   │   │   ├── buffer.xcplaygroundpage
│   │   │   │   └── Contents.swift
│   │   │   ├── delay.xcplaygroundpage
│   │   │   │   └── Contents.swift
│   │   │   ├── replay.xcplaygroundpage
│   │   │   │   └── Contents.swift
│   │   │   ├── timeout.xcplaygroundpage
│   │   │   │   └── Contents.swift
│   │   │   └── window.xcplaygroundpage
│   │   │   └── Contents.swift
│   │   └── Sources
│   │   ├── HostView.swift
│   │   ├── Label.swift
│   │   ├── StackView.swift
│   │   ├── SupportCode.swift
│   │   ├── TimelineViewBase.swift
│   │   └── Timer.swift
│   └── RxSwiftPlayground.xcworkspace
│   ├── contents.xcworkspacedata
│   └── xcshareddata
│   └── IDEWorkspaceChecks.plist
├── 12-beginning-rxcocoa
│   ├── challenge
│   │   ├── Podfile
│   │   ├── Wundercast
│   │   │   ├── AppDelegate.swift
│   │   │   ├── Assets
│   │   │   │   ├── LICENSE
│   │   │   │   └── weather.ttf
│   │   │   ├── Assets.xcassets
│   │   │   │   └── AppIcon.appiconset
│   │   │   │   └── Contents.json
│   │   │   ├── Base.lproj
│   │   │   │   ├── LaunchScreen.storyboard
│   │   │   │   └── Main.storyboard
│   │   │   ├── Controllers
│   │   │   │   └── ApiController.swift
│   │   │   ├── Info.plist
│   │   │   ├── Utils
│   │   │   │   ├── Appearance.swift
│   │   │   │   └── Colors.swift
│   │   │   └── ViewController.swift
│   │   └── Wundercast.xcodeproj
│   │   ├── project.pbxproj
│   │   └── project.xcworkspace
│   │   └── contents.xcworkspacedata
│   ├── final
│   │   ├── Podfile
│   │   ├── Wundercast
│   │   │   ├── AppDelegate.swift
│   │   │   ├── Assets
│   │   │   │   ├── LICENSE
│   │   │   │   └── weather.ttf
│   │   │   ├── Assets.xcassets
│   │   │   │   └── AppIcon.appiconset
│   │   │   │   └── Contents.json
│   │   │   ├── Base.lproj
│   │   │   │   ├── LaunchScreen.storyboard
│   │   │   │   └── Main.storyboard
│   │   │   ├── Controllers
│   │   │   │   └── ApiController.swift
│   │   │   ├── Info.plist
│   │   │   ├── Utils
│   │   │   │   ├── Appearance.swift
│   │   │   │   └── Colors.swift
│   │   │   └── ViewController.swift
│   │   └── Wundercast.xcodeproj
│   │   ├── project.pbxproj
│   │   └── project.xcworkspace
│   │   └── contents.xcworkspacedata
│   └── starter
│   ├── Podfile
│   ├── Wundercast
│   │   ├── AppDelegate.swift
│   │   ├── Assets
│   │   │   ├── LICENSE
│   │   │   └── weather.ttf
│   │   ├── Assets.xcassets
│   │   │   └── AppIcon.appiconset
│   │   │   └── Contents.json
│   │   ├── Base.lproj
│   │   │   ├── LaunchScreen.storyboard
│   │   │   └── Main.storyboard
│   │   ├── Controllers
│   │   │   └── ApiController.swift
│   │   ├── Info.plist
│   │   ├── Utils
│   │   │   ├── Appearance.swift
│   │   │   └── Colors.swift
│   │   └── ViewController.swift
│   └── Wundercast.xcodeproj
│   ├── project.pbxproj
│   └── project.xcworkspace
│   └── contents.xcworkspacedata
├── 13-intermediate-rxcocoa
│   ├── challenges
│   │   ├── Podfile
│   │   ├── Wundercast
│   │   │   ├── AppDelegate.swift
│   │   │   ├── Assets
│   │   │   │   ├── LICENSE
│   │   │   │   └── weather.ttf
│   │   │   ├── Assets.xcassets
│   │   │   │   ├── AppIcon.appiconset
│   │   │   │   │   └── Contents.json
│   │   │   │   ├── Contents.json
│   │   │   │   ├── map.imageset
│   │   │   │   │   ├── Contents.json
│   │   │   │   │   └── map.pdf
│   │   │   │   └── place-location.imageset
│   │   │   │   ├── Contents.json
│   │   │   │   └── place-location.pdf
│   │   │   ├── Base.lproj
│   │   │   │   ├── LaunchScreen.storyboard
│   │   │   │   └── Main.storyboard
│   │   │   ├── Controllers
│   │   │   │   ├── ApiController.swift
│   │   │   │   └── Extensions
│   │   │   │   ├── CLLocationManager+Rx.swift
│   │   │   │   └── MKMapView+Rx.swift
│   │   │   ├── Info.plist
│   │   │   ├── Utils
│   │   │   │   ├── Appearance.swift
│   │   │   │   └── Colors.swift
│   │   │   └── ViewController.swift
│   │   └── Wundercast.xcodeproj
│   │   ├── project.pbxproj
│   │   └── project.xcworkspace
│   │   └── contents.xcworkspacedata
│   ├── final
│   │   ├── Podfile
│   │   ├── Wundercast
│   │   │   ├── AppDelegate.swift
│   │   │   ├── Assets
│   │   │   │   ├── LICENSE
│   │   │   │   └── weather.ttf
│   │   │   ├── Assets.xcassets
│   │   │   │   ├── AppIcon.appiconset
│   │   │   │   │   └── Contents.json
│   │   │   │   ├── Contents.json
│   │   │   │   ├── map.imageset
│   │   │   │   │   ├── Contents.json
│   │   │   │   │   └── map.pdf
│   │   │   │   └── place-location.imageset
│   │   │   │   ├── Contents.json
│   │   │   │   └── place-location.pdf
│   │   │   ├── Base.lproj
│   │   │   │   ├── LaunchScreen.storyboard
│   │   │   │   └── Main.storyboard
│   │   │   ├── Controllers
│   │   │   │   ├── ApiController.swift
│   │   │   │   └── Extensions
│   │   │   │   ├── CLLocationManager+Rx.swift
│   │   │   │   └── MKMapView+Rx.swift
│   │   │   ├── Info.plist
│   │   │   ├── Utils
│   │   │   │   ├── Appearance.swift
│   │   │   │   └── Colors.swift
│   │   │   └── ViewController.swift
│   │   └── Wundercast.xcodeproj
│   │   ├── project.pbxproj
│   │   └── project.xcworkspace
│   │   └── contents.xcworkspacedata
│   └── starter
│   ├── Podfile
│   ├── Wundercast
│   │   ├── AppDelegate.swift
│   │   ├── Assets
│   │   │   ├── LICENSE
│   │   │   └── weather.ttf
│   │   ├── Assets.xcassets
│   │   │   ├── AppIcon.appiconset
│   │   │   │   └── Contents.json
│   │   │   ├── Contents.json
│   │   │   ├── map.imageset
│   │   │   │   ├── Contents.json
│   │   │   │   └── map.pdf
│   │   │   └── place-location.imageset
│   │   │   ├── Contents.json
│   │   │   └── place-location.pdf
│   │   ├── Base.lproj
│   │   │   ├── LaunchScreen.storyboard
│   │   │   └── Main.storyboard
│   │   ├── Controllers
│   │   │   ├── ApiController.swift
│   │   │   └── Extensions
│   │   │   ├── CLLocationManager+Rx.swift
│   │   │   └── MKMapView+Rx.swift
│   │   ├── Info.plist
│   │   ├── Utils
│   │   │   ├── Appearance.swift
│   │   │   └── Colors.swift
│   │   └── ViewController.swift
│   └── Wundercast.xcodeproj
│   ├── project.pbxproj
│   └── project.xcworkspace
│   └── contents.xcworkspacedata
├── 14-error-handling-in-practice
│   ├── challenge
│   │   ├── Podfile
│   │   ├── Wundercast
│   │   │   ├── AppDelegate.swift
│   │   │   ├── Assets
│   │   │   │   ├── LICENSE
│   │   │   │   └── weather.ttf
│   │   │   ├── Assets.xcassets
│   │   │   │   ├── AppIcon.appiconset
│   │   │   │   │   └── Contents.json
│   │   │   │   ├── closeSmall.imageset
│   │   │   │   │   ├── closeSmall.pdf
│   │   │   │   │   └── Contents.json
│   │   │   │   ├── Contents.json
│   │   │   │   ├── key.imageset
│   │   │   │   │   ├── Contents.json
│   │   │   │   │   └── key.pdf
│   │   │   │   ├── map.imageset
│   │   │   │   │   ├── Contents.json
│   │   │   │   │   └── map.pdf
│   │   │   │   └── place-location.imageset
│   │   │   │   ├── Contents.json
│   │   │   │   └── place-location.pdf
│   │   │   ├── Base.lproj
│   │   │   │   ├── LaunchScreen.storyboard
│   │   │   │   └── Main.storyboard
│   │   │   ├── Controllers
│   │   │   │   └── ApiController.swift
│   │   │   ├── Extensions
│   │   │   │   ├── CLLocationManager+Rx.swift
│   │   │   │   └── RxReachability.swift
│   │   │   ├── Info.plist
│   │   │   ├── Utils
│   │   │   │   ├── Appearance.swift
│   │   │   │   ├── Colors.swift
│   │   │   │   ├── InfoView.swift
│   │   │   │   └── InfoView.xib
│   │   │   └── ViewController.swift
│   │   └── Wundercast.xcodeproj
│   │   ├── project.pbxproj
│   │   └── project.xcworkspace
│   │   └── contents.xcworkspacedata
│   ├── final
│   │   ├── Podfile
│   │   ├── Wundercast
│   │   │   ├── AppDelegate.swift
│   │   │   ├── Assets
│   │   │   │   ├── LICENSE
│   │   │   │   └── weather.ttf
│   │   │   ├── Assets.xcassets
│   │   │   │   ├── AppIcon.appiconset
│   │   │   │   │   └── Contents.json
│   │   │   │   ├── closeSmall.imageset
│   │   │   │   │   ├── closeSmall.pdf
│   │   │   │   │   └── Contents.json
│   │   │   │   ├── Contents.json
│   │   │   │   ├── key.imageset
│   │   │   │   │   ├── Contents.json
│   │   │   │   │   └── key.pdf
│   │   │   │   ├── map.imageset
│   │   │   │   │   ├── Contents.json
│   │   │   │   │   └── map.pdf
│   │   │   │   └── place-location.imageset
│   │   │   │   ├── Contents.json
│   │   │   │   └── place-location.pdf
│   │   │   ├── Base.lproj
│   │   │   │   ├── LaunchScreen.storyboard
│   │   │   │   └── Main.storyboard
│   │   │   ├── Controllers
│   │   │   │   └── ApiController.swift
│   │   │   ├── Extensions
│   │   │   │   ├── CLLocationManager+Rx.swift
│   │   │   │   └── RxReachability.swift
│   │   │   ├── Info.plist
│   │   │   ├── Utils
│   │   │   │   ├── Appearance.swift
│   │   │   │   ├── Colors.swift
│   │   │   │   ├── InfoView.swift
│   │   │   │   └── InfoView.xib
│   │   │   └── ViewController.swift
│   │   └── Wundercast.xcodeproj
│   │   ├── project.pbxproj
│   │   └── project.xcworkspace
│   │   └── contents.xcworkspacedata
│   └── starter
│   ├── Podfile
│   ├── Wundercast
│   │   ├── AppDelegate.swift
│   │   ├── Assets
│   │   │   ├── LICENSE
│   │   │   └── weather.ttf
│   │   ├── Assets.xcassets
│   │   │   ├── AppIcon.appiconset
│   │   │   │   └── Contents.json
│   │   │   ├── closeSmall.imageset
│   │   │   │   ├── closeSmall.pdf
│   │   │   │   └── Contents.json
│   │   │   ├── Contents.json
│   │   │   ├── key.imageset
│   │   │   │   ├── Contents.json
│   │   │   │   └── key.pdf
│   │   │   ├── map.imageset
│   │   │   │   ├── Contents.json
│   │   │   │   └── map.pdf
│   │   │   └── place-location.imageset
│   │   │   ├── Contents.json
│   │   │   └── place-location.pdf
│   │   ├── Base.lproj
│   │   │   ├── LaunchScreen.storyboard
│   │   │   └── Main.storyboard
│   │   ├── Controllers
│   │   │   └── ApiController.swift
│   │   ├── Extensions
│   │   │   ├── CLLocationManager+Rx.swift
│   │   │   └── RxReachability.swift
│   │   ├── Info.plist
│   │   ├── Utils
│   │   │   ├── Appearance.swift
│   │   │   ├── Colors.swift
│   │   │   ├── InfoView.swift
│   │   │   └── InfoView.xib
│   │   └── ViewController.swift
│   └── Wundercast.xcodeproj
│   ├── project.pbxproj
│   └── project.xcworkspace
│   └── contents.xcworkspacedata
├── 15-intro-to-schedulers
│   ├── final
│   │   ├── Podfile
│   │   ├── Schedulers
│   │   │   ├── main.swift
│   │   │   └── Utils.swift
│   │   └── Schedulers.xcodeproj
│   │   ├── project.pbxproj
│   │   └── project.xcworkspace
│   │   └── contents.xcworkspacedata
│   └── starter
│   ├── Podfile
│   ├── Schedulers
│   │   ├── main.swift
│   │   └── Utils.swift
│   └── Schedulers.xcodeproj
│   ├── project.pbxproj
│   └── project.xcworkspace
│   └── contents.xcworkspacedata
├── 16-testing-with-rxtests
│   ├── final
│   │   └── Testing
│   │   ├── Base.lproj
│   │   │   └── LaunchScreen.storyboard
│   │   ├── Podfile
│   │   ├── Testing
│   │   │   ├── AppDelegate.swift
│   │   │   ├── Assets.xcassets
│   │   │   │   └── AppIcon.appiconset
│   │   │   │   └── Contents.json
│   │   │   ├── Info.plist
│   │   │   ├── Main.storyboard
│   │   │   ├── ViewController.swift
│   │   │   └── ViewModel.swift
│   │   ├── TestingTests
│   │   │   ├── Info.plist
│   │   │   ├── TestingOperators.swift
│   │   │   └── TestingViewModel.swift
│   │   └── Testing.xcodeproj
│   │   ├── project.pbxproj
│   │   └── project.xcworkspace
│   │   ├── contents.xcworkspacedata
│   │   └── xcshareddata
│   │   └── IDEWorkspaceChecks.plist
│   └── starter
│   └── Testing
│   ├── Base.lproj
│   │   └── LaunchScreen.storyboard
│   ├── Podfile
│   ├── Testing
│   │   ├── AppDelegate.swift
│   │   ├── Assets.xcassets
│   │   │   └── AppIcon.appiconset
│   │   │   └── Contents.json
│   │   ├── Info.plist
│   │   ├── Main.storyboard
│   │   ├── ViewController.swift
│   │   └── ViewModel.swift
│   ├── TestingTests
│   │   ├── Info.plist
│   │   ├── TestingOperators.swift
│   │   └── TestingViewModel.swift
│   └── Testing.xcodeproj
│   ├── project.pbxproj
│   └── project.xcworkspace
│   ├── contents.xcworkspacedata
│   └── xcshareddata
│   └── IDEWorkspaceChecks.plist
├── 17-creating-custom-reactive-extension
│   ├── challenge
│   │   ├── iGif
│   │   │   ├── ApiController.swift
│   │   │   ├── AppDelegate.swift
│   │   │   ├── Assets.xcassets
│   │   │   │   └── AppIcon.appiconset
│   │   │   │   └── Contents.json
│   │   │   ├── Base.lproj
│   │   │   │   ├── LaunchScreen.storyboard
│   │   │   │   └── Main.storyboard
│   │   │   ├── GifTableViewCell.swift
│   │   │   ├── GiphyGif.swift
│   │   │   ├── GiphySearchResponse.swift
│   │   │   ├── Info.plist
│   │   │   ├── MainTableViewController.swift
│   │   │   └── URLSession+Rx.swift
│   │   ├── iGifTests
│   │   │   ├── iGifTests.swift
│   │   │   └── Info.plist
│   │   ├── iGif.xcodeproj
│   │   │   ├── project.pbxproj
│   │   │   └── project.xcworkspace
│   │   │   └── contents.xcworkspacedata
│   │   └── Podfile
│   ├── final
│   │   ├── iGif
│   │   │   ├── ApiController.swift
│   │   │   ├── AppDelegate.swift
│   │   │   ├── Assets.xcassets
│   │   │   │   └── AppIcon.appiconset
│   │   │   │   └── Contents.json
│   │   │   ├── Base.lproj
│   │   │   │   ├── LaunchScreen.storyboard
│   │   │   │   └── Main.storyboard
│   │   │   ├── GifTableViewCell.swift
│   │   │   ├── GiphyGif.swift
│   │   │   ├── GiphySearchResponse.swift
│   │   │   ├── Info.plist
│   │   │   ├── MainTableViewController.swift
│   │   │   └── URLSession+Rx.swift
│   │   ├── iGifTests
│   │   │   ├── iGifTests.swift
│   │   │   └── Info.plist
│   │   ├── iGif.xcodeproj
│   │   │   ├── project.pbxproj
│   │   │   └── project.xcworkspace
│   │   │   └── contents.xcworkspacedata
│   │   └── Podfile
│   └── starter
│   ├── iGif
│   │   ├── ApiController.swift
│   │   ├── AppDelegate.swift
│   │   ├── Assets.xcassets
│   │   │   └── AppIcon.appiconset
│   │   │   └── Contents.json
│   │   ├── Base.lproj
│   │   │   ├── LaunchScreen.storyboard
│   │   │   └── Main.storyboard
│   │   ├── GifTableViewCell.swift
│   │   ├── GiphyGif.swift
│   │   ├── GiphySearchResponse.swift
│   │   ├── Info.plist
│   │   ├── MainTableViewController.swift
│   │   └── URLSession+Rx.swift
│   ├── iGifTests
│   │   ├── iGifTests.swift
│   │   └── Info.plist
│   ├── iGif.xcodeproj
│   │   ├── project.pbxproj
│   │   └── project.xcworkspace
│   │   └── contents.xcworkspacedata
│   └── Podfile
├── 24-mvvm-with-rxswift
│   ├── challenges
│   │   └── Tweetie
│   │   ├── APICache
│   │   │   └── 1.1
│   │   │   ├── lists
│   │   │   │   ├── members.json-count-100-include_entities-false-owner_screen_name-icanzilb-skip_status-1-slug-RxSwift
│   │   │   │   ├── statuses.json-max_id-1070684513213267967-owner_screen_name-icanzilb-since_id-1071396963340435457-slug-RxSwift
│   │   │   │   └── statuses.json-owner_screen_name-icanzilb-slug-RxSwift
│   │   │   └── statuses
│   │   │   ├── user_timeline.json-contributor_details-false-count-100-include_rts-true-screen_name-ashfurrow
│   │   │   ├── user_timeline.json-contributor_details-false-count-100-include_rts-true-screen_name-bontoJR
│   │   │   ├── user_timeline.json-contributor_details-false-count-100-include_rts-true-screen_name-crispytwit
│   │   │   ├── user_timeline.json-contributor_details-false-count-100-include_rts-true-screen_name-fpillet
│   │   │   ├── user_timeline.json-contributor_details-false-count-100-include_rts-true-screen_name-freak4pc
│   │   │   ├── user_timeline.json-contributor_details-false-count-100-include_rts-true-screen_name-icanzilb
│   │   │   ├── user_timeline.json-contributor_details-false-count-100-include_rts-true-screen_name-mandarazeware
│   │   │   └── user_timeline.json-contributor_details-false-count-100-include_rts-true-screen_name-scotteg
│   │   ├── Cross Platform Extensions
│   │   │   ├── ImageView+setImage.swift
│   │   │   ├── Reachability+.swift
│   │   │   ├── Storyboard+.swift
│   │   │   └── TableView+.swift
│   │   ├── Data Entities
│   │   │   ├── Tweet.swift
│   │   │   └── User.swift
│   │   ├── iOS Tweetie
│   │   │   ├── AppDelegate.swift
│   │   │   ├── Assets
│   │   │   │   ├── Assets.xcassets
│   │   │   │   │   └── AppIcon.appiconset
│   │   │   │   │   └── Contents.json
│   │   │   │   ├── Base.lproj
│   │   │   │   │   ├── LaunchScreen.storyboard
│   │   │   │   │   └── Main.storyboard
│   │   │   │   └── Info.plist
│   │   │   ├── Extensions
│   │   │   │   └── Tweet+.swift
│   │   │   ├── Navigator.swift
│   │   │   └── View Controllers
│   │   │   ├── List People
│   │   │   │   ├── ListPeopleViewController.swift
│   │   │   │   └── UserCellView.swift
│   │   │   ├── List Timeline
│   │   │   │   ├── ListTimelineViewController.swift
│   │   │   │   └── TweetCellView.swift
│   │   │   └── Person Timeline
│   │   │   └── PersonTimelineViewController.swift
│   │   ├── Mac Tweetie
│   │   │   ├── AppDelegate.swift
│   │   │   ├── Assets
│   │   │   │   ├── Assets.xcassets
│   │   │   │   │   └── AppIcon.appiconset
│   │   │   │   │   └── Contents.json
│   │   │   │   ├── Base.lproj
│   │   │   │   │   └── Main.storyboard
│   │   │   │   └── Info.plist
│   │   │   ├── Extensions
│   │   │   │   └── ChromelessWindow.swift
│   │   │   ├── Navigator.swift
│   │   │   └── ViewControllers
│   │   │   ├── List People
│   │   │   │   ├── ListPeopleViewController.swift
│   │   │   │   └── UserCellView.swift
│   │   │   ├── List Timeline
│   │   │   │   ├── ListTimelineViewController.swift
│   │   │   │   └── TweetCellView.swift
│   │   │   └── Person Timeline
│   │   │   └── PersonTimelineViewController.swift
│   │   ├── Podfile
│   │   ├── TweetieTests
│   │   │   ├── Info.plist
│   │   │   ├── ListPeopleViewModelTests.swift
│   │   │   ├── ListTimelineViewModelTests.swift
│   │   │   ├── PersonTimelineViewModelTests.swift
│   │   │   ├── TestData.swift
│   │   │   ├── TestRealm.swift
│   │   │   └── TwitterTestAPI.swift
│   │   ├── Tweetie.xcodeproj
│   │   │   ├── project.pbxproj
│   │   │   └── project.xcworkspace
│   │   │   ├── contents.xcworkspacedata
│   │   │   └── xcshareddata
│   │   │   └── IDEWorkspaceChecks.plist
│   │   ├── TwitterAPI
│   │   │   ├── DateFormatter+Twitter.swift
│   │   │   ├── Timeline
│   │   │   │   ├── TimelineCursor.swift
│   │   │   │   └── TimelineFetcher.swift
│   │   │   ├── TwitterAccount.swift
│   │   │   └── TwitterAPI.swift
│   │   └── View Models
│   │   ├── ListPeopleViewModel.swift
│   │   ├── ListTimelineViewModel.swift
│   │   └── PersonTimelineViewModel.swift
│   ├── final
│   │   └── Tweetie
│   │   ├── APICache
│   │   │   └── 1.1
│   │   │   ├── lists
│   │   │   │   ├── members.json-count-100-include_entities-false-owner_screen_name-icanzilb-skip_status-1-slug-RxSwift
│   │   │   │   ├── statuses.json-max_id-1070684513213267967-owner_screen_name-icanzilb-since_id-1071396963340435457-slug-RxSwift
│   │   │   │   └── statuses.json-owner_screen_name-icanzilb-slug-RxSwift
│   │   │   └── statuses
│   │   │   ├── user_timeline.json-contributor_details-false-count-100-include_rts-true-screen_name-ashfurrow
│   │   │   ├── user_timeline.json-contributor_details-false-count-100-include_rts-true-screen_name-bontoJR
│   │   │   ├── user_timeline.json-contributor_details-false-count-100-include_rts-true-screen_name-crispytwit
│   │   │   ├── user_timeline.json-contributor_details-false-count-100-include_rts-true-screen_name-fpillet
│   │   │   ├── user_timeline.json-contributor_details-false-count-100-include_rts-true-screen_name-freak4pc
│   │   │   ├── user_timeline.json-contributor_details-false-count-100-include_rts-true-screen_name-icanzilb
│   │   │   ├── user_timeline.json-contributor_details-false-count-100-include_rts-true-screen_name-mandarazeware
│   │   │   └── user_timeline.json-contributor_details-false-count-100-include_rts-true-screen_name-scotteg
│   │   ├── Cross Platform Extensions
│   │   │   ├── ImageView+setImage.swift
│   │   │   ├── Reachability+.swift
│   │   │   ├── Storyboard+.swift
│   │   │   └── TableView+.swift
│   │   ├── Data Entities
│   │   │   ├── Tweet.swift
│   │   │   └── User.swift
│   │   ├── iOS Tweetie
│   │   │   ├── AppDelegate.swift
│   │   │   ├── Assets
│   │   │   │   ├── Assets.xcassets
│   │   │   │   │   └── AppIcon.appiconset
│   │   │   │   │   └── Contents.json
│   │   │   │   ├── Base.lproj
│   │   │   │   │   ├── LaunchScreen.storyboard
│   │   │   │   │   └── Main.storyboard
│   │   │   │   └── Info.plist
│   │   │   ├── Extensions
│   │   │   │   └── Tweet+.swift
│   │   │   ├── Navigator.swift
│   │   │   └── View Controllers
│   │   │   ├── List People
│   │   │   │   ├── ListPeopleViewController.swift
│   │   │   │   └── UserCellView.swift
│   │   │   ├── List Timeline
│   │   │   │   ├── ListTimelineViewController.swift
│   │   │   │   └── TweetCellView.swift
│   │   │   └── Person Timeline
│   │   │   └── PersonTimelineViewController.swift
│   │   ├── Mac Tweetie
│   │   │   ├── AppDelegate.swift
│   │   │   ├── Assets
│   │   │   │   ├── Assets.xcassets
│   │   │   │   │   └── AppIcon.appiconset
│   │   │   │   │   └── Contents.json
│   │   │   │   ├── Base.lproj
│   │   │   │   │   └── Main.storyboard
│   │   │   │   └── Info.plist
│   │   │   ├── Extensions
│   │   │   │   └── ChromelessWindow.swift
│   │   │   ├── Navigator.swift
│   │   │   └── ViewControllers
│   │   │   ├── List People
│   │   │   │   ├── ListPeopleViewController.swift
│   │   │   │   └── UserCellView.swift
│   │   │   ├── List Timeline
│   │   │   │   ├── ListTimelineViewController.swift
│   │   │   │   └── TweetCellView.swift
│   │   │   └── Person Timeline
│   │   │   └── PersonTimelineViewController.swift
│   │   ├── Podfile
│   │   ├── TweetieTests
│   │   │   ├── Info.plist
│   │   │   ├── ListPeopleViewModelTests.swift
│   │   │   ├── ListTimelineViewModelTests.swift
│   │   │   ├── PersonTimelineViewModelTests.swift
│   │   │   ├── TestData.swift
│   │   │   ├── TestRealm.swift
│   │   │   └── TwitterTestAPI.swift
│   │   ├── Tweetie.xcodeproj
│   │   │   ├── project.pbxproj
│   │   │   └── project.xcworkspace
│   │   │   ├── contents.xcworkspacedata
│   │   │   └── xcshareddata
│   │   │   └── IDEWorkspaceChecks.plist
│   │   ├── TwitterAPI
│   │   │   ├── DateFormatter+Twitter.swift
│   │   │   ├── Timeline
│   │   │   │   ├── TimelineCursor.swift
│   │   │   │   └── TimelineFetcher.swift
│   │   │   ├── TwitterAccount.swift
│   │   │   └── TwitterAPI.swift
│   │   └── View Models
│   │   ├── ListPeopleViewModel.swift
│   │   ├── ListTimelineViewModel.swift
│   │   └── PersonTimelineViewModel.swift
│   └── starter
│   └── Tweetie
│   ├── APICache
│   │   └── 1.1
│   │   ├── lists
│   │   │   ├── members.json-count-100-include_entities-false-owner_screen_name-icanzilb-skip_status-1-slug-RxSwift
│   │   │   ├── statuses.json-max_id-1070684513213267967-owner_screen_name-icanzilb-since_id-1071396963340435457-slug-RxSwift
│   │   │   └── statuses.json-owner_screen_name-icanzilb-slug-RxSwift
│   │   └── statuses
│   │   ├── user_timeline.json-contributor_details-false-count-100-include_rts-true-screen_name-ashfurrow
│   │   ├── user_timeline.json-contributor_details-false-count-100-include_rts-true-screen_name-bontoJR
│   │   ├── user_timeline.json-contributor_details-false-count-100-include_rts-true-screen_name-crispytwit
│   │   ├── user_timeline.json-contributor_details-false-count-100-include_rts-true-screen_name-fpillet
│   │   ├── user_timeline.json-contributor_details-false-count-100-include_rts-true-screen_name-freak4pc
│   │   ├── user_timeline.json-contributor_details-false-count-100-include_rts-true-screen_name-icanzilb
│   │   ├── user_timeline.json-contributor_details-false-count-100-include_rts-true-screen_name-mandarazeware
│   │   └── user_timeline.json-contributor_details-false-count-100-include_rts-true-screen_name-scotteg
│   ├── Cross Platform Extensions
│   │   ├── ImageView+setImage.swift
│   │   ├── Reachability+.swift
│   │   ├── Storyboard+.swift
│   │   └── TableView+.swift
│   ├── Data Entities
│   │   ├── Tweet.swift
│   │   └── User.swift
│   ├── iOS Tweetie
│   │   ├── AppDelegate.swift
│   │   ├── Assets
│   │   │   ├── Assets.xcassets
│   │   │   │   └── AppIcon.appiconset
│   │   │   │   └── Contents.json
│   │   │   ├── Base.lproj
│   │   │   │   ├── LaunchScreen.storyboard
│   │   │   │   └── Main.storyboard
│   │   │   └── Info.plist
│   │   ├── Extensions
│   │   │   └── Tweet+.swift
│   │   ├── Navigator.swift
│   │   └── View Controllers
│   │   ├── List People
│   │   │   ├── ListPeopleViewController.swift
│   │   │   └── UserCellView.swift
│   │   ├── List Timeline
│   │   │   ├── ListTimelineViewController.swift
│   │   │   └── TweetCellView.swift
│   │   └── Person Timeline
│   │   └── PersonTimelineViewController.swift
│   ├── Mac Tweetie
│   │   ├── AppDelegate.swift
│   │   ├── Assets
│   │   │   ├── Assets.xcassets
│   │   │   │   └── AppIcon.appiconset
│   │   │   │   └── Contents.json
│   │   │   ├── Base.lproj
│   │   │   │   └── Main.storyboard
│   │   │   └── Info.plist
│   │   ├── Extensions
│   │   │   └── ChromelessWindow.swift
│   │   ├── Navigator.swift
│   │   └── ViewControllers
│   │   ├── List People
│   │   │   ├── ListPeopleViewController.swift
│   │   │   └── UserCellView.swift
│   │   ├── List Timeline
│   │   │   ├── ListTimelineViewController.swift
│   │   │   └── TweetCellView.swift
│   │   └── Person Timeline
│   │   └── PersonTimelineViewController.swift
│   ├── Podfile
│   ├── TweetieTests
│   │   ├── Info.plist
│   │   ├── ListPeopleViewModelTests.swift
│   │   ├── ListTimelineViewModelTests.swift
│   │   ├── PersonTimelineViewModelTests.swift
│   │   ├── TestData.swift
│   │   ├── TestRealm.swift
│   │   └── TwitterTestAPI.swift
│   ├── Tweetie.xcodeproj
│   │   ├── project.pbxproj
│   │   └── project.xcworkspace
│   │   ├── contents.xcworkspacedata
│   │   └── xcshareddata
│   │   └── IDEWorkspaceChecks.plist
│   ├── TwitterAPI
│   │   ├── DateFormatter+Twitter.swift
│   │   ├── Timeline
│   │   │   ├── TimelineCursor.swift
│   │   │   └── TimelineFetcher.swift
│   │   ├── TwitterAccount.swift
│   │   └── TwitterAPI.swift
│   └── View Models
│   ├── ListPeopleViewModel.swift
│   ├── ListTimelineViewModel.swift
│   └── PersonTimelineViewModel.swift
├── 25-building-complete-rxswift-app
│   ├── challenge
│   │   ├── challenge3
│   │   │   └── QuickTodo
│   │   │   ├── Podfile
│   │   │   ├── QuickTodo
│   │   │   │   ├── AppDelegate.swift
│   │   │   │   ├── Assets.xcassets
│   │   │   │   │   ├── AppIcon.appiconset
│   │   │   │   │   │   └── Contents.json
│   │   │   │   │   ├── Contents.json
│   │   │   │   │   ├── ItemChecked.imageset
│   │   │   │   │   │   ├── Contents.json
│   │   │   │   │   │   ├── ItemChecked@2x.png
│   │   │   │   │   │   └── ItemChecked@3x.png
│   │   │   │   │   └── ItemNotChecked.imageset
│   │   │   │   │   ├── Contents.json
│   │   │   │   │   ├── ItemNotChecked@2x.png
│   │   │   │   │   └── ItemNotChecked@3x.png
│   │   │   │   ├── Base.lproj
│   │   │   │   │   ├── LaunchScreen.storyboard
│   │   │   │   │   └── Main.storyboard
│   │   │   │   ├── Cells
│   │   │   │   │   └── TaskItemTableViewCell.swift
│   │   │   │   ├── Controllers
│   │   │   │   │   ├── EditTaskViewController.swift
│   │   │   │   │   ├── EditTaskViewModel.swift
│   │   │   │   │   ├── PushedEditTaskViewController.swift
│   │   │   │   │   ├── PushedEditTaskViewModel.swift
│   │   │   │   │   ├── TasksViewController.swift
│   │   │   │   │   └── TasksViewModel.swift
│   │   │   │   ├── Extensions
│   │   │   │   │   └── UINavigationController+Rx.swift
│   │   │   │   ├── Info.plist
│   │   │   │   ├── Model
│   │   │   │   │   ├── BindableType.swift
│   │   │   │   │   └── TaskItem.swift
│   │   │   │   ├── Scenes
│   │   │   │   │   ├── SceneCoordinator.swift
│   │   │   │   │   ├── SceneCoordinatorType.swift
│   │   │   │   │   ├── Scene.swift
│   │   │   │   │   ├── SceneTransitionType.swift
│   │   │   │   │   └── Scene+ViewController.swift
│   │   │   │   └── Services
│   │   │   │   ├── TaskService.swift
│   │   │   │   └── TaskServiceType.swift
│   │   │   └── QuickTodo.xcodeproj
│   │   │   └── project.pbxproj
│   │   └── challenges1-2
│   │   └── QuickTodo
│   │   ├── Podfile
│   │   ├── QuickTodo
│   │   │   ├── AppDelegate.swift
│   │   │   ├── Assets.xcassets
│   │   │   │   ├── AppIcon.appiconset
│   │   │   │   │   └── Contents.json
│   │   │   │   ├── Contents.json
│   │   │   │   ├── ItemChecked.imageset
│   │   │   │   │   ├── Contents.json
│   │   │   │   │   ├── ItemChecked@2x.png
│   │   │   │   │   └── ItemChecked@3x.png
│   │   │   │   └── ItemNotChecked.imageset
│   │   │   │   ├── Contents.json
│   │   │   │   ├── ItemNotChecked@2x.png
│   │   │   │   └── ItemNotChecked@3x.png
│   │   │   ├── Base.lproj
│   │   │   │   ├── LaunchScreen.storyboard
│   │   │   │   └── Main.storyboard
│   │   │   ├── Cells
│   │   │   │   └── TaskItemTableViewCell.swift
│   │   │   ├── Controllers
│   │   │   │   ├── EditTaskViewController.swift
│   │   │   │   ├── EditTaskViewModel.swift
│   │   │   │   ├── TasksViewController.swift
│   │   │   │   └── TasksViewModel.swift
│   │   │   ├── Extensions
│   │   │   │   └── UINavigationController+Rx.swift
│   │   │   ├── Info.plist
│   │   │   ├── Model
│   │   │   │   ├── BindableType.swift
│   │   │   │   └── TaskItem.swift
│   │   │   ├── Scenes
│   │   │   │   ├── SceneCoordinator.swift
│   │   │   │   ├── SceneCoordinatorType.swift
│   │   │   │   ├── Scene.swift
│   │   │   │   ├── SceneTransitionType.swift
│   │   │   │   └── Scene+ViewController.swift
│   │   │   └── Services
│   │   │   ├── TaskService.swift
│   │   │   └── TaskServiceType.swift
│   │   └── QuickTodo.xcodeproj
│   │   ├── project.pbxproj
│   │   └── project.xcworkspace
│   │   └── contents.xcworkspacedata
│   ├── final
│   │   └── QuickTodo
│   │   ├── Podfile
│   │   ├── QuickTodo
│   │   │   ├── AppDelegate.swift
│   │   │   ├── Assets.xcassets
│   │   │   │   ├── AppIcon.appiconset
│   │   │   │   │   └── Contents.json
│   │   │   │   ├── Contents.json
│   │   │   │   ├── ItemChecked.imageset
│   │   │   │   │   ├── Contents.json
│   │   │   │   │   ├── ItemChecked@2x.png
│   │   │   │   │   └── ItemChecked@3x.png
│   │   │   │   └── ItemNotChecked.imageset
│   │   │   │   ├── Contents.json
│   │   │   │   ├── ItemNotChecked@2x.png
│   │   │   │   └── ItemNotChecked@3x.png
│   │   │   ├── Base.lproj
│   │   │   │   ├── LaunchScreen.storyboard
│   │   │   │   └── Main.storyboard
│   │   │   ├── Cells
│   │   │   │   └── TaskItemTableViewCell.swift
│   │   │   ├── Controllers
│   │   │   │   ├── EditTaskViewController.swift
│   │   │   │   ├── EditTaskViewModel.swift
│   │   │   │   ├── TasksViewController.swift
│   │   │   │   └── TasksViewModel.swift
│   │   │   ├── Extensions
│   │   │   │   └── UINavigationController+Rx.swift
│   │   │   ├── Info.plist
│   │   │   ├── Model
│   │   │   │   ├── BindableType.swift
│   │   │   │   └── TaskItem.swift
│   │   │   ├── Scenes
│   │   │   │   ├── SceneCoordinator.swift
│   │   │   │   ├── SceneCoordinatorType.swift
│   │   │   │   ├── Scene.swift
│   │   │   │   ├── SceneTransitionType.swift
│   │   │   │   └── Scene+ViewController.swift
│   │   │   └── Services
│   │   │   ├── TaskService.swift
│   │   │   └── TaskServiceType.swift
│   │   └── QuickTodo.xcodeproj
│   │   ├── project.pbxproj
│   │   └── project.xcworkspace
│   │   └── contents.xcworkspacedata
│   └── starter
│   └── QuickTodo
│   ├── Podfile
│   ├── QuickTodo
│   │   ├── AppDelegate.swift
│   │   ├── Assets.xcassets
│   │   │   ├── AppIcon.appiconset
│   │   │   │   └── Contents.json
│   │   │   ├── Contents.json
│   │   │   ├── ItemChecked.imageset
│   │   │   │   ├── Contents.json
│   │   │   │   ├── ItemChecked@2x.png
│   │   │   │   └── ItemChecked@3x.png
│   │   │   └── ItemNotChecked.imageset
│   │   │   ├── Contents.json
│   │   │   ├── ItemNotChecked@2x.png
│   │   │   └── ItemNotChecked@3x.png
│   │   ├── Base.lproj
│   │   │   ├── LaunchScreen.storyboard
│   │   │   └── Main.storyboard
│   │   ├── Cells
│   │   │   └── TaskItemTableViewCell.swift
│   │   ├── Controllers
│   │   │   ├── EditTaskViewController.swift
│   │   │   ├── EditTaskViewModel.swift
│   │   │   ├── TasksViewController.swift
│   │   │   └── TasksViewModel.swift
│   │   ├── Extensions
│   │   │   └── UINavigationController+Rx.swift
│   │   ├── Info.plist
│   │   ├── Model
│   │   │   ├── BindableType.swift
│   │   │   └── TaskItem.swift
│   │   ├── Scenes
│   │   │   ├── SceneCoordinator.swift
│   │   │   ├── SceneCoordinatorType.swift
│   │   │   ├── Scene.swift
│   │   │   ├── SceneTransitionType.swift
│   │   │   └── Scene+ViewController.swift
│   │   └── Services
│   │   ├── TaskService.swift
│   │   └── TaskServiceType.swift
│   └── QuickTodo.xcodeproj
│   ├── project.pbxproj
│   └── project.xcworkspace
│   ├── contents.xcworkspacedata
│   └── xcshareddata
│   └── IDEWorkspaceChecks.plist
├── __MACOSX
│   ├── 02-observable-pg
│   │   ├── challenge
│   │   │   ├── Challenge1-Finished
│   │   │   │   └── RxPlayground
│   │   │   │   ├── RxSwiftPlayground.playground
│   │   │   │   │   └── Sources
│   │   │   │   └── RxSwiftPlayground.xcworkspace
│   │   │   │   └── xcshareddata
│   │   │   ├── Challenge1-Starter
│   │   │   │   └── RxPlayground
│   │   │   │   ├── RxSwiftPlayground.playground
│   │   │   │   │   └── Sources
│   │   │   │   └── RxSwiftPlayground.xcworkspace
│   │   │   │   └── xcshareddata
│   │   │   ├── Challenge2-Finished
│   │   │   │   └── RxPlayground
│   │   │   │   ├── RxSwiftPlayground.playground
│   │   │   │   │   └── Sources
│   │   │   │   └── RxSwiftPlayground.xcworkspace
│   │   │   │   └── xcshareddata
│   │   │   └── Challenge2-Starter
│   │   │   └── RxPlayground
│   │   │   ├── RxSwiftPlayground.playground
│   │   │   │   └── Sources
│   │   │   └── RxSwiftPlayground.xcworkspace
│   │   │   └── xcshareddata
│   │   ├── final
│   │   │   └── RxPlayground
│   │   │   ├── RxSwiftPlayground.playground
│   │   │   │   ├── Resources
│   │   │   │   └── Sources
│   │   │   └── RxSwiftPlayground.xcworkspace
│   │   │   └── xcshareddata
│   │   ├── projects
│   │   │   ├── challenge
│   │   │   │   ├── Challenge1-Finished
│   │   │   │   │   └── RxPlayground
│   │   │   │   │   ├── RxSwiftPlayground.playground
│   │   │   │   │   │   └── Sources
│   │   │   │   │   └── RxSwiftPlayground.xcworkspace
│   │   │   │   │   └── xcshareddata
│   │   │   │   ├── Challenge1-Starter
│   │   │   │   │   └── RxPlayground
│   │   │   │   │   ├── RxSwiftPlayground.playground
│   │   │   │   │   │   └── Sources
│   │   │   │   │   └── RxSwiftPlayground.xcworkspace
│   │   │   │   │   └── xcshareddata
│   │   │   │   ├── Challenge2-Finished
│   │   │   │   │   └── RxPlayground
│   │   │   │   │   ├── RxSwiftPlayground.playground
│   │   │   │   │   │   └── Sources
│   │   │   │   │   └── RxSwiftPlayground.xcworkspace
│   │   │   │   │   └── xcshareddata
│   │   │   │   └── Challenge2-Starter
│   │   │   │   └── RxPlayground
│   │   │   │   ├── RxSwiftPlayground.playground
│   │   │   │   │   └── Sources
│   │   │   │   └── RxSwiftPlayground.xcworkspace
│   │   │   │   └── xcshareddata
│   │   │   ├── final
│   │   │   │   └── RxPlayground
│   │   │   │   ├── RxSwiftPlayground.playground
│   │   │   │   │   ├── Resources
│   │   │   │   │   └── Sources
│   │   │   │   └── RxSwiftPlayground.xcworkspace
│   │   │   │   └── xcshareddata
│   │   │   └── starter
│   │   │   └── RxPlayground
│   │   │   ├── RxSwiftPlayground.playground
│   │   │   │   ├── Resources
│   │   │   │   └── Sources
│   │   │   └── RxSwiftPlayground.xcworkspace
│   │   │   └── xcshareddata
│   │   └── starter
│   │   └── RxPlayground
│   │   ├── RxSwiftPlayground.playground
│   │   │   ├── Resources
│   │   │   └── Sources
│   │   └── RxSwiftPlayground.xcworkspace
│   │   └── xcshareddata
│   ├── 03-subjects
│   │   ├── challenge
│   │   │   ├── Challenge1-Finished
│   │   │   │   └── RxPlayground
│   │   │   │   ├── RxSwiftPlayground.playground
│   │   │   │   │   └── Sources
│   │   │   │   └── RxSwiftPlayground.xcworkspace
│   │   │   │   └── xcshareddata
│   │   │   ├── Challenge1-Starter
│   │   │   │   └── RxPlayground
│   │   │   │   ├── RxSwiftPlayground.playground
│   │   │   │   │   └── Sources
│   │   │   │   └── RxSwiftPlayground.xcworkspace
│   │   │   │   └── xcshareddata
│   │   │   ├── Challenge2-Finished
│   │   │   │   └── RxPlayground
│   │   │   │   ├── RxSwiftPlayground.playground
│   │   │   │   │   └── Sources
│   │   │   │   └── RxSwiftPlayground.xcworkspace
│   │   │   │   └── xcshareddata
│   │   │   └── Challenge2-Starter
│   │   │   └── RxPlayground
│   │   │   ├── RxSwiftPlayground.playground
│   │   │   │   └── Sources
│   │   │   └── RxSwiftPlayground.xcworkspace
│   │   │   └── xcshareddata
│   │   ├── final
│   │   │   └── RxPlayground
│   │   │   ├── RxSwiftPlayground.playground
│   │   │   │   └── Sources
│   │   │   └── RxSwiftPlayground.xcworkspace
│   │   │   └── xcshareddata
│   │   └── starter
│   │   └── RxPlayground
│   │   ├── RxSwiftPlayground.playground
│   │   │   └── Sources
│   │   └── RxSwiftPlayground.xcworkspace
│   │   └── xcshareddata
│   ├── 04-observables-in-practice
│   │   ├── challenges
│   │   │   ├── Combinestagram
│   │   │   │   ├── Assets.xcassets
│   │   │   │   │   ├── AppIcon.appiconset
│   │   │   │   │   └── IMG_1907.imageset
│   │   │   │   └── Base.lproj
│   │   │   └── Combinestagram.xcodeproj
│   │   │   └── project.xcworkspace
│   │   ├── final
│   │   │   ├── Combinestagram
│   │   │   │   ├── Assets.xcassets
│   │   │   │   │   ├── AppIcon.appiconset
│   │   │   │   │   └── IMG_1907.imageset
│   │   │   │   └── Base.lproj
│   │   │   └── Combinestagram.xcodeproj
│   │   │   └── project.xcworkspace
│   │   └── starter
│   │   ├── Combinestagram
│   │   │   ├── Assets.xcassets
│   │   │   │   ├── AppIcon.appiconset
│   │   │   │   └── IMG_1907.imageset
│   │   │   └── Base.lproj
│   │   └── Combinestagram.xcodeproj
│   │   └── project.xcworkspace
│   │   └── xcshareddata
│   ├── 05-filtering-operators
│   │   ├── challenge
│   │   │   ├── Challenge1-Finished
│   │   │   │   └── RxPlayground
│   │   │   │   ├── RxSwiftPlayground.playground
│   │   │   │   │   └── Sources
│   │   │   │   └── RxSwiftPlayground.xcworkspace
│   │   │   │   └── xcshareddata
│   │   │   └── Challenge1-Starter
│   │   │   └── RxPlayground
│   │   │   ├── RxSwiftPlayground.playground
│   │   │   │   └── Sources
│   │   │   └── RxSwiftPlayground.xcworkspace
│   │   │   └── xcshareddata
│   │   ├── final
│   │   │   └── RxPlayground
│   │   │   ├── RxSwiftPlayground.playground
│   │   │   │   └── Sources
│   │   │   └── RxSwiftPlayground.xcworkspace
│   │   │   └── xcshareddata
│   │   └── starter
│   │   └── RxPlayground
│   │   ├── RxSwiftPlayground.playground
│   │   │   └── Sources
│   │   └── RxSwiftPlayground.xcworkspace
│   │   └── xcshareddata
│   ├── 06-filtering-operators-in-practice
│   │   ├── final
│   │   │   ├── Combinestagram
│   │   │   │   ├── Assets.xcassets
│   │   │   │   │   ├── AppIcon.appiconset
│   │   │   │   │   └── IMG_1907.imageset
│   │   │   │   └── Base.lproj
│   │   │   └── Combinestagram.xcodeproj
│   │   │   └── project.xcworkspace
│   │   └── starter
│   │   ├── Combinestagram
│   │   │   ├── Assets.xcassets
│   │   │   │   ├── AppIcon.appiconset
│   │   │   │   └── IMG_1907.imageset
│   │   │   └── Base.lproj
│   │   └── Combinestagram.xcodeproj
│   │   └── project.xcworkspace
│   ├── 07-transforming-operators
│   │   ├── challenge
│   │   │   ├── Challenge1-Finished
│   │   │   │   └── RxPlayground
│   │   │   │   ├── RxSwiftPlayground.playground
│   │   │   │   │   └── Sources
│   │   │   │   └── RxSwiftPlayground.xcworkspace
│   │   │   │   └── xcshareddata
│   │   │   └── Challenge1-Starter
│   │   │   └── RxPlayground
│   │   │   ├── RxSwiftPlayground.playground
│   │   │   │   └── Sources
│   │   │   └── RxSwiftPlayground.xcworkspace
│   │   │   └── xcshareddata
│   │   ├── final
│   │   │   └── RxPlayground
│   │   │   ├── RxSwiftPlayground.playground
│   │   │   │   └── Sources
│   │   │   └── RxSwiftPlayground.xcworkspace
│   │   │   └── xcshareddata
│   │   └── starter
│   │   └── RxPlayground
│   │   ├── RxSwiftPlayground.playground
│   │   │   └── Sources
│   │   └── RxSwiftPlayground.xcworkspace
│   │   └── xcshareddata
│   ├── 08-transforming-operators-in-practice
│   │   ├── challenges
│   │   │   ├── GitFeed
│   │   │   │   ├── Assets.xcassets
│   │   │   │   │   ├── AppIcon.appiconset
│   │   │   │   │   └── blank-avatar.imageset
│   │   │   │   └── Base.lproj
│   │   │   └── GitFeed.xcodeproj
│   │   │   └── project.xcworkspace
│   │   ├── final
│   │   │   ├── GitFeed
│   │   │   │   ├── Assets.xcassets
│   │   │   │   │   ├── AppIcon.appiconset
│   │   │   │   │   └── blank-avatar.imageset
│   │   │   │   └── Base.lproj
│   │   │   └── GitFeed.xcodeproj
│   │   │   └── project.xcworkspace
│   │   └── starter
│   │   ├── GitFeed
│   │   │   ├── Assets.xcassets
│   │   │   │   ├── AppIcon.appiconset
│   │   │   │   └── blank-avatar.imageset
│   │   │   └── Base.lproj
│   │   └── GitFeed.xcodeproj
│   │   └── project.xcworkspace
│   ├── 09-combining-operators
│   │   ├── challenge
│   │   │   ├── Challenge1-Finished
│   │   │   │   ├── RxSwiftPlayground.playground
│   │   │   │   │   ├── Resources
│   │   │   │   │   └── Sources
│   │   │   │   └── RxSwiftPlayground.xcworkspace
│   │   │   │   └── xcshareddata
│   │   │   └── Challenge1-Starter
│   │   │   ├── RxSwiftPlayground.playground
│   │   │   │   ├── Resources
│   │   │   │   └── Sources
│   │   │   └── RxSwiftPlayground.xcworkspace
│   │   │   └── xcshareddata
│   │   ├── final
│   │   │   ├── RxSwiftPlayground.playground
│   │   │   │   ├── Resources
│   │   │   │   └── Sources
│   │   │   └── RxSwiftPlayground.xcworkspace
│   │   │   └── xcshareddata
│   │   └── starter
│   │   ├── RxSwiftPlayground.playground
│   │   │   ├── Resources
│   │   │   └── Sources
│   │   └── RxSwiftPlayground.xcworkspace
│   │   └── xcshareddata
│   ├── 10-combining-operators-in-practice
│   │   ├── challenge
│   │   │   ├── challenge1
│   │   │   │   └── OurPlanet
│   │   │   │   ├── OurPlanet
│   │   │   │   │   ├── Assets.xcassets
│   │   │   │   │   │   ├── AppIcon.appiconset
│   │   │   │   │   │   └── background.imageset
│   │   │   │   │   ├── Base.lproj
│   │   │   │   │   ├── Model
│   │   │   │   │   └── Resources
│   │   │   │   └── OurPlanet.xcodeproj
│   │   │   │   └── project.xcworkspace
│   │   │   ├── challenge2-1
│   │   │   │   └── OurPlanet
│   │   │   │   ├── OurPlanet
│   │   │   │   │   ├── Assets.xcassets
│   │   │   │   │   │   ├── AppIcon.appiconset
│   │   │   │   │   │   └── background.imageset
│   │   │   │   │   ├── Base.lproj
│   │   │   │   │   ├── Model
│   │   │   │   │   └── Resources
│   │   │   │   └── OurPlanet.xcodeproj
│   │   │   │   └── project.xcworkspace
│   │   │   └── challenge2-2
│   │   │   └── OurPlanet
│   │   │   ├── OurPlanet
│   │   │   │   ├── Assets.xcassets
│   │   │   │   │   ├── AppIcon.appiconset
│   │   │   │   │   └── background.imageset
│   │   │   │   ├── Base.lproj
│   │   │   │   ├── Model
│   │   │   │   └── Resources
│   │   │   └── OurPlanet.xcodeproj
│   │   │   └── project.xcworkspace
│   │   ├── final
│   │   │   └── OurPlanet
│   │   │   ├── OurPlanet
│   │   │   │   ├── Assets.xcassets
│   │   │   │   │   ├── AppIcon.appiconset
│   │   │   │   │   └── background.imageset
│   │   │   │   ├── Base.lproj
│   │   │   │   ├── Model
│   │   │   │   └── Resources
│   │   │   └── OurPlanet.xcodeproj
│   │   │   └── project.xcworkspace
│   │   │   └── xcshareddata
│   │   └── starter
│   │   └── OurPlanet
│   │   ├── OurPlanet
│   │   │   ├── Assets.xcassets
│   │   │   │   ├── AppIcon.appiconset
│   │   │   │   └── background.imageset
│   │   │   ├── Base.lproj
│   │   │   ├── Model
│   │   │   └── Resources
│   │   └── OurPlanet.xcodeproj
│   │   └── project.xcworkspace
│   │   └── xcshareddata
│   ├── 11-time-based-operators
│   │   ├── challenge
│   │   │   ├── RxSwiftPlayground.playground
│   │   │   │   ├── Pages
│   │   │   │   │   ├── buffer.xcplaygroundpage
│   │   │   │   │   ├── delay.xcplaygroundpage
│   │   │   │   │   ├── replay.xcplaygroundpage
│   │   │   │   │   ├── timeout.xcplaygroundpage
│   │   │   │   │   └── window.xcplaygroundpage
│   │   │   │   └── Sources
│   │   │   └── RxSwiftPlayground.xcworkspace
│   │   │   └── xcshareddata
│   │   ├── final
│   │   │   ├── RxSwiftPlayground.playground
│   │   │   │   ├── Pages
│   │   │   │   │   ├── buffer.xcplaygroundpage
│   │   │   │   │   ├── delay.xcplaygroundpage
│   │   │   │   │   ├── replay.xcplaygroundpage
│   │   │   │   │   ├── timeout.xcplaygroundpage
│   │   │   │   │   └── window.xcplaygroundpage
│   │   │   │   └── Sources
│   │   │   └── RxSwiftPlayground.xcworkspace
│   │   │   └── xcshareddata
│   │   └── starter
│   │   ├── RxSwiftPlayground.playground
│   │   │   ├── Pages
│   │   │   │   ├── buffer.xcplaygroundpage
│   │   │   │   ├── delay.xcplaygroundpage
│   │   │   │   ├── replay.xcplaygroundpage
│   │   │   │   ├── timeout.xcplaygroundpage
│   │   │   │   └── window.xcplaygroundpage
│   │   │   └── Sources
│   │   └── RxSwiftPlayground.xcworkspace
│   │   └── xcshareddata
│   ├── 12-beginning-rxcocoa
│   │   ├── challenge
│   │   │   ├── Wundercast
│   │   │   │   ├── Assets
│   │   │   │   ├── Assets.xcassets
│   │   │   │   │   └── AppIcon.appiconset
│   │   │   │   ├── Base.lproj
│   │   │   │   ├── Controllers
│   │   │   │   └── Utils
│   │   │   └── Wundercast.xcodeproj
│   │   │   └── project.xcworkspace
│   │   ├── final
│   │   │   ├── Wundercast
│   │   │   │   ├── Assets
│   │   │   │   ├── Assets.xcassets
│   │   │   │   │   └── AppIcon.appiconset
│   │   │   │   ├── Base.lproj
│   │   │   │   ├── Controllers
│   │   │   │   └── Utils
│   │   │   └── Wundercast.xcodeproj
│   │   │   └── project.xcworkspace
│   │   └── starter
│   │   ├── Wundercast
│   │   │   ├── Assets
│   │   │   ├── Assets.xcassets
│   │   │   │   └── AppIcon.appiconset
│   │   │   ├── Base.lproj
│   │   │   ├── Controllers
│   │   │   └── Utils
│   │   └── Wundercast.xcodeproj
│   │   └── project.xcworkspace
│   ├── 13-intermediate-rxcocoa
│   │   ├── challenges
│   │   │   ├── Wundercast
│   │   │   │   ├── Assets
│   │   │   │   ├── Assets.xcassets
│   │   │   │   │   ├── AppIcon.appiconset
│   │   │   │   │   ├── map.imageset
│   │   │   │   │   └── place-location.imageset
│   │   │   │   ├── Base.lproj
│   │   │   │   ├── Controllers
│   │   │   │   │   └── Extensions
│   │   │   │   └── Utils
│   │   │   └── Wundercast.xcodeproj
│   │   │   └── project.xcworkspace
│   │   ├── final
│   │   │   ├── Wundercast
│   │   │   │   ├── Assets
│   │   │   │   ├── Assets.xcassets
│   │   │   │   │   ├── AppIcon.appiconset
│   │   │   │   │   ├── map.imageset
│   │   │   │   │   └── place-location.imageset
│   │   │   │   ├── Base.lproj
│   │   │   │   ├── Controllers
│   │   │   │   │   └── Extensions
│   │   │   │   └── Utils
│   │   │   └── Wundercast.xcodeproj
│   │   │   └── project.xcworkspace
│   │   └── starter
│   │   ├── Wundercast
│   │   │   ├── Assets
│   │   │   ├── Assets.xcassets
│   │   │   │   ├── AppIcon.appiconset
│   │   │   │   ├── map.imageset
│   │   │   │   └── place-location.imageset
│   │   │   ├── Base.lproj
│   │   │   ├── Controllers
│   │   │   │   └── Extensions
│   │   │   └── Utils
│   │   └── Wundercast.xcodeproj
│   │   └── project.xcworkspace
│   ├── 14-error-handling-in-practice
│   │   ├── challenge
│   │   │   ├── Wundercast
│   │   │   │   ├── Assets
│   │   │   │   ├── Assets.xcassets
│   │   │   │   │   ├── AppIcon.appiconset
│   │   │   │   │   ├── closeSmall.imageset
│   │   │   │   │   ├── key.imageset
│   │   │   │   │   ├── map.imageset
│   │   │   │   │   └── place-location.imageset
│   │   │   │   ├── Base.lproj
│   │   │   │   ├── Controllers
│   │   │   │   ├── Extensions
│   │   │   │   └── Utils
│   │   │   └── Wundercast.xcodeproj
│   │   │   └── project.xcworkspace
│   │   ├── final
│   │   │   ├── Wundercast
│   │   │   │   ├── Assets
│   │   │   │   ├── Assets.xcassets
│   │   │   │   │   ├── AppIcon.appiconset
│   │   │   │   │   ├── closeSmall.imageset
│   │   │   │   │   ├── key.imageset
│   │   │   │   │   ├── map.imageset
│   │   │   │   │   └── place-location.imageset
│   │   │   │   ├── Base.lproj
│   │   │   │   ├── Controllers
│   │   │   │   ├── Extensions
│   │   │   │   └── Utils
│   │   │   └── Wundercast.xcodeproj
│   │   │   └── project.xcworkspace
│   │   └── starter
│   │   ├── Wundercast
│   │   │   ├── Assets
│   │   │   ├── Assets.xcassets
│   │   │   │   ├── AppIcon.appiconset
│   │   │   │   ├── closeSmall.imageset
│   │   │   │   ├── key.imageset
│   │   │   │   ├── map.imageset
│   │   │   │   └── place-location.imageset
│   │   │   ├── Base.lproj
│   │   │   ├── Controllers
│   │   │   ├── Extensions
│   │   │   └── Utils
│   │   └── Wundercast.xcodeproj
│   │   └── project.xcworkspace
│   ├── 15-intro-to-schedulers
│   │   ├── final
│   │   │   ├── Schedulers
│   │   │   └── Schedulers.xcodeproj
│   │   │   └── project.xcworkspace
│   │   └── starter
│   │   ├── Schedulers
│   │   └── Schedulers.xcodeproj
│   │   └── project.xcworkspace
│   ├── 16-testing-with-rxtests
│   │   ├── final
│   │   │   └── Testing
│   │   │   ├── Base.lproj
│   │   │   ├── Testing
│   │   │   │   └── Assets.xcassets
│   │   │   │   └── AppIcon.appiconset
│   │   │   ├── TestingTests
│   │   │   └── Testing.xcodeproj
│   │   │   └── project.xcworkspace
│   │   │   └── xcshareddata
│   │   └── starter
│   │   └── Testing
│   │   ├── Base.lproj
│   │   ├── Testing
│   │   │   └── Assets.xcassets
│   │   │   └── AppIcon.appiconset
│   │   ├── TestingTests
│   │   └── Testing.xcodeproj
│   │   └── project.xcworkspace
│   │   └── xcshareddata
│   ├── 17-creating-custom-reactive-extension
│   │   ├── challenge
│   │   │   ├── iGif
│   │   │   │   ├── Assets.xcassets
│   │   │   │   │   └── AppIcon.appiconset
│   │   │   │   └── Base.lproj
│   │   │   ├── iGifTests
│   │   │   └── iGif.xcodeproj
│   │   │   └── project.xcworkspace
│   │   ├── final
│   │   │   ├── iGif
│   │   │   │   ├── Assets.xcassets
│   │   │   │   │   └── AppIcon.appiconset
│   │   │   │   └── Base.lproj
│   │   │   ├── iGifTests
│   │   │   └── iGif.xcodeproj
│   │   │   └── project.xcworkspace
│   │   └── starter
│   │   ├── iGif
│   │   │   ├── Assets.xcassets
│   │   │   │   └── AppIcon.appiconset
│   │   │   └── Base.lproj
│   │   ├── iGifTests
│   │   └── iGif.xcodeproj
│   │   └── project.xcworkspace
│   ├── 24-mvvm-with-rxswift
│   │   ├── challenges
│   │   │   └── Tweetie
│   │   │   ├── APICache
│   │   │   │   └── 1.1
│   │   │   │   ├── lists
│   │   │   │   └── statuses
│   │   │   ├── Cross Platform Extensions
│   │   │   ├── Data Entities
│   │   │   ├── iOS Tweetie
│   │   │   │   ├── Assets
│   │   │   │   │   ├── Assets.xcassets
│   │   │   │   │   │   └── AppIcon.appiconset
│   │   │   │   │   └── Base.lproj
│   │   │   │   ├── Extensions
│   │   │   │   └── View Controllers
│   │   │   │   ├── List People
│   │   │   │   ├── List Timeline
│   │   │   │   └── Person Timeline
│   │   │   ├── Mac Tweetie
│   │   │   │   ├── Assets
│   │   │   │   │   ├── Assets.xcassets
│   │   │   │   │   │   └── AppIcon.appiconset
│   │   │   │   │   └── Base.lproj
│   │   │   │   ├── Extensions
│   │   │   │   └── ViewControllers
│   │   │   │   ├── List People
│   │   │   │   ├── List Timeline
│   │   │   │   └── Person Timeline
│   │   │   ├── TweetieTests
│   │   │   ├── Tweetie.xcodeproj
│   │   │   │   └── project.xcworkspace
│   │   │   │   └── xcshareddata
│   │   │   ├── TwitterAPI
│   │   │   │   └── Timeline
│   │   │   └── View Models
│   │   ├── final
│   │   │   └── Tweetie
│   │   │   ├── APICache
│   │   │   │   └── 1.1
│   │   │   │   ├── lists
│   │   │   │   └── statuses
│   │   │   ├── Cross Platform Extensions
│   │   │   ├── Data Entities
│   │   │   ├── iOS Tweetie
│   │   │   │   ├── Assets
│   │   │   │   │   ├── Assets.xcassets
│   │   │   │   │   │   └── AppIcon.appiconset
│   │   │   │   │   └── Base.lproj
│   │   │   │   ├── Extensions
│   │   │   │   └── View Controllers
│   │   │   │   ├── List People
│   │   │   │   ├── List Timeline
│   │   │   │   └── Person Timeline
│   │   │   ├── Mac Tweetie
│   │   │   │   ├── Assets
│   │   │   │   │   ├── Assets.xcassets
│   │   │   │   │   │   └── AppIcon.appiconset
│   │   │   │   │   └── Base.lproj
│   │   │   │   ├── Extensions
│   │   │   │   └── ViewControllers
│   │   │   │   ├── List People
│   │   │   │   ├── List Timeline
│   │   │   │   └── Person Timeline
│   │   │   ├── TweetieTests
│   │   │   ├── Tweetie.xcodeproj
│   │   │   │   └── project.xcworkspace
│   │   │   │   └── xcshareddata
│   │   │   ├── TwitterAPI
│   │   │   │   └── Timeline
│   │   │   └── View Models
│   │   └── starter
│   │   └── Tweetie
│   │   ├── APICache
│   │   │   └── 1.1
│   │   │   ├── lists
│   │   │   └── statuses
│   │   ├── Cross Platform Extensions
│   │   ├── Data Entities
│   │   ├── iOS Tweetie
│   │   │   ├── Assets
│   │   │   │   ├── Assets.xcassets
│   │   │   │   │   └── AppIcon.appiconset
│   │   │   │   └── Base.lproj
│   │   │   ├── Extensions
│   │   │   └── View Controllers
│   │   │   ├── List People
│   │   │   ├── List Timeline
│   │   │   └── Person Timeline
│   │   ├── Mac Tweetie
│   │   │   ├── Assets
│   │   │   │   ├── Assets.xcassets
│   │   │   │   │   └── AppIcon.appiconset
│   │   │   │   └── Base.lproj
│   │   │   ├── Extensions
│   │   │   └── ViewControllers
│   │   │   ├── List People
│   │   │   ├── List Timeline
│   │   │   └── Person Timeline
│   │   ├── TweetieTests
│   │   ├── Tweetie.xcodeproj
│   │   │   └── project.xcworkspace
│   │   │   └── xcshareddata
│   │   ├── TwitterAPI
│   │   │   └── Timeline
│   │   └── View Models
│   └── 25-building-complete-rxswift-app
│   ├── challenge
│   │   ├── challenge3
│   │   │   └── QuickTodo
│   │   │   ├── QuickTodo
│   │   │   │   ├── Assets.xcassets
│   │   │   │   │   ├── AppIcon.appiconset
│   │   │   │   │   ├── ItemChecked.imageset
│   │   │   │   │   └── ItemNotChecked.imageset
│   │   │   │   ├── Base.lproj
│   │   │   │   ├── Cells
│   │   │   │   ├── Controllers
│   │   │   │   ├── Extensions
│   │   │   │   ├── Model
│   │   │   │   ├── Scenes
│   │   │   │   └── Services
│   │   │   └── QuickTodo.xcodeproj
│   │   └── challenges1-2
│   │   └── QuickTodo
│   │   ├── QuickTodo
│   │   │   ├── Assets.xcassets
│   │   │   │   ├── AppIcon.appiconset
│   │   │   │   ├── ItemChecked.imageset
│   │   │   │   └── ItemNotChecked.imageset
│   │   │   ├── Base.lproj
│   │   │   ├── Cells
│   │   │   ├── Controllers
│   │   │   ├── Extensions
│   │   │   ├── Model
│   │   │   ├── Scenes
│   │   │   └── Services
│   │   └── QuickTodo.xcodeproj
│   │   └── project.xcworkspace
│   ├── final
│   │   └── QuickTodo
│   │   ├── QuickTodo
│   │   │   ├── Assets.xcassets
│   │   │   │   ├── AppIcon.appiconset
│   │   │   │   ├── ItemChecked.imageset
│   │   │   │   └── ItemNotChecked.imageset
│   │   │   ├── Base.lproj
│   │   │   ├── Cells
│   │   │   ├── Controllers
│   │   │   ├── Extensions
│   │   │   ├── Model
│   │   │   ├── Scenes
│   │   │   └── Services
│   │   └── QuickTodo.xcodeproj
│   │   └── project.xcworkspace
│   └── starter
│   └── QuickTodo
│   ├── QuickTodo
│   │   ├── Assets.xcassets
│   │   │   ├── AppIcon.appiconset
│   │   │   ├── ItemChecked.imageset
│   │   │   └── ItemNotChecked.imageset
│   │   ├── Base.lproj
│   │   ├── Cells
│   │   ├── Controllers
│   │   ├── Extensions
│   │   ├── Model
│   │   ├── Scenes
│   │   └── Services
│   └── QuickTodo.xcodeproj
│   └── project.xcworkspace
│   └── xcshareddata
├── RxSwift_Reactive_Programming_with_Swift_v3.0.epub
└── RxSwift_Reactive_Programming_with_Swift_v3.0.pdf

1403 directories, 1084 files

标签:

实例下载地址

RxSwift Reactive Programming with Swift4

不能下载?内容有错? 点击这里报错 + 投诉 + 提问

好例子网口号:伸出你的我的手 — 分享

网友评论

发表评论

(您的评论需要经过审核才能显示)

查看所有0条评论>>

小贴士

感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。

  • 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
  • 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
  • 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
  • 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。

关于好例子网

本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明

;
报警