Skip to main content

About

Fedicat
Author
Fedicat
Fediverse

I’ve been working on Fedicat over a year now (almost as long as I’ve been on the fediverse!), making a Mastodon/Fediverse client app on iOS to provide the experience that I want and maybe others will like too (available on Testflight).

Supported Platforms
#

Mastodon is the primary target (as Fedicat uses 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 (from their instance version strings) include Akkoma, Catodon, Firefish, Friendica, Glitch, GotoSocial, Hometown, Iceshrimp, Mastodon, Mitra, Pixelfed, Pleroma, and Sharkey.

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, and all other icons are from Apple’s SF Symbols.

Open Source
#

Fedicat is built in Swift with AlertToast, EmojiText, Fedicat, HTML2Markdown, ImagePickerView, Nuke, [SwiftCollections]https://github.com/apple/swift-collections), SwiftNIO, SwiftSoup, SwiftKeychainWrapper SwiftUI-Flow, SwiftUIKit, SwiftSys, and TootSDK.

In addition, it’s helpful that many fediverse platforms and clients have source available (also good practice reading a lot ofdifferent 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 Github, which is publicly viewable but requires a github account in order to submit new issues.

Alternatively, you can post to @technicat@iosdev.space. A Feedback menu item is provided for that.