Skip to content

Instantly share code, notes, and snippets.

@pavel-sazonov
pavel-sazonov / addLogoToNavigationBar.swift
Created December 2, 2021 12:09
add image to navbar center
private func addLogoToNavigationBar() {
let imageView = UIImageView()
imageView.contentMode = .scaleAspectFit
imageView.image = Images.Loyalty.lamodaClub.templatedImage
let contentView = UIView()
navigationItem.titleView = contentView
navigationItem.titleView?.addSubview(imageView)
imageView.snp.makeConstraints { make in
import UIKit
// MVC:
//struct Person { // Model
// let firstName: String
// let lastName: String
//}
//
//class GreetingViewController : UIViewController { // View + Controller
@pavel-sazonov
pavel-sazonov / algorithms.swift
Last active May 25, 2019 15:43
Grokking Algorithms
// Chapter 1 Binary Search
func binarySearch(arr: [Int], num: Int) -> Int? {
var low = 0
var high = arr.count - 1
while low <= high {
let mid = (low + high) / 2
let guess = arr[mid]
if guess == num {
@pavel-sazonov
pavel-sazonov / uniquified.swift
Created May 18, 2019 19:59
make array uniq with stored sorting
extension Array where Element: Equatable {
var uniquified: [Element] {
var elements = [Element]()
forEach { if !elements.contains($0) { elements.append($0) } }
return elements
}
}
// because this will change sorting
@pavel-sazonov
pavel-sazonov / fib.swift
Created May 11, 2019 13:37
swift fibonacci
// 1. Recursive approach
func fib(_ n: Int) -> Int {
guard n > 1 else { return n }
return fib(n-1) + fib(n-2)
}
// Time Complexity: O(2^n)
// Space Complexity: O(2^n)
// 2. Iterative approach
func fib(_ n: Int) -> Int {
@pavel-sazonov
pavel-sazonov / madeUnique.swift
Created April 28, 2019 15:17
extension String foк unique string (untited1, untitled2, ...)
extension String {
func madeUnique(withRespectTo otherStrings: [String]) -> String {
var possiblyUnique = self
var uniqueNumber = 1
while otherStrings.contains(possiblyUnique) {
possiblyUnique = self + " \(uniqueNumber)"
uniqueNumber += 1
}
return possiblyUnique
}
@pavel-sazonov
pavel-sazonov / Utility.swift
Created April 23, 2019 11:33
ImageFetcher
//
// Utilities.swift
//
// Created by CS193p Instructor.
// Copyright © 2017 Stanford University. All rights reserved.
//
import UIKit
class ImageFetcher {
@pavel-sazonov
pavel-sazonov / gist:9fe5547a10e7e98a891de5050a296faa
Created April 21, 2019 15:58
extension to define contents of Navigation or Tabbar Controller
extension UIViewController {
var contents: UIViewController {
if let navcon = self as? UINavigationController {
return navcon.visibleViewController ?? self
} else if let tabcon = self as? UITabBarController {
return tabcon.selectedViewController ?? self
} else {
return self
}
}
@pavel-sazonov
pavel-sazonov / tokens.md
Created April 13, 2019 18:29 — forked from zmts/tokens.md
Про токены, JSON Web Tokens (JWT), аутентификацию и авторизацию. Token-Based Authentication

Про токены, JSON Web Tokens (JWT), аутентификацию и авторизацию. Token-Based Authentication

Основы:

Аутентификация(authentication, от греч. αὐθεντικός [authentikos] – реальный, подлинный; от αὐθέντης [authentes] – автор) - это процесс проверки учётных данных пользователя (логин/пароль). Проверка подлинности пользователя путём сравнения введённого им логина/пароля с данными сохранёнными в базе данных.

Авторизация(authorization — разрешение, уполномочивание) - это проверка прав пользователя на доступ к определенным ресурсам.

Например после аутентификации юзер sasha получает право обращатся и получать от ресурса "super.com/vip" некие данные. Во время обращения юзера sasha к ресурсу vip система авторизации проверит имеет ли право юзер обращатся к этому ресурсу (проще говоря переходить по неким разрешенным ссылкам)

@pavel-sazonov
pavel-sazonov / Best UIView Extension
Created April 3, 2019 18:06 — forked from parrotbait/Best UIView Extension
Add basic missing functionality to UIKit
extension UIView {
var isVisible: Bool {
set {
self.isHidden = !newValue
}
get {
return !self.isHidden
}
}
}