From 57f08bfaa983f0df476f56c24f6dd74a34c15ff1 Mon Sep 17 00:00:00 2001 From: Hank Grabowski Date: Fri, 27 Jan 2023 18:29:46 -0800 Subject: [PATCH] Update docs for v0.1.0b2 --- CHANGELOG.md | 42 +++++++++++++++--- beta-program.md | 116 +++++++++++++++++++++++++++++------------------- install.md | 42 +++++++++++------- 3 files changed, 131 insertions(+), 69 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f546504..3363422 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,7 +2,8 @@ ## Version 0.x.0 (beta) -* Fixed image viewer quirks with text overwriting, lack of mouse scrollwheel zoom, and responsiveness +* Fixed image viewer quirks with text overwriting, lack of mouse scrollwheel zoom, and + responsiveness quirk (https://gitlab.com/mysocialportal/relatica/-/merge_requests/10) ## Version 0.1.0 (beta) @@ -11,28 +12,55 @@ * Major working features (at least in initial implementation versions): * Logging in with username/password. These are stored using the OS specific key vaults * Writing posts - * Typing @ brings up a list of all known fediverse accounts that the app has ever seen as you type (but not all + * Typing @ brings up a list of all known fediverse accounts that the app has ever seen as + you type (but not all that your server has seen) - * Typing # brings up a list of all known hashtags that the app has ever seen as you type (but not all that your + * Typing # brings up a list of all known hashtags that the app has ever seen as you type ( + but not all that your server has seen) * Very basic markdown (wrapping in stars for bold/italics) * Adding new images to posts * Image posting with easy means of adding ALT text * Attaching existing images to posts * Resharing posts - * Browsing timelines including from groups you've created. In this app "Home" is the same as the "Network" (grid) + * Browsing timelines including from groups you've created. In this app "Home" is the same as + the "Network" (grid) button in Frio and "Yours" is the equivalent of the Home button in the app. * Browsing notifications and marking individual ones read or all read * Getting gallery list and browsing galleries * Browsing your contacts or searching contacts that are known by your app * Adjudicating follow requests * Going to individual profiles to see their posts, follow/unfollow, add/remove from groups - * A "low bandwidth" mode that defers loading of images until you click on them, unless the app already has that + * A "low bandwidth" mode that defers loading of images until you click on them, unless the app + already has that image cached locally. * Light/dark mode selection * Opening posts, comments, and profiles in the "external" browser * Playing videos within the app on iOS and Android. - * Pulling down to refresh timelines, galleries, and posts but loading newer or older posts has specific buttons ( + * Pulling down to refresh timelines, galleries, and posts but loading newer or older posts has + specific buttons ( this will probably change in the near future) - * Pulling down to refresh notifications and contacts gets updates to that respective data (this may change in the + * Pulling down to refresh notifications and contacts gets updates to that respective data (this + may change in the near future) + +## Version 0.1.0b2 (beta) + +* Fixes + * Scrollwheel zooming now works correctly on desktop + * Fix image overflow and apparent intermittent lack of zoom responsiveness in image preview pane + * Fix inconsistent tap behavior on notifications cards + * Search on the contacts screen now searches handles as well as names + * All contacts now load properly from server + * Liking a nested comment now doesn't appear to forever lock out interactions on that post +* New Features + * Initial paging infrastructure for being able to incrementally load larger sets of things (like + comments) + * First usage of paging system: contacts + * Initial implementation of direct messaging including: + * List of conversation threads + * Reading conversation threads + * Marking conversations read by tapping on the message + * Respond in a conversation + * Start a new conversation by searching for a known contact "type @ and start typing like in + posts/comments" \ No newline at end of file diff --git a/beta-program.md b/beta-program.md index 30d9f17..8b7e491 100644 --- a/beta-program.md +++ b/beta-program.md @@ -7,67 +7,85 @@ to check are: * ["Things that are broken"](#broken-and-hopefully-fixed-in-the-very-near-future-) so you know how to avoid problems using the application in its current state, don't report duplicate bugs, etc. -* ["Cumbersome things"](#cumbersome-and-hopefully-improved-in-the-very-near-future-) +* ["Cumbersome things"](#cumbersome-and-hopefully-improved-in-the-very-near-future-) for the same reason as the above "broken" things. * [The CHANGELOG](CHANGELOG.md) to see what has changed with each recent version * [Install Instructions](install.md) to see how to install the application * [Community Communications](README.md#community-and-support) to know how to - get in touch with other members of the community, developers, etc. + get in touch with other members of the community, developers, etc. + +## Introduction -## Introduction At the present time it is possible to use Relatica as your daily driver for -functions that have already been implemented. I've been using it as my +functions that have already been implemented. I've been using it as my primary Friendica interactions for over a month as of writing this in January 2023. However, usable doesn't mean feature complete, even for the subset of features I want to implement. Usable also doesn't mean bug free experience. It can still be useful to people which is why I'm opening up -access to it right now. Having said that, this is an early beta program. +access to it right now. Having said that, this is an early beta program. Since not everyone that is considering using the software at this point may -be familiar with that aspect of the software development process I +be familiar with that aspect of the software development process I wanted to lay out some expectations before getting into the small details ### Expectations For Early Beta Testers + * Things that look like they are finished are not * A lot of things look very not finished * Download regular updates to get the latest and greatest features and fixes and feedback * Check in on the CHANGELOG, Issue tracker, etc. for updates -* Some things that look finished may end up changing to improve overall user experience (the "Who moved the gas pedal?" problem) -* Don't suffer in silence with problems. The beta program is about getting the feedback to what works, what doesn't, etc. - Provide feedback via the Matrix room, for interactive discussions, or the GitLab issue tracker for larger bug tracking. -* Feedback should be productive and specific while being as light a load on the beta tester as possible: +* Some things that look finished may end up changing to improve overall user experience (the "Who + moved the gas pedal?" problem) +* Don't suffer in silence with problems. The beta program is about getting the feedback to what + works, what doesn't, etc. + Provide feedback via the Matrix room, for interactive discussions, or the GitLab issue tracker for + larger bug tracking. +* Feedback should be productive and specific while being as light a load on the beta tester as + possible: * BAD: "This thing is crap!" * BAD: "It crashed!!!!" - * Good: "When I click on a notification box it didn't seem to do anything until I clicked in a very specific area" - * Good: "The app seemed to freeze up when I kept scrolling down my timeline for a long time (like half an hour)" + * Good: "When I click on a notification box it didn't seem to do anything until I clicked in a + very specific area" + * Good: "The app seemed to freeze up when I kept scrolling down my timeline for a long time ( + like half an hour)" * Good: "I'm finding X feature hard to use because Y is confusing" - * Good: "I am trying to do X with Friendica but I don't see a way to do it. Could that be implemented in the app?" + * Good: "I am trying to do X with Friendica but I don't see a way to do it. Could that be + implemented in the app?" ## Application Status and Roadmap ### Things that work + * Logging in with username/password. These are stored using the OS specific key vaults * Writing **public** posts - * Typing @ brings up a list of all known fediverse accounts that the app has ever seen as you type (but not all that your server has seen) - * Typing # brings up a list of all known hashtags that the app has ever seen as you type (but not all that your server has seen) + * Typing @ brings up a list of all known fediverse accounts that the app has ever seen as you + type (but not all that your server has seen) + * Typing # brings up a list of all known hashtags that the app has ever seen as you type (but + not all that your server has seen) * Very basic markdown (wrapping in stars for bold/italics) - * Adding new images to posts - * Image posting with easy means of adding ALT text + * Adding new images to posts + * Image posting with easy means of adding ALT text * Attaching existing images to posts * Resharing posts -* Browsing timelines including from groups you've created. In this app "Home" is the same as the "Network" (grid) button in Frio and "Yours" is the equivalent of the Home button in the app. +* Direct (private) messaging +* Browsing timelines including from groups you've created. In this app "Home" is the same as the " + Network" (grid) button in Frio and "Yours" is the equivalent of the Home button in the app. * Browsing notifications and marking individual ones read or all read * Getting gallery list and browsing galleries * Browsing your contacts or searching contacts that are known by your app * Adjudicating follow requests * Going to individual profiles to see their posts, follow/unfollow, add/remove from groups -* A "low bandwidth" mode that defers loading of images until you click on them, unless the app already has that image cached locally. +* A "low bandwidth" mode that defers loading of images until you click on them, unless the app + already has that image cached locally. * Light/dark mode selection * Opening posts, comments, and profiles in the "external" browser * Playing videos within the app on iOS and Android. -* Pulling down to refresh timelines, galleries, and posts but loading newer or older posts has specific buttons (this will probably change in the near future) -* Pulling down to refresh notifications and contacts gets updates to that respective data (this may change in the near future) +* Pulling down to refresh timelines, galleries, and posts but loading newer or older posts has + specific buttons (this will probably change in the near future) +* Pulling down to refresh notifications and contacts gets updates to that respective data (this may + change in the near future) ### Big things I want to have working in the near future: + * Show list of who liked and reshared posts/comments * Better timeline UX to allow for "in-fill" * More detailed profile information for users and logged in user @@ -76,7 +94,6 @@ wanted to lay out some expectations before getting into the small details * Limiting maximum width of timeline columns * Nicer aesthetics * Fix below identified issues -* Private messages * Notifications broken into: * Messages (from message system) * Friend requests @@ -97,9 +114,9 @@ wanted to lay out some expectations before getting into the small details * Internationalization * Better screen reader interactions - ### Further out things I want to have working: -* Private posts + +* Private posts * Post editing * Profile editor * Opening accounts, tags, etc within posts within the app itself through user's home server @@ -115,8 +132,8 @@ wanted to lay out some expectations before getting into the small details * Deleting images and entire galleries * Events - ### Things I don't envision implementing in the foreseeable future: + * Account creation through the application * Creating new forums through the application * Site administration @@ -124,18 +141,21 @@ wanted to lay out some expectations before getting into the small details * Adding videos or files to posts * Multi-account logins - ## General behaviors/problems to be aware of: ### Broken and hopefully fixed in the very near future: -* Resharing of Diaspora federated posts is currently broken server side. All other posts should be reshareable. -* Content Warnings/Spoiler Text on *posts* aren't federating over to Mastodon well so only use it on Comments for now -* ALT text on images should not have any quotation marks as it breaks when federating over to Diaspora for the time being + +* Resharing of Diaspora federated posts is currently broken server side. All other posts should be + reshareable. +* Content Warnings/Spoiler Text on *posts* aren't federating over to Mastodon well so only use it on + Comments for now +* ALT text on images should not have any quotation marks as it breaks when federating over to + Diaspora for the time being * Portrait videos overflow their boxes in the timeline * Blocked/ignored user's content is still returned by the API -* Paging for some of the endpoints either isn't wired in yet or is not working as needed server side. That includes things like: +* Paging for some of the endpoints either isn't wired in yet or is not working as needed server + side. That includes things like: * Friend requests - * Connections list * Gallery Contents * Comments on posts * Tags @@ -143,28 +163,34 @@ wanted to lay out some expectations before getting into the small details * Blocked user list ### Cumbersome and hopefully improved in the very near future: -* The only post type that is supported right now are public posts therefore all posts you write through the app will have this privacy level. + +* The only post type that is supported right now are public posts therefore all posts you write + through the app will have this privacy level. * Notifications need to be manually refreshed. -* The tap zone for some things is not always intuitive. For example on notifications clicking on white space around it doesn't count as a hit but you have to hit the non-hyperlinked text. -* Responsiveness can be laggy. Sometimes hitting buttons doesn't seem to do something but it is doing a network request. I know I need to improve that -* In galleries you need to double click on the picture to open the preview. It is remnants of an experiment I was doing on more consistent UX which feels broken so I'm changing. -* Sometimes timelines get confused so swapping between the different groups/timelines creates a muddled display. Restarting the app fixes this. -* Image zoom is broken on desktops that use mouse wheels for scrolling. It only does full or no zoom. -* Image zoom can get stuck on mobile when zoomed in too far. Backing out of the image to the gallery and back in fixes it -* Some images within posts, usually graphical emojis, are rendered drastically larger than they should be. -* On Linux you will need to re-enter your credentials each time you use the app for the first time after logging in. +* Responsiveness can be laggy. Sometimes hitting buttons doesn't seem to do something but it is + doing a network request. I know I need to improve that +* In galleries you need to double click on the picture to open the preview. It is remnants of an + experiment I was doing on more consistent UX which feels broken so I'm changing. +* Sometimes timelines get confused so swapping between the different groups/timelines creates a + muddled display. Restarting the app fixes this. +* Some images within posts, usually graphical emojis, are rendered drastically larger than they + should be. +* On Linux you will need to re-enter your credentials each time you use the app for the first time + after logging in. * Groups are listed by the order they were created not alphabetically in the drop down menu -* Liking a nested comment can appear to lock up (it stays grayed out). Navigating back and forth fixes that -* The "in fill" problem: Timelines fill only at the ends with at most 20 posts per call. So let's say you logged in at 09:00 and the initial pulls went from 07:00 to 09:00: +* The "in fill" problem: Timelines fill only at the ends with at most 20 posts per call. So let's + say you logged in at 09:00 and the initial pulls went from 07:00 to 09:00: ``` 07:00=====9:00 ``` - - While browsing you asked for older posts that pulled posts back to 06:00 and up to the time you asked for more, say 09:30 so the timeline looks like: + + While browsing you asked for older posts that pulled posts back to 06:00 and up to the time you + asked for more, say 09:30 so the timeline looks like: ``` 06:00=========09:30 ``` - Now at lunch time you come back and ask for newer posts. It will pull the last 20 posts from 12:00 which say took you back to 11:00. + Now at lunch time you come back and ask for newer posts. It will pull the last 20 posts from 12:00 + which say took you back to 11:00. The timeline looks contiguous but it really is: ``` 06:00=========09:30 11:00=====12:00 diff --git a/install.md b/install.md index 305eedf..b12f619 100644 --- a/install.md +++ b/install.md @@ -1,22 +1,28 @@ -# Relatica Installation Instructions +# Relatica Installation Instructions -**NOTE: Relatica is in an early beta status. Use at own risk.** -For more information about the current beta testing program +**NOTE: Relatica is in an early beta status. Use at own risk.** +For more information about the current beta testing program [see the program's notes page](beta-program.md). # Latest Binaries: -* [Android](https://mysocialportal-relatica.nyc3.cdn.digitaloceanspaces.com/v0.1.0/relatica_v0.1.0.apk.zip) -* iPhone/iPad: This is only available through TestFlight. Please contact me for access. -* [Windows (Intel)](https://mysocialportal-relatica.nyc3.cdn.digitaloceanspaces.com/v0.1.0/Relatica-v0.1.0-x64_win.zip) -* [macOS](https://mysocialportal-relatica.nyc3.cdn.digitaloceanspaces.com/v0.1.0/Relatica-v0.1.0_mac.zip) -* [Linux (Intel Ubuntu 22)](https://mysocialportal-relatica.nyc3.cdn.digitaloceanspaces.com/v0.1.0/relatica_v0.1.0_linux_x64_ubuntu22.zip) + +Presently v0.1.0b2 is only available pre-build for iOS, Android, and macOS but will shortly have +builds up for +Windows and Linux. They can be built manually from the repository however. + +* [Android v0.1.0b2](https://mysocialportal-relatica.nyc3.cdn.digitaloceanspaces.com/v0.1.0/relatica_v0.1.0b2.apk.zip) +* iPhone/iPad v0.1.0b2: This is only available through TestFlight. Please contact me for access. +* [Windows (Intel) v0.1.0](https://mysocialportal-relatica.nyc3.cdn.digitaloceanspaces.com/v0.1.0/Relatica-v0.1.0-x64_win.zip) +* [macOS v0.1.0b2](https://mysocialportal-relatica.nyc3.cdn.digitaloceanspaces.com/v0.1.0/Relatica_v0.1.0b2_mac.zip) +* [Linux (Intel Ubuntu 22) v0.1.0](https://mysocialportal-relatica.nyc3.cdn.digitaloceanspaces.com/v0.1.0/relatica_v0.1.0_linux_x64_ubuntu22.zip) ## Mobile ### Android -1. Configure your phone to allow installing APKs through the browser. - See [this LifeWire article](https://www.lifewire.com/install-apk-on-android-4177185) for instructions. +1. Configure your phone to allow installing APKs through the browser. + See [this LifeWire article](https://www.lifewire.com/install-apk-on-android-4177185) for + instructions. 2. Download the latest Android version (see above for versions). 3. Unzip the archive and extract the apk file in your file browser 4. Click on the APK file and follow the prompts to allow the Installation @@ -25,28 +31,29 @@ Note: If the application was previously installed it may complete with a "not in Manually uninstall the app and try again. ### iPhone/iPad -1. Contact the development team for access to the TestFlight program. + +1. Contact the development team for access to the TestFlight program. 2. Install the TestFlight application from the Apple Store 3. You will receive an invitation email that you must open on a phone or tablet 4. Open the TestFlight app to see the Relatica app ready for testing 5. Subsequent releases during the beta program will be pushed to TestFlight on each build. - ## Desktop ### macOS + 1. Download the latest version (see above) 2. Unzip the archive. 3. Copy to wherever you want to store the Application (Applications folder is the usual place) Note: that the username/password are stored in macOS's keychain. You will need to provide a password -to this when you use the app for the first time. If you select "Always Allow" then you should only -be prompted for it if there is a major application change. If you selecte "Always" you will be +to this when you use the app for the first time. If you select "Always Allow" then you should only +be prompted for it if there is a major application change. If you selecte "Always" you will be prompted again. The system does not work without the storage mechanism at this time. - ### Linux -1. Install libsecret-1-0 and libjsoncpp25 libraries from your system's package manager. + +1. Install libsecret-1-0 and libjsoncpp25 libraries from your system's package manager. 2. Download the latest version (see above) 2. Unzip the archive. 3. Copy to wherever you want to store the applications @@ -59,7 +66,7 @@ prompted again. The system does not work without the storage mechanism at this t Note #1: This LD_LIBRARY_PATH issue is a temporary one while a build/deploy bug is being worked out with one of the libraries that the application uses. -Note #2: At this time the library dependencies on libsecret and libjsoncpp are a bit finicky. +Note #2: At this time the library dependencies on libsecret and libjsoncpp are a bit finicky. The build definitely works on Ubuntu 22 or Linux distributions built on Ubuntu 22. Testing on other distros hasn't happened yet. Please report results back and we will try to provide builds for other distros as they are needed. @@ -70,6 +77,7 @@ for the password to the secret storage the first time you run the application af in or rebooting. ### Windows + 1. Download the latest version (see above) 2. Unzip the archive. 3. Copy to wherever you want to store the application