Async functions are coming to Swift
Jan 2, 2021, 10:58 PM
And you are going to like it. Introduction Old iOS developers remember the days where Objective C didn’t support blocks just yet. Async operations were a nightmare. Blocks improved async operations, and when Swift appeared, closures were...
Resources are Coming to Swift Packages
Jul 25, 2020, 12:28 PM
Introduction In one of my previous articles, I mentioned how SPM (Swift Package Manager) changed the way I build and maintain my Code. I praised the deep integration Xcode 11 has with Swift Packages and how easy it is to create a...
How to use DiffableDataSource and still support iOS 12
Jun 17, 2020, 10:12 AM
Introduction If you make heavy use of tables and collection views, iOS 13 brought something great for you — Diffable Data Source. If you’re not familiar with that, you are more than welcome to read my (excellent!) tutorial about how...
How Swift Packages Changed the Way I Build Apps
May 29, 2020, 12:26 AM
Introduction Even though we had dependencies managers for several years now, with Swift Package Manager (SPM) creating packages in your app is almost as easy as adding new folders. Convert parts in your project to packages is not just a...
What’s going on with those Swift Substrings?
Jan 18, 2020, 2:08 PM
Notes Although we expect string slicing to be a common task in software development, many Swift developers find substring to be complicated and frustrating. Comparing substring in other languages Let’s see how substring works in...
Working With Xcode Configuration Files
Aug 17, 2019, 11:10 PM
The Good Old #if DEBUG Pattern We all know this pattern: And actually, it’s simple and works well. But it does have flaws — it’s not secured because it contains secret data such as passwords and keys right inside your repository....
How To Solve Problems With UI Testing
Jul 25, 2019, 3:12 AM
Mocking APIs and maintaining tests with the Page Object Model Importance of UI Testing Unit tests are important. They make sure our functions work properly, that we didn’t break anything, and to catch edge cases. From the user’s...
iOS 13 — Be Dynamic with DiffableDataSource
Jul 19, 2019, 6:38 AM
Overview “attempt to insert row 144 into section 0, but there are only 0 rows in section 0 after the update”. I think there isn’t an iOS developer that hasn’t seen this crash before. Finally, after more than 10 years, Apple decided to give...
iOS — Advanced Memory Debugging to the Masses
Jul 15, 2019, 3:32 PM
Digging deep into virtual memory Overview In “How To Reduce Your App’s Memory Footprint”, I explained how to lower your app’s memory. But sometimes, we need to dig deeper to understand the root of our issues. In order to do that, we...
iOS 13 — Test Your App Performance and Memory Metrics
Jul 10, 2019, 6:55 AM
Introduction Performance tests are not that common, but they are different in a lot of terms from standard unit tests because even if they fail, it doesn’t necessarily mean we have bugs. Sometimes, a small change in one of the metrics can...
How To Reduce Your App’s Memory Footprint
Jul 9, 2019, 5:42 PM
Causes of high memory usage, reducing your app’s footprint and debugging Photo by freestocks.org on Unsplash It might sound obvious that we should keep our app’s memory footprint as low as possible, but why actually? There are several...