Replicating the Safari toolbar collapsing and expanding animation on iOS 15

The iOS 15 update brought us a redesigned Safari app with the address bar being displayed at the bottom of the screen compared to the earlier version where it was on top. The redesign also brought us some delightful animations when creating new tabs or when scrolling web pages where the address bar would expand and collapse. I found the animations quite neat, so I...

Adding support for Swift Package Manager in existing CocoaPods library

Yesterday, I have updated my AHDownloadButton library to support Swift Package Manager and I wanted to share the steps that I needed to take. Initial setup To setup the initial folder structure and files needed to integrate SwiftPM we need to navigate to the root folder of our library (in my case AHDownloadButton) and run the following command: swift package init After successfully running the...

Creating cURL command from URLRequest in LLDB

I have recently looked into how you can add custom LLDB commands that you can use for debugging in Xcode. The process is quite simple and it’s very useful to have custom commands that are used repeatedly. Creating a custom LLDB command I found that the easiest way to do that is to use command regex LLDB command. You can find more info about it...

Generating a PDF file from UIScrollView content

After taking a short break, I decided to get back to writing by covering an interesting problem that I had to work on in the recent past. I had to generate a one page PDF file that contained content presented in a UIScrollView. PDF file generation process The process of generating a PDF file using UIKit’s built-in functions is quite straightforward. The code for generating...

Finding the custom URL scheme of an iOS app

I was recently hired to find out if an app has a custom URL scheme. Using the URL scheme the developer would be able to implement deep linking and launch that app from his own app. The process of finding the URL scheme was quite simple, so I decided to write a tutorial on how to do it. Downloading the IPA of the app There...