Skip to content

Instantly share code, notes, and snippets.

View romanmiller's full-sized avatar

Roman Stoliarchuk romanmiller

  • Lviv,Ukraine
View GitHub Profile
@romanmiller
romanmiller / future+extension
Created November 28, 2017 16:44
ReactiveKit + BrightFutures (Future+Extension)
public extension Future {
var signal : Signal<T, E> {
return Signal { observer in
self.onSuccess(callback: observer.next)
self.onFailure(callback: observer.failed)
return observer.disposable
}
}
}
@romanmiller
romanmiller / signal+extension
Last active November 28, 2017 16:46
ReactiveKit + BrightFutures (Signal+Extensions)
extension SignalProtocol {
func with<T:AnyObject>(weak: T)->Signal<(Element, T), Error> {
weak var w = weak
return Signal { observer in
return self.observe { event in
switch event {
case .next(let element):
if let w = w {
observer.next((element, w))
}
@romanmiller
romanmiller / setAuthToken
Last active November 21, 2017 13:53
Encoding String to set Auth Token (LogIn Credentials Example) (Swift)
open static func setAuthToken(_ email:String, password: String) -> [String: String] {
let credentialData = "\(email):\(password)".data(using: String.Encoding.utf8)!
let base64Credentials = credentialData.base64EncodedString(options: [])
let token = "Basic \(base64Credentials)"
return ["Authorization": token]
}
@romanmiller
romanmiller / UIImage+CGSize+Extensions
Last active July 3, 2021 19:05
Compress image size (Swift)
extension CGSize {
// get scale of image size with max dimention
public func scale(max: CGFloat) -> CGFloat {
if width > height{
if width > max {
return max / width
}
} else {
if height > max {
return max / height
@romanmiller
romanmiller / UIButton + SpringAnimation
Last active March 18, 2017 10:04
Spring animation for UIButton (can use in extension for UIButton or for your custom button class) (Swift)
// from: size that button start animated; duration: time for animation;
func animateSpring(from: CGFloat,duration: TimeInterval) {
let scale = from / self.bounds.height
self.transform = CGAffineTransform(scaleX: scale, y: scale)
UIView.animate(withDuration: duration,
delay: 0,
usingSpringWithDamping: 0.6,
initialSpringVelocity: 0.4,