Initial new documentation push

codemagic-setup
Hank Grabowski 2023-01-21 14:02:55 -05:00
rodzic bf5cbf2261
commit bf14975c46
5 zmienionych plików z 275 dodań i 8 usunięć

1
CHANGELOG.md 100644
Wyświetl plik

@ -0,0 +1 @@
#Relatica Change Log

Wyświetl plik

@ -2,16 +2,21 @@
A Flutter application for interfacing with the Friendica social network.
For Linux development be sure that libsecret-1-dev and libjsoncpp-dev are installed on the machine. For running only
make sure the non-dev versions are...
## Project Objectives
## Development Notes
* Have a native app client on mobile (Apple and Android) and desktop (Linux, Mac, and Windows)
* Providing a simpler UX for people to interact with Friendica
* Providing a better low-bandwidth environment experience than the web-app version running in a browser
* Reduce server side loading in the new fediverse era by doing techniques like leveraging paging of comments, local caching, and lazy loading.
* Provide more intuitive mechanisms for adding things like Content Warning/Spoiler text and image ALT-text
Whenever a model is changed that is stored in ObjectBox it is necessary to execute the command:
```bash
flutter pub run build_runner build
```
## Current Status
The project is currently in an early-beta state. If you'd like to use it at this time please see the notes at [Redica Beta Testing Program](beta-program.md).
If you would like to contribute please see [this Developers Notes](developers.md) section.
## Community and Support
@ -19,6 +24,14 @@ flutter pub run build_runner build
[Issue Tracker](https://gitlab.com/mysocialportal/relatica/-/issues)
### Things I could use help from community on:
* More coders and testers are always welcome
* CI/CD
* Packaging for Linux operating systems using Flatpak, Snap, etc. (or individual packages per operating system)
* UI/UX cleaning up
* Graphics design for logo, website art
* Documentation
* Spreading the word
## License
Licensed with the Mozilla Public License 2.0 copyleft license.
Relatica is licensed with the [Mozilla Public License 2.0 (MPL)](LICENSE) copyleft license.

175
beta-program.md 100644
Wyświetl plik

@ -0,0 +1,175 @@
# Relatica Beta Testing Program Notes
These are notes for the Relatica beta testers. Very import sections of this page
to check are:
* ["Things that work"](#things-that-work) to see what is working well
* ["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-)
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.
## 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
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.
Since not everyone readig this that is considering using the app at this stage
may 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:
* 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: "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?"
## Application Status and Roadmap
### Things that work
* 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 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
* 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.
* 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.
* 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)
### 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
* Better data display on larger format displays by doing things like:
* Allowing images/thumbnails to be larger
* Limiting maximum width of timeline columns
* Nicer aesthetics
* Fix below identified issues
* Private messages
* Notifications broken into:
* Messages (from message system)
* Friend requests
* Real notifications
* Fixing the image scaling in views on desktop
* More greedy loading of notifications when not in low bandwidth mode
* More intuitive timeline controls
* Real paging across the board
* Notifications
* Comments
* Galleries
* Contacts
* Copying text, captions, etc.
* Easier copying link to post/comment
* Offline caching of older content
* Dynamic search of locally known posts and hashtags.
* Make forum posts
* Internationalization
* Better screen reader interactions
### Further out things I want to have working:
* Post editing
* Profile editor
* Group creation, deletion, renaming
* Being able to load accounts and/or posts from links from other users within app
* Open fediverse accounts/files within app
* Nitter replacement of Twitter links
* User configurable Server blocking
* Server-side searching tied into profiles, posts, hashtags
* OAuth logins
* Being able to ignore/unignore users
* 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
* Two-factor authentication
* Adding videos or files to posts
* Multi-account logins
### Things I could use help from community on:
* CI/CD
* Packaging for Linux operating systems using Flatpak, Snap, etc. (or individual packages per operating system)
* UI/UX cleaning up
* Graphics design for logo, website art
* Documentation
* Spreading the word
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
* 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:
* Friend requests
* Connections list
* Gallery Contents
* Comments on posts
* Tags
* Notifications
* Blocked user list
### Cumbersome and hopefully improved in the very near future:
* 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.
* 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:
```
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:
```
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.
The timeline looks contiguous but it really is:
```
06:00=========09:30 11:00=====12:00
```
There may be posts in the 09:30 to 11:00 gap or may not. Right now there is no way to fill

15
developers.md 100644
Wyświetl plik

@ -0,0 +1,15 @@
# Relatica Developer Notes
Relatica is written with [Flutter](https://flutter.dev/). Please follow
[the install instructions](https://docs.flutter.dev/get-started/install) for your platform
to get started with development.
## Linux Development
For Linux development be sure that libsecret-1-dev and libjsoncpp-dev are installed on the machine.
## Additional Build Steps
Whenever a model is changed that is stored in ObjectBox it is necessary to execute the command:
```bash
flutter pub run build_runner build
```

63
install.md 100644
Wyświetl plik

@ -0,0 +1,63 @@
# Relatica Installation Instructions
**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)
* 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)
## 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.
2. Download the latest Android version (see above for versions).
3. Follow the prompts to initiate installation.
### iPhone/iPad
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
prompted again. The system does not work without the storage mechanism at this time.
### Linux
For Linux development be sure that libsecret-1-dev and libjsoncpp-dev are installed on the machine. For running only
make sure the non-dev versions are...
1. Install libsecret and libjsoncpp 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
Note #1: 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.
Note #2: The app uses Linux's secret storage mechanism. Under testing under Cinnamon the
access to the storage is reset whenever the user logs out. You therefore will be prompted
for the password to the secret storage the first time you run the application after logging
in or rebooting.
### Windows