Embed YouTube video in WKWebView

Get the youtube video URL Add WKWebView to your UIView using code. Somehow it works better when added through code. Your resulting code will look like this 3. Now create a request with your youtube URL and add ?playsinline=1 this will play video inline. The resulting code will look like this To get the best … Read more

Breaking a large Switch case into multiple switch cases

Many a times we stumble upon Switch cases which run into 100s of cases. Ideally it should be under 30 (highly subjective) or any other number which you deem manageable. In the given below code example we will break a switch case into multiple ones. The above code example utilizes 100 + default cases in … Read more

Shuffle an array in Swift

Swift now comes with built in shuffle functionality. Swift provides two methods shuffle() Shuffle reorders a collection in place. After calling shuffle on the collection the original collection is changed/reordered Since shuffle() is mutating in nature you cannot use it with constant declared using let keyword. It has a complexity of O(n), where n is the length … Read more

URLSession and Synchronous HTTP request

It might sound stupid(and most of the time it is) but there are situations when you want to make a synchronous request using URLSession. I faced the situation when I had to log both request and response together. Semaphores and Synchronous HTTP request A asynchronous request looks something like this To make it behave we … Read more

Fatal error: Unexpectedly found nil while unwrapping an Optional value

So your code is crashing with EXC_BAD_INSTRUCTION and you are getting a error like Fatal error: Unexpectedly found nil while unwrapping an Optional value or Fatal error: Unexpectedly found nil while implicitly unwrapping an Optional value This crash arises when we attempt to forcefully or Implicitly unwrap an optional and that optional, as the name … Read more

Save custom objects into UserDefaults

In this post, I will discuss how to save a custom object in UserDefaults. We will use Codable and JSON to save and retrieve data from UserDefaults. Before we begin let me caution you UserDefaults are not your database. Use CoreData or Realm for all your heavy lifting. Make your class/Type conform to codable protocol … Read more

Uploading a Large file using Alamofire 5

Very large files can not be converted into data at once and moved around in variables. It is simply not possible as very large files could trigger memory warning and eventual crash. Now the question arises how do we upload very large files using Alamofire? Solution is simple just pass the file url to alamofire … Read more