Skip to content

Instantly share code, notes, and snippets.

View basvankuijck's full-sized avatar

Bas van Kuijck basvankuijck

View GitHub Profile
import Foundation
import CoreNFC
import RxSwift
class NFCWriteManager: NSObject, NFCWriteService, NFCTagReaderSessionDelegate {
private var session: NFCReaderSession?
private let disposeBag = DisposeBag()
private vat code: String?
import Foundation
import CoreNFC
import RxSwift
import RxCocoa
private enum TransceiveType: UInt8 {
case read = 0x30
case write = 0xA2
case auth = 0x1B
}
import Foundation
#if canImport(CoreNFC)
import CoreNFC
#endif
class NFCScanningManager: NSObject {
fileprivate var session: NFCReaderSession?
var isAvailable: Bool {
return NFCNDEFReaderSession.readingAvailable
@basvankuijck
basvankuijck / Surnameprefix.swift
Last active August 14, 2020 11:38
Get Dutch surname prefix
extension String {
/// Gets a Dutch surname prefix
///
/// ```
/// var name = "van Kuijck"
/// name.getSurnamePrefix() // <= "van"
/// name // <= "Kuijck"
/// ```
/// - see: https://nl.wikipedia.org/wiki/Tussenvoegsel
///
@basvankuijck
basvankuijck / bsn-check.swift
Last active March 25, 2020 11:43
Check if a BSN number is valid
extension String {
/// Check if a string is a valid BSN
///
/// - parameters:
/// - bsn: `String` The BSN number
///
/// For more information [check this link](https://nl.wikipedia.org/wiki/Burgerservicenummer).
///
/// - returns `Bool` Valid or invalid
///
@basvankuijck
basvankuijck / BaseViewController.swift
Last active December 10, 2019 11:03
BaseViewController.swift
import Foundation
import UIKit
import RxSwift
import RxCocoa
class BaseViewController: UIViewController {
lazy var disposeBag = DisposeBag()
}
protocol ViewModelControllable: class {
@basvankuijck
basvankuijck / LoginViewController.swift
Last active December 10, 2019 13:21
LoginViewController.swift
import UIKit
import RxSwift
import RxCocoa
class LoginViewController: BaseViewController, ViewModelControllable {
@IBOutlet private weak var loginButton: UIButton!
@IBOutlet private weak var activityIndicator: UIActivityIndicatorView!
@IBOutlet private weak var emailTextField: UITextField!
@IBOutlet private weak var passwordTextField: UITextField!
@basvankuijck
basvankuijck / BaseViewModel.swift
Last active December 10, 2019 14:30
BaseViewModel.swift
import Foundation
import RxSwift
import RxCocoa
protocol ViewModalable: class {
init()
}
class BaseViewModel: ViewModalable {
lazy var disposeBag = DisposeBag()
@basvankuijck
basvankuijck / LoginViewModel.swift
Last active December 10, 2019 14:30
LoginViewModel.swift
import Foundation
import RxSwift
class LoginViewModel: BaseViewModel {
struct Input {
let willSignIn: AnyObserver<Void>
let email: AnyObserver<String?>
let password: AnyObserver<String?>
fileprivate let didTapSignInSubject = PublishSubject<Void>()
@basvankuijck
basvankuijck / LoginCoordinator.swift
Last active December 10, 2019 14:30
LoginCoordinator.swift
import Foundation
import UIKit
import RxSwift
protocol SignInListener {
func didSignIn()
}
class LoginCoordinator: BaseCoordinator {
override func start() {