Call me crazy, but I like Core Data.

Deleted my Pinboard account and archived all my Pinboard related projects on GitHub.

👨‍💻 There’s no API for displaying an Emoji Picker, so I had to build my own.

🪴 👨‍💻 Another entry to my digital garden, Fixtures, used in Unit Tests. As always, all the examples are in Swift.

🪴 👨‍💻 The next topic I’m working for my Digital Garden is Fixtures, as part of the series on Unit Testing.

🪴 👨‍💻 I’ve added a new entry to my digital garden called Fakes. It’s part of a series of notes on unit testing with doubles and fixtures that I’m putting together. The examples are in Swift, but the concepts are the same for all languages.

🪴 The next topic I’m working for my Digital Garden is Fakes, why they’re important and when to use them in Unit Tests.

👨‍💻 So far it’s scaling pretty well. Repositories know about Services, and Features know about Repositories. The main application knows about Feature (which are micro apps). Instances needed by all the micro apps are resolved and injected by the main application.

Like this plugin? Say thanks with a coffee :-)

I added this to my Obsidian plugin 👨‍💻

👨‍💻 I wish I had more time to work on my native client for macOS and iOS. I still have some vacation days I have to take before the end of March and might use them for that.

SwiftUI Navigation

With a couple of lines of code I migrated my app from NavigationView to NavigationSplitView, which offers much better navigation in SwiftUI.

Pinboarding sidebar visible

And I got for free the ability to show/hide the sidebar.

Pinboarding sidebar hidden

Apple has a pretty good session about NavigationSplitView and NavigationStack on their developer portal. The jokes and puns are awful, but the content is really good.


Obsidian is the source of truth for most of my writings1 and I though it would be interesting to post to directly from it. In the past I explored several applications such as Ulysses, iA Writer, and many others which allow publishing to, but they don’t work for me, they don’t reflect the way I think and take notes. Obsidian does.

So I searched on and found this post from @philbowell:

I wonder if there is a way to post to from Obsidian. 🤔

And nope, there isn’t. So I took the challenge.

Obsidian isn’t a native application and I can’t remember when it was the last time I wrote something which isn’t compiled to run on an specific architecture 👨‍💻, so I had to learn TypeScript and npm, and spent a good amount of time making Visual Studio Code look pretty (stealing ideas from my friend Atila).

Luckily for me, the TypeScript syntax isn’t that different from Swift, so in a matter of hours I had something working. Since the Obsidian Plugin architecture is OOP, I decided to go with OOP using MVVM, without third-party dependencies to avoid taking unnecessary complexity into Obsidian.

The result of all this is Micro.publish, my Obsidian plugin to publish to The plugin isn’t available to install from Obsidian’s Community Plugins yet since they review all the plugins there, but it’s possible to install it directly from GitHub by following some manual steps.

Micro.publish has the features I need. It allows

  • setting default tags
  • setting the default post visibility
  • setting a default blog (for those with more than one M.b blog)

And before publishing, it’s possible to override these default settings for the post being published.

More features are planned, and will be coming soon.

  1. DayOne, don’t worry I won’t dump you. ↩︎

protocol CompressionService {
    func compress(
        url: URL
    ) throws -> URL

Simple interface. More than 300 lines of code to test all the scenarios.

Sometimes when I am writing in SwiftUI I think “that would be so much easier in AppKit”, and when I’m working with AppKit, “that would be so much easier in SwiftUI” 👨‍💻 🤦‍♂️

The company has the tradition of giving us Fridays off during summer, and this year isn’t different. I’m gonna use my time to finish all the pending posts I have to publish at 👨‍💻

The list of topics I have to write for my other blog - - keeps growing. The amount of time I have to write them, on the other hand… 👨‍💻

I have a post ready to publish in, but I don’t think it’s a smart move to publish it during WWDC week 👨‍💻

Nice to see SwiftLint being mentioned at WWDC 👨‍💻

Looking forward to finding some time to finish my first post for my new blog 👨‍💻 ☕️

My new blog, is about to go live. My goal for the blog is to capture some of my learnings and ideas I apply when building software, focusing on Swift, SwiftUI, and everything Apple related. So grab a good cup of coffee and follow me there.

👨‍💻 I’m creating another blog (hosted by for Swift related content. My idea is to publish long posts there, leaving my main blog for comments about life, the universe, and everything.

I’ve used the iPad to write a simple Dependency Injection Package using Playgrounds. This is the first time I’ve used Playgrounds on the iPad to build something usable. The Magic Keyboard makes everything so much easier 👨‍💻

Today I updated my network client library and documented all its public methods. For publishing the documentation I’ve used Swift-DocC, Apple’s documentation compiler for Swift modules 👨‍💻

Tomorrow I’ll work on my Micropub Swift framework. At the end of the weekend I want to have a working framework with support for posting, bookmarking, replying, and uploading media 👨🏻‍💻

I’m splitting MicroAPI into two Swift Packages. One for and the other just for Micropub related things. The website Micropub Rocks! is a great way to validate Micropub implementation 👨‍💻