Skip to content

Instantly share code, notes, and snippets.

View SergeyPetrachkov's full-sized avatar
:octocat:

Sergey Petrachkov SergeyPetrachkov

:octocat:
View GitHub Profile
class ViewController: ASViewController<ASScrollNode>, UIScrollViewDelegate {
let someFixedNode: ASDisplayNode = {
let node = ASDisplayNode()
node.backgroundColor = .red
node.style.height = ASDimension(unit: .points, value: 250)
return node
}()
let someFlexibleNode: ASDisplayNode = {
let node = ASDisplayNode()
/usr/libexec/PlistBuddy path_to/Settings.bundle/Root.plist -c "Clear"
/usr/libexec/PlistBuddy path_to/Services.plist -c "Clear"
/// Register settings bundle in the app
public func registerSettingsBundle() {
let appDefaults = [String: AnyObject]()
UserDefaults.standard.register(defaults: appDefaults)
}
gradientLayer.startPoint = CGPoint(x: 0, y: 1)
gradientLayer.endPoint = CGPoint(x: 0, y: 0)
gradientLayer.startPoint = CGPoint(x: 0, y: 0)
gradientLayer.endPoint = CGPoint(x: 0, y: 1)
@SergeyPetrachkov
SergeyPetrachkov / GradientExample.swift
Created September 20, 2018 01:40
GradientExample.swift
let gradientView = UIView(frame: CGRect(x: 0, y: self.textLabel.frame.maxY - 100, width: 375, height: 100))
self.view.addSubview(gradientView)
let gradientLayer: CAGradientLayer = CAGradientLayer()
gradientLayer.frame = gradientView.bounds
// colors of your overlay. [0] - start color, [1] - end color
gradientLayer.colors = [UIColor(white: 1, alpha: 0.95).cgColor, UIColor(white: 1, alpha: 0.6).cgColor]
gradientLayer.startPoint = CGPoint(x: 0, y: 0)
gradientLayer.endPoint = CGPoint(x: 0, y: 1)
gradientView.layer.addSublayer(gradientLayer)
// rotate view 180 degrees
@SergeyPetrachkov
SergeyPetrachkov / UIImageView+Siberia.swift
Last active September 18, 2018 09:02
UIImageView+Siberia.swift
if let data = self.currentModel.imageData {
view.avatarImage.image = UIImage(data: data)
} else {
view.avatarImage.setImage(string: currentModel.username, color: UIColor.gray, circular: true, textAttributes: nil)
}
class ConversationsListInteractor: ConversationsListInteractorInput {
let chatsProvider: ChatsService = Assembler.container.resolve(ChatsProvider.self)!
weak var output: ConversationsListInteractorOutput?
// MARK: - Input
func requestItems(request: ConversationsList.DataContext.Request) {
DispatchQueue(label: "ConversationsListInteractor").async {
do {
let items = try self.chatsProvider.getChats(request: GetConversationsRequest(skip: request.skip, take: request.take))
let models = items.map({ ConversationsListModel(currentModel: $0) })
extension SwaggerClientAPI {
private enum HeadersKeys: String {
case authorization = "Authorization"
}
class func setBearer(_ token: String) {
SwaggerClientAPI.customHeaders = [HeadersKeys.authorization.rawValue: "Bearer \(token)"]
}
class func clearBearer() {
SwaggerClientAPI.customHeaders.removeValue(forKey: HeadersKeys.authorization.rawValue)
}
@SergeyPetrachkov
SergeyPetrachkov / RemoteChatsProvider.swift
Last active September 3, 2018 07:03
remote chats provider for medium article
class RemoteChatsProvider: ChatsProvider {
func getChats(request: GetConversationsRequest) throws -> [Message] {
var items: [MessageDto] = []
var outputError: Error? = nil
let dispatchGroup = DispatchGroup()
dispatchGroup.enter()
CompanyMessagesAPI.companyMessagesGetConversations(request: request, completion: { (successfulResponse, error) in
do {
items = try SwaggerApiResponseHandler.unwrapResponse((successfulResponse, error))