relatica/user_manual.md

60 KiB

Relatica User Manual

Introduction

Friendica is a free and open source decentralized social network project that allows users and/or organizations to create a social network server that operates with a similar sort of user experience idiom as Facebook (posts/comments threads, groups, etc). It interacts with software projects like Mastodon (a Twitter-like decentralized social network), PixelFed (an Instagram-like decentralized social netwmaork), and PeerTube (a YouTube-like decentralized social network) to create a web of interacting users and content that combined create a network of millions of users across thousands of servers called "the fediverse" or "social web". Elena Rossini has created this great video to help describe this concept in a very approachable way.

The Friendica project itself is solely focused on the development of the server side software. It does not host any "main" instance. All Friendica hosts are independent. At the time of this writing there are approximately 80 "public" servers in the Friendica directory site from which users can choose to join. The Fediverse Observer statistics site shows over 280 active Friendica servers on the fediverse, hosting thousands of users writing millions of posts/comments each month.

The Friendica project also does not write any client side software for mobile/desktop devices. Instead it has implemented application programming interfaces (APIs) that allow independent projects to interface with the server software programmatically. There have been other independent mobile apps that can interface with Friendica. Some projects have even targeted Friendica directly for Android. At the beginning of this project there was no project for iOS however.

Relatica represents an independent development to develop a mobile and desktop client for Friendica that will allow users to interface with Friendica servers that they have accounts on. It will allow them to create/edit/delete posts, take pictures to upload, check notifications on posts they've written, basically most of the usual types of things that one likes to do with Friendica or any other social network. By "independent" I mean that the project is not a part of nor receives any official sanction from the Friendica project itself. Because Relatica is written with a technology called Flutter it runs on iOS, Android, Windows, macOS, and Linux. See the install documentation for more information on how to install it on each platform.

Document Overview

This manual is a brief tour of various common features of the Relatica Friendica client and how to use them. Many of the features are self explanatory and common for a social network application. Many of the workflows follow the same paradigm that the main Friendica website uses. Others are more unique and/or configurable. This manual attempts to make those features and/or workflows more clear.

Interesting Features

Relatica has some interesting features that some users may find particularly useful. This section has an overview of those features with links to the relevant sections below.

  • Moderation Tools: Social networks will invariably have content that we don't want to see, or worse content that needs to be reported for various reasons, see Moderation section. There you will see things like how to block (and unblock) users and report posts/comments, how to manage your content warning/spoiler alert settings, adjust filters, etc.
  • Multiple simultaneous users: I often need to toggle between multiple accounts, especially for testing. Being able to easily have multiple accounts loaded at the same time lets me quickly hop between the two. Many people use multiple accounts to have multiple online "personalities". For example they may have a work account and a personal account. See the Your First Login section and Profile Management
  • Slow network assistance: There are times when network performance can be very challenging with a social media app. Ever been in a place where there is very weak antenna? Social media apps can be very greedy in how they pull down multimedia assets. To help cut down on bandwidth requirements when the network is slow there is a Low Bandwidth Mode which allows the user to only download new images on demand. Slower networks, or in cases of an over-burdened server, it may be necessary to manually adjust how long Relatica will wait for a response before it times out. This is adjustable as well, see the Network Request Timeout section.
  • Focus Mode: Focus mode is a mechanism that allows the user to lock the app out from all but seeing their own posts, creating new posts, or editing old posts. The user can specify how long they want the app in that mode, with an override available only after solving a puzzle of whichever difficulty they decided when they set the lock. See the Focus Mode section.
  • Non-infinite scroll: One of the biggest problems with social media apps is getting lost in the infinite timeline of content. This was first implemented back in 2006 and since used throughout all social media. Without a little "inertia" of clicking on a "More" button you can scroll for an hour or more and not realize how much time has gone. Relatica intentionally does not implement this. One of the benefits of not using a social network or social network app incentivized to keep you clicking forever to make more money is that we aren't using this common psychological trick to keep you in the app.
  • Filters: As mentioned as part of the content moderation point above, Relatica has implemented a complex filtering mechanism to let the user selectively hide or totally remove from view posts that contain content they don't want to see. That filtering can be any combination of words in the post, hashtags, specific account authors, or web hosts. See the Filters Screen section for more details
  • Per Network Capabilities Management: One of Friendica's greatest powers is its abilities to interact with many different types of networks. That can sometimes create problems for users that don't want interactions from some networks to potentially spill into others. For example, someone may want to be able to read Threads posts but they don't want to reshare that content since it would then be injecting Facebook/Meta content and callbacks into the rest of the fediverse. This allows users to customize what is possible to do with the various social networks beyond whatever the inherent limitations of those networks are. See the Network Capabilities Settings section for more information.

Your First Login

This section goes through the various steps of the first login. Upon launching the app you will see an initial splash screen:

Relatica v1.1.0 Splash screen showing just the logo

Upon initial loading the splash screen turns into the loading screen. Some important differences are that it shows the version number as well as any startup statuses showing accounts it is logging into, etc.

Relatica v1.1.0 loading screen showinging status messages as it comes up

At this point, if you had previously used the app and left the app with any accounts still logged in then you would be presented with a timeline for the last active user. This initial time however, with no accounts loaded, you will be brought to the "Sign In" screen to login a new user:

Relatica sign in screen with no user information yet

This screen will come up again later but for now we need to add our first user. There is no account creation mechanism from inside Relatica. You must have an existing account on a server already created. The Friendica directory site has a list of active servers as well as those that are accepting new accounts. Once you have that account you are ready to login for the first time in Relatica.

There are two types of login types: a "Standard" Login and a "Username/Password" login. The standard login will open up Relatica in a browser session to have you allow access to your account from the Relatica client on this device. The "Username/Password" method is a legacy login where you directly enter your username and password for the site in question. As implied by the name the "standard" method is preferred for several security reasons. For that reason that is the workflow we will explore.

First you'll need to enter in the domain name of your friendica server. In the below screenshot it is "friendica.myportal.social". You can find this in the URL bar of your web browser. Then hit the "Sign In" button.

Signin screen with the 'Standard' Login type selected and the server text field with a server name filled in

When you hit the "Sign In" button you will be prompted asking if you agree with the server rules for the Friendica server your account was created on. You have already agreed to those rules when you created the account. This is just further confirming that in order to meet moderation requirements as specified by Apple and Google stores. Violation of those rules will be subject to whichever measurse yoru particular Friendica host metes out.

If your server has no particular rules the dialog box will look like this, with just a blanket statement:

Dialog box to confirm rules but with only the standard text 'Do you agree to abide by the rules of the server you are connecting to as you did when you created the account?'

If your server has published rules it will list the rules explicitly, such as here:

Dialog box to confirm the rules with the same standard text plus an explicit list of rules for that server

If you do not respond "Yes" to the server's rules Relatica will not let you use the account and you will drop back to the sign in screen with the snack bar popup at the bottom explaining what happened:

Standard login screen after not accept rules with a snack bar notification that reads: 'Cannot connect to a server unless you reaffirm you will follow the listed rules'

If you do say "Yes" then Relatica will move on to the next phase of the sign in process. At this point of the standard login process Relatica will have opened up a browser session for it to allow you to authorize the Relatica app to use this account for logging in. If you aren't signed in already you will be prompted to do so, such as in this screenshot:

Screenshot of a WebView loaded with a standard Friendica login screen illustrating the user wasn't logged in.

Enter your login information at this point. Once you have done this you will be at the same step as someone already logged in which is to approve for the app on this device to use this account's credentials:

Screenshot of a WebView with Friendica screen asking to authorize application connection

Once you hit the "Yes" button the rest of the authentication process will continue and Relatica will bring you to the home screen, which is your standard timeline view:

Standard Relatica home screen showing a posts timeline view

You are now logged into your account within Relatica.

It is possible to have multiple accounts, manage those account logins, et cetera. For more information about that see Profile Management section of this manual below.

Tabs

As we saw in the above screenshot, the main navigation toolbar has a series of four tabs that assist in navigation:

Relatica bottom tab bar showing icons for: Home, Notifications, Contacts, and Explore

The various screen types are relatively self-explanatory at the top level but we will be going through them in detail below.

Timelines/Home Tab

Standard Relatica home screen showing a posts timeline view

This is the main content area of Relatica the same way it is in Friendica. All of the different timeline types that are available within Friendica are available here. The drop down menu at the top, that reads "My Network" in the above screenshot, is how you will toggle which timeline you want to load in the display. Below is a screenshot showing the menu open for selecting a new option:

Timelines menu drop down selected with options like 'My Posts', 'My Network', 'Friends' Circle, etc showing

The menu is divided up into the different categories of timeline types with a partition divider between them and headers on the different sections. When a user selects a timeline it will be loaded with the initial view. The user is presented with "Load Newer Posts" at the top and "Load Older Posts" at the bottom of the timeline to do those specific things. There is intentionally no concept of infinite scroll. If you swipe down at the top you can force a full reload of the timeline as well.

The top level 'Standard' Menu has options to show:

  • My Posts: A timeline of posts that the logged in user has created and/or reshared. This is the same as when you hit the "Home" icon button in the main icon bar in Friendica.
  • My Network: The standard default timeline rendered by Friendica at the default URL. This is the same as when you hit the "Grid" icon button in the main icon bar in Friendica.
  • Global Fediverse: This the user's server's view of global fediverse posts that it serves to all logged in users, versus the "My Network" view which is that user's particular view cultivated by whom they follow. This is the same as when you hit the "Target" button in the main icon bar in Friendica and toggle that screen to the "Global" view.
  • Local Fediverse: This the user's server's view of local fediverse posts that it serves to all logged in users, versus the "My Network" view which is that user's particular view cultivated by whom they follow. Unlike the global view this is only posts written/reshared by local users. This is the same as when you hit the "Target" button in the main icon bar in Friendica and toggle that screen to the "Global" view.

The next section are "Circles". Circles are a mechanism for users to group users into categories that they find useful such as: "Friends" for people they know, or "Photography" for people whose profiles they usually are interested in because of their photography posts. Management of circles is explained later in the Circles Management section.

Groups in Friendica are like Facebook Groups. They are pages/portal type accounts setup on servers that a user can join. Joining/unjoining from groups is not possible from within Relatica. It is also not possible to write a post to a group from Relatica at this time either. Those are things one would need to do from within Friendica itself. However from within Relatica one can browse a Group's timeline of posts/comments, interact with those posts/comments, and reply to them as well.

Channels are a Friendica specific feature that is meant to help users find content of interest. For example there is a channel called "Images" which will be a list of image-type posts that the user's server thinks logged in users may find interesting. There is a "Discover" channel of posts that their server creates the server thinks the user may find interesting.

Post/Comment Cards

Posts and comments have a pretty standard layout for people that are familiar with social media systems. However there are a few small differences:

Example post/comment card

Along the bottom is the usual action bar. Next to each type of action (like, comment, reshare) is a count of how many other users have performed this action as far as your server can see. An artifact of a decentralized network, unlike say Facebook, is that only the original post's server will have as fully expansive view of a post as possible. Your server will have a window into it based on which other servers and accounts it is aware of.

If you click on one of these buttons then it will allow you to like, comment, or reshare the post as well. If you already have done so it will be represented by a filled icon. Clicking anywhere on a post will load the post in the Post viewer screen which will show the post and its children comments tree:

If there are links or photos on posts then those initiate other actions. Links open up the link in the system web browser. Clicking on photos bring up a photo carousel so the user can scroll through them, zoom into them, save them, etc.

Post/Comment menu

Posts have a popup down menu accessed from the three dots button in the upper right corner. When you tap on that the menu shown below is brought up.

Screenshot of the posts/comments popup menu

The menu is divided into a few standard function types. If the menu is accessed from a timeline, as shown then the "Open Post" option is available to open the post in its own screen. This is the same as clicking on a white space area.

The next area, or first if already on a post screen, is to show the list of people who liked and/or reshared the post. The option will be grayed out if no one has liked or reshared the post. If the option is available and clicked then it brings up the screen with the list of people who liked/reshared the post/comment.

Screenshot of the likes screen showing a list of users that liked a post

The next section of the menu is for moderation tools. This is where the user can block the author of the post/comment or report the post/comment to the user's server. The workflow for these options is described in the below Moderation section.

The final section is for doing auxiliary operations on a post/comment. The first allows one to open the post on the original post/comment author's server within the system web browser. The next allows one to copy the URL of the original post/comment to the clipboard. Lastly the user can copy the post/comment text to the clipboard.

Notifications Tab

Screenshot of the notifications screen showing both unread and read notifications

The Notifications Tab is where all system notifications are presented. Notifications include things like when someone mentions the user in a post/comment, connection requests, unread direct messages, et cetera. Clicking on a notification will launch a view into the original content. For example a notification that someone liked your post will bring you to the post screen with that post loaded if you click on it. A connection request will bring you to the connection request adjudication screen. It is also possible to click on the profile icon of the user whose action initiated the notification and go to their profile screen:

Screenshot of the profile screen

Unread notifications have a grayish background and an "X" button on the right that allows the user to mark them individually as read. Previously read notifications have a standard background and no " X" button. If one wants to mark all notifications as read then they can click the push broom icon in the upper right hand part of the screen. Direct messages and connection requests are the only notification types that can't be marked read since those are indicators of the state of those systems not "just" a notification.

Unread notifications are by default sorted by type and then reverse chronologically. So, for example, a mention from a day ago will be sorted above a like from an hour ago. On the settings screen that can be toggled to be sorted reverse chronologically instead, see the Settings Section below.

Contacts Tab

Screenshot of the contacts screen

The Contacts Tab is where one can browse their list of associations. Only profiles that have some connection with your profile are shown: you follow them, they follow you, or you follow each other. The list is sorted alphabetically. It shows the icon and common name of the account, the last known post as far as the user's server is concerned, and the connection status between the two. It is possible to filter the list by name/username by typing in the filter box. The list will be dynamically updated as the filter changes.

Clicking on one of the accounts will bring you to the usual account screen that lets you perform options like connecting with them, blocking them, viewing their posts/comments, media, and adding them/removing them from Circles.

Screenshot of the profile screen for a connected user Screenshot of more of the profile screen for a connected user

Explore Tab

The Explore Tab is the screen where users can perform searches, browse followed hashtags, and get access to server suggested accounts. The default view is the searching tab configured to search for status text. However there are tabs for trending content on the server, followed hashtags, and suggested accounts for you to follow as generated by the user's server.

Searching

The search tab allows users to search by: account name, hashtag, or by pasting a direct link to a profile or post on a federated social network that Friendica knows how to communicate with.

Screenshot of the explore screen with search tab open showing the list of options

For example lets say we wanted to search for any post whose title or body text included the term " linux". The search and results would look like this:

Screenshot of the text search results

This looks similar to the standard timeline however it is slightly different. Unlike a timeline which is just posts, this presentation has posts and comments at the same level. You can see that with the second post having the appended "...has a comment". From here it is possible to copy the post/comment text or link as well as open in the app or the browser. However the rest of the capabilities for interacting with a post/comment aren't there until you open in the post view by clicking on it or selecting the menu option.

If searching on hashtag the system returns a list of hashtags that match the search results:

Screenshot of the search results for hashtag search

At the top if you see a plus sign, like above, then that means you can toggle this to be a "Followed Tag". Followed tags show up in the Followed Tags tab of the Explore screen, discussed below. If a minus sign is there that means you already follow it can remove the follow.

By clicking on a relevant tag it brings up the results of the tags timeline search. Like the status search text posts and comments are presented at the same level therefore you have to click through to the underlying post view by clicking on entry or using the menu option to get the full option of interactions and menu options.

If one is searching on account name then a list of accounts matching the search are shown:

Screenshot of the accounts search results

By clicking on one of the accounts one is brought to the standard profile view:

Screenshot of a not connect profile

In order to help with content discovery the Friendica server compiles list of trending tags, statuses, and shared links. This can be useful for providing insight into what is trending on the network or to start getting some bearings when starting out using Friendica and a user doesn't follow a lot of accounts. The options, available via drop-down list are:

  • Global Tags
  • Local Tags
  • Statuses
  • Links
Screenshot of the trending tab of the explore screen with global tags

This is a view of the global network as seen by the user's server, which is really only a window into the entire fediverse though. It shows the number of people and the number of posts that have used that hashtag as far as the server can see. Clicking on the item will bring up the tag screen like above in the tag search.

Getting the list of trending statuses and links will provide a result similar the searching for status text timeline.

Followed Tags

The Followed Tags Tab can be thought of a bookmark list of tags that you want to be able to conveniently search on without having to type them in. It does not cause any proactive searching or collating to be performed. Clicking on the link is similar to when you clicked on the hashtag search results.

Screenshot of the followed tabs tab on the explore screen

Suggested Users

Suggested Users Tab provides a list of potential other users that the user's Friendica server thinks they may find interesting. Clicking on the profile brings up the standard profile view as shown previously above.

Authoring Posts/Comments

A user can author posts with Relatica as well. A user can write a post, add a link with a preview, add images, et cetera. Relatica helps with referencing others by providing lists of known hashtags and users as well. Because Friendica has different visibility options on posts it's possible to make posts public, unlisted, or even private to given Circles. You start writing a new post by clicking the floating "+" button in the lower right corner of the timelines screen:

Screenshot highlighting the new post button on timelines

Let's start with the blank editor screen for a post, which looks pretty much the same as for a comment:

Screenshot of the blank editor screen

The main standard components are for filling out:

  • Spoiler Text/Content Warning: This is text that hides the post unless manually expanded on systems that render their timelines with this system. It is meant for doing things like warning people about sensitive content such as NSFW, tv/movie spoilers, or trigger warning notices.
  • Post Content: This is the "body" of a post, where most of your typing will be performed. Links that you don't want to have a preview associated with would be posted in here as well. Underneath of that is a character count estimate so you can see how much space the post has already used. This will also include text associated with links with previews as well.
  • Visibility: Friendica allows one to share posts with various visibility/privacy levels from Public down to only shared with specific users. Relatica supports a simplified version of this that allows one to limit post visibility to one particular Circle.
  • Link With Preview: A post can have one link with an associated preview. By pasting the link there and hitting the refresh button one can have Relatica automatically create that preview. If it can't generate a preview for some reason, usually lack of proper configuration of the page or image resource that won't load, then simply paste it in the main body instead.
  • Existing Images: If there are images you've previously loaded that you'd like to reuse in this post/comment then you can add them here. You'll be able to browse your galleries and attach one or more from here. We will go more into that below.
  • New Images: If you wish to upload new images to a post this is the place where you can do it. You'll be able to select an optional gallery to add them to or just post them in the main Wall Photos pool. The visibility/privacy of the new images will inherit it from the privacy of this post.

The "Post content" field supports auto-correct on mobile platforms while using the on-screen keyboard. Syntax highlighting of spelling errors on systems that support it. Currently only iOS and Android have support for syntax highlighting.

Screenshot showing a highlighted spelling error

Adding Account or Hashtag References

When adding account or hashtag references Relatica attempts to provide assistance by providing a popup of known existing accounts or hashtags. For example:

Screenshot showing autocomplete options at top with various hashtags Screenshot showing autocomplete options at top with various accounts

Tapping/clicking on one that matches will autocomplete the entry with the value. If none are appropriate you can fill in your own completely.

The lists are populated solely with locally known hashtags/accounts. They are sorted alphabetically. If you are writing a comment on a post the top results will be with hashtags/accounts that were already seen in the post/comment thread already, alphabetized, followed by the rest of the results, alphabetized. This should hopefully make more relevant results more easily accessible.

Adding Existing Images

Existing images are selected from previously uploaded content. Friendica has a concept of storing images in galleries. If a user doesn't select a gallery then it automatically goes into the default "Wall Photos" gallery. To add existing images, tap/click the gallery button to the right of the "Existing Images" label. This brings up a gallery selector:

Screenshot of the gallery selector when picking an image.

Once a gallery is selected the user will be given a grid view of the images in that gallery. They may select one or more images to add by tapping/clicking on them and then hitting the Attach ( paperclip) icon.

Screenshot of selecting images in the gallery

Once that is completed when you go back to the editor you will see the list of images in thumbnail form:

Screenshot of the editor after adding existing images to a post/comment.

If a user wishes to delete them then they can tap/click on the thumbnail. They will be prompted to confirm that they mean to remove the image from the post. This does not delete the image from the gallery. Gallery management type operations can be seen discussed in the Gallery Management section of this manual.

Screenshot showing the dialog box to confirm removing an image from a post/comment

Adding New Images

It is possible to add new images to a post as well. This can be done from the existing local images/files on both mobile and desktop. This can also be done by directly taking a picture with the device's camera if the user is on a mobile platform. When on a mobile device you will be prompted for permissions when you first perform this operation. If you only selected limited image gallery access the first time then you will get reprompted about if you want to give access to more photos if you choose to select one from the image gallery:

Screenshot showing the camera confirmation request Screenshot showing the confirm photos access

If the user selects to use the camera then they will be presented with the standard camera app on their device. If they select the gallery then when they are on mobile they will be presented with the photos viewer of their device. On the desktop they will be presented with a file dialog box:

Screenshot showing selecting multiple photos from the device's photo library

Once selected they will be presented with a list of each of the added images. Unlike when selecting existing images, this is the point where the user has some additional information they can optionally add. A big important one to add is some "ALT Text" description which can be used by screen readers or be shown if an image is not being loaded/can't be loaded. They can add a filename to the image, but this isn't practically used anywhere in the interface.

Screenshot showing new images with ALT text

The user doesn't have to specify a gallery to add the new images to. If no gallery is selected then it will be added to the default "Wall Photos" library. If they wish to use a gallery then they can check the checkbox. If they wish to use an existing gallery then they should select it from the drop down:

Screenshot selecting an existing image gallery

If they wish to create a new gallery name then they can type it into the text box next to the gallery option.

Drawer Menu

A lot of settings and capabilities in the application are in the drawer menu since they are used less frequently. One accesses the drawer menu by clicking on the profile icon in the upper left corner (highlighted in red) of most screens:

Screenshot of the main screen with the highligthed drawer menu icon.

This will open the drawer which has a scrollable menu:

Screenshot of the drawer menu Screenshot of the drawer menu bottom

Now lets look at the various capabilities available in this part of the application.

Profile Management

Profile management is important if one has multiple accounts across Friendica server(s) and want to be able to toggle between them easily. As we saw in the above screenshot, that particular application had two users. The icon in the upper left always presents which user is actively selected. When you bring up the drawer menu the logged in one is highlighted in bold. It is possible to quickly toggle between the two by tapping/clicking on one of the additional ones that are already signed in. We saw in the Your First Login section how to create your first user. That same screen will be brought up when the user selects "Profile Management" option from the Drawer Menu.

Screenshot of the sign in screen with accounts

Again, there are two areas: logged out accounts that Relatica has credentials for and logged in accounts that it has credentials for. The active account is in bold down in the "Logged In" list again. From here users can sign in/out existing accounts, remove them if they no longer want them here, or add new ones following the same steps as in Your First Login. At the very bottom of the screen (not shown) there is a button to purge all credentials completely.

Focus Mode

The "Focus Mode" option is something I created to help me when I need to be able to focus on things other than my penchant for buring myself in social media. Sure I could just delete the whole application but what do I spend most of my mindlessness time doing on social media? I'd say that is predominantly jumping between timelines checking for new content, like Pavlov's dog trying to make the bell ring again to get more food. For times I want to enforce some discipline there is the " Focus Mode". This will lock out everything except the user's posts timeline and the editor from view. There are no notifications. There are no timelines, search, or anything. You just get a list of your posts, which you can still dive into, edit, and look at comments on or add comments to, and the editor to create new posts.

Click on "Focus Mode" to begin the process of configuring:

Screenshot of the 'Focus Mode' configuration screen

The two settings you have for focus mode are the duration you want the focus mode to last and the difficulty of the "puzzle" if you want to disable it earlier. The buttons are there for easy presets but one can use the spinner to set a custom duration up to 24 hours. There is also the "Forever" button which will leave the app in Focus Mode until one manually disables it with by solving the puzzle.

The "Puzzle" is a number guesser game. The difference between the settings are how big a range of numbers the guess will be within:

  • Easy is between 0 and 10
  • Medium is between 0 and 1000
  • Hard is between 0 and 1,000,000
  • Extreme is between 0 and 1,000,000,000

Focus Mode settings are stored so that once it is enabled it survives quits of the application or even rebooting of the device. The only way to leave Focus Mode is for it to expire or to win the challenge game on the "Disable Focus Mode" screen. There is no means for the developer to reset the state of the game. However if one plays the game using a "bisection" method then it should be possible to correctly guess the number in a reasonable number of tries. For example in a worst case scenario of a perfectly played game even in the "Extreme" setting one should be able to guess the number within about 30 guesses.

Once you enable Focus Mode Relatica will look like this:

Screenshot of Relatica in 'Focus Mode'

As one can see there are some big differences between the usual Relatica interface and this one. First, the entire bottom navigation bar is gone. Second, at the top you will see a status for how long is left in this "Focus Mode" session. In this case it has 15 minutes left. A minute later it'd read "14 Minutes", et cetera. If the user opted to put it into "Forever" mode then it will perpetually read, "Focus Mode for Forever".

If you open the drawer this time the "Focus Mode" menu option will read "Disable Focus Mode":

Screenshot of the drawer menu highlighting 'Disable Focus Mode' menu item

If the user selects this they will be brought to the Disable Focus Mode Game screen:

Screenshot of the disable focus mode screen

The user enters a guess. If it is correct then Focus Mode is disabled and the usual interface returns. If it is wrong then the game presents whether it is too high or too low:

Screenshot of the game showing too high prompt Screenshot of the game showing too low prompt

If the user has guessed more than 10 times in a row without success then it throws up a hint on how to play the game using the bisection method as well as the information on the last guess:

Screenshot of the game showing the hint

One of the relatively hidden features of Friendica is the ability to collect your photos/images in galleries. The Gallery option allows one to perform some gallery and image management within Relatica. When a user clicks on this option they are brought to the Galleries Screen:

Screenshot of the galleries screen

This screen provides a list of all known galleries and some basic information about them like the number of images and its creation date. From here it is possible to rename the gallery by just selecting the button on the right hand side:

Screenshot showing renaming galleries

If instead one clicks on a gallery they are brought to the Gallery View. This provides a grid view of all gallery items with the ability to perform some editing on the image properties themselves:

Screenshot of a gallery screen

Clicking on any image will put the gallery in Carousel mode so one can zooom in on the images and navigate through them forward or backward:

Screenshot of the Gallery Carousel mode

Back in the gallery grid view, the icon in the lower right corner denotes whether it is a public ( Globe) or private (Lock) image. If there is ALT Text for an image then a button will show in the lower left corner. Clicking it will bring up the ALT Text in a dialog box.

Screenshot of the gallery with the ALT Text dialog box up

If a user clicks the trash can icon they can delete the image, after confirming they want the deletion in the subsequent dialog box. Deleting the image permamently removes it from Friendica. Therefore any posts that used that image will no longer render properly.

If one clicks on the Pencil icon they can edit the ALT Text of the image:

Screenshot of the ALT Text editor

Direct Messages

Friendica supports Direct Messages between connected fediverse users. Unlike how Mastodon and other platforms do it however, Friendica's is a separate system. It currently is text only so doesn't support media attachments, et cetera but it provides a DM system separate from the main timeline. However as time goes on this system seems to be being supplanted by the more Mastodon like mechanism that is more pervasive and works with non-Friendica platforms

Blocks

User blocks are a mechanism to help filter out content you don't want to see on a per-user level. A blocked user will not show up in timeline or comments. Connections with that user which may have existed are severed as well. The Blocks menu launches the Blocks Screen to help managed blocked users.

Screenshot of the blocks screen

Here there will be a list of the current logged in user's blocks. You can click on the profile line to bring up the Profile Screen where you can see their profile, launch their profile in a browser, etc. It's possible to unblock a user there as well or one can do it back on the original Blocks screen by clicking the "Unblock" button.

Filters

Filters are a Relatica-specific mechanism for providing additional content filtering at client-side. With filters it is possible to totally hide or simply hide behind a clickable warning banner content that you want to limit seeing. This filtering can be done on any combination of:

  • Authors
  • Hashtags
  • Keywords in post/comment text
  • Domains in links

If one has chosen to hide the content entirely then there is no evidence the post/comment exists. However if one hides it behind a warning banner then it is replaced by the warning banner unless one clicks on it:

Demo of filtered content

Once you click on the banner the content is shown. However there is an additional control in the upper-right corner, highlighted in the screenshot below:

Demo of the filtered content showing the button to rehide

If one clicks that then the content will be re-hidden behind the banner.

The main filters screen provides summaries of every filter that is configured on this device:

Screenshot of Filters Screen

Clicking on the Remove Icon on the row to delete the filter or click on the row itself to edit it. Click on the Add (+) button in the upper right corner lets you create a new filter. Adding or editing a filter brings up the Filter Editor Screen where one can configure it fully:

First one needs to name their filter to provide some summary for the main Filters list. Next we configure the action:

Screenshot showing filters actions

If we are configuring a filter by author then if we type an "@" it will bring up autocomplete of known authors that we can select from rather than typing out the whole fediverse handle:

Screenshot showing suggestions of filtered authors

Similarly if we want to configure hashtag filtering we can type a leading "#" which will bring up autocomplete of known hashtags that we can select:

As we can see from the final screenshot, it is possible to have multiple entries per line. Each can be removed by hitting the Remove (X) button.

A fully configured filter

Circles Management

Circles are a mechanism for users to group other users together. By putting them in circles it is possible to create timelines of just those users. This is convenient for things like grouping people you know from a project you work on into one timeline.

Screenshot of the circles management screen

To create a new circle simply hit the Add (+) icon in the upper right and give it a name.

Clicking on any Circle will bring up the Circle Editor screen for that Circle.

Screenshot of the circles editor

One can edit the name of a circle by clicking on the Edit (Pencil) icon next to the title and type a new name. One can also see a list of all the users as well as edit them and get a count of all the users in the Circle. Because Circles can have large lists of users it is possible to filter the list down by name such as below:

Screenshot of the filtered Circles list

Adding users to a list can be done in one of two ways. A very common way to add users to a filter is to do so on a user's Profile Screen. One needs to be connected with a sure to add them to a Circle so if you are not start following them. The status shows beneath the user's name on the Profile Screen. You may need to refresh by dragging down to update it if it is showing "No Connection" even if you think there is one. Sometimes Relatica can have stale connection data.

Screenshot of a connected users profile

Then on the bottom of that screen is a list of all available circles and which circle that user is in. It is possible to toggle one or more options for that user.

Screenshot of the bottom of the connected users profile showing circles

Another way is to do it directly from the Circle Editor screen. Clicking the Add(+) sign will bring up a list of known contacts that Relatica has. You can then filter or search through them to find the ones you want to add to a filter.

Screenshot of the Add Users screen of the Circles Editor

Here you can add one or more users that are in the list by just clicking the Add(+) button on a given row.

Settings

Along with the major features Relatica also has several user-configurable settings.

Screenshot of the top of the settings screen

Low Bandwidth Mode

Low-bandwidth mode is a mechanism to help with reducing network traffic if the user in a place with reduce network connectivity. There are a lot of network requests that can happen pulling down dozens or hundreds of megabytes of data inadvertently by just scrolling timelines loaded with icons, graphics, and videos. When in low bandwidth mode any content that isn't already locally cached is not proactively loaded. Instead that content is hidden behind a grayed out banner showing the content is there, with ALT text rendered as well if it is available. A user can have the content be loaded by clicking on it. After that the content will be there until it is flushed from the cache. When it comes to things like profile icons these are all referencing the same URL so those will be loaded throughout. An example of a before and after of manually loading the data is below:

Demo of low bandwidth content before it is loaded and cached Demo of low bandwidth mode after content is loaded and cached

There are some other proactive network access requests that happen in the background to keep Relatica refreshed. When in low bandwidth mode those too are turned off.

Network Request Timeout

Along with the low bandwidth mode it is sometimes necessary to increase the timeout interval for requests to the server. This is the amount of time that Relatica waits for data to come back from the server whenever it asks for it. The default is 30 seconds but it can be set as low as 10 seconds and as high as 1000 seconds (about 16 minutes). You don't want to set it too long but if you are on a very slow network or an overburdened server setting it to something like 60 seconds or 120 seconds could allow you to continue to use the system even with the slower response times.

Screenshot of the network timeout dropdown menu

Group Notifications by Type

Notifications can either be grouped by type or purely chronologically. Grouping by type puts higher precedent items that may have come earlier ahead of less interesting notifications that came later. For example, any mentions or comments on your post would be listed before all of the likes, even if that mention was days ago and the likes were minutes ago.

Spoiler/Content Warning Hiding

Friendica and Relatica support spoiler/content warning hiding of content behind warning labels that the user sets up when writing their post/comment. Clicking on the warning label can toggle the content shown or not shown. By disabling this setting no content warning labels will ever be shown and it will just show content even if it has spoiler labels.

Screenshot of post hidden behind content warning Screenshot of post with content showing

Confirm Reporting Prompt

In order to potentially not inadvertently report posts/comments from the "Report" menu option Relatica will ask you first to confirm you want to do that before moving no the next step. Toggling this option off removes that check and skips that part of the flow.

Open Tags in App

Tags on posts/comments usually provide references back to the user's Friendica server. This can create a counter-intuitive workflow. With this option on tags are opened up within Relatica in a Tags Browser screen like when you click on Followed Tags or do Hashtag Searches. Toggling this off will have it open up a web browser with that tag search open.

Dark Mode Theme Setting

Relatica supports system Dark Mode settings. By default it is configured to use the local device's Dark Mode setting. However it is possible to force it into Light or Dark mode instead.

Clear Local Caches

In order to provide better responsiveness and reduce overall network burden there is a lot of data that is cached locally by Relatica. These are things like every hashtag that has ever been used on any post or comment that it has ever seen. Over time one may want to flush out all those caches to start from a clean slate. Hitting the "Clear" button here will do that after going through a confirmation dialog box.

Logging (Setting Level and Viewing)

Logging is useful for helping to debug application problems. Relatica is highly instrumented to generate log messages and stores a history of them on the local device. Relatica has no telemetry, logging, or any other network based tracking that sends information off device to any servers anywhere. This logging capability is there to help users generate, save off, and manually send logs to Relatica developers if a problem arises. By default it is turned off. However if a problem does arise it can be configured to various levels of logging:

Screenshot of log level settings

The appropriate level is probably something you'll want to talk to a develop about via email or the support forum (see README Community and Support section for links to those resources).

If logs are being generated they can be viewed and filtered on the local device by clicking the Log Viewer button. This brings up the Log Viewer Screen shown below:

Screenshot of the log viewer screen

Relatica logging can generated dozens of log messages per second, depending on what settings are configured. In order to help make sense of it is possible to filter by log entry properties like: level, the Relatica module, text search. Long-tapping/clicking on the entry can copy an individual entry to the clipboard. However it will often be the case it would be better to save off the log and send it to a develop via email, file sharing service et cetera. If a user clicks on the Save (Disk) floating button on the bottom right it will open up the local Files storage app to save a copy of the log file locally.

Screenshot of the Files app for saving a log file

Once there it should be available for adding to an email, et cetera.

Network Capabilities

Since Friendica interoperates with dozens of server types it is possible that not all actions on a post are something you want to be able to "accidentally" do from within Relatica. For example, Diaspora posts that are reshared often are rendered unusually on some server types that are being federated with over ActivityPub. Similarly, there is a great sensitivity about having Threads content permeating other areas of the fediverse by having that content reshared. By toggling on/off these capabilities it is possible to customize which options are available for which post type. If that capability is not selected then that action will be disabled on the timeline.

Screenshot of the network capabilities part of the settings screen

Moderation

Relatica helps users with this via a few moderation tools. First, it's possible to block accounts that the user dislikes, see the Blocking a User section. Second, it is possible to report posts/comments to the server your account is logged into, see the Reporting Posts/Comments section. Client side there are also facilities to add additional content filtering/hiding using Relatica's Filtering settings, see the Filtering section.

Reporting Posts/Comments

While Friendica has a facility for reporting posts/comments through the standard web interface, it does not have that capability through the API. In order to help users report a post/comment there is a dedicated menu option for opening it up in a browser where a user can then use the standard Friendica reporting mechanism.

If there is a post/comment you want to report, open up the popup menu and choose the "Report Post" or "Report Comment" (if on a comment) menu item:

Report post step 1: select Report Post Menu Item

The user will be prompted to confirm if they want to report the post, unless they turned this option off in the settings as described in The Confirm Reporting Settings section.

Report post step 2: confirm desire to report

If the user is not logged in with that browser session they will get a screen that looks like this:

Report post step 3 but not logged in

If that is so click on the login button (circled in red in the screenshot) in the upper right hand corner and re-enter the account's login credentials:

Report post step 3 re-entering login credentials

With the login credentials now revalidated the Friendica website should load the post. If it does not, repeat the menu selection back in Relatica in Step 1 with this time the post/comment properly loading. On the bottom activities bar of the post/comment there is a popup menu. At the bottom of that is a report menu option (highlighted in red):

Report post step 4: select the 'Report post' menu item

This will take the user to the standard Friendica reporting form where they can fill out the appropriate report to be adjudicated by their server's administrators as they see fit:

Report post form top Report post form middle Report post form bottom

Blocking a User

Blocking a user can be done in one of two places. Directly off every post/comment there is a "Block User" Menu item:

Menu option for blocking users

Selecting this menu option will prompt the user to confirm they want to block the named user:

Confirm blocking a user

Another place to block a user is on the profile page:

Block a user on the profile screen

Once a user is blocked their posts/comments will no longer show up on the timeline. To unblock a user one can either use the Blocks Management tool found in the Drawer menu, as described above, or again go to the profile screen for a user and click the "Unblock" button:

Unblock user selection on profile screen