Skip to content

Instantly share code, notes, and snippets.

View Hadevs's full-sized avatar
🌴
Freelancer

Danil Kovalev Hadevs

🌴
Freelancer
View GitHub Profile
@Hadevs
Hadevs / 123
Created July 27, 2018 22:07
test
test123
@Hadevs
Hadevs / navBarClear.swift
Last active April 5, 2021 09:04
Make UINavigationBar Clear
extension UINavigationBar {
func makeClear() {
backgroundColor = .clear
setBackgroundImage(UIImage(), for .default)
shadowImage = UIImage()
}
}
// USAGE
@Hadevs
Hadevs / number.swift
Created November 25, 2018 17:30
String delete all except numbers
extension String {
var onlyNumbers: String {
return components(separatedBy: .decimalDigits.inverted).joined()
}
}
import Foundation
extension Optional where Wrapped == Bool {
static prefix func !(value: Bool?) -> Bool? {
return value.flatMap { !$0 }
}
}
var isOn: Bool? = nil
isOn = true
// 1.
enum Animal {
case cat
case dog
case foo
case bar
}
let count = 10
let animal = Animal.cat
iOS Development Course
В комментариях к стриму предложили отличное домашнее задание!
1) При авторизации / регистрации добавить сохранение в Keychain, могу порекомендовать библиотеку https://github.com/matthewpalmer/Locksmith
2) На экран LoginViewController добавить возможность авторизации с помощью Face ID, Touch ID.
Напоминаю, что нужно создать Pull Request в ветку dev. https://github.com/Hadevs/DKVK
@Hadevs
Hadevs / voice.swift
Created January 11, 2019 14:54
voice.swift
import AVFoundation
func speak(text: String) {
let speechSynthesizer = AVSpeechSynthesizer()
let utterance = AVSpeechUtterance(string: text)
utterance.pitchMultiplier = 1
utterance.rate = AVSpeechUtteranceDefaultSpeechRate
utterance.volume = 1
utterance.voice = AVSpeechSynthesisVoice.speechVoices().randomElement() // Тут ты можешь выбрать проиграеваемый голос
speechSynthesizer.speak(utterance)
import UIKit
class ProVersionConstructor: NSObject, StaticConstructorContainer {
var models: [ProVersionConstructor.ModelType] = [
.logo, .advantagesHeader, .instabilityText, .proVersionHeader, .exampleText, .empty, .upgradeButton
]
typealias ModelType = ProVersionCellModel
import UIKit
class ProVersionViewController: UIViewController {
@IBOutlet weak var tableView: UITableView!
private let constructor = ProVersionConstructor()
private lazy var dataSource = constructor.delegateDataSource()
override func viewDidLoad() {
super.viewDidLoad()
protocol StaticConstructorContainer {
associatedtype ModelType
var models: [ModelType] { get }
func cellType(for model: ModelType) -> StaticTableViewCellClass.Type
func configure(cell: UITableViewCell, by model: ModelType)
func itemSelected(item: ModelType)
}
extension StaticConstructorContainer {