Skip to content

Instantly share code, notes, and snippets.

View bergusman's full-sized avatar
:octocat:
Hard working

Vitaly Berg bergusman

:octocat:
Hard working
View GitHub Profile
@bergusman
bergusman / WebWithCameraViewController.swift
Last active March 20, 2024 17:41
Handle camera permission for web image file input
//
// WebWithCameraViewController.swift
//
// Created by Vitaly Berg on 3/20/24.
//
import UIKit
import WebKit
import AVFoundation
@bergusman
bergusman / viewer.swift
Created September 23, 2021 14:48
User Notifications
class UserNotificationCenterViewer {
class func viewDelivered() {
UNUserNotificationCenter.current().getDeliveredNotifications { notifications in
print("Delivered Notifications")
print("-----------------------")
for notification in notifications {
print("date:", notification.date)
print("identifier:", notification.request.identifier)
print("trigger:", notification.request.trigger ?? "nil")
let content = notification.request.content
@bergusman
bergusman / README.md
Last active November 16, 2022 00:38
Keychain
@bergusman
bergusman / README.md
Last active September 6, 2021 14:23
The Internet Date/Time Format (RFC 3339) with JSON
//
// Models.swift
// Vitaly Berg
//
// Created by Vitaly Berg on 7/21/21.
// Copyright © 2021 Vitaly Berg. All rights reserved.
//
import Foundation
import UserNotifications
@bergusman
bergusman / KeyboardObserver.swift
Created July 26, 2021 04:42
Keyboard Observer
//
// KeyboardObserver.swift
// Vitaly Berg
//
// Created by Vitaly Berg on 7/21/21.
// Copyright © 2021 Vitaly Berg. All rights reserved.
//
import UIKit
@bergusman
bergusman / AppDelegate.swift
Created July 22, 2021 10:57
iOS Application UIViewController's hierarchy monitor
import UIKit
@main
class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
private func setupWindow() {
window = UIWindow(frame: UIScreen.main.bounds)
window?.makeKeyAndVisible()
}
@bergusman
bergusman / Date.md
Last active July 12, 2021 07:25
О времени

Дата чаще всего внутри представлена в виде Unix-времени (POSIX-время), что в свою очередь является числом прошедщих секунд с 00:00:00 1 января 1970 года в UTC зоне.

Природа Unix-времени порождает некоторые проблемы связанные с ограничениями размерности выбранной для хранения этих секунд.

Дата в человеческом понимании высчитывается из этих секунд на основе часового пояса (Time Zone).

Часовые пояса принято отситчывать он нулевого часового пояса UTC.

Часовые пояса помогают высчитать локальное время от Unix-времени.

@bergusman
bergusman / Strings.md
Last active July 12, 2021 06:08
О строках

В контексте языков программирования и их стандартных библиотек разработчики очень часто не задумываются и даже не представляют насколько вопросы о строках и датах не просты, все привыкли делать let str = "" и на этом повседневные потребности исчерпываются, но самый банальный вопрос что такое длинна строки в языке программирования может ввести в ступор. Пример длинны строки в разных языках программирования:

print("😎".count)             // Swift: 1
print(NSString("😎").length)  // Swift with NSString: 2
console.log('😎'.length)      // JavaScript: 2
fmt.Println(len("😎"))        // Go: 4

40-60 лет назад где-нибудь для американцев для строки было достаточно сделать однобайтный массив с символами из ASCII. Сейчас это ой как не достаточно, по этому каждый язык программирования решает эту проблему по своему.