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
//
// 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
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 / 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
@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
self.isAccessibilityElement = true
self.accessibilityLabel = "\(date), \(value) - \(status)"
self.accessibilityTraits |= UIAccessibilityTraitButton
@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
@mecid
mecid / saccessibility1.swift
Last active January 4, 2019 10:11
saccessibility1.swift
protocol UIAccessibility: AnyObject {
var isAccessibilityElement: Bool { get set }
var accessibilityTraits: UIAccessibilityTraits { get set }
var accessibilityLabel: String? { get set }
var accessibilityValue: String? { get set }
}
@mecid
mecid / saccessibility2.swift
Last active January 4, 2019 10:34
saccessibility2.swift
class PresentationCell: UITableViewCell {
var viewModel: PresentationViewModel? {
didSet {
accessibilityLabel = viewModel?.label
accessibilityValue = viewModel?.value
}
}
override func awakeFromNib() {
super.awakeFromNib()