Skip to main content

Posts

Showing posts from September, 2018

Swift API Manager -Alamofire-Refresh Token-With TestCases

  import Foundation import KeychainAccess enum APIError : Error { case accessTokenExpired case networkError // Add more error cases as needed } class APIManager { private let keychain = Keychain (service: "com.example.app.refreshToken" ) private let refreshTokenKey = "refreshToken" private var accessToken: String ? func callAPI < T : Codable >( urlString : String , method : String , parameters : [ String : Any ] ? , completion : @escaping ( Result < T , APIError >) -> Void ) { guard let url = URL (string: urlString) else { completion(.failure(.networkError)) return } var request = URLRequest (url: url) request.httpMethod = method // Add access token to the request headers if available if let token = accessToken { request.setValue( "Bearer \(token) " , forHTTPHeaderField: "Aut...

Rest Api in swift 4 Using URLSession And JSONSerialization Xcode 9 Example

A Short Example call Rest Api with JSON Foundation framework NSURLSession and NSJSONSerialization - Getting Started - Basic Rest API request with Swift 4 func restApiRequest(){ let sessionConfig = URLSessionConfiguration.default // Session Configuration         let sessionUrl = URLSession(configuration: sessionConfig) // Load configuration into Session         let url = URL(string: "YOUR URL STRING")!         let task = sessionUrl.dataTask(with: url, completionHandler: {             (data, response, error) in                 if error != nil {                     print(error!.localizedDescription)                 } else {                     do {                 ...

iOS MapKit Tutorial: Getting Started Search Location and Directions on Mapkit

MapKit  is a really useful API available on iOS devices that makes it easy to display maps, user locations with locality, and even draw routes your location to your destination. Getting Started User Location Create a new project single view appplication in Swift. - MKLocationMap Open Info.plist from the Project navigator and configure the location permission prompt message  NSLocationWhenInUseUsageDescription Add "NSLocationAlwaysAndWhenInUseUsageDescription" instead of "Privacy - Location Always and When in use usage description". ViewController.swift: import UIKit import MapKit protocol HandleMapSearch {     func dropPinZoomIn(placemark: MKPlacemark ) } class ViewController: UIViewController {     let locationManager = CLLocationManager ()     var resultSearchController: UISearchController !     var selectedPin: MKPlacemark ?    ...