(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