Skip to content

Instantly share code, notes, and snippets.

View malcolmkmd's full-sized avatar
🎯
Focusing

Malcolm malcolmkmd

🎯
Focusing
View GitHub Profile
@malcolmkmd
malcolmkmd / keybase.md
Created February 13, 2019 12:21
Keybase

Keybase proof

I hereby claim:

  • I am mackis on github.
  • I am mdevsa (https://keybase.io/mdevsa) on keybase.
  • I have a public key ASC1AIL2E16t6e0qCo0G0M-Nr5rZcWrUoxYyTwG04-HMago

To claim this, I am signing this object:

@malcolmkmd
malcolmkmd / UIImageView+Cache.swift
Last active March 11, 2020 13:54
SwiftBits: Caching Images
public extension UIImageView {
public func loadImage(fromURL url: String) {
guard let imageURL = URL(string: url) else {
return
}
let cache = URLCache.shared
let request = URLRequest(url: imageURL)
DispatchQueue.global(qos: .userInitiated).async {
if let data = cache.cachedResponse(for: request)?.data, let image = UIImage(data: data) {
@malcolmkmd
malcolmkmd / MDVUnderlineAnimator.swift
Last active May 16, 2018 06:11
UnderlineAnimator
import UIKit
public class MDVUnderlineAnimator: MDVTabBarAnimatable {
private var underlineColor: UIColor = .clear
private var underlineHeight: CGFloat = 0
private var xPosition: CGFloat = 0
private var yPositionOffset: CGFloat = 0
private var containerWidth: CGFloat = 0
private var underlineView: UIView = UIView(frame: .zero)
@malcolmkmd
malcolmkmd / MainViewController.swift
Created March 19, 2018 18:43
Example MainViewController
class MainViewController: UIViewController {
var networkManager: NetworkManager!
init(networkManager: NetworkManager) {
super.init(nibName: nil, bundle: nil)
self.networkManager = networkManager
}
required init?(coder aDecoder: NSCoder) {
@malcolmkmd
malcolmkmd / MovieEndPoint.swift
Created March 19, 2018 18:41
Movie EndPoint
import Foundation
enum NetworkEnvironment {
case qa
case production
case staging
}
public enum MovieApi {
import Foundation
struct MovieApiResponse {
let page: Int
let numberOfResults: Int
let numberOfPages: Int
let movies: [Movie]
}
extension MovieApiResponse: Decodable {
@malcolmkmd
malcolmkmd / ExampleMovie.json
Created January 24, 2018 18:33
Example Movie JSON response from the TMDB
{
"vote_count": 78,
"id": 374430,
"video": false,
"vote_average": 8.8,
"title": "Black Mirror: White Christmas",
"popularity": 3.055805,
"poster_path": "/he609rnU3tiwBjRklKNa4n2jQSd.jpg",
"original_language": "en",
"original_title": "Black Mirror: White Christmas",
@malcolmkmd
malcolmkmd / Nibloadable.swift
Created September 20, 2017 06:45
Nibloadable
import UIKit
protocol NibLoadableView: class { }
extension NibLoadableView {
static var nibName: String {
return String(describing: self)
}
@malcolmkmd
malcolmkmd / ResusableView.swift
Created September 20, 2017 06:44
ResuableView
import UIKit
protocol ReusableView: class {}
extension ReusableView {
static var reuseIdentifier: String {
return String(describing: self)
}
}
// Labels
private lazy var timeLabel: UILabel = {
let l = UILabel()
l.textColor = .white
l.font = Theme.fonts.futuraMedium(size: 70)
let date = Date()
return l
}()
private lazy var dateLabel: UILabel = {