Skip to content

Instantly share code, notes, and snippets.

View AlfredoHernandez's full-sized avatar
🏠
Working from home

Jesús Alfredo Hernández Alarcón AlfredoHernandez

🏠
Working from home
View GitHub Profile
@AlfredoHernandez
AlfredoHernandez / Publisher+AsyncAwait.swift
Last active December 8, 2022 21:05
Convert a swift combine publisher to async/await pattern
extension Publisher {
func async() async throws -> Output {
var cancellable: AnyCancellable?
defer { cancellable?.cancel() }
return try await withCheckedThrowingContinuation { continuation in
cancellable = sink { result in
switch result {
case .finished:
break
case let .failure(error):
@AlfredoHernandez
AlfredoHernandez / NonEquatable.swift
Created October 23, 2022 17:09
Property wrapper to ignore variables for "Equatable" protocol conformance
@propertyWrapper
public class NonEquatable<Value>: Equatable {
public var wrappedValue: Value
public init(wrappedValue: Value) {
self.wrappedValue = wrappedValue
}
public static func == (_: NonEquatable<Value>, _: NonEquatable<Value>) -> Bool {
true
//
// Copyright © 2021 Jesús Alfredo Hernández Alarcón. All rights reserved.
//
import FBSnapshotTestCase
@testable import HelloWorldApp
import XCTest
final class HelloWorldViewControllerTests: FBSnapshotTestCase {
func test_view_displaysHelloWorldMessage() {
final class ParentAndChildTests: XCTestCase {
func test_sayHello() {
let (child, _ ) = makeSUT()
XCTAssertEqual(child.sayHello(), "Hello!")
}
private func makeSUT(file: StaticString = #filePath, line: UInt = #line) -> (Child, Parent){
let parent = Parent()
let sut: Child = Child()
@AlfredoHernandez
AlfredoHernandez / XCTestCase+MemoryLeaksTracking.swift
Created February 23, 2021 19:08
Memory leaks tracking extension for XCTestCase
extension XCTestCase {
func trackForMemoryLeaks(_ instance: AnyObject, file: StaticString = #filePath, line: UInt = #line) {
addTeardownBlock { [weak instance] in
XCTAssertNil(instance, "Instance should have been deallocated. Potential memory leak!", file: file, line: line)
}
}
}
final class ParentAndChildTests: XCTestCase {
func test_sayHello_saysHello() {
let parent = Parent()
let child = Child()
child.parent = parent
parent.child = child
XCTAssertEqual(child.sayHello(), "Hello!")
@AlfredoHernandez
AlfredoHernandez / memory-leaks-2.swift
Created February 23, 2021 17:46
This is part of medium post
class Child {
var parent: Parent?
deinit {
print("Child deinit called")
}
}
class Parent {
var child: Child?
class Child {
var parent: Parent?
}
class Parent {
var child: Child?
}
var john: Child? = Child()
var mom: Parent? = Parent()

Keybase proof

I hereby claim:

  • I am alfredohernandez on github.
  • I am ztux (https://keybase.io/ztux) on keybase.
  • I have a public key ASAYHtNnOVaxJOYBMmw76FatRNg6AHDlS5kim5icOFLZbQo

To claim this, I am signing this object:

@AlfredoHernandez
AlfredoHernandez / experience.json
Last active June 28, 2019 05:20
Experience Items for CV iOS App
[
{
"company_name":"IDEMIA",
"logo":"https://www.3deducatie.nl/images/nieuws/idemia/idemia-logo.jpg",
"positions":[
{
"name":"Presales / Software developer expert",
"from":"June 2017",
"to":"June 2019",
"tasks":[