There’s a lot of anxiety around AI coding, but what people often fear is uncertainty. The best way to address it is through action. These tools aren’t going away, so I decided to give one of the latest ones a fair shot this week. I’ve been using Claude chats for a while, but tools like Cursor never clicked for me. I just didn’t want to introduce a separate IDE into my workflow, and I didn’t feel…
I love using Swift and have no thoughts about switching back to Objective-C, but that’s no longer a conversation because Swift is a de facto language on Apple platforms. During the first few years of Swift, I had complete confidence in its direction, and perhaps it was easier to make every change a slam dunk in the beginning. In recent years, there’ve been some questionable changes, the latest one…
I recently had the pleasure of migrating a relatively large project from CocoaPods to SwiftPM, and I would like to share my experience and some thoughts about how it could be improved. Adding Dependencies The existing process for adding dependencies to Xcode target involves multiple steps and is especially convoluted when you have multiple targets, like app extensions. I wanted to make sure that…
Starting with iOS 15, SwiftUI supports search thanks to the new .searchable modifier. It was also extended with the support for tokens in iOS 16 which was exactly what I was waiting for. For me, it was a perfect opportunity to rethink search in Pulse . Pulse is now infinitely more useful thanks to two new major features in version 3.2 : a powerful search with filters and scopes, and a redesigned…
Today is my 10th anniversary of programming for Apple platforms, and what better way to celebrate it than with a new major release – Pulse 3.0 is out! I loved every year I worked on iOS. I started in 2012 with Objective-C and now, thanks to Swift and SwiftUI, I’m able to target all Apple platforms, which is incredible. Pulse 3 is a complete overhaul. It enhances the experience and achieves nearly…
Pulse is a logging system for Apple platforms. Pulse 2.0 is almost a complete rewrite that focuses on adding plenty of new major features and optimizing performance. PulseUI The first feature developed for 2.0 was pending requests – the console will now show pending tasks with their progress. It uses the new urlSession(_:didCreateTask:) method (iOS 16) to track the created tasks 1 . The remote…
If you’ve tried OpenAPI spec generators, you know how it goes. They get you about 60-80% there, but you end up having to modify the code by hand. For one of the specs that I tested – GitHub REST API spec – a popular code generator produces more than 300 compile-time errors, which is not ideal. With CreateAPI , I pushed well beyond just making sure the generated code compiles. It’s Fast : processes…
Updates Aug 19, 2022. Updated to Get 2.0 It’s been more than four years since my previous API Client in Swift (archived) post. A lot has changed since then. With the addition of Async/Await and Actors, it’s now easier and more fun than ever to design custom web API clients in Swift. The new version went through a radical redesign and I can’t wait to share more about it. I’m going to focus on REST…
Last week, I made a poll on Twitter asking to share the best learning materials for iOS engineers and was overwhelmed with the number of responses. It was very insightful, and I thought it would be nice to compile the results into a single post, which I did here, adding a few recommendations of my own. I need your help, Twitter. What are the best learning resources for beginner/intermediate iOS…
There is always this friction when debugging native apps. You can’t look behind the scenes, unlike browsers with their developer tools. The idea behind Pulse is to bring the same or better debugging experience to native apps. With the Pulse framework, you can record logs and network requests, view them directly on your device, and share later. And with a new Pulse Pro app for macOS, you can…