Skip to content

Instantly share code, notes, and snippets.

import UIKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
setupCollectionView()
}
func setupCollectionView() {
let searchCollectionView = UICollectionView(frame: .zero, collectionViewLayout: getCompositionalLayout())
@pallavtrivedi03
pallavtrivedi03 / main.swift
Created July 1, 2021 12:39
Creating Server in Swift (using Perfect)
import PerfectLib
import PerfectHTTP
import PerfectHTTPServer
let server = HTTPServer()
server.serverPort = 3000
do {
try server.start()
} catch {
@pallavtrivedi03
pallavtrivedi03 / FlightsData.swift
Created July 1, 2021 12:44
Dummy data for flights listing
import Foundation
func getFlightsList() -> [[String: Any]] {
return [
["id":1001,
"flightNumber": "AI323",
"company": "Air India",
"fare": 27637,
"stops": 0,
"departure":"06:30",
import Foundation
import PerfectLib
import PerfectHTTP
import PerfectHTTPServer
class FlightsListController {
func handleFlightsListRequest(request: HTTPRequest, response: HTTPResponse) {
do {
try response.setBody(json: getFlightsList())
import Foundation
import PerfectLib
import PerfectHTTP
import PerfectHTTPServer
class FlightsDetailController {
func handleFlightsDetailRequest(request: HTTPRequest, response: HTTPResponse) {
do {
guard let flightId: Int = Int(request.urlVariables["id"] ?? "") else {
import Foundation
import PerfectLib
import PerfectHTTP
import PerfectHTTPServer
func setupRouter() -> Routes {
var routes = Routes()
routes.add(method: .get, uri: "/flights") { request, response in
FlightsListController().handleFlightsListRequest(request: request, response: response)
@pallavtrivedi03
pallavtrivedi03 / CertificatePinning.swift
Created September 3, 2021 10:02
Implementation of SSL pinning (using certifcate)
func urlSession(_ session: URLSession, didReceive challenge: URLAuthenticationChallenge, completionHandler: @escaping (URLSession.AuthChallengeDisposition, URLCredential?) -> Void) {
guard let serverTrust = challenge.protectionSpace.serverTrust else {
completionHandler(.cancelAuthenticationChallenge, nil);
return
}
let certificate = SecTrustGetCertificateAtIndex(serverTrust, 0)
// SSL Policies for domain name check
let policy = NSMutableArray()
@pallavtrivedi03
pallavtrivedi03 / iOSCodeReviewChecklist.txt
Created September 18, 2021 16:50
A checklist for iOS Code Review.
iOS Code Review Checklist
Avoid Type Inference
Prefer using Higher Order Functions
Write DRY code (Don’t Repeat Yourself)
Make sure that there are no force unwraps
Make sure that there are no retain cycles
Check if any deprecated API is being used
Check if any hardcoded checks (generally strings) can be changed to enum.
Prefer enum, switch over if else.
class BoardingPassView: UIView {
override init(frame: CGRect) {
super.init(frame: frame)
setupView()
}
required init?(coder: NSCoder) {
super.init(coder: coder)
setupView()
}
class AircraftView: UIView {
override init(frame: CGRect) {
super.init(frame: frame)
setupView()
}
required init?(coder: NSCoder) {
super.init(coder: coder)
setupView()
}