This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// | |
// ContentSizePagingCollectionDelegate.swift | |
// CardsCarousel | |
// | |
// Created by Daniel Carlos Souza Carvalho on 2/20/21. | |
// | |
import UIKit | |
/// Horizontal paging for collections based on the content size |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import UIKit | |
//MARK: Common | |
enum Result<T> { | |
case success(T) | |
case failure(Error) | |
} | |
struct Task { | |
var title: String |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import UIKit | |
class AppDelegate { | |
var window: UIWindow? | |
} | |
//Chain of Resposability: Handler | |
protocol ErrorHandler { | |
var errorHandlerSuccessor: ErrorHandler? {get} | |
func handleError(error: Error) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import UIKit | |
import PlaygroundSupport | |
var str = "Hello, playground" | |
let view = UIView(frame: CGRect(x: 0, y: 0, width: 600, height: 600)) | |
view.backgroundColor = .red | |
let bottomLabel = UILabel() | |
bottomLabel.text = "Hello world!" | |
bottomLabel.sizeToFit() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
private extension XCTestCase { | |
func XCTAssertThrows<T, E>(_ expression: @autoclosure () throws -> T, specificError: E) where E: Error, E: Equatable { | |
XCTAssertThrowsError(try expression()) { error in | |
XCTAssertEqual(error as? E, specificError) | |
} | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import Foundation | |
/// 9 radom numbers followed by two verifying digits | |
var randomValidCpf: String { | |
var cpf = (1...11).map { _ in Int(arc4random_uniform(9)) } | |
cpf[9] = calcVerifyingDigit(originalValue: cpf, weights: (2...10).map{$0}.reversed()) | |
cpf[10] = calcVerifyingDigit(originalValue: cpf, weights: (2...11).map{$0}.reversed()) | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
func testPrepareForSegueDoesSetDestination() { | |
let destination = storyBoard.instantiateViewController(withIdentifier: "InputVC") as! ViewController2 | |
let segue = UIStoryboardSegue(identifier: "addExpense", source: sut, destination: destination) | |
sut.prepare(for: segue, sender: nil) | |
XCTAssertNotNil(destination.completion) | |
XCTAssertEqual(destination.type, .expense) | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
enum Result<T> { | |
case success(T) | |
case failure(Error) | |
} | |
protocol PlacePicker { | |
func pick(result: @escaping (Result<Place>) -> Void) | |
} | |
protocol Place { |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
private func isCodeInLimitBounds(codeReadable: AVMetadataMachineReadableCodeObject) -> Bool { | |
if let videoLayer = previewLayer as? AVCaptureVideoPreviewLayer, | |
let transformedObj = videoLayer.transformedMetadataObject(for: codeReadable), | |
let limitBounds = limitBounds { | |
return limitBounds.contains(transformedObj.bounds) | |
} | |
//ignore 'failure' above | |
return true | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
override func setUp() { | |
super.setUp() | |
let mainStoryboard = UIStoryboard(name: "Main", bundle: nil) | |
readerVC = mainStoryboard.instantiateViewController(withIdentifier: "ReaderViewController") as! ReaderViewController | |
readerVC.dataSource = MockDataSource() | |
readerVC.codeReader = mockReader | |
//force the life cycle to be called | |
let window = UIApplication.shared.delegate!.window! |
NewerOlder