Skip to content

Instantly share code, notes, and snippets.

View WildStudio's full-sized avatar
Get shit done!

Christian Aranda WildStudio

Get shit done!
  • WildStudio
  • Barcelona
View GitHub Profile
@WildStudio
WildStudio / gist:3ebb7ed6e7d3ff2a7d3d572aea994146
Created August 15, 2019 15:54
Authentication fail state
struct LoginView: View {
@State var username: String = ""
@State var password: String = ""
@State var authenticationDidFail: Bool = false
var body: some View {
}
@WildStudio
WildStudio / Map Operation
Created July 5, 2019 11:17
Combine: Map Operation
let _ = Just(5)
.map { $0 * 10 ) }.sink { receivedValue in
// sink is a subscriber that terminates the pipeline
print("The result is \(receivedValue)")
}
@WildStudio
WildStudio / Subscribe
Created July 5, 2019 11:06
Combine: Subscribe
let label = UILabel()
let labelSubscriber = Subscribers.Assign(object: label, keyPath: \.text)
publisher.subscribe(labelSubscriber)
@WildStudio
WildStudio / Creating a Publisher
Created July 5, 2019 11:05
Combine: Creating a Publisher
import Combine
extension Notification.Name {
static let upadateLabel = Notification.Name("updateLabel")
}
struct Data {
let title: String
}
@WildStudio
WildStudio / Cancellable Publisher
Created July 5, 2019 11:03
Combine: Cancellable Publisher
let cancellablePublisher = somePublisher.sink { data in
// do something
}
cancellablePublisher.cancel()
@WildStudio
WildStudio / UIViewPropertyAnimator
Created May 30, 2019 10:13
Adding spring animation with UIViewPropertyAnimator
func animateTransition(using transitionContext: UIViewControllerContextTransitioning) {
guard let toViewController = transitionContext
.viewController(forKey: .to) as? DetailViewController else { return }
let animator = UIViewPropertyAnimator(duration: Constant.duration, dampingRatio: 0.82)
let container = transitionContext.containerView
container.addSubview(toViewController.view)
let offscreenY = toViewController.view.bounds.height - toViewController.view.frame.minY + 20
toViewController.positionContainer(left: 20.0,
right: 20.0,
@WildStudio
WildStudio / UISpringTimingParameters
Created May 30, 2019 10:11
UISpringTimingParameters
UISpringTimingParameters(mass: CGFloat, stiffness: CGFloat, damping: CGFloat, initialVelocity: CGVector)
@WildStudio
WildStudio / UISpringTimingParameters
Created May 30, 2019 10:11
UISpringTimingParameters
UISpringTimingParameters(mass: CGFloat, stiffness: CGFloat, damping: CGFloat, initialVelocity: CGVector)
@WildStudio
WildStudio / MainViewController
Created May 29, 2019 17:55
Presentation transition animation
func animateTransition(using transitionContext: UIViewControllerContextTransitioning) {
guard let toViewController = transitionContext
.viewController(forKey: .to) as? DetailViewController else { return }
let container = transitionContext.containerView
container.addSubview(toViewController.view)
toViewController.positionContainer(left: 20.0,
right: 20.0,
top: selectedCardFrame.origin.y + 20.0,
@WildStudio
WildStudio / MainViewController
Created May 29, 2019 17:47
Set the card frame on tapping an item
@IBAction func onTapButton(_ sender: Any) {
presentAnimationController.selectedCardFrame = imageView.frame
self.performSegue(withIdentifier: "showDetail", sender: nil)
}