I’ve been working on Fedicat to provide the fediverse experience that I want (and maybe others will like too). It’s active development so builds are released almost daily on Testflight).
Supported Platforms#
Mastodon is the primary target (as Fedicat uses a fork of TootSDK), but other fediverse platforms that more or less support the Mastodon API are supported, more or less. The ones that are distinctly recognized by Fedicat and display descriptions in the Fedicat instance browser:
- Akkoma 👍 most pleroma features, bubble timelines
- Catodon 👍 same as Iceshrimp
- Fedibird 🤔 untested
- Firefish 👍 reactions, quote posts (regular boost is removed in old instances)
- Friendica 👍
- Glitch 👍
- GotoSocial 👍 alt text for avatars/headers, web visibility, mutuals_only post visibility, post content types (plain text, markdown), local-only posts, basic post interaction policies
- Hollo 👍 boost visibilities
- Hometown 👍 local-only posts
- Iceshrimp 👍 quote posts and reactions
- Iceshrimp.NET 👍 should be same as Iceshrimp
- Mastodon 👍
- Mitra 👍 direct timeline, quote posts, post reactions and notifications, subscription notifications, post content types, and post subscribers visibility
- Pixelfed 👍
- Pleroma 👍 direct timeline, profile birthdays, quote posts, post reactions, post content types, post expiration, post preview
- Sharkey 👍 non-custom post reactions and notifications, quote posts (regular boost is removed, flaky)
- Snac 👍
- Skybridge 👍 bridge to bluesky
- Takahe 👍
I rely on the kindness of strangers running instances.
The Fediverse#
The hardest part of joining the fediverse is deciding where to join. Fedicat includes a browser listing some instances for the platforms mentioned above, but there are comprehensive discovery websites, such as The Federation, Fedi DB, Fedi Garden, Fediverse Observer, Fediverse Party, Join Mastodon, and Mastodon Instances.
Features#
The Fedicat features that I believe are still unique include displaying alt-text immediately in the timeline (besides encouraging alt-text, much of it is good reading), a like+boost button (termed “bloost” by one user), because I often want to do both, and an option to block everyone in a thread (a real time-saver).
More general goals:
- comprehensive support of the Mastodon API, shouldn’t have to go to the web front end (or any other app)
- fediverse compatibility, support at least everything recognized by TootSDK (and by implication any platform that works with the Mastodon API)
- convenient switching among multiple accounts
- accessibility: support alt-text, light/dark mode, respond to Accessibility settings (voiceover, type size…)
- safe, mood-maintenance, social experience: make blocking easy, respect filters, avoid accidents
- discovery: make exploration easy, easy access to translations (I like language learning apps, and the fediverse could be the best one).
- economical: run on low-cost devices and in low-bandwidth environments (e.g. a text-only mode, images downloaded on demand)
- learn
Non-Goals#
- cross-platform (in the device sense). Since this is Swift/SwiftUI, forget about it.
Tips#
The left menu allows you to switch among and log out of sessions, view/edit your profile, and set your account and app preferences.
The top menu allows you to select among feeds, including the home feed, local/global feeds for the current instance, feeds for followed hashtags, the public feeds of instances you’ve saved, and log into instances to create new sessions.
The top right thumbnail is a reminder of the current instance you’re operating in. Tapping it brings up the instance description.
In most screens with lists, including feeds, pull-down to refresh. Feeds do not auto-refresh.
Long-press, on posts and avatars for example, will bring up a context menu with more options.
Long-press on profile headers for more options, including reporting accounts, browsing their instance.
Tap on images to see full screen/full resolution view.
Double-tap on card thumbnails to see full screen/full resolution views.
Graphics#
The app icon is from my attempt at handcoding an SVG icon library, fediverse icons are from Arcticons under the Creative Commons CC-BY-SA 4.0 license, profile field icons are from Simple Icons, and all other icons are from Apple’s SF Symbols. The technicat logo was designed by Dakota Snow.
Open Source#
Fedicat is built in Swift with AlertToast, EmojiText, Fedicat, HTML2Markdown, ImagePickerView, LinksKit, Nuke, SwiftCollections, SwiftKeychainWrapper, SwiftNIO, SwiftSoup, SwiftUI-Flow, SwiftUIKit, SwiftSys, SwiftURL, TootSDK.
In addition, it’s helpful that many fediverse platforms and clients have source available (also good practice reading a lot of different programming languages).Some are included with repo links in my iOS Mastodon app list.
Issues#
This app is in early development and missing some major feature such as push notifications, share target (sharing links and images from other apps to this app), localization support (translations for the UI), and probably needs a lot more accessibility improvements.
The bug database is on Codeberg, which is publicly viewable but requires an account in order to submit new issues.
Alternatively, you can post to @fedicat@pc.cafe. A Feedback option in the top left menu is provided for that.