Compare commits

...

1 Commits

Author SHA1 Message Date
Carlos García 6cfee6d9d4 Failed attempt 2015-08-06 09:21:50 +02:00
18 changed files with 236 additions and 120 deletions

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<playground version='5.0' target-platform='osx' display-mode='rendered'>
<playground version='5.0' target-platform='osx'>
<timeline fileName='timeline.xctimeline'/>
</playground>

View File

@ -138,7 +138,7 @@
C84969C91B47DE1D00E0BDB9 /* RxTableViewDelegateProxy.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; lineEnding = 0; path = RxTableViewDelegateProxy.swift; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.swift; };
C852A1BD1B6A30DF007A6944 /* NSObject+Rx+CoreGraphics.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; lineEnding = 0; path = "NSObject+Rx+CoreGraphics.swift"; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.swift; };
C86282321B36037100500DC3 /* ControlTarget.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; lineEnding = 0; path = ControlTarget.swift; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.swift; };
C86282331B36037100500DC3 /* NSObject+Rx.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; lineEnding = 0; path = "NSObject+Rx.swift"; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.swift; };
C86282331B36037100500DC3 /* NSObject+Rx.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; lineEnding = 0; path = "NSObject+Rx.swift"; sourceTree = "<group>"; };
C86282341B36037100500DC3 /* NSNotificationCenter+Rx.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; lineEnding = 0; path = "NSNotificationCenter+Rx.swift"; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.swift; };
C86282351B36037100500DC3 /* NSURLSession+Rx.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; lineEnding = 0; path = "NSURLSession+Rx.swift"; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.swift; };
C86282491B3607D500500DC3 /* CoreDataEntityEvent.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; lineEnding = 0; path = CoreDataEntityEvent.swift; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.swift; };

View File

@ -282,8 +282,6 @@
C8DF92E41B0B32DA009BCF9A /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = C8DF92E11B0B32DA009BCF9A /* Main.storyboard */; };
C8DF92E51B0B32DA009BCF9A /* RootViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8DF92E21B0B32DA009BCF9A /* RootViewController.swift */; };
C8DF92E71B0B32F2009BCF9A /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = C8DF92E61B0B32F2009BCF9A /* Main.storyboard */; };
C8DF92EA1B0B38C0009BCF9A /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = C8DF92E91B0B38C0009BCF9A /* Images.xcassets */; };
C8DF92EB1B0B38C0009BCF9A /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = C8DF92E91B0B38C0009BCF9A /* Images.xcassets */; };
C8DF92F61B0B43A4009BCF9A /* IntroductionExampleViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8DF92F51B0B43A4009BCF9A /* IntroductionExampleViewController.swift */; };
C8F57F441AD02DBE006B8702 /* RxCocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C8F57F431AD02DBE006B8702 /* RxCocoa.framework */; };
C8F57F451AD02DBE006B8702 /* RxCocoa.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = C8F57F431AD02DBE006B8702 /* RxCocoa.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
@ -1302,7 +1300,6 @@
C8C46DAB1B47F7110020D71E /* WikipediaSearchCell.xib in Resources */,
C8DF92E31B0B32DA009BCF9A /* LaunchScreen.xib in Resources */,
C8C46DA91B47F7110020D71E /* WikipediaImageCell.xib in Resources */,
C8DF92EA1B0B38C0009BCF9A /* Images.xcassets in Resources */,
C8DF92E41B0B32DA009BCF9A /* Main.storyboard in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
@ -1312,7 +1309,6 @@
buildActionMask = 2147483647;
files = (
C8DF92E71B0B32F2009BCF9A /* Main.storyboard in Resources */,
C8DF92EB1B0B38C0009BCF9A /* Images.xcassets in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@ -1604,6 +1600,7 @@
C8297E661B6CF905000589EA /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage;
INFOPLIST_FILE = "RxExample/Info-iOS.plist";
IPHONEOS_DEPLOYMENT_TARGET = 7.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
@ -1612,12 +1609,14 @@
PRODUCT_NAME = "RxExample-iOS-no-module";
SDKROOT = iphoneos;
SWIFT_OBJC_BRIDGING_HEADER = ../RxCocoa/RxCocoa/RxCocoa.h;
TARGETED_DEVICE_FAMILY = 1;
};
name = Debug;
};
C8297E671B6CF905000589EA /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage;
INFOPLIST_FILE = "RxExample/Info-iOS.plist";
IPHONEOS_DEPLOYMENT_TARGET = 7.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
@ -1626,12 +1625,14 @@
PRODUCT_NAME = "RxExample-iOS-no-module";
SDKROOT = iphoneos;
SWIFT_OBJC_BRIDGING_HEADER = ../RxCocoa/RxCocoa/RxCocoa.h;
TARGETED_DEVICE_FAMILY = 1;
};
name = Release;
};
C8297E681B6CF905000589EA /* Release-Tests */ = {
isa = XCBuildConfiguration;
buildSettings = {
ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage;
INFOPLIST_FILE = "RxExample/Info-iOS.plist";
IPHONEOS_DEPLOYMENT_TARGET = 7.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
@ -1640,6 +1641,7 @@
PRODUCT_NAME = "RxExample-iOS-no-module";
SDKROOT = iphoneos;
SWIFT_OBJC_BRIDGING_HEADER = ../RxCocoa/RxCocoa/RxCocoa.h;
TARGETED_DEVICE_FAMILY = 1;
};
name = "Release-Tests";
};

View File

@ -51,7 +51,7 @@ class APIWrappersViewController: ViewController {
let disposeBag = DisposeBag()
let manager = CLLocationManager()
// let manager = CLLocationManager()
override func viewDidLoad() {
super.viewDidLoad()
@ -194,7 +194,7 @@ class APIWrappersViewController: ViewController {
// MARK: CLLocationManager
/*
if manager.respondsToSelector("requestWhenInUseAuthorization") {
manager.requestWhenInUseAuthorization()
}
@ -213,6 +213,7 @@ class APIWrappersViewController: ViewController {
manager.startUpdatingLocation()
*/

View File

@ -207,17 +207,15 @@ class GitHubSignupViewController : ViewController {
case .SignedUp(let signed):
self.signingUpOulet.hidden = true
let controller: UIAlertController
let alert: UIAlertView
if signed {
controller = UIAlertController(title: "GitHub", message: "Mock signed up to GitHub", preferredStyle: .Alert)
alert = UIAlertView(title: "GitHub", message: "Mock signed up to GitHub", delegate: nil, cancelButtonTitle: "Cancel")
}
else {
controller = UIAlertController(title: "GitHub", message: "Mock signed up failed", preferredStyle: .Alert)
alert = UIAlertView(title: "GitHub", message: "Mock signed up failed", delegate: nil, cancelButtonTitle: "Cancel")
}
controller.addAction(UIAlertAction(title: "Cancel", style: .Cancel, handler: nil))
self.presentViewController(controller, animated: true, completion: nil)
alert.show()
default:
self.signingUpOulet.hidden = true
}

View File

@ -0,0 +1,53 @@
{
"images" : [
{
"orientation" : "portrait",
"idiom" : "iphone",
"extent" : "full-screen",
"minimum-system-version" : "7.0",
"filename" : "launch_image_3.5_inches.png",
"scale" : "2x"
},
{
"extent" : "full-screen",
"idiom" : "iphone",
"subtype" : "retina4",
"filename" : "launch_image_5_inches.png",
"minimum-system-version" : "7.0",
"orientation" : "portrait",
"scale" : "2x"
},
{
"orientation" : "portrait",
"idiom" : "ipad",
"extent" : "full-screen",
"minimum-system-version" : "7.0",
"scale" : "1x"
},
{
"orientation" : "landscape",
"idiom" : "ipad",
"extent" : "full-screen",
"minimum-system-version" : "7.0",
"scale" : "1x"
},
{
"orientation" : "portrait",
"idiom" : "ipad",
"extent" : "full-screen",
"minimum-system-version" : "7.0",
"scale" : "2x"
},
{
"orientation" : "landscape",
"idiom" : "ipad",
"extent" : "full-screen",
"minimum-system-version" : "7.0",
"scale" : "2x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

View File

@ -35,8 +35,6 @@
<key>UISupportedInterfaceOrientations</key>
<array>
<string>UIInterfaceOrientationPortrait</string>
<string>UIInterfaceOrientationLandscapeLeft</string>
<string>UIInterfaceOrientationLandscapeRight</string>
</array>
<key>UISupportedInterfaceOrientations~ipad</key>
<array>

View File

@ -1,30 +1,32 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="6751" systemVersion="14C1514" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" launchScreen="YES" useTraitCollections="YES">
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="7706" systemVersion="14F19a" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" launchScreen="YES">
<dependencies>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="6736"/>
<deployment version="1808" identifier="iOS"/>
<development version="6100" identifier="xcode"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="7703"/>
<capability name="Constraints with non-1.0 multipliers" minToolsVersion="5.1"/>
</dependencies>
<objects>
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/>
<placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
<view contentMode="scaleToFill" id="iN0-l3-epB">
<rect key="frame" x="0.0" y="0.0" width="480" height="480"/>
<rect key="frame" x="0.0" y="0.0" width="320" height="568"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text=" Copyright (c) 2015 Krunoslav Zaher. All rights reserved." textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumFontSize="9" translatesAutoresizingMaskIntoConstraints="NO" id="8ie-xW-0ye">
<rect key="frame" x="20" y="439" width="441" height="21"/>
<rect key="frame" x="20" y="527" width="281" height="21"/>
<fontDescription key="fontDescription" type="system" pointSize="17"/>
<color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
</label>
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Rx Example" textAlignment="center" lineBreakMode="middleTruncation" baselineAdjustment="alignBaselines" minimumFontSize="18" translatesAutoresizingMaskIntoConstraints="NO" id="kId-c2-rCX">
<rect key="frame" x="20" y="140" width="441" height="43"/>
<rect key="frame" x="20" y="169" width="281" height="43"/>
<fontDescription key="fontDescription" type="boldSystem" pointSize="36"/>
<color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
</label>
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="ReactiveExtensionsLogo" translatesAutoresizingMaskIntoConstraints="NO" id="HYT-bZ-Ylb">
<rect key="frame" x="215" y="215" width="50" height="50"/>
<rect key="frame" x="135" y="244" width="50" height="50"/>
<constraints>
<constraint firstAttribute="height" constant="50" id="OKO-dn-znv"/>
<constraint firstAttribute="width" constant="50" id="ej7-uJ-Azr"/>
@ -43,11 +45,15 @@
<constraint firstItem="HYT-bZ-Ylb" firstAttribute="top" secondItem="kId-c2-rCX" secondAttribute="bottom" constant="32" id="h8Z-TK-iu5"/>
</constraints>
<nil key="simulatedStatusBarMetrics"/>
<freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/>
<point key="canvasLocation" x="548" y="455"/>
</view>
</objects>
<resources>
<image name="ReactiveExtensionsLogo" width="50" height="50"/>
</resources>
<simulatedMetricsContainer key="defaultSimulatedMetrics">
<simulatedStatusBarMetrics key="statusBar"/>
<simulatedOrientationMetrics key="orientation"/>
<simulatedScreenMetrics key="destination" type="retina4"/>
</simulatedMetricsContainer>
</document>

View File

@ -25,7 +25,7 @@
<!--Table View Controller-->
<scene sceneID="Mhm-lU-Uhj">
<objects>
<viewController id="bZo-ey-Nha" customClass="TableViewController" customModule="RxExample" customModuleProvider="target" sceneMemberID="viewController">
<viewController id="bZo-ey-Nha" customClass="TableViewController" customModule="RxExample_iOS" customModuleProvider="target" sceneMemberID="viewController">
<layoutGuides>
<viewControllerLayoutGuide type="top" id="uYL-wL-0i2"/>
<viewControllerLayoutGuide type="bottom" id="LL7-L6-PAN"/>
@ -71,7 +71,7 @@
<!--Detail View Controller-->
<scene sceneID="n26-Ac-tgu">
<objects>
<viewController storyboardIdentifier="DetailViewController" id="ack-C5-IwI" customClass="DetailViewController" customModule="RxExample" customModuleProvider="target" sceneMemberID="viewController">
<viewController storyboardIdentifier="DetailViewController" id="ack-C5-IwI" customClass="DetailViewController" customModule="RxExample_iOS" customModuleProvider="target" sceneMemberID="viewController">
<layoutGuides>
<viewControllerLayoutGuide type="top" id="ByU-ts-Mke"/>
<viewControllerLayoutGuide type="bottom" id="zIc-eF-yeA"/>
@ -128,7 +128,7 @@
<!--GitHub Signup-->
<scene sceneID="N2N-1B-sZ4">
<objects>
<viewController id="dHR-mS-HCG" customClass="GitHubSignupViewController" customModule="RxExample" customModuleProvider="target" sceneMemberID="viewController">
<viewController id="dHR-mS-HCG" customClass="GitHubSignupViewController" customModule="RxExample_iOS" customModuleProvider="target" sceneMemberID="viewController">
<layoutGuides>
<viewControllerLayoutGuide type="top" id="08L-bJ-kbo"/>
<viewControllerLayoutGuide type="bottom" id="iau-x6-9gd"/>
@ -226,12 +226,12 @@
</viewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="3y6-mR-ROv" userLabel="First Responder" sceneMemberID="firstResponder"/>
</objects>
<point key="canvasLocation" x="151" y="-1035"/>
<point key="canvasLocation" x="151" y="-1034.9999999999998"/>
</scene>
<!--Partial Updates View Controller-->
<scene sceneID="7Pq-0W-ati">
<objects>
<viewController id="HRf-Xk-9iT" customClass="PartialUpdatesViewController" customModule="RxExample" customModuleProvider="target" sceneMemberID="viewController">
<viewController id="HRf-Xk-9iT" customClass="PartialUpdatesViewController" customModule="RxExample_iOS" customModuleProvider="target" sceneMemberID="viewController">
<layoutGuides>
<viewControllerLayoutGuide type="top" id="rR0-FR-HFT"/>
<viewControllerLayoutGuide type="bottom" id="t4S-nP-d6Z"/>
@ -245,7 +245,7 @@
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
</tableView>
<tableView clipsSubviews="YES" contentMode="scaleToFill" misplaced="YES" alwaysBounceVertical="YES" dataMode="prototypes" style="plain" separatorStyle="default" rowHeight="44" sectionHeaderHeight="22" sectionFooterHeight="22" translatesAutoresizingMaskIntoConstraints="NO" id="6z9-hh-u3N" userLabel="fullreload">
<rect key="frame" x="106" y="64" width="107" height="504"/>
<rect key="frame" x="106" y="64" width="106" height="504"/>
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
</tableView>
<collectionView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" misplaced="YES" dataMode="prototypes" translatesAutoresizingMaskIntoConstraints="NO" id="hob-nw-Jrs">
@ -258,7 +258,7 @@
<inset key="sectionInset" minX="0.0" minY="0.0" maxX="0.0" maxY="0.0"/>
</collectionViewFlowLayout>
<cells>
<collectionViewCell opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" reuseIdentifier="Cell" id="aNq-h7-r3z" customClass="NumberCell" customModule="RxExample" customModuleProvider="target">
<collectionViewCell opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" reuseIdentifier="Cell" id="aNq-h7-r3z" customClass="NumberCell" customModule="RxExample_iOS" customModuleProvider="target">
<rect key="frame" x="0.0" y="0.0" width="50" height="50"/>
<autoresizingMask key="autoresizingMask"/>
<view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center">
@ -283,7 +283,7 @@
</connections>
</collectionViewCell>
</cells>
<collectionReusableView key="sectionHeaderView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" reuseIdentifier="Section" id="myv-cg-TS9" customClass="NumberSectionView" customModule="RxExample" customModuleProvider="target">
<collectionReusableView key="sectionHeaderView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" reuseIdentifier="Section" id="myv-cg-TS9" customClass="NumberSectionView" customModule="RxExample_iOS" customModuleProvider="target">
<rect key="frame" x="0.0" y="0.0" width="108" height="25"/>
<autoresizingMask key="autoresizingMask"/>
<subviews>
@ -342,7 +342,7 @@
<!--Rx Examples-->
<scene sceneID="TnT-xx-y5Q">
<objects>
<tableViewController id="t5K-0k-3cp" customClass="RootViewController" customModule="RxExample" customModuleProvider="target" sceneMemberID="viewController">
<tableViewController id="t5K-0k-3cp" customClass="RootViewController" customModule="RxExample_iOS" customModuleProvider="target" sceneMemberID="viewController">
<tableView key="view" clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="static" style="grouped" separatorStyle="default" rowHeight="44" sectionHeaderHeight="10" sectionFooterHeight="10" id="UYP-Va-Aja">
<rect key="frame" x="0.0" y="0.0" width="320" height="568"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
@ -478,15 +478,16 @@
</connections>
</tableView>
<navigationItem key="navigationItem" title="Rx Examples" id="UN2-W8-jFx"/>
<simulatedScreenMetrics key="simulatedDestinationMetrics" type="retina4"/>
</tableViewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="Bt6-Sf-4JF" userLabel="First Responder" sceneMemberID="firstResponder"/>
</objects>
<point key="canvasLocation" x="-397" y="75"/>
<point key="canvasLocation" x="-397" y="74.999999999999986"/>
</scene>
<!--Search Wikipedia-->
<scene sceneID="W3v-Hb-gUk">
<objects>
<viewController id="Iwo-im-m6d" customClass="WikipediaSearchViewController" customModule="RxExample" customModuleProvider="target" sceneMemberID="viewController">
<viewController id="Iwo-im-m6d" customClass="WikipediaSearchViewController" customModule="RxExample_iOS" customModuleProvider="target" sceneMemberID="viewController">
<layoutGuides>
<viewControllerLayoutGuide type="top" id="5dr-42-uib"/>
<viewControllerLayoutGuide type="bottom" id="qRP-g3-i5K"/>
@ -502,8 +503,8 @@
</constraints>
<textInputTraits key="textInputTraits"/>
</searchBar>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="8" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="FeZ-zt-ZeK">
<rect key="frame" x="29" y="174" width="263" height="126"/>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" misplaced="YES" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="8" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="FeZ-zt-ZeK">
<rect key="frame" x="29" y="201" width="263" height="72"/>
<string key="text">This app transforms Wikipedia into image search engine.It uses Wikipedia search API to find content and scrapes the HTML of those pages for image URLs.
This is only showcase app, not intended for production purposes.</string>
<fontDescription key="fontDescription" type="system" pointSize="15"/>
@ -541,7 +542,7 @@ This is only showcase app, not intended for production purposes.</string>
<!--Wrappers View Controller-->
<scene sceneID="GYg-hz-8N5">
<objects>
<viewController id="J6V-0T-aRq" customClass="APIWrappersViewController" customModule="RxExample" customModuleProvider="target" sceneMemberID="viewController">
<viewController id="J6V-0T-aRq" customClass="APIWrappersViewController" customModule="RxExample_iOS" customModuleProvider="target" sceneMemberID="viewController">
<layoutGuides>
<viewControllerLayoutGuide type="top" id="anJ-3z-vFC"/>
<viewControllerLayoutGuide type="bottom" id="bgd-ny-eho"/>
@ -644,7 +645,7 @@ This is only showcase app, not intended for production purposes.</string>
<placeholder placeholderIdentifier="IBFirstResponder" id="k4I-9E-5OJ" sceneMemberID="firstResponder"/>
<panGestureRecognizer minimumNumberOfTouches="1" id="Shn-qP-Kjy"/>
</objects>
<point key="canvasLocation" x="151" y="955"/>
<point key="canvasLocation" x="151" y="954.99999999999989"/>
</scene>
</scenes>
<simulatedMetricsContainer key="defaultSimulatedMetrics">

View File

@ -1,19 +1,11 @@
#!/bin/bash
set -e
NUM_OF_TESTS=14
CURRENT_DIR="$( dirname "${BASH_SOURCE[0]}" )"
BUILD_DIRECTORY=build
APP=RxExample
CONFIGURATIONS="Debug Release-Tests Release"
#SIMULATORS="RxSwiftTest-iPhone4s-iOS_8.4 RxSwiftTest-iPhone5-iOS_8.4 RxSwiftTest-iPhone5s-iOS_8.4 RxSwiftTest-iPhone6-iOS_8.4 RxSwiftTest-iPhone6Plus-iOS_8.4 RxSwiftTest-iPhone4s-iOS_8.1 RxSwiftTest-iPhone5-iOS_8.1 RxSwiftTest-iPhone5s-iOS_8.1 RxSwiftTest-iPhone6-iOS_8.1 RxSwiftTest-iPhone6Plus-iOS_8.1"
#IOS7_SIMULATORS="RxSwiftTest-iPhone4s-iOS_7.1 RxSwiftTest-iPhone5-iOS_7.1 RxSwiftTest-iPhone5s-iOS_7.1"
IOS7_SIMULATORS=""
IOS8_SIMULATORS="RxSwiftTest-iPhone4s-iOS_8.4 RxSwiftTest-iPhone5-iOS_8.4 RxSwiftTest-iPhone5s-iOS_8.4 RxSwiftTest-iPhone6-iOS_8.4 RxSwiftTest-iPhone6Plus-iOS_8.4"
#open $TMPDIR
. scripts/common.sh
@ -23,9 +15,9 @@ ROOT=`pwd`
BUILD_DIRECTORY="${ROOT}/build"
function runAutomation() {
SIMULATOR=$1
SCHEME=$1
CONFIGURATION=$2
SCHEME=$3
SIMULATOR=$3
APP="${SCHEME}"
@ -36,8 +28,7 @@ function runAutomation() {
printf "${GREEN}Building example for automation ${BOLDCYAN}${SIMULATOR} - ${CONFIGURATION}${RESET}"
echo
OS=`echo $SIMULATOR| cut -d'_' -f 2`
xcodebuild -workspace Rx.xcworkspace -scheme ${SCHEME} -derivedDataPath ${BUILD_DIRECTORY} -configuration ${CONFIGURATION} -destination platform='iOS Simulator',OS="${OS}",name="${SIMULATOR}" build | xcpretty -c
rx $SCHEME $CONFIGURATION $SIMULATOR build
echo
printf "${GREEN}Quitting iOS Simulator ...${RESET}"
@ -85,10 +76,10 @@ function runAutomation() {
# ios 7
for simulator in ${IOS7_SIMULATORS}
do
for configuration in ${CONFIGURATIONS}
do
runAutomation ${simulator} ${configuration} "RxExample-iOS-no-module"
done
for configuration in ${CONFIGURATIONS}
do
runAutomation "RxExample-iOS-no-module" ${configuration} ${simulator}
done
done
# ios 8
@ -96,6 +87,6 @@ for simulator in ${IOS8_SIMULATORS}
do
for configuration in ${CONFIGURATIONS}
do
runAutomation ${simulator} ${configuration} "RxExample-iOS"
runAutomation "RxExample-iOS" ${configuration} ${simulator}
done
done
done

View File

@ -2,7 +2,7 @@
test("----- githubSignUp -----", function (check, pass) {
UIATarget.onAlert = function(alert){
UIATarget.onAlert = function(){
UIATarget.localTarget().frontMostApp().alert().buttons()["Cancel"].tap();
UIATarget.localTarget().frontMostApp().navigationBar().leftButton().tap();
@ -10,7 +10,7 @@ test("----- githubSignUp -----", function (check, pass) {
return false;
}
UIATarget.localTarget().frontMostApp().mainWindow().tableViews()[0].cells()[0].tapWithOptions({tapOffset:{x:0.24, y:0.20}});
UIATarget.localTarget().frontMostApp().mainWindow().tableViews()[0].cells()[0].tap();
UIATarget.localTarget().frontMostApp().mainWindow().textFields()[0].tap();
writeInElement(UIATarget.localTarget().frontMostApp().mainWindow().textFields()[0], "rxrevolution")
@ -23,8 +23,10 @@ test("----- githubSignUp -----", function (check, pass) {
UIATarget.localTarget().frontMostApp().mainWindow().secureTextFields()[1].tap();
writeInElement(UIATarget.localTarget().frontMostApp().mainWindow().secureTextFields()[1], "mypassword")
UIATarget.localTarget().tap({x:14.50, y:80.00});
UIATarget.localTarget().tap({x:2, y:150.00});
UIATarget.localTarget().frontMostApp().mainWindow().buttons()["Sign up"].tap();
sleep(10)
});

View File

@ -6,14 +6,14 @@ test("----- searchWikipedia -----", function (check, pass) {
UIATarget.localTarget().frontMostApp().mainWindow().tableViews()[0].cells()[1].tap();
UIATarget.localTarget().frontMostApp().mainWindow().searchBars()[0].searchBars()[0].tap();
writeInElement(UIATarget.localTarget().frontMostApp().mainWindow().searchBars()[0].searchBars()[0], "banana")
UIATarget.localTarget().frontMostApp().mainWindow().searchBars()[0].tap();
writeInElement(UIATarget.localTarget().frontMostApp().mainWindow().searchBars()[0], "banana")
UIATarget.localTarget().delay(2);
UIATarget.localTarget().tap({x:width - 40, y:43});
UIATarget.localTarget().frontMostApp().mainWindow().searchBars()[0].searchBars()[0].tap();
writeInElement(UIATarget.localTarget().frontMostApp().mainWindow().searchBars()[0].searchBars()[0], "Yosemite")
UIATarget.localTarget().frontMostApp().mainWindow().searchBars()[0].tap();
writeInElement(UIATarget.localTarget().frontMostApp().mainWindow().searchBars()[0], "Yosemite")
UIATarget.localTarget().delay(2);

View File

@ -6,21 +6,33 @@ test("----- masterDetail -----", function (check, pass) {
return pixels / UIATarget.localTarget().frontMostApp().mainWindow().rect().size.height
}
function removeCell(cell) {
var width = cell.rect().size.width
logElement(width)
var x = 46 / width
cell.tapWithOptions({tapOffset: {x: x, y: 0.5}});
UIATarget.localTarget().delay( 2 );
x = (width - 60) / width
cell.tapWithOptions({tapOffset: {x: x, y: 0.5}});
}
UIATarget.localTarget().frontMostApp().mainWindow().tableViews()[0].cells()[2].tap();
UIATarget.localTarget().frontMostApp().mainWindow().tableViews()[0].cells()[2].tapWithOptions({tapOffset:{x:0.24, y:0.20}});
UIATarget.localTarget().frontMostApp().navigationBar().rightButton().tap();
UIATarget.localTarget().frontMostApp().mainWindow().dragInsideWithOptions({startOffset:{x:0.93, y:yOffset(300)}, endOffset:{x:0.95, y:yOffset(200)}, duration:1.5});
UIATarget.localTarget().frontMostApp().mainWindow().dragInsideWithOptions({startOffset:{x:0.93, y:yOffset(300)}, endOffset:{x:0.95, y:yOffset(100)}, duration:1.5});
UIATarget.localTarget().frontMostApp().mainWindow().tableViews()[0].cells()[1].buttons()[0].tap();
UIATarget.localTarget().frontMostApp().mainWindow().tableViews()[0].cells()[1].buttons()[2].tap();
removeCell(UIATarget.localTarget().frontMostApp().mainWindow().tableViews()[0].cells()[1]);
UIATarget.localTarget().delay( 2 );
UIATarget.localTarget().frontMostApp().navigationBar().rightButton().tap();
UIATarget.localTarget().frontMostApp().mainWindow().tableViews()[0].cells()[1].tap();
UIATarget.localTarget().frontMostApp().navigationBar().leftButton().tap();
UIATarget.localTarget().delay( 2 );
UIATarget.localTarget().frontMostApp().navigationBar().leftButton().tap();
pass()

View File

@ -1,11 +1,9 @@
// UIATarget.localTarget().delay( 15 );
test("----- UIBarButtonItem tap -----", function (check, pass) {
UIATarget.localTarget().frontMostApp().mainWindow().tableViews()[0].cells()[3].tapWithOptions({tapOffset:{x:0.24, y:0.20}});
UIATarget.localTarget().frontMostApp().mainWindow().tableViews()[0].cells()[3].tap();
UIATarget.localTarget().frontMostApp().navigationBar().rightButton().tap();
@ -21,7 +19,7 @@ test("----- UIBarButtonItem tap -----", function (check, pass) {
test("----- UIBarButtonItem tap -----", function (check, pass) {
UIATarget.localTarget().frontMostApp().mainWindow().tableViews()[0].cells()[3].tapWithOptions({tapOffset:{x:0.24, y:0.20}});
UIATarget.localTarget().frontMostApp().mainWindow().tableViews()[0].cells()[3].tap();
UIATarget.localTarget().frontMostApp().mainWindow().buttons()["TapMe"].tap();
@ -39,7 +37,7 @@ test("----- UIBarButtonItem tap -----", function (check, pass) {
test("----- UISegmentedControl tap -----", function (check, pass) {
UIATarget.localTarget().frontMostApp().mainWindow().tableViews()[0].cells()[3].tapWithOptions({tapOffset:{x:0.24, y:0.20}});
UIATarget.localTarget().frontMostApp().mainWindow().tableViews()[0].cells()[3].tap();
UIATarget.localTarget().frontMostApp().mainWindow().segmentedControls()[0].buttons()["Second"].tap();
@ -63,7 +61,7 @@ test("----- UISegmentedControl tap -----", function (check, pass) {
test("----- UISwitch tap -----", function (check, pass) {
UIATarget.localTarget().frontMostApp().mainWindow().tableViews()[0].cells()[3].tapWithOptions({tapOffset:{x:0.24, y:0.20}});
UIATarget.localTarget().frontMostApp().mainWindow().tableViews()[0].cells()[3].tap();
UIATarget.localTarget().frontMostApp().mainWindow().switches()[0].setValue(0);
@ -87,11 +85,10 @@ test("----- UISwitch tap -----", function (check, pass) {
test("----- UITextField text -----", function (check, pass) {
UIATarget.localTarget().frontMostApp().mainWindow().tableViews()[0].cells()[3].tapWithOptions({tapOffset:{x:0.24, y:0.20}});
UIATarget.localTarget().frontMostApp().mainWindow().tableViews()[0].cells()[3].tap();
UIATarget.localTarget().frontMostApp().mainWindow().textFields()[0].textFields()[0].tap();
// UIATarget.localTarget().frontMostApp().keyboard().typeString("t");// fails if software keyboard is disabled
UIATarget.localTarget().frontMostApp().mainWindow().textFields()[0].textFields()[0].setValue("t");
UIATarget.localTarget().frontMostApp().mainWindow().textFields()[0].tap();
UIATarget.localTarget().frontMostApp().mainWindow().textFields()[0].setValue("t");
check(function () {
var textValue = UIATarget.localTarget().frontMostApp().mainWindow().staticTexts()["debugLabel"].value();
@ -107,7 +104,7 @@ test("----- UITextField text -----", function (check, pass) {
test("----- UISlider value -----", function (check, pass) {
UIATarget.localTarget().frontMostApp().mainWindow().tableViews()[0].cells()[3].tapWithOptions({tapOffset:{x:0.24, y:0.20}});
UIATarget.localTarget().frontMostApp().mainWindow().tableViews()[0].cells()[3].tap();
UIATarget.localTarget().frontMostApp().mainWindow().sliders()[0].dragToValue(0.00);
@ -124,7 +121,7 @@ test("----- UISlider value -----", function (check, pass) {
test("----- UIDatePicker date -----", function (check, pass) {
UIATarget.localTarget().frontMostApp().mainWindow().tableViews()[0].cells()[3].tapWithOptions({tapOffset:{x:0.24, y:0.20}});
UIATarget.localTarget().frontMostApp().mainWindow().tableViews()[0].cells()[3].tap();
UIATarget.localTarget().frontMostApp().mainWindow().pickers()[0].wheels()[0].tapWithOptions({tapOffset:{x:0.49, y:0.65}});
UIATarget.localTarget().frontMostApp().mainWindow().pickers()[0].wheels()[1].tapWithOptions({tapOffset:{x:0.35, y:0.64}});
@ -143,10 +140,11 @@ test("----- UIDatePicker date -----", function (check, pass) {
test("----- UIActionSheet tap -----", function (check, pass) {
UIATarget.localTarget().frontMostApp().mainWindow().tableViews()[0].cells()[3].tapWithOptions({tapOffset:{x:0.24, y:0.20}});
UIATarget.localTarget().frontMostApp().mainWindow().tableViews()[0].cells()[3].tap();
UIATarget.localTarget().frontMostApp().mainWindow().buttons()["Open ActionSheet"].tap();
UIATarget.localTarget().frontMostApp().actionSheet().collectionViews()[0].cells()["OK"].buttons()["OK"].tap();
UIATarget.localTarget().delay( 2 );
UIATarget.localTarget().frontMostApp().actionSheet().buttons()["OK"].tap();
UIATarget.localTarget().delay( 2 );
@ -161,10 +159,10 @@ test("----- UIActionSheet tap -----", function (check, pass) {
test("----- UIAlertView tap -----", function (check, pass) {
UIATarget.localTarget().frontMostApp().mainWindow().tableViews()[0].cells()[3].tapWithOptions({tapOffset:{x:0.24, y:0.20}});
UIATarget.localTarget().frontMostApp().mainWindow().tableViews()[0].cells()[3].tap();
UIATarget.onAlert = function(alert){
UIATarget.localTarget().onAlert = function(alert){
UIATarget.localTarget().onAlert = null
UIATarget.localTarget().frontMostApp().alert().buttons()["Three"].tap();
UIATarget.localTarget().delay( 2 );
@ -173,16 +171,13 @@ test("----- UIAlertView tap -----", function (check, pass) {
return textValue === "UIAlertView didDismissWithButtonIndex 3";
});
UIATarget.localTarget().onAlert = function () {
return false;
};
UIATarget.localTarget().frontMostApp().navigationBar().leftButton().tap();
return false;
}
UIATarget.localTarget().frontMostApp().mainWindow().buttons()["Open AlertView"].tap();
UIATarget.localTarget().delay( 4 );
UIATarget.localTarget().delay( 5 );
});

View File

@ -1,5 +1,6 @@
#!/bin/bash
set -e
#set -o xtrace
RESET="\033[0m"
BLACK="\033[30m"
@ -21,28 +22,54 @@ BOLDWHITE="\033[1m\033[37m"
# make sure all tests are passing
DEFAULT_IOS7_SIMULATOR=RxSwiftTest-iPhone4s-iOS_7.1
DEFAULT_IOS8_SIMULATOR=RxSwiftTest-iPhone6-iOS_8.4
IOS7_SIMULATORS="RxSwiftTest-iPhone4s-iOS_7.1 RxSwiftTest-iPhone5-iOS_7.1 RxSwiftTest-iPhone5s-iOS_7.1"
IOS8_SIMULATORS="RxSwiftTest-iPhone4s-iOS_8.4 RxSwiftTest-iPhone5-iOS_8.4 RxSwiftTest-iPhone5s-iOS_8.4 RxSwiftTest-iPhone6-iOS_8.4 RxSwiftTest-iPhone6Plus-iOS_8.4"
BUILD_DIRECTORY=build
function runTests() {
echo
printf "${GREEN}Running tests for ${BOLDCYAN}$1 - $2${RESET}\n"
echo
xcodebuild -workspace Rx.xcworkspace -scheme "$1" -configuration "$2" -derivedDataPath ${BUILD_DIRECTORY} test | xcpretty -c
#if [[ $scheme == *"iOS"* ]]
#then
# SDK="-sdk iphonesimulator"
#fi
#xctool -workspace Rx.xcworkspace -scheme "$1" -configuration "$2" ${SDK} -derivedDataPath ${BUILD_DIRECTORY} test
function ios7simulator() {
A=($IOS7_SIMULATORS)
echo ${A[$1]}
}
function buildExample() {
function ios8simulator() {
A=($IOS8_SIMULATORS)
echo ${A[$1]}
}
function rx() {
SCHEME=$1
CONFIGURATION=$2
SIMULATOR=$3
ACTION=$4
echo
printf "${GREEN}Building example for ${BOLDCYAN}$1 - $2${RESET}\n"
printf "${GREEN}${ACTION} ${BOLDCYAN}$1 - $2 ($SIMULATOR)${RESET}\n"
echo
xcodebuild -workspace Rx.xcworkspace -scheme "$1" -configuration "$2" build | xcpretty -c
DESTINATION=""
if [ "$SIMULATOR" != "" ]; then
OS=`echo $SIMULATOR| cut -d'_' -f 2`
DESTINATION='platform=iOS Simulator,OS='$OS',name='$SIMULATOR''
else
DESTINATION='platform=OS X,arch=x86_64'
fi
STATUS=""
xcodebuild -workspace Rx.xcworkspace \
-scheme $SCHEME \
-configuration $CONFIGURATION \
-derivedDataPath "${BUILD_DIRECTORY}" \
-destination "$DESTINATION" \
$ACTION | xcpretty -c; STATUS=${PIPESTATUS[0]}
if [ $STATUS -ne 0 ]; then
echo $STATUS
exit $STATUS
fi
}
# simulators
@ -50,9 +77,6 @@ function buildExample() {
# xcrun simctl list devicetypes
# xcrun simctl list runtimes
#IOS7_SIMULATORS="RxSwiftTest-iPhone4s-iOS_7.1 RxSwiftTest-iPhone5-iOS_7.1 RxSwiftTest-iPhone5s-iOS_7.1"
#IOS8_SIMULATORS="RxSwiftTest-iPhone4s-iOS_8.4 RxSwiftTest-iPhone5-iOS_8.4 RxSwiftTest-iPhone5s-iOS_8.4 RxSwiftTest-iPhone6-iOS_8.4 RxSwiftTest-iPhone6Plus-iOS_8.4"
function createDevices() {
xcrun simctl create RxSwiftTest-iPhone4s-iOS_7.1 'iPhone 4s' 'com.apple.CoreSimulator.SimRuntime.iOS-7-1'
xcrun simctl create RxSwiftTest-iPhone5-iOS_7.1 'iPhone 5' 'com.apple.CoreSimulator.SimRuntime.iOS-7-1'
@ -77,4 +101,4 @@ function deleteDevices() {
xcrun simctl delete RxSwiftTest-iPhone6-iOS_8.4
xcrun simctl delete RxSwiftTest-iPhone6Plus-iOS_8.4
}
}

View File

@ -4,26 +4,59 @@ IS_LOCAL=0
if [ "$#" -eq 1 ]; then
echo "Local test"
IS_LOCAL=1
else
# ios 7 sim
if [ `xcrun simctl list | grep "${DEFAULT_IOS7_SIMULATOR}" | wc -l` == 0 ]; then
xcrun simctl create $DEFAULT_IOS7_SIMULATOR 'iPhone 4s' 'com.apple.CoreSimulator.SimRuntime.iOS-7-1'
else
echo "${DEFAULT_IOS7_SIMULATOR} exists"
fi
#ios 8 sim
if [ `xcrun simctl list | grep "${DEFAULT_IOS8_SIMULATOR}" | wc -l` == 0 ]; then
xcrun simctl create $DEFAULT_IOS8_SIMULATOR 'iPhone 6' 'com.apple.CoreSimulator.SimRuntime.iOS-8-4'
else
echo "${DEFAULT_IOS8_SIMULATOR} exists"
fi
fi
#runTests "RxTests-iOS" "Release-Tests"
#make sure all iOS tests pass
for configuration in "Debug" "Release-Tests" "Release"
do
rx "RxTests-iOS" ${configuration} $DEFAULT_IOS8_SIMULATOR test
done
#make sure all unit tests pass
for scheme in "RxTests-iOS" "RxTests-OSX"
#make sure all OSX tests pass
for configuration in "Debug" "Release-Tests" "Release"
do
rx "RxTests-OSX" ${configuration} "" test
done
# make sure no module can be built
for scheme in "RxExample-iOS-no-module"
do
for configuration in "Debug" "Release-Tests" "Release"
do
runTests ${scheme} ${configuration}
rx ${scheme} ${configuration} $DEFAULT_IOS7_SIMULATOR build
rx ${scheme} ${configuration} $DEFAULT_IOS8_SIMULATOR build
done
done
# make sure it all build
for scheme in "RxExample-iOS" "RxExample-iOS-no-module" "RxExample-OSX"
# make sure with modules can be built
for scheme in "RxExample-iOS"
do
for configuration in "Debug" "Release-Tests" "Release"
do
buildExample ${scheme} ${configuration}
rx ${scheme} ${configuration} $DEFAULT_IOS8_SIMULATOR build
done
done
# make sure osx builds
for scheme in "RxExample-OSX"
do
for configuration in "Debug" "Release-Tests" "Release"
do
rx ${scheme} ${configuration} "" build
done
done
@ -31,4 +64,4 @@ if [ "${IS_LOCAL}" -eq 1 ]; then
. scripts/automation-tests.sh
mdast -u mdast-slug -u mdast-validate-links ./*.md
mdast -u mdast-slug -u mdast-validate-links ./**/*.md
fi
fi