Can you even call yourself an iOS Engineer if you never shipped a Twitter or Pinboard client?
On the 2nd of January, I migrated my bookmarks from Safari / Pinboard to a self-hosted Shaarli instance. I generally prefer native Apps over web interfaces but couldn't find a client for iOS/macOS. Time for a tiny new App.
aarle is pure SwiftUI App for macOS and iOS. The feature set is the bare minimum:
- Log in using a URL and the secret of your Shaarli instance
- Browser your bookmarks
- Filter your bookmarks by tag
- Declare favorite tags shown in the sidebar / start screen
- Basic Search
- Add / Edit bookmarks
- Share extension to add bookmarks
Only yesterday I decided to also add basic Pinboard support as the APIs are very similar:
- Log in using your Pinboard API key (can be found on the Pinboard settings)
- Basic search of your last 1000 entries
The backlog for minor improvements is already overflowing. As a next big feature, I would like to add offline read-it-later support using webarchives. Because why not.
I hope to submit the App to App review in a few days, in the meantime you can join the Testflight groups:
I'm not spending time on another hot-take how buggy SwiftUI is. I really enjoy working on this rather basic App and currently have no interest in building another UIKit/Catalyst App in my free time. It was also my first time spending more than a few minutes on SwiftUI for macOS. AppKit is Done - kean.blog was an amazing timesaver for this.
The code itself is only functional, not clean, not dry, not covered with tests. Nothing to be proud of in itself, but I enjoy the App and that's all that mattered here for me.
If you are interested, it's open source.
For the basic UI architecture: A few stores that contain a redux-like flow are passed to the views as
EnviornmentObject. The views listen to the store's state changes and update it using actions.