Live Table: https://diafygi.github.io/webcrypto-examples/
I couldn't find anywhere that had clear examples of WebCryptoAPI, so I wrote examples and made a live table with them. Pull requests welcome!
- generateKey | importKey |
//To update ruby | |
//install rvm | |
curl -sSL https://raw.githubusercontent.com/rvm/rvm/master/binscripts/rvm-installer | bash -s stable | |
//to check rvm is installed or not | |
rvm list known | |
//to install new ruby | |
rvm install ruby@latest | |
OR |
protocol ModelManager { | |
associatedtype NewModel | |
associatedtype Collection: Swift.Collection where Collection.Element == NewModel | |
associatedtype Query | |
func models(matching query: Query) -> Collection | |
} |
import Foundation | |
struct Feed: Decodable { | |
} | |
class FeedViewModel { | |
let service: FeedProviding | |
var feed: Feed? | |
var onFeedUpdate: () -> Void = {} |
Live Table: https://diafygi.github.io/webcrypto-examples/
I couldn't find anywhere that had clear examples of WebCryptoAPI, so I wrote examples and made a live table with them. Pull requests welcome!
PRODUCT_NAME := Foo | |
SCHEME_NAME := ${PRODUCT_NAME} | |
WORKSPACE_NAME := ${PRODUCT_NAME}.xcworkspace | |
UI_TESTS_TARGET_NAME := ${PRODUCT_NAME}UITests | |
TEST_SDK := iphonesimulator | |
TEST_CONFIGURATION := Debug | |
TEST_PLATFORM := iOS Simulator | |
TEST_DEVICE ?= iPhone 11 Pro Max | |
TEST_OS ?= 13.3 |
// listening for current item change | |
self.audioQueueObserver = self.playerQueue?.observe(\.currentItem, options: [.new]) { | |
[weak self] (player, _) in | |
print("media item changed...") | |
} | |
// listening for current item status change | |
self.audioQueueStatusObserver = self.playerQueue?.currentItem?.observe(\.status, options: [.new, .old], changeHandler: { | |
(playerItem, change) in | |
if playerItem.status == .readyToPlay { |
import Foundation | |
import UIKit | |
public struct Resource { | |
var name: String | |
var fileExtension: String | |
var url: URL? { | |
Bundle.module.url(forResource: name, withExtension: fileExtension) | |
} | |
} |
extension UserDefaults { | |
subscript<T>(key: String) -> T? { | |
get { | |
return value(forKey: key) as? T | |
} | |
set { | |
set(newValue, forKey: key) | |
} | |
} | |
import Foundation | |
class KeyboardAppearListener { | |
private var showKeyboard: NotificationToken? | |
private var hideKeyboard: NotificationToken? | |
private weak var viewController: UIViewController? | |
private var windowSafeArea: CGFloat = 0 | |
private var windowsSafeAreaWereAdded = false |