Introducing Buchen - an iOS bookmark manager

Without trying to toot my horn too much, I have completed and iterated my first iOS app to a point where I’m fairly happy with it and be more open about it. It’s not perfect and I will cover some of its faults later. That said, I think it has reached a point where it value depending on how serious you are about your bookmarks.

First off, if you want to check it out, my iOS development site is borovia.co and you can find more information there or just head to the app store page.

Anyway, the app runs on both iPad and iPhone and in theory does run on M1 macs but as I don’t have one I wouldn’t not want to guess what the experience is like there.

It’s fairly straight forward in that you can input bookmarks with a name, a URL, optionally a note and finally you can choose from a list of installed browsers on your device. Awkwardly the “Safari” choice is basically default and it would be nice to determine when Safari is not the default to remove confusion. But anyway, what you might want to do is leave Safari as your default but say you always want to open Google Docs in Chrome. You can choose to do so and when clicking that link it will open in Chrome when installed on that device.

If you have devices with different browsers this could mean you add a link with Chrome on one device but on the other Chrome isn’t there - that’s okay, the icon will change to signify that and it will open in the “default” browser.

You can lock the app with Face ID / Touch ID / Passcode. It comes with Widgets in all 3 sizes. All of which show your top bookmarks up to 10 depending on the size. On the medium and large widgets you can click the bookmarks to open them from the home screen. Pro Tip: You can actually click two links (iOS seems to limit you to two button presses) and open both at once.

It has shortcuts for searching and adding bookmarks. This means you can add a “add to buchen” shortcut to share sheets. Search will allow you to get access to all the data about the bookmark so you could write your own custom export shortcuts.

Speaking of exporting, the app has built in support for importing data via a fairly straight forward JSON format (see the borovia link above or the in-app help). You can also export all your bookmarks to the same JSON format and effectively have your own backup rather than just relying on iCloud. But you can also export as HTML in a format that will be accepted by desktop browsers.

There is also search bar which will allow you to search across the whole of the bookmark object. This means you can search for bookmarks by their browser even (again, see help for the browser naming convention) or even date. For the time being it has to be in the precise format of YYYY-MM-DD but you can do it.

A minor but fun feature is also the stats which show you your top visited (via Buchen) bookmarks and gives you the total count of all the bookmarks store.

Within the bookmark list, there’s a standard ellipsis menu allowing you to delete, share, copy URL, edit, etc but these features can also be accessed by long-pressing a bookmark as well.

And that is the quick, perhaps too much info at once, whirlwind tour of the feature list.

So far it’s only available in English and German. I think the German translation is probably fine. I did it myself as a new learner of German but it was reviewed as well with some corrections by a German native.

Best of all it’s free and will stay that way. I’d be quite happy for people to give it a try and let me know what you think. It is a niche app but if it’s something you want hopefully it will do everything you would like it to do.

And with that out of the way, now the gaps and downsides…

Issues with the app

It has a couple issues, one being it has what Instruments reports as memory leaks but which appear to show real issues. Discussions within the SwiftUI community imply it might be near impossible to make an app that shows up as being leak free. I’m still somewhat new to all this so I can’t say for certain. However, one issue with SwiftUI is that it’s new and not perfect (as of SwiftUI 2 / iOS 14). From my general programming knowledge I don’t appear to be doing anything that lends itself to leaking and the utilities simply tell me I’m leaking CFStrings. They don’t appear to be linked to anything. Perhaps a user error? The numbers also change both up and down which implies it’s not a proper leak.

In fairly rare circumstances it crashes. It’s a dreadful 0xdead10cc crash which you might see spells out “dead lock” and it’s related to the core data database. My initial implementation would open the bookmark and if that was successful save the incremented visit count. As the link is going off to the browser that means the save is happening as the app is being pushed to the background and there are people saying that’s not necessarily a good time to be saving data to the database. I’ve changed it so the save happens before. If opening the link fails then I decrease it. That feels poor but it seems like it should solve it. It doesn’t fully but for the most part the crash isn’t a big enough of an issue to panic too much.

It really does not crash that much and appears to be primarily be only on my iPhone 11 Pro Max which as a whole seems to be in a poor state but I do want to solve it. I’ve never been able to crash it on my iPad or an iPod Touch but perhaps it’s because I simply use those less and it’s fairly rare anyway.

Removing stats would solve it but it is nice to see how many times you have visited a site and it provides an easy way to determine a list of most popular links to show in the widgets.

What it lacks

While you can search across all the bookmark fields and effectively “tag” things via the notes it would be nice to have proper tagging and grouping. Then I could show the section headers on the list and allow you to minimise, as an example, your “technology” section of links within the list.

It ideally would have an action extension which would allow you to simply have an “add bookmark to buchen” option just in the Safari share sheet. You can do this via shortcuts and it works well enough though Apple has broken shortcuts within the share sheet in the past it seems. But as far as I can tell you need to step back into the UIKit land for action extensions I’m holding off on this.

Better Siri search. The shortcut for searching your bookmarks works as well as you can do with Siri interpreting what you say and searching. The nice thing is when it returns one result Siri just actions it for you so you can search “nintendo” and when you have a link to nintendo.com that just opens. However, when you search for Cineworld, Siri interprets that as “Cine world” and nothing is found. I suspect I can do more to improve that on my end.

In general, I’ve not taken the steps to surface the shortcuts to ensure they’re suggested to users. That will come. I wanted to use them for awhile and ensure they’re fine before moving ahead.