promotion
Powerful debugging in Xcode,
no code changes or 3rd party frameworks required.

Unxippity - fast Xcode unxipping, is open source

Few weeks ago I had few free hours and hacked together a quick SwiftUI app that uses saagar’s unxip package to quickly unxip Xcode downloads. You can use saagar’s command line utility but I’m one for neat UIs so I wanted to have something to click around. Today I wrapped few loose ends and pushed the code to GitHub here: icanzilb/Unxippity. Here’s a very quick walkthrough the app. Note: This is a very quickly put together app experiment, use caution when using it. …

Posted on

Marin's Side Projects 2023

For one reason or another I didn’t do much publicly in 2023 but in the last couple months I had some free time and picked some ideas from the backlog to work on. So here’s a short summary of few interesting things I worked on in 2023 (some with source code, yay): Breadcrumbs I’ve had this idea for a very long time and I believe that it could be a great app if anyone could come up with a business model to sustain its development. …

Posted on

Easy app walkthroughs with MarkWalkthrough

Some time ago, while I was working on my app Rex Tables, I wrote some quick code that reads a Markdown file with some “slide” data and automatically displays an app walkthrough. It wasn’t really meant for other people to use since it made use of a paid Swift package for the transition effects in the walkthrough. But that package, namely Pow, just become open sourced last week! So I pulled the code out of Rex Tables and did a quick pass to tighten up a couple of things and pushed it to GitHub. …

Posted on

Injecting code in result builders

This is a rather quick post about running some arbitrary code inside result builders. Result builders are great and often make the code much more readable — think SwiftUI vs UIKit… but builder blocks are quite strict about the types they expect to find so using arbitrary prints or calling other functions isn’t always easy, per sè. I am often times a fan of inserting a print or two in the code, especially when I’m exploring new code. …

Posted on

DocC: Project documentation structure

This post is about structuring the documentation for a project with Swift DocC. (Apple’s intro to Swift DocC) Swift DocC in Xcode automatically builds project documentation following the structure of the app’s code hierarchy. Additionally, DocC allows you to create custom curation and hierarchy to improve the discoverability and the user experience of said documentation. Bellow I’ll suggest a simple documentation hierarchy for apps or packages, especially in the context of a larger team or organization. …

Posted on

dataFude for Simulator - public beta on TestFlight now!

As I wrote recently, in 2022 I worked on a lot of side projects and even made a shippable and usable versions of few of them. Many of the ideas I worked on converged in the latest app that I believe is a product a large number of developers could use to improve their daily lives. Yesterday, I opened up dataFude for Simulator for public testing on TestFlight. If you want to give it a try or learn more, the website is: …

Posted on

Introducing MarkCodable

I had a lot of fun listening to “A releational database using Markdown” episode with John Sundell and Gui Rambo: After taking a moment though, I started realizing that there is a whole plethora of use cases where Markdown could be a great storage for some of my data. Markdown supports tables and they are pretty easy to view, parse and edit by hand. On the other hand, JSON isn’t very easy to view or edit by hand, which is sometimes more important for me, given I work on a lot of small tooling that automates or performs specific tasks and usually doesn’t need a large dataset. …

Posted on

Introducing timeui

A little while ago I coded a minimal profiling tool for the macOS command line and called it timeui. Last week I pushed the source code online in the hope other people would like it and use it (and eventually contribute some code too). In this post I’ll introduce you quickly to timeui and what it can currently do for you. What is timeui? timeui is a command line tool that profiles an app you provide it and shows duration, apple’s universal logging intervals, CPU usage and memory footprint: …

Posted on

Optimization in Swift, part 4

In Part 3 I wrote about trying to optimize my filter code by using an unsafe API from the standard library. This helped a tiny bit but barely improved the performance of my initial fictional use case (all about the test setup you can find out in Part 1). Updating the Memory Buffer Concurrently Looking at the results of both code variants so far, I got an idea — I could fuse together using concurrency to do the collection filtering and using a buffer in memory so I can update the array storage directly. …

Posted on

Optimization in Swift, part 3

In Part 2 I wrote about trying to optimize a very tight filter function with async/await. This helped when the filter performs some heavy work for each of the collection elements but not with my initial fictional use case (all about the test setup you can find out in Part 1). Taking to the Standard Library Since I already know that I’m not going to keep pushing the async/await variant of the code, I think it’s a good idea to look into the standard library. …

Posted on