(by @andrestaltz)
If you prefer to watch video tutorials with live-coding, then check out this series I recorded with the same contents as in this article: Egghead.io - Introduction to Reactive Programming.
| import ReactiveSwift | |
| /// Problem to Solve | |
| class Soldier { | |
| let name: Property<String> | |
| let deployed: MutableProperty<Bool> = MutableProperty(false) | |
| init(_ name: String) { | |
| self.name = Property(value: name) |
| // | |
| // SpinlockTestTests.swift | |
| // SpinlockTestTests | |
| // | |
| // Created by Peter Steinberger on 04/10/2016. | |
| // Copyright © 2016 PSPDFKit GmbH. All rights reserved. | |
| // | |
| import XCTest |
(by @andrestaltz)
If you prefer to watch video tutorials with live-coding, then check out this series I recorded with the same contents as in this article: Egghead.io - Introduction to Reactive Programming.
| public protocol DataSource: class { | |
| associatedtype AbstractType | |
| func source() -> AbstractType | |
| } | |
| class ViewController<T: DataSource>: UIViewController { | |
| weak var dataSouce: T? | |
| typealias AbstractType = T.AbstractType |
| #!/bin/bash | |
| ## Copyright (C) 2015 Cerebral Gardens http://www.cerebralgardens.com/ | |
| ## | |
| ## Permission is hereby granted, free of charge, to any person obtaining a copy of this | |
| ## software and associated documentation files (the "Software"), to deal in the Software | |
| ## without restriction, including without limitation the rights to use, copy, modify, | |
| ## merge, publish, distribute, sublicense, and/or sell copies of the Software, and to | |
| ## permit persons to whom the Software is furnished to do so, subject to the following | |
| ## conditions: |
| // | |
| // NSFileHandle+Z.swift | |
| // ZKit | |
| // | |
| // Created by Kaz Yoshikawa on 2/18/16. | |
| // | |
| // | |
| import Foundation |
| platform :ios, '7.0' #or platform :osx, '10.7' | |
| # exclusive pod | |
| target :'MyXcodeProjectTarget', :exclusive => true do | |
| pod 'ReactiveCocoa', '~> 2.3' | |
| end | |
| # shared pod | |
| pod 'OCMock', '~> 2.2' |
| git_version=$(git log -1 --format="%h") | |
| info_plist="${BUILT_PRODUCTS_DIR}/${EXECUTABLE_FOLDER_PATH}/Info.plist" | |
| /usr/libexec/PlistBuddy -c "Set :CFBundleVersion '${git_version}'" "${info_plist}" |
| #!/bin/bash | |
| # | |
| # (Above line comes out when placing in Xcode scheme) | |
| # | |
| API_TOKEN=<TestFlight API token here> | |
| TEAM_TOKEN=<TestFlight team token here> | |
| SIGNING_IDENTITY="iPhone Distribution: Development Seed" | |
| PROVISIONING_PROFILE="${HOME}/Library/MobileDevice/Provisioning Profiles/MapBox Ad Hoc.mobileprovision" | |
| #LOG="/tmp/testflight.log" |
Plugins for Xcode
Other tools for iOS/Mac app development