Skip to content

Instantly share code, notes, and snippets.

View akshitzaveri's full-sized avatar

Akshit Zaveri akshitzaveri

View GitHub Profile
import Foundation
protocol WalkableAnimal {
func walk()
}
protocol RunnableAnimal {
func run()
}
import UIKit
import Alamofire
final class ViewController: UIViewController {
// 1
private struct Endpoint {
static let posts = "http://jsonplaceholder.typicode.com/posts"
static let comments = "http://jsonplaceholder.typicode.com/comments"
}
// 5
override func viewDidLoad() {
super.viewDidLoad()
self.isWaiting = true
// Step0: Creating and entering dispatch groups
let group = DispatchGroup()
group.enter()
group.enter()
// Step1: Call posts API
group.enter()
AF.request(Endpoint.posts).response { response in
group.leave()
}
import UIKit
final class AnimatableCircleView: UIView {
// MARK: - Initializers and Life cycle
required init?(coder: NSCoder) {
super.init(coder: coder)
self.setup()
}
@IBOutlet weak var circleView: UIView!
@IBOutlet weak var circleView: AnimatableCircleView!
// MARK: - UI objects
private lazy var circleView: UIView = {
let view = UIView()
view.translatesAutoresizingMaskIntoConstraints = false
view.backgroundColor = .red
view.clipsToBounds = true
return view
}()
override func layoutSubviews() {
super.layoutSubviews()
self.circleView.layer.cornerRadius = self.circleView.frame.width / 2.0
self.miniCircleView.layer.cornerRadius = self.miniCircleView.frame.width / 2.0
}
self.clipsToBounds = false
self.addSubview(self.circleView)
NSLayoutConstraint.activate([
self.circleView.leadingAnchor.constraint(equalTo: self.leadingAnchor),
self.circleView.topAnchor.constraint(equalTo: self.topAnchor),
self.circleView.trailingAnchor.constraint(equalTo: self.trailingAnchor),
self.circleView.bottomAnchor.constraint(equalTo: self.bottomAnchor)
])