Skip to content

Instantly share code, notes, and snippets.

View mecid's full-sized avatar
🏠
Working from home

Majid Jabrayilov mecid

🏠
Working from home
View GitHub Profile
@mecid
mecid / Networking.swift
Last active June 19, 2023 16:35
Networking layer in Swift
import Foundation
import Combine
enum HTTPMethod: String {
case put = "PUT"
case post = "POST"
case get = "GET"
case delete = "DELETE"
case head = "HEAD"
}
@mecid
mecid / .swiftlint.yml
Last active March 13, 2020 15:59
SwiftLint config file
opt_in_rules:
- force_unwrapping
- empty_count
- contains_over_first_not_nil
- fatal_error_message
- first_where
- number_separator
- operator_usage_whitespace
- trailing_closure
- toggle_bool
//
// ActivityPresentable.swift
// SnowMine
//
// Created by Majid Jabrayilov on 10/24/17.
// Copyright © 2017 SnowDog. All rights reserved.
//
import UIKit
@mecid
mecid / ItemsViewController.swift
Last active January 6, 2018 00:16
Mastering MVVM
import UIKit
class ItemsViewController: UIViewController {
@IBOutlet private weak var tableView: UITableView!
private var viewModel: ItemsViewModel
init(viewModel: ItemsViewModel) {
self.viewModel = viewModel
super.init(nibName: nil, bundle: nil)
}
@mecid
mecid / ItemsViewModel.swift
Last active January 8, 2018 12:21
Mastering MVVM
import Foundation
class ItemsViewModel {
var items: [Item] = []
var error: Error?
var refreshing = false
private let dataManager: DataManager
init(dataManager: DataManager) {
self.dataManager = dataManager
@mecid
mecid / ReactiveItemsViewModel.swift
Last active January 8, 2018 19:47
Mastering MVVM
import Bond
class ItemsViewModel {
let items = Observable<[Item]>([])
let error = Observable<Error?>(nil)
let refreshing = Observable<Bool>(false)
private let dataManager: DataManager
init(dataManager: DataManager) {
self.dataManager = dataManager
class ItemsViewController: UIViewController {
@IBOutlet private weak var tableView: UITableView!
private let activityIndicator = ActivityIndicatorView()
private var viewModel: ItemsViewModel
init(viewModel: ItemsViewModel) {
self.viewModel = viewModel
super.init(nibName: nil, bundle: nil)
}
@mecid
mecid / ViewModelComposition.swift
Last active September 12, 2018 19:45
Mastering MVVM
import Bond
import ReactiveKit
class UserProfileViewModel {
let refreshing = Observable<Bool>(false)
let username = Observable<String>("")
let photos = Observable<[Photos]>([])
private let userViewModel: UserViewModel
private let photosViewModel: PhotosViewModel
self.isAccessibilityElement = true
self.accessibilityLabel = "\(date), \(value) - \(status)"
self.accessibilityTraits |= UIAccessibilityTraitButton
@mecid
mecid / accessibility2.swift
Last active July 9, 2018 10:12
accessibility2
let elements = statistics.enumerated().map {
let frame = CGRect(x: 0, y: CGFloat($0 * Layout.barHeight), width: bounds.width, height: Layout.barHeight)
let element = UIAccessibilityElement(accessibilityContainer: self)
element.accessibilityLabel = $1.time
element.accessibilityValue = "\(Int($1.value)), \($1.status)"
element.accessibilityFrameInContainerSpace = frame
return element
}
self.accessibilityElements = elements