Skip to content

Instantly share code, notes, and snippets.

@Abhishek9634
Abhishek9634 / countries.json
Created December 12, 2018 10:44 — forked from keeguon/countries.json
A list of countries in JSON
[
{name: 'Afghanistan', code: 'AF'},
{name: 'Åland Islands', code: 'AX'},
{name: 'Albania', code: 'AL'},
{name: 'Algeria', code: 'DZ'},
{name: 'American Samoa', code: 'AS'},
{name: 'AndorrA', code: 'AD'},
{name: 'Angola', code: 'AO'},
{name: 'Anguilla', code: 'AI'},
{name: 'Antarctica', code: 'AQ'},
extension BeerListViewController: UISearchBarDelegate {
func setupSearchBar() {
self.searchBar.delegate = self
}
func searchBar(_ searchBar: UISearchBar,
textDidChange searchText: String) {
self.viewModel.filterSearch(
extension BeerListViewController: UITableViewDelegate, UITableViewDataSource {
func tableView(_ tableView: UITableView,
numberOfRowsInSection section: Int) -> Int {
return self.viewModel.itemCount
}
func tableView(_ tableView: UITableView,
cellForRowAt indexPath: IndexPath) -> UITableViewCell {
private func setupViewModel() {
self.viewModel.reloadHandler = {
self.tableView.reloadData()
}
self.showLoader()
self.viewModel.fetchItems { _ in
self.hideLoader()
struct BeerCellModel {
var beer: Beer
}
//
// BeerListViewModel.swift
// BeerCrafts
//
// Created by Abhishek on 27/07/18.
// Copyright © 2018 Abhishek. All rights reserved.
//
import Foundation
//
// BeerTableViewCell.swift
// BeerCrafts
//
// Created by Abhishek on 29/06/18.
// Copyright © 2018 Abhishek. All rights reserved.
//
import UIKit
// REQUEST OFFLINE
extension Beer {
public static func getBeerListOffline(completion: @escaping (_ beerList: [Beer], _ error: Error?) -> Void) {
guard let filePath = Bundle.main.url(forResource: "beer",
withExtension: "json") else {
completion([], AppError.fileNotFound)
return
import Foundation
import JSONParsing
public final class Beer: JSONParseable {
public var abv: String
public var ibu: String
public var id: Int
public var name: String
[
{
"abv": "0.05",
"ibu": "",
"id": 1436,
"name": "Pub Beer",
"style": "American Pale Lager",
"ounces": 12
},
{