Give your simulator superpowers

RocketSim: An Essential Developer Tool
as recommended by Apple

How to mock Alamofire and URLSession requests in Swift

Mocking data requests that are triggered by either Alamofire or URLSession is something we all run into when we start writing tests for our networking layer. When writing tests, it’s important that we don’t actually run the requests so we don’t mess up our backend database with dummy data. Also, this allows us to run … 

 

Creating a command line tool using the Swift Package Manager

A command-line tool can be very useful for automating common tasks to boost developer productivity. While developing iOS applications we often make use of command-line tools like Fastlane and CocoaPods but it’s less common to write your own command-line tools for daily use. The Swift Package Manager makes it a lot easier to create command-line … 

 

Authentication with signed requests in Alamofire 5

With more than 30k stars on Github, you can tell that Alamofire is a popular framework to use for iOS and Mac projects. It makes network implementations easy to do and it makes certain hard things easier, like retrying a request, authentication layers, or certificate pinning. Alamofire 5 was released in February 2020 after being … 

 

SwiftLee 2019 in review: Top Swift Development blog posts

You know it’s been a great year if you have the feeling that it went really fast. After looking back on 2018 last year it’s now time to do the same for 2019 and look ahead at what 2020 will bring. I’m amazed by the support throughout the year. I’ve met a lot of you … 

 

No space left on device: Testing low storage scenarios

No space left on device is an error message that starts to show up more lately. Over the years, storage has grown from 1GB to 1TB but with technologies like iCloud, we can also see storage stopping at 64GB. On top of that, we’re making more content of higher quality that results in lower storage … 

 

4 Tips to make it easier to fix crashes and bugs

Each app comes with performance issues, crashes, and bugs to fix. Although we try our very best we will always end up with unforeseen issues. Even when your app runs smoothly on your device, all tests succeed and QA green lights your build. Therefore, we can all use some tips to be better prepared for … 

 

Advanced asynchronous operations by making use of generics

Asynchronous operations allow you to write long-running tasks in a distinct matter while being able to add dependencies between several tasks. Progress can be tracked, and dispatching is made easy by making use of the OperationQueue. By adding generics and the Swift result type, we can get even more out of asynchronous operations. After getting … 

 

Asynchronous operations for writing concurrent solutions in Swift

Asynchronous operations allow executing long-running tasks without having to block the calling thread until the execution completes. It’s a great way to create separation of concern, especially in combination with creating dependencies in-between operations. If you’re new to operations, I encourage you first to read my blog post Getting started with Operations and OperationQueues in Swift. … 

 

Getting started with Operations and OperationQueues in Swift

Operations in Swift are a powerful way to separate responsibilities over several classes while keeping track of progress and dependencies. They’re formally known as NSOperations and used in combination with the OperationQueue. Make sure first to read my article on concurrency in Swift, so you know the basics of queues and dispatching. Operations have a lot … 

 

Concurrent vs Serial DispatchQueue: Concurrency in Swift explained

Concurrent and Serial queues help us to manage how we execute tasks and help to make our applications run faster, more efficiently, and with improved responsiveness. We can create queues easily using the DispatchQueue class which is built on top of the Grand Central Dispatch (GCD) queue. The benefit of dispatch queues is that they’re …